gpt4 book ai didi

single-sign-on - 这个 SAML SSO 实现是否正确?

转载 作者:行者123 更新时间:2023-12-01 07:15:16 28 4
gpt4 key购买 nike

我有一个网站说 www.e1.com . www.e1.com 是服务提供商 .每当我单击其中的服务时,我都会被重定向到 身份提供商,比如 www.e2.com .在此之前,在服务提供商(www.e1.com)中,我会检查是否为用户设置了任何 cookie。第一次将没有 cookie,因此它将发送空的 SessionId 值。因此,我向 www.e2.com 发送了一个 SAML 请求,但没有 id(因为没有设置 cookie。Cookie 包含 Id)

现在在 www.e2.com 即身份提供者中,我将检查 www.e1.com 是否发送了任何 Id 值。如果它为空,我将创建一个 session ID 并将其存储在数据库中(在 www.e2.com 中)。然后我将浏览器重定向到我的身份验证页面,在那里将询问用户名和密码,并相应地对他进行身份验证。如果身份验证成功,我将使用包含 session ID 的 SAML 响应将浏览器重定向到服务提供商(www.e1.com)。

现在在服务提供者中,SessionId 值将存储在 Cookie 中,浏览器将被重定向到消费者服务页面(用户想要访问的服务页面) .

现在,如果同一用户想要访问来自同一服务提供商的其他服务
(在 session 中),浏览器显然会将 Cookie 中的 SessionId 与请求 SAML 一起发送。身份提供者将检查其数据库中的 SessionId 值,如果它在其数据库中,则它将直接访问服务给用户,而无需输入登录凭据,因为用户已通过 session 身份验证。

这是使用 SAML 实现单点登录的正确方法吗? 或者
如果这个方法有缺陷,你能解释一下这些缺陷吗?
提前致谢 :)

最佳答案

你的理解不太正确:)

这是流程:

  • 用户尝试访问 SP 上的 protected 资源。 SP 检查是否
    用户有一个本地(和经过身份验证的 session )。如果不是,它会生成一个
    SAML <AuthRequest>其中包括一个随机 ID。 SP 然后重定向
    使用此 AuthnRequest 将用户发送到 IDP。
  • IDP 将检查用户是否具有本地身份验证 session 。如果
    不会对用户进行身份验证 IDP 将发送 AuthResponseinReplyTo 返回 SP与发送的 id 匹配的属性
    其中的 SP 是 AuthnRequest
  • 然后 SP 将创建一个本地 session 。后续请求
    SP 不会涉及 IDP,除非 a) session 过期或 b) SP
    收到 SingleLogout来自 IDP 的消息
  • 关于single-sign-on - 这个 SAML SSO 实现是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821980/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com