【问题标题】:AWS SSO / Signature Verification ProblemsAWS SSO / 签名验证问题
【发布时间】:2022-11-09 04:05:17
【问题描述】:

我正在使用 ITfoxtec.Identity.Saml2 4.8.0、.net 6 并尝试将 AWS SSO 用作 mvc 应用程序的 iDP。我正在使用项目主页上的示例代码。

在我成功登录 iDP 后,AWS 通过浏览器重定向发回给我的 saml 响应的签名验证存在问题。

在逐步执行代码时,有两个阶段的签名验证,第一个是在整个响应 xml 的签名节点上,第二个是在响应 xml 内的断言节点的签名上。在我的例子中,签名验证在整个文档上是成功的,但在断言节点上失败(返回 false here)。

是否有其他人遇到此问题或对故障排除的后续步骤有任何建议?我已经阅读了该库的大部分内容,并看到加载 xml 时保留了空格,并且 aws 使用的规范化与该库正在应用的内容相匹配。来自 AWS 的有效负载在两个签名块中都有公共证书,并且它们在两个地方都是相同的(并且与我的 PEM 文件中的内容相匹配)

【问题讨论】:

    标签: itfoxtec-identity-saml2


    【解决方案1】:

    我不知道问题是什么,我害怕。我一直无法调试这个问题。这里另一个有同样的问题ITfoxtec SAML 2.0: InvalidSignatureException When Configuring AWS SSO。

    【讨论】:

    • 我不是 saml 专家 - 但在我看来,如果整个 saml 响应的 sig 得到验证,那么也不需要验证断言(因为它们的内容将与 xml 的其余部分一起被散列在父级签署)。这是一个安全的假设吗?对添加“OnlyValidateRootSamlResponseSignature”布尔值的 PR 有任何想法,该布尔值可以为 AWS SSO 登录流程设置为 true?
    • 实际上,我认为 Craig A 的建议比我的更好,我现在将使用它(在叉子中)。
    • 最好同时验证响应和断言签名。调试问题:1) AWS 使用 SHA-1 还是 SHA-256。 2) AWS 元数据中是否有多个签名证书?
    • SHA-256,签名证书包含在文档和断言的签名块中,并且在两种情况下都是相同的。
    • 1) AWS 使用 SHA-1 还是 SHA-256。 SHA256,但您可以选择使用 SHA1,两者的签名验证都失败。 2) AWS 元数据中是否有多个签名证书?元数据中只有一个证书,并且任何时候只有一个活动证书。我们如何手动指定证书而不是通过元数据文件指定证书?我想看看它是否有任何区别,我们如何验证该库是否能够从证书中提取 pub 密钥?该库是否考虑到由于 base 64 编码而填充了 aws 证书?
    猜你喜欢
    • 2021-04-16
    • 2022-08-03
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多