Какой предпочтительный способ добавления нескольких клиентов в конфигурацию. У нас есть несколько клиентов, которым мы хотим использовать 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, на что ссылается схема, я не вижу этого ни в одной документации?
Спасибо