OpenIDConnect 会话管理从 RP 传递 session_state 到 OP

OpenIDConnect Session Management passing session_state from RP to OP

我正在实施 OIDC 会话管理。根据规范'http://openid.net/specs/openid-connect-session-1_0.html#CreatingUpdatingSessions',我需要将'client_id + " " + session_state' 从RP iFrame 发送到OP iFrame。我应该在这里传递一个 json 作为 session_id,它表示 OP 的登录状态。在我的 OP 中,我维护一个 cookie 来存储登录状态。但是我无法在 RP iFrame 中访问它,因为不可能通过不同的域访问 cookie。那么如何将 session_state 从 RP 传递给 OP?我可以将 cookie 作为 post 消息从 OP 传递到 RP 吗?请就此给我建议。 谢谢

RP 在登录时收到来自 OP 的 session_state 值。对于 RP,这是一个不透明的值(可能是也可能不是 JSON 对象),只需要在 RP iframe 中传回给 OP。

RP 通过使用 postMessage 将其从 RP iframe 发送到 OP iframe,将 session_state 传达给 OP。

请注意,RP 同时创建了 RP iframe 和 OP iframe。只是 OP iframe 中的内容由 OP 提供,因此可能 access/use/process cookie 值以特定于 OP 且独立于 RP 和 RP iframe 的方式。