将多客户端添加到配置中的首选方式是什么?我们有一些客户希望继续使用 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 个不同的客户端时,一个可以正常工作,但另一个返回一个unhanded exception has occurred: No Idp with entity id http://xxxxx not found
错误
当您设置 SPOptions.EntityId 时,我仍然有点模糊,这应该是我的端点(我假设它是)还是客户。
此外,在创建 AddSaml2 时,该方案指的是什么,我在任何文档中都看不到这一点?
谢谢