SAML 元数据与 SAML 请求和响应的区别

Posted

技术标签:

【中文标题】SAML 元数据与 SAML 请求和响应的区别【英文标题】:difference in SAML metadata vs SAML request and response 【发布时间】:2022-01-22 06:44:11 【问题描述】:

我总是对 SSO 中 SP 和 IDP 之间的 SAML 元数据和 SAML 请求/响应感到困惑。 对我来说,它看起来一样,因为两者都是 xml 文件。 谁能告诉我它们之间的区别以及如何为 SP 或 IDP 生成元数据?

谢谢

【问题讨论】:

【参考方案1】:

SAML 元数据是有关 SAML 通信中各方的信息。 SP 和 IdP 通常在首次设置集成时交换这些。它们包含有关如何相互通信的信息。 IdP 将发送一个带有端点、协议和密钥的消息,而 SP 也会这样做。

所以元数据是在任何用户认证之前交换的。 当需要对用户进行身份验证时,SP 会查看 IdP 元数据以了解将用户发送到 IdP 的位置和方式。

使用 SAML 身份验证请求将每个用户发送到 IdP。已通过身份验证的身份验证结果在 SAML 响应中发送。

所以,总和。发送元数据以设置集成。每个用户发送一个 SAML 请求/响应以进行身份​​验证。

我有一篇关于元数据的更详细的帖子。 Metadata exchange and trust

【讨论】:

我在阅读您的博客时有点困惑。 “当 SP 与用户一起向 IdP 发送身份验证请求时。它通常对其进行签名。它使用其私钥这样做”-------> 据我所知,私钥仅用于加密消息...不解密......为了解密,我们在发送者端使用私钥。 如果使用公钥私钥对进行签名,如您的报价,发送者的私钥用于签署消息,而公钥用于接收者验证消息。如果密钥对用于加密,则公钥用于加密消息,私钥用于解密。

以上是关于SAML 元数据与 SAML 请求和响应的区别的主要内容,如果未能解决你的问题,请参考以下文章

SAML 响应:<ds:KeyInfo>

ADFS 拒绝 spring-saml 元数据

Spring SAML 2.0 - 导入 IDP 的本地元数据 - MetadataProviderException

无法生成 SAML 元数据文件

春季 SAML wso2

SAML2 元数据 - 多重签名证书