如何在 access_token 中添加角色声明,目前它在 id_token 中?
How to add roles claim in access_token , currently it is coming in id_token?
我正在使用 PKCE 跟踪身份验证代码流,我的身份提供者是 Azure Active Directory。
我从 App Registrations 创建了一个 App ,“client-app”。在清单中,我添加了如下所示的 appRoles。
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"displayName": "StoreGroupManager",
"id": "47fbb575-859a-4941-89c9-0f7a6c30beac",
"isEnabled": true,
"description": "Consumer apps have access to the consumer data.",
"value": "StoreGroupManager"
}
]
我正在将这个角色 StoreGroupManager 分配给用户。现在,当我使用 PKCE 遵循授权代码流程并获得 id_token 、刷新令牌和 access_token 时。我可以看到 id_token 有声明 roles 但 access_token 没有。
我需要在 access_token 中让角色声明声明。这可能吗?
以下是解码后的id_token.
如果访问令牌所针对的 API 的应用注册定义了这些角色并将它们分配给用户,则角色将在访问令牌中。
因此,如果您为客户端和 API 使用相同的应用程序注册,它们应该在那里。
但是,如果您为客户端和 API 分别注册了应用程序,则需要在这两个应用程序中定义角色,并在两个应用程序中都为该角色分配用户。
我正在使用 PKCE 跟踪身份验证代码流,我的身份提供者是 Azure Active Directory。 我从 App Registrations 创建了一个 App ,“client-app”。在清单中,我添加了如下所示的 appRoles。
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"displayName": "StoreGroupManager",
"id": "47fbb575-859a-4941-89c9-0f7a6c30beac",
"isEnabled": true,
"description": "Consumer apps have access to the consumer data.",
"value": "StoreGroupManager"
}
]
我正在将这个角色 StoreGroupManager 分配给用户。现在,当我使用 PKCE 遵循授权代码流程并获得 id_token 、刷新令牌和 access_token 时。我可以看到 id_token 有声明 roles 但 access_token 没有。 我需要在 access_token 中让角色声明声明。这可能吗? 以下是解码后的id_token.
如果访问令牌所针对的 API 的应用注册定义了这些角色并将它们分配给用户,则角色将在访问令牌中。 因此,如果您为客户端和 API 使用相同的应用程序注册,它们应该在那里。 但是,如果您为客户端和 API 分别注册了应用程序,则需要在这两个应用程序中定义角色,并在两个应用程序中都为该角色分配用户。