我在 entra id 中有一个后端应用程序,它具有不同的角色 - 例如 Role1 和 Role2。我还有一个前端应用程序,它具有后端 API 权限。
当我在前端使用身份验证时,登录用户的角色不会从后端应用程序下载。这对我来说是一个问题,因为我不想在两个地方拥有角色,而且我不能,因为我在后端使用 id 角色。
export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
const protectedResourceMap = new Map<string, Array<string>>();
protectedResourceMap.set(environment.graphUrl + '/me/memberOf', ['user.read']);
protectedResourceMap.set('user.read', [environment.scope]);
return {
interactionType: InteractionType.Redirect,
protectedResourceMap,
};
}
这有可能吗?谢谢你
我创建了一个 Microsoft Entra 应用程序 (
API
) 并公开了添加授权客户端应用程序的 API:
并创建了应用程序角色:
在前端应用程序(
APP
)中,为API
应用程序授予API权限:
要获取令牌中的角色,请确保在
API
企业应用程序中将角色分配给用户:
对于样本,我通过邮递员生成了访问令牌:
https://login.microsoftonline.com/TenantID/oauth2/v2.0/token
client_id:APPClientID
grant_type:authorization_code
scope:api://APIClientID/.default
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret
解码后,存在角色和范围: