如何强制Saml2AuthnRespone签名



如果我的Identity Provider向我发送了一个在<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">元素中具有无效签名的Saml2AuthnResponse,则Unbind()方法将抛出Invalid Signature异常。这很好,也是意料之中的事。

然而,如果<Signature>元素完全丢失(Saml2AuthnResponse是无符号的(,我就不会有任何异常。这是意料之中的事吗?这是安全风险吗?

断言经过加密,通信通过HTTPS进行。但我仍然有点担心Saml2AuthnResponse的签名是可选的。我可以强制/要求签名吗?

如果您已经从应用程序上传了元数据,那么它应该具有WantAssertionsSigned="1〃;指定。但是,一般情况下,您需要确保在"身份提供程序"配置中选择了"签名断言"、"签名响应"或"同时签名"。

在应用程序端,如果能够指定需要对断言进行签名,则SAML库必须进行检查以确保存在签名。

例如,ITfoxtec似乎允许在元数据中使用WantAssertionsSigned,但(乍一看(在收到断言时不会检查它。

如果真的,那很可能是个错误

始终需要SAML 2.0 Authn响应签名。

如果使用POST绑定XML签名发送SAML 2.0 Authn响应,则确保响应的安全。

请参阅XML签名验证:https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/blob/master/src/ITfoxtec.Identity.Saml2/Request/Saml2Request.cs#L228

另一方面,如果使用重定向绑定发送SAML 2.0 Authn响应,则签名将放置在查询字符串(URL(中。

相关内容

  • 没有找到相关文章

最新更新