SSO:SP 是否应该在每个请求中验证与 IDP 的会话

Sau*_*wal 5 authentication saml single-sign-on okta

根据 SP 发起的 SSO 流程,用户尝试访问 SP。由于用户未经身份验证,因此他会被重定向到 IDP,在其中输入凭据、成功登录后,IDP 在用户的浏览器中设置 cookie(在 IDP 的域下),并使用 SAML 响应将用户重定向回 SP。一旦 SP 验证了 SAML 响应,它就会创建自己的 cookie/令牌,并在 sp 域下的用户浏览器中设置。

后续请求中理想情况下应该发生什么:

  1. SP是否应该仅依靠自己的cookie来获取用户信息
  2. SP 是否应该在每个请求中使用 IDP 验证用户会话。

如果建议选项 1,从安全角度来看是否可以,因为登录后 SP 和 IDP 之间不会进行进一步请求的通信。

如果建议使用选项 2,则在每个请求中调用 IDP 都会产生开销,这可能会影响 SP 的性能。

请在这里提出理想的流程。

小智 3

如果建议选项 1,从安全角度来看是否可以,因为登录后 SP 和 IDP 之间不会进行进一步请求的通信。

[ME] 是的,验证 cookie 应该是 SP 的责任(可能使用其中的所有详细信息进行加密,或者通过指向持久存储区域的 ID 进行引用)。IDP 的工作是提供已经完成的身份。

如果建议使用选项 2,则在每个请求中调用 IDP 都会产生开销,这可能会影响 SP 的性能。

[ME] 是的,这对于使用 IDP 验证用户会话来说太过分了。它的工作方式是 - 如果 SP 会话已失效或正在创建,则转到 IDP,如果 IDP cookies/会话有效,则给出 SAML 响应/断言,或者如果无效则进行身份验证,最后 SP 创建一个新会话。

HTH。