如何验证 ADFS 加密的 SAML 响应(断言)

How to verify ADFS encrypted SAML Response (Assertion)

我能够通过 HTTP-Redirect 绑定登录和接收 SAMLResponse,而且我能够使用私钥解密并能够检索声明。

我的问题仍然是我们是否需要验证 saml 响应 (ADFS)?如果它如何做到这一点

我需要使用 IP(身份提供商)public 密钥吗?它会在 IP(元数据)中可用吗?

我在以下请求参数中有 SAML 响应

SAML 响应 = base64(deflate(data)) 签名 = 哈希值 sigAlg = sha256

如何验证?

是的,您还需要验证 SAML 响应的数字签名。这是因为加密是使用您的 public 完成的,任何有权访问您的元数据的人都可以使用它,但不能保证它是由您的 IdP 生成的。

要验证您的 IdP 是否是生成 SAMLResponse 的人,您可以使用 IdP public 密钥验证 SAMLResponse 的数字签名。这通常在 IdP 元数据中可用。