ASP.netコアWebアプリケーションの開始後にSAML2IDPを動的にロードするための最良の方法は何ですか?
これまでのところ、次のコードを使用して、実行時にSAML2IDPを動的に追加できます。
//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(){...});
}
これは機能しますが、負荷分散環境でアプリの複数のインスタンスが実行されている場合、動的な読み込みにまだ苦労しています。
誰かがSAML2を使用してログインしようとするたびに、データベースにクエリを実行して構成をロードすることは可能ですか?
はい、GetIdentityProvider
とSelectIdentityProvider
通知を使用します。それらを実装すると、メモリ内のコレクションを完全にバイパスできます。特にメタデータをロードさせる場合は、IdentityProviderオブジェクトをキャッシュすることをお勧めします。そうしないと、リクエストごとにIdpメタデータが再ロードされます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加