OpenID Connect会话管理中的会话状态

时间:2015-04-05 08:03:22

标签: openid-connect

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

1 个答案:

答案 0 :(得分:2)

此会话状态值是OP在原始登录时在身份验证响应中向RP提供的值。该值对RP是不透明的,它只需要跟踪它并将其从RP iframe到OP的postMessage调用发送回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
  会话状态。表示OP上最终用户登录状态的JSON字符串。它不能包含空格(“”)字符。该值对RP不透明。如果支持会话管理,则必须这样做。   会话状态值最初在服务器上计算。浏览器客户端中的OP iframe也会重新计算相同的会话状态值。适当的会话状态值的生成在4.2节中指定,并基于客户端ID,源URL和OP浏览器状态的盐渍加密哈希。对于原始URL,服务器可以使用身份验证响应的原始URL,遵循RFC 6454 [RFC6454]第4节中指定的算法。