【发布时间】:2020-05-06 10:39:31
【问题描述】:
我在尝试将 idp 添加到身份验证服务时遇到问题。
我的客户正在使用 forgerock 登录,并希望我们将 SSO 与 SAML 一起使用。
我在一个旧项目中使用 Jitbit 的简单 SAML 2.0 组件,用于 ASP.NET https://github.com/jitbit/AspNetSaml/
但我正在使用 identityserver4 在 .net 核心中重新设计我的应用程序,并希望利用带有额外花里胡哨的 Sustainsys 实现。
SSO 登录的类型是带有 ACS 回调的简单重定向。
我掌握的信息: SamlEndpoint - 要重定向到的 URL EntityId - 我的实体 ID AcsUrl - 要返回的 URL 证书(字符串)(取自元数据,不公开)
我已尝试执行以下操作:
services.AddAuthentication()
.AddSaml2(Saml2Defaults.Scheme,
options =>
{
options.SPOptions.EntityId = new EntityId("{MyEntityId}");
options.SPOptions.ReturnUrl = new Uri($"ACS URL");
options.SPOptions.AuthenticateRequestSigningBehavior = Sustainsys.Saml2.Configuration.SigningBehavior.Never;
//options.SPOptions.ServiceCertificates.Add(new ServiceCertificate {
// Use = CertificateUse.Signing,
// Certificate = new X509Certificate2(bytes),
// Status = CertificateStatus.Current
//});
var idp =
new IdentityProvider(new EntityId("IDP ID"), options.SPOptions)
{
Binding = Sustainsys.Saml2.WebSso.Saml2BindingType.HttpRedirect,
LoadMetadata = false,
AllowUnsolicitedAuthnResponse = true,
SingleSignOnServiceUrl = new Uri("Redirect URL")
};
options.IdentityProviders.Add(idp);
});
我得到的例外是: System.Configuration.ConfigurationErrorsException: '缺少 Idp 上的签名证书配置
但是我看不到如何添加我的证书?因为它没有私钥/公钥:
来自元数据
<ds:X509Data>
<ds:X509Certificate>
MIIDYTCCAk..........7tOxUus=
</ds:X509Certificate>
</ds:X509Data>
寻找正确的方向,因为我无法解决问题。
如果我尝试添加证书(上面已注释掉),那么我没有提供任何私钥异常。
为什么?
【问题讨论】:
标签: c# .net-core identityserver4 sustainsys-saml2