nom*_*mad 5 oauth-2.0 azure-active-directory openid-connect
我正在使用资源所有者密码授予流程并请求 id 令牌(scope包括openid)。我将以下内容发送到端点:
client_id client_secret grant_type=password username password scope在响应中,我获得了访问令牌和 id 令牌。对于该值sub,如权利要求是在两个标记之间不同。为什么会这样?
更新
似乎用户ID实际上是一个oid声明。这在Azure AD ID 令牌参考 中进行了描述。
描述oid索赔的文字:
Microsoft 标识系统中对象的不可变标识符,在本例中为用户帐户。此 ID 跨应用程序唯一标识用户 - 登录同一用户的两个不同应用程序将在
oid声明中收到相同的值。Microsoft Graph 将返回此 ID 作为id给定用户帐户的属性。由于oid允许多个应用程序关联用户,因此profile需要范围才能接收此声明。请注意,如果单个用户存在于多个租户中,则该用户将在每个租户中包含不同的对象 ID - 它们被视为不同的帐户,即使用户使用相同的凭据登录每个帐户。
描述sub索赔的文字:
令牌声明信息的主体,例如应用程序的用户。该值是不可变的,不能重新分配或重用。主题是成对的标识符 - 它对于特定的应用程序 ID 是唯一的。因此,如果单个用户使用两个不同的客户端 ID 登录到两个不同的应用程序,这些应用程序将收到两个不同的主题声明值。根据您的架构和隐私要求,这可能是也可能不是。
但是,我仍然不清楚为什么subaccess 和 id 令牌之间的声明不同。
主题 ( sub) 声明对于用户和令牌所针对的服务(由受众 ( aud) 声明标识)来说是唯一的。
通常,ID Token 和 Access Token 受众会有所不同:ID Token 受众是用户登录的客户端应用程序,而 Access Token 受众是客户端应用程序将尝试访问的资源服务器(代表已签名的资源服务器)。 - 在用户中)。
| 归档时间: |
|
| 查看次数: |
2412 次 |
| 最近记录: |