我目前正在从事与OpenID Connect反向渠道注销相关的项目。我需要在specification中提到的注销令牌中包含sid作为声明。
sid-
可选的。会话ID-会话的字符串标识符。这代表RP上已登录的最终用户的用户代理或设备的会话。不同的sid值用于标识OP上的不同会话。 sid值仅在特定发行者的上下文中是唯一的。它的内容对于RP是不透明的。其语法与OAuth 2.0客户端标识符相同。
从对sid的解释中,我是否感到困惑,是因为它告诉了RP上最终用户的会话ID,还是说到了OP上RP的会话ID。
提前致谢。
最佳答案
SID =特定设备/用户代理等上的最终用户会话的唯一标识符。
假设我从游戏应用程序中的Android手机登录,并且游戏应用程序使用openID并通过Facebook或Google进行了身份验证。游戏应用程序启动用户代理并连接到OpenID提供程序。在这里进行身份验证,应用获取ID令牌(包含SID)。游戏应用向OpenID提供者请求用户声明,然后在设备上创建会话,但发送用户信息以也在游戏应用服务器(此处为RP)上创建会话。
现在,假设我在同一部手机或另一部手机上登录了另一个应用程序,并且做的完全相同。现在,我登录了具有各自会话的两个不同的应用程序,但我将在OP进行两个会话。 OP如何区分要杀死哪个会话。如果没有SID,它将杀死所有会话,而SID在那里,只能杀死该会话。
这是我能给出的最简单的解释。其他一切都是如何实现的。
关于openid-connect - OpenID Connect反向 channel 注销中的注销 token 中的sid claim 是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45370324/