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

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

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

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

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

Другие вопросы по тегам