У меня есть приложение 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);
});
Не уверен, что мне здесь не хватает. Ценю любую помощь.