能否用单个AzureAD应用适配React前端与AWS Lambda后端及角色配置咨询
问题2:在AD中添加自定义角色并在登录时获取
完全可以实现,scope用于请求API的权限范围,自定义角色属于RBAC(基于角色的访问控制),二者作用不同,需单独配置:
具体步骤
- 在Azure AD中添加自定义应用角色
- 进入前端(或后端)Azure AD应用注册页面,找到「应用角色」选项,点击「创建应用角色」。
- 分别创建
admin、manager、user三个角色,设置对应显示名称、值(如admin、manager、user)、描述,并选择「允许分配给用户/组」。
- 为用户分配角色
- 在Azure AD的「企业应用」中找到你的应用,进入「用户和组」选项,添加需分配角色的用户,并选择对应角色。
- 登录时获取角色信息
- 前端通过MSAL登录后,ID令牌(ID Token)的
roles声明会包含当前用户被分配的角色列表,可直接解析ID令牌获取该字段。 - 若需更详细的角色信息,也可在登录成功后调用Graph API的
/me/appRoleAssignments端点,获取用户的所有角色分配记录。
- 前端通过MSAL登录后,ID令牌(ID Token)的
注意事项
- 确保前端MSAL请求的
scope包含openid(必须,用于获取ID令牌),通常配置为["openid", "profile", "email"]即可。 - 不要依赖访问令牌中的
roles声明,访问令牌受众为API,ID令牌才是用户身份信息传递的载体。
内容的提问来源于stack exchange,提问作者NicoleZ
相关产品推荐
相关产品推荐

