在ASP.net核心web应用程序启动后,动态加载SAML2 IDP的最佳方法是什么?
到目前为止,我可以使用以下代码在运行时动态添加SAML2 IDP:
//DI in Constructor
public ClassName(IAuthenticationSchemeProvider schemeProvider,
IOptionsMonitorCache<Saml2Options> optionsCache)
{
_schemeProvider = schemeProvider;
_optionsCache = optionsCache;
}
public async Task LoadIDP()
{
...
_schemeProvider.AddScheme(new AuthenticationScheme(schemeName, schemeName,typeof(Saml2Handler)));
_optionsCache.TryAdd(schemeName, new Saml2Options(){...});
}这是可行的,但当有多个App实例在负载平衡环境中运行时,我仍然在为动态加载而挣扎。
是否可以在每次有人尝试使用SAML2登录时查询数据库以加载配置?
发布于 2020-09-16 02:11:28
可以,使用GetIdentityProvider和SelectIdentityProvider通知。实现它们时,您可以完全绕过内存收集。请注意,缓存IdentityProvider对象是一个好主意,特别是如果您让它们加载元数据,否则将在每次请求时重新加载IDP元数据。
https://stackoverflow.com/questions/63906289
复制相似问题