SAML2 将 AuthMode 设置为稍后在应用程序上激活
SAML2 Set AuthMode to active later on the app
我正在为我们的应用程序 SAML2 SSO 使用 https://github.com/Sustainsys/Saml2 库。我想稍后在应用程序上将 AuthMode 设置为活动状态,这背后的原因不是我们所有的客户都使用 SAML2,因此如果客户访问他们的域,他们应该被重定向到他们的 Idp 登录页面。
然而,此 AuthMode 属性 仅在 Startup.Auth.cs
中可用,我无法在应用程序的某处访问它。
顺便说一句,我正在为此使用 Owin。
有什么办法可以做到吗?
是的,这是可能的。保留对 Saml2AuthenticationOptions 的引用(例如静态 property/field),然后在运行时更改它。立即生效。
但是,您可能不想走那条路。您已经将 cookie 中间件设置为活动状态,并且 Owin 管道仅设计用于一个活动中间件,而不是多个。
因此,将 CookieAuthenticationHandler 中的 LoginPath
设置为 controller/action,即 returns ChallengeResponse
,将 Saml2 身份验证方法作为质询方案。 (如果您创建新应用程序,ChallengeResponse 包含在 asp.net 身份样板代码中)。
我正在为我们的应用程序 SAML2 SSO 使用 https://github.com/Sustainsys/Saml2 库。我想稍后在应用程序上将 AuthMode 设置为活动状态,这背后的原因不是我们所有的客户都使用 SAML2,因此如果客户访问他们的域,他们应该被重定向到他们的 Idp 登录页面。
然而,此 AuthMode 属性 仅在 Startup.Auth.cs
中可用,我无法在应用程序的某处访问它。
顺便说一句,我正在为此使用 Owin。
有什么办法可以做到吗?
是的,这是可能的。保留对 Saml2AuthenticationOptions 的引用(例如静态 property/field),然后在运行时更改它。立即生效。
但是,您可能不想走那条路。您已经将 cookie 中间件设置为活动状态,并且 Owin 管道仅设计用于一个活动中间件,而不是多个。
因此,将 CookieAuthenticationHandler 中的 LoginPath
设置为 controller/action,即 returns ChallengeResponse
,将 Saml2 身份验证方法作为质询方案。 (如果您创建新应用程序,ChallengeResponse 包含在 asp.net 身份样板代码中)。