检查会话Iframe OpenIDConnect

Lut*_*ndo 5 openid-connect identityserver3 identityserver4

我有一种情况,我有一个RP,没有明确要求你登录它.但是我看了一下Open ID Connect的会话管理规范,更具体地说是这里check_session_iframe起草的端点规范

我想知道以下情况是否可行.我有一个RP,它使用客户端x将登录联合到我的OP上.即使您没有会话ID(或sid),我是否可以查看客户端(x)是否已登录到OP .换句话说,应用程序可以查看您是否与OP进行会话,这样您就不会被迫提示对OP进行登录.

出于用户体验原因,我想要满足的基本流程是

1)去RP.

2)检查RP是否与OP进行会话.

3) - 如果有会话则自动登录(不启动流程)

  • 如果没有会话则不做任何事情(即不需要提示登录).

这样的事情可能吗?我确实理解,如果您之前已经登录(通过使用给定的session_stateclient_id),可以获取会话信息

我查看了IdentityServer3.Samples,更具体地说是客户端示例,它显示了如何在此处检查会话状态,但是这个示例似乎显示了在登录后如何检查会话状态.我想知道它是否可以可以在RP明确请求登录之前检查客户端当前是否确实有会话.

Bro*_*len 3

是的,prompt=none在对 OP 的授权请求中使用,并在 iframe 中执行。oidc-client-js 库现在支持querySessionStatus最近的 API: https: //brockallen.com/2016/08/12/check-session-support-in-oidc-client-js/