【问题标题】:session state in OpenID Connect Session ManagementOpenID Connect 会话管理中的会话状态
【发布时间】:2015-06-09 21:49:30
【问题描述】:

我正在为现有 IDP 开发 OpenID 连接会话管理。在规范中提到我们应该将会话状态从 RP 发送到 OP。我需要知道这里会话状态的真正含义。我还需要知道我应该将什么作为盐值?

【问题讨论】:

    标签: openid-connect


    【解决方案1】:

    此会话状态值是 OP 在原始登录时在身份验证响应中提供给 RP 的内容。该值对 RP 是不透明的,它只需要跟踪它并在其 postMessage 从 RP iframe 到 OP 的调用中将其发送回 OP,以便 OP 可以关联它。

    正如规范在http://openid.net/specs/openid-connect-session-1_0.html#CreatingUpdatingSessions 所说:

    当 OP 支持会话管理时,它还必须返回会话状态作为身份验证响应中的附加 session_state 参数。 OpenID Connect 身份验证响应在 OpenID Connect Core 1.0 的第 3.1.2.5 节中指定。

    这个参数是:

    session_state
    会话状态。 JSON 字符串,表示最终用户在 OP 的登录状态。它不得包含空格 (" ") 字符。该值对 RP 是不透明的。如果支持会话管理,这是必需的。 会话状态值最初是在服务器上计算的。浏览器客户端中的 OP iframe 也会重新计算相同的 Session State 值。合适的会话状态值的生成在第 4.2 节中指定,并且基于客户端 ID、原始 URL 和 OP 浏览器状态的加盐密码散列。对于原始 URL,服务器可以使用身份验证响应的原始 URL,遵循 RFC 6454 [RFC6454] 第 4 节中指定的算法。

    【讨论】:

    • '这个会话状态值是由 OP 提供的'据我所知,它应该是一个 cookie。否则我们如何拆分它并从中获取盐值。我需要知道这里的盐值是多少。它只是一个随机值吗?
    • 如果 OP 支持会话管理,则 session_state 值作为 Authentication Response 中的查询参数返回。
    • ok Hans,但是 session_state 的值是多少?它是否包含像 OP 记录或不记录的数据
    • 类似的东西,但无论如何它并不意味着由 RP 解释;它对 RP 来说是“不透明的”,只需将其传递回 OP 以进行关联即可
    • 谁能给 OP 一个定义?我想我把它和 IDF 的定义搞混了。
    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 2011-06-17
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多