我有一个使用 IdentityServer4 的 MVC 应用程序。在 IdentityServer4 中,我将 SAML2 (SustainSys.SAML2) 注册为外部登录提供程序。和登录工作正常。
当用户注销 MVC 应用程序时,它会从 MVC 应用程序注销,但不会触发外部登录提供程序的注销。我检查了我的身份服务器的 LogOut 方法,该方法重定向到外部身份验证方案。但重定向不会发生。
this triggers a redirect to the external provider for sign-out
return SignOut(new AuthenticationProperties { RedirectUri = url },
vm.ExternalAuthenticationScheme);
这是我为 SAML 注册外部身份提供程序的代码。我使用了 SustainSys SAML 的 Nuget 包。
.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);
});
不知道我在这里错过了什么。感谢任何帮助。