为什么在使用 SSO (SAMLv2) 时需要 Keystore

Why Keystore is needed when using SSO (SAMLv2)

我使用 Okta 作为我的 IDP,我有 2 个用例:

  1. IDP 发起的 SSO
  2. 当用户想要使用他的 okta 凭据登录到我的系统时,我将他重定向到 okta,然后 okta 将响应发送到我的应用程序中的回调。

我想知道为什么我需要密钥库?它是如何使用的? 从 SP(我的应用程序)到 IDP 的消息将使用此密钥库密钥对加密?如果是这样,这是否意味着我需要以某种方式与 okta 共享我的密钥? 我找不到任何解释。

请为此提供任何帮助! 谢谢!

从 SAML Identity Provider ("IdP") 发送的 SAML 响应,如 Okta 将使用 Okta 的私钥进行签名,这些消息将由 SAML 服务提供商 ("SP") 像您的应用程序一样使用相应的 public 密钥 进行验证。

在您的情况下,密钥库应仅用于 Okta 的 public 密钥(或 public 密钥,如果您与多个 Okta 组织联合)。您不需要与 Okta 共享任何密钥,但您需要以某种方式从 Okta 获取 public 密钥。从 Okta 获取 public 密钥的最佳方法是通过 IdP 元数据 URL,下一个最佳方法是让 Okta 管理员将 Okta 的 X.509 编码的 public 密钥粘贴到你的应用不知何故。