为何Microsoft授权同意页面不展示自定义API scope的配置显示名称
问题原因及说明
- 同意页面未展示自定义scope显示名是微软身份平台的默认交互逻辑:你配置的
api://43f91f57-0c80-40a1-bdbb-79c2f2100ef3/access_as_user属于当前应用自身暴露的API scope(scope关联的客户端ID和MSAL配置的clientId完全一致),这类同应用的自定义权限会被同意页面合并到基础权限的通用描述中,不会单独展示你在Azure门户配置的自定义显示名。 handleRedirectPromise()返回的scope列表符合设计预期:OIDC标准scope(openid、profile、offline_access)属于默认隐含授予的权限,MSAL不会在登录响应的scopes字段中显式返回这类标准scope,仅会返回额外请求的非标准自定义scope,所以你只看到自定义API scope属于正常现象,不代表没有获取到基础的身份权限。- 你后续可以通过
acquireTokenSilent()正常获取自定义scope的token,就已经说明权限同意流程完全正常,不存在配置错误。
可选调整方案(非必须)
如果需要让自定义scope在同意页面单独展示,你可以将自定义API的所属注册为独立于当前客户端的应用,或者在Azure门户将该scope的同意级别调整为管理员同意,不过对于你的多租户机器人场景,当前的默认逻辑已经满足需求,无需额外调整。
内容的提问来源于stack exchange,提问作者Gabriel D
相关产品推荐
相关产品推荐

