マルチクライアントを構成に追加する好ましい方法は何ですか。ADFS を使用したい顧客が数人いるため、エンドポイント/メタデータが異なります。
現時点では、起動時にデータベースから構成を読み取ろうとしましたが、それぞれに対して新しい Saml12 認証を登録します。
private static void AddSaml2Client(AuthenticationBuilder builder, DomainProvider provider, string Saml2LocalEndpoint)
{
var settings = JsonHelpers.ParseJsonStringToObject<Saml2Setting>(provider.Settings);
if (settings == null
|| string.IsNullOrEmpty(settings.MetadataLocation)
|| string.IsNullOrEmpty(settings.ProviderEndPoint))
{
Log.Error($"Missing or invalid settings for SAML2 client on {provider.DomainName}");
return;
}
builder.AddSaml2(provider.Name.Trim(), provider.Name.Trim(), options =>
{
options.SPOptions.EntityId = new EntityId(Saml2LocalEndpoint);
options.IdentityProviders.Add(new IdentityProvider(
new EntityId(settings.ProviderEndPoint), options.SPOptions)
{
MetadataLocation = settings.MetadataLocation,
LoadMetadata = settings.LoadMetadata,
});
});
}
2 つの異なるクライアントを構成に追加すると、1 つは問題なく動作しますが、もう 1 つはunhanded exception has occurred: No Idp with entity id http://xxxxx not found
エラーで返されます。
SPOptions.EntityId を設定すると、これは私のエンドポイント (だと思います) または顧客であるはずです。
また、スキームが参照する AddSaml2 を作成するとき、どのドキュメントでもこれを見ることができませんか?
ありがとう