我正在尝试使用 IdentityServer4 和 ITfoxtec.Identity.Saml2 库实现 SAML2.0 身份验证。
第一步是通过 LDAP 连接登录,这部分运行良好,我得到了用户声明。
下一步是使用 AD FS 集成登录
我主要遵循本教程
https://developer.okta.com/blog/2020/10/23/how-to-authenticate-with-saml-in-aspnet-core-and-csharp
Saml 配置代码如下
services.Configure<Saml2Configuration>(saml2Configuration =>
{
saml2Configuration.AllowedAudienceUris.Add(saml2Configuration.Issuer);
var entityDescriptor = new EntityDescriptor();
entityDescriptor.ReadIdPSsoDescriptorFromUrl(new Uri(Configuration["Saml2:IdPMetadata"]));
if (entityDescriptor.IdPSsoDescriptor != null)
{
saml2Configuration.SingleSignOnDestination = entityDescriptor.IdPSsoDescriptor.SingleSignOnServices.First().Location;
saml2Configuration.SignatureValidationCertificates.AddRange(entityDescriptor.IdPSsoDescriptor.SigningCertificates);
}
else
{
throw new Exception("IdPSsoDescriptor not loaded from metadata.");
}
});
services.AddSaml2();
在服务器重定向之后和显示 Idp 登录页面之前,我有一个错误“证书在应用程序端没有正确配置”
这是我第一次处理 SAML 协议。任何帮助表示赞赏。
编辑:错误在 AD FS 端