Программная настройка параметров SSO с помощью kentor

У меня есть приложение MVC (.Net Framework 4.5), которое существует последние три года и использует механизм проверки подлинности с помощью форм. Теперь мы хотим интегрировать функцию SSO с помощью Okta. Используя службы аутентификации KentorIT, я смог интегрировать Okta с моим приложением mvc. При этом все конфигурации задаются в файле web.config (например: entityId, signOnUrl и т. д.). Есть ли способ программно настроить эти параметры sso? Я обнаружил, что KentorAuthServicesSection — это класс, экземпляр которого мы должны создать для выполнения процесса. В настоящее время он читает настройки из файла конфигурации.

 public class KentorAuthServicesSection : ConfigurationSection
 {
        private static readonly KentorAuthServicesSection current =
            (KentorAuthServicesSection)ConfigurationManager.GetSection("kentor.authServices");
 }

Таким образом, изменение этой части ConfigurationManager.GetSection("kentor.authServices") с помощью пользовательской реализации будет работать? или есть другой хороший подход?


person Dennis    schedule 15.05.2017    source источник


Ответы (1)


Вы можете просто использовать классы параметров напрямую — нет необходимости настраивать файл GetSection.

Я предполагаю, что вы используете модуль Mvc. В этом случае вы хотите установить параметры AuthServicesController во время запуска приложения, например.

Kentor.AuthServices.Mvc.AuthServicesController.Options = myOptions;

С собственной конструкцией этих же классов конфигурации. Например:

var spOptions = new SPOptions
{
    EntityId = new EntityId("http://localhost:57294/AuthServices"),
    ReturnUrl = new Uri("http://localhost..."),
    //...
};
options = new KentorAuthServicesAuthenticationOptions(false)
{
   SPOptions = spOptions
};

false в этом конструкторе указывает не читать из системы конфигурации.

В примере проекта OWIN есть более крупный пример: https://github.com/KentorIT/authservices/blob/v0.21.1/SampleOwinApplication/App_Start/Startup.Auth.cs#L54-L82

person explunit    schedule 15.05.2017
comment
Спасибо за помощь. Это сработало отлично. Не могли бы вы изучить этот вопрос (stackoverflow.com/questions/44005770/), что с этим связано? заранее спасибо - person Dennis; 16.05.2017