在 saml2 请求中缺少参数 SigAlg 和 Signature

In the saml2 request missing parameters SigAlg and Signature

美好的一天,

我们使用了 ITfoxtec 库版本 1.2.2。此解决方案工作正常。

我们现在正在集成 4.0.5 版库。我们需要使用 SHA-256 编码。我们使用了 Nugets 的 4.0.5 库。根据实施例https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2.

我们更改了 AccountController,添加了 App_Start \ IdentityConfig.cs 并在 Global.asax 中添加了 IdentityConfig.RegisterIdentity() 调用。

问题: 提供商请求中缺少 SigAlg 和 Signature 参数。

1.2.2 version library ITfoxtec, SAML tracker

4.0.5 version library ITfoxtec, SAML tracker

我们设置参数:

参数"Saml2:SigningCertificateFingerPrint"为自定义参数,我们从本地存储加载证书:

Saml2Configuration.SigningCertificate = CertificateUtil.Load (StoreName.My, StoreLocation.LocalMachine, X509FindType.FindByThumbprint, ConfigurationManager.AppSettings.Get ("Saml2: SigningCertificateFingerPrint"));

问题: 为什么请求中缺少 SigAlg 和 Signature 参数?配置不好?实施不当?

请帮忙 嗯谢谢你 DM

SAML 2.0 默认不要求对 Authn 请求进行签名(需要对注销请求进行签名)。因此,ITfoxtec Identity Saml2 包在请求中默认不包含 SigAlg 和 Signature 参数。

要签署 Authn 请求,请在代码或配置中设置 Saml2Configuration.SignAuthnRequest = true "Saml2:SignAuthnRequest" = "true"

已编辑 - 从元数据中读取

可以从 IDP 元数据 WantAuthnRequestsSigned 中设置 Saml2Configuration.SignAuthnRequest

.NET 框架示例代码:

if(entityDescriptor.IdPSsoDescriptor.WantAuthnRequestsSigned.HasValue) {
    Saml2Configuration.SignAuthnRequest = entityDescriptor.IdPSsoDescriptor.WantAuthnRequestsSigned.Value; 
}

.NET 框架示例 IdentityConfig.cs

.NET 核心示例 Startup.cs