Мое приложение - это мультитенантная система, реализованная в виде автономного углового приложения и ядра asp.net в бэкэнде.
Многопользовательский режим реализован с использованием поддоменов. Каждый клиент может или не может использовать Saml2 для аутентификации.
Для этого я использую SustainSys.saml
services.AddAuthentication()
.AddSaml2(options =>
{
options.Notifications.MetadataCreated = (ed, urls) =>
{
ed.EntityId = new EntityId($"https://{tenantid}.example.com/Saml2");
};
options.Notifications.AuthenticationRequestCreated = (ar, id, dict) =>
{
ar.Issuer = new EntityId($"https://{tenantid}.example.com/Saml2");
};
options.SPOptions.EntityId = new EntityId("https://example.com/");
Я ожидал, что https://example.com entityId будет заменен идентификатором, установленным в методе «AuthenticationRequestCreated», поэтому аудитории совпадают, но в конечном итоге он сравнивает https://{tenantid}.example.com/Saml2 с https://example.com,, поэтому аудитории не не соответствует.