在 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:IdPMetadata" = "/App_Data/metadata.xml"
"Saml2:Issuer" value = "http://xxx"
"Saml2:SignatureAlgorithm" = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
"Saml2:SingleSignOnDestination" = "https://yyy/oamfed/idp/samlv20"
"Saml2:SingleLogoutDestination" = "https://yyy/oamfed/idp/samlv20"
"Saml2:SigningCertificateFingerPrint" = "5d223463130bd1e290f1ae8dc064d1c48ab517c2"
"Saml2:CertificateValidationMode" = "None"
"Saml2:RevocationMode" = "NoCheck"
参数"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
美好的一天,
我们使用了 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:IdPMetadata" = "/App_Data/metadata.xml"
"Saml2:Issuer" value = "http://xxx"
"Saml2:SignatureAlgorithm" = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
"Saml2:SingleSignOnDestination" = "https://yyy/oamfed/idp/samlv20"
"Saml2:SingleLogoutDestination" = "https://yyy/oamfed/idp/samlv20"
"Saml2:SigningCertificateFingerPrint" = "5d223463130bd1e290f1ae8dc064d1c48ab517c2"
"Saml2:CertificateValidationMode" = "None"
"Saml2:RevocationMode" = "NoCheck"
参数"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