首页 > 解决方案 > 是否需要在 IdP 端进行配置才能使 SigningCertificateFile.pfx 工作?

问题描述

我正在签署我的 SAML 请求,如下所示:

private static void ConfigureSigningCert(this Saml2Configuration saml2Configuration, IAppSettings appSettings, IHostingEnvironment environment)
{
    var certPath = Path.Combine(environment.ContentRootPath, appSettings.Saml2.SigningCertificateFile);
    var cert = CertificateUtil.Load(certPath, appSettings.Saml2.SigningCertificatePassword);
    saml2Configuration.SigningCertificate = cert;
    saml2Configuration.SignAuthnRequest = true;
}

它几乎是如何解释它应该在官方文档中完成的。

但是,我的 SAML 身份验证在有或没有这个签名位的情况下都有效/通过。我不确定是否需要在 IdP 端进行任何额外配置才能正确实施?一旦我在配置中启用了签名(直到我在 IdP 中进行了一些额外的设置),我有点期望它会停止工作,所以我想这就是让我感到困惑的地方。

也许它只是某种往返类型的安全检查,并且不需要 IdP 端的干预/额外设置来使请求签名工作?另一种选择是我错误地配置了它,这就是它起作用的原因。

一个额外的问题 - 我如何确保/验证签名有效?

更新:我正在配置 RP。IdP 是一个Mini Orange WordPress 插件,我可以访问它来配置诸如发行者、回调 url、响应签名/加密等详细信息。但我不允许对 WP 实例或插入。客户确实希望我们在被问及请求签名时实现请求签名(作为额外的安全层),甚至加倍努力要求 Mini Orange 在他们应该做的插件中支持它(我们得到了插件的升级前几天),但我不确定我是否误解了协议,或者即使插件升级,他们也不真正支持请求登录 Mini Orange。

谢谢!

标签: .networdpressasp.net-core-webapisaml-2.0itfoxtec-identity-saml2

解决方案


我希望您已经配置了 RP(依赖方)来签署 Authn 请求,这在 SAML 2.0 标准中是可选的,并且只有 som IdP(身份提供者)需要。

如果您的 IdP 不需要签名 Authn 请求,我认为您应该省略它。

如果 IdP 由 ITfoxtec Identity SAML 2.0 包实施。可以将 IdP 配置为要求具有相同配置的签名 Authn 请求saml2Configuration.SignAuthnRequest = true。因此,您可以使用使用 ITfoxtec Identity SAML 2.0 实施的测试 IdP 来测试签名。

样品:

ASP.NET 核心 RP 示例:https ://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test/TestWebAppCore

ASP.NET 核心 IdP 示例: https ://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/tree/master/test/TestIdPCore

更新:看起来Mini Orange WordPress 插件IdP 可以配置一个公共 RP 密钥,以便在字段中进行 Authn 请求签名验证,X.509 Certificate (optional): (For Signed Request)请参见屏幕截图


推荐阅读