2015-04-05 77 views
3

我正在为现有的IDP开发OpenID连接会话管理。在规范中提到我们应该从RP发送会话状态到OP。我需要知道会话状态的真正含义。另外我需要知道我应该以盐的价格购买什么?OpenID Connect会话管理中的会话状态

回答

1

此会话状态值是OP在原始登录时在身份验证响应中向RP提供的值。该值对于RP是不透明的,只需要跟踪它并将其从调用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也会重新计算相同的会话状态值。合适的会话状态值的生成在4.2节中指定,并且基于客户端ID,原始URL和OP浏览器状态的加密哈希。对于起始URL,服务器可以使用RFC 6454 [RFC6454]第4节中规定的算法使用认证响应的起始URL。

+1

'此会话状态值由OP提供'它应该是一个cookie,只要我能理解。否则,我们如何分解它并从中得到一个盐值。我需要知道这里盐的价值是多少。它只是一个随机值? – Hasanthi 2015-04-09 04:25:32

+0

如果OP支持会话管理,则会将'session_state'值作为身份验证响应中的查询参数返回。 – 2015-04-09 07:56:50

+0

ok汉斯,但会是什么session_state值?它是否包含像OP这样的数据记录或不是 – Hasanthi 2015-04-09 08:03:31