使用 kentor 以编程方式配置 sso 设置

Programatically configure sso settings using kentor

我有一个 MVC 应用程序 (.Net Framework 4.5),它已经存在了三年并使用了表单身份验证机制。现在我们想在 Okta 的帮助下集成 SSO 功能。使用 KentorIT 身份验证服务,我能够将 Okta 与我的 mvc 应用程序集成。其中,所有配置都在 web.config 文件中设置(例如:entityId、signOnUrl 等)。有没有办法以编程方式配置这些 sso 设置?我发现 KentorAuthServicesSection 是我们必须实例化才能完成该过程的 class。目前正在从配置文件中读取设置。

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

所以用自定义实现修改这个 ConfigurationManager.GetSection("kentor.authServices") 部分就可以了?或者还有其他好的方法吗?

您可以直接使用选项 类 -- 无需自定义 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