在OpenID Connect Back-channel logout中注销令牌中的sid声明是什么?

时间:2017-07-28 09:53:39

标签: openid-connect

我目前正在开展与OpenID Connect Back-channel logout相关的项目。我需要在注销令牌中包含sid作为声明,如specification中所述。

  

sid-   可选的。会话ID - 会话的字符串标识符。这表示RP上登录的最终用户的用户代理或设备的会话。不同的sid值用于标识OP上的不同会话。 sid值只需在特定发行者的上下文中是唯一的。其内容对RP不透明。其语法与OAuth 2.0客户端标识符相同。

从对sid的解释来看,我有一些困惑,它是否告诉RP上最终用户的session-id或者OP上RP的session-id。

提前致谢。

1 个答案:

答案 0 :(得分:2)

SID =特定设备/用户代理上的最终用户的会话的唯一标识符等。 假设我在游戏应用程序中从Android手机登录,游戏应用程序使用openID并使用Facebook或Google进行身份验证。游戏应用程序启动用户代理并连接到OpenID提供程序。这里进行身份验证,app获取ID令牌(包含SID)。游戏应用程序向OpenID提供商请求用户声明,然后在设备上创建会话,但也发送用户信息以在游戏应用服务器(此处为RP)上创建会话。

现在假设我在同一部手机或不同的手机上登录了另一个应用程序并做了完全相同的事情。我现在登录到两个不同的应用程序,它们有自己的会话,但我将在OP上进行两次会话。 OP将如何区分哪个会话被杀死。如果没有SID,它将终止所有会话并且SID就在那里,只有那个会话可以被杀死。

这是我能给出的最简单的解释。其他一切都是如何实现的。