Не удается выйти из внешнего поставщика удостоверений в IdentityServer

У меня есть приложение MVC, которое использует IdentityServer4. В IdentityServer4 я зарегистрировал SAML2 (SustainSys.SAML2) в качестве внешнего поставщика входа в систему. и Логин работает нормально.

Когда пользователь выходит из приложения MVC, он выходит из приложения MVC, но выход из системы для внешнего поставщика входа не запускается. Я проверил метод выхода из системы моего сервера идентификации, который выполняет перенаправление на схему внешней аутентификации. но перенаправления не происходит.

  this triggers a redirect to the external provider for sign-out
    return SignOut(new AuthenticationProperties { RedirectUri = url }, 
    vm.ExternalAuthenticationScheme);

А вот код, в котором я зарегистрировал внешнего поставщика удостоверений для SAML. Я использовал пакет Nuget от SustainSys SAML.

.AddSaml2(options =>
{
    options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
    options.SignOutScheme = IdentityServerConstants.SignoutScheme;
    options.SPOptions = CreateSPOptions();
    var idp = new IdentityProvider(new EntityId(_strIDPEntityId), options.SPOptions)
    {
        AllowUnsolicitedAuthnResponse = true,
        Binding = Saml2BindingType.HttpRedirect,
        SingleSignOnServiceUrl = new Uri(_strSingleSignOnURL),
        SingleLogoutServiceBinding = Saml2BindingType.HttpRedirect,
        SingleLogoutServiceUrl = new Uri("https://devit-dev.onelogin.com/trust/saml2/http-redirect/slo/1111")

    };
    idp.SigningKeys.AddConfiguredKey(
    new X509Certificate2(
        AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "../../../App_Data/OneLogin.cer"));
    options.IdentityProviders.Add(idp);
});   

Не уверен, что мне здесь не хватает. Ценю любую помощь.


person Himal Patel    schedule 12.02.2018    source источник


Ответы (1)


Проверьте свои журналы, он должен показать вам процесс принятия решения, который завершается локальным выходом из системы. Для работы федеративного выхода из системы необходимо МНОГО вещей. Вам нужен сервисный сертификат и особые претензии. Последнее будет упрощено в будущих версиях совместимости с Sustainsys.Saml2 / IdSrv4.

person Anders Abel    schedule 13.02.2018
comment
Спасибо, да, в нем отсутствовали претензии, и из-за этого он не выходил из внешнего поставщика. Однако Saml2 ожидает подписанного ответа о выходе из системы, а я получаю неподписанный ответ о выходе из системы, и он не выполняется. какой-либо переключатель, чтобы выключить его или проверить ответ каким-либо другим способом? - person Himal Patel; 14.02.2018