【发布时间】:2020-10-22 20:20:50
【问题描述】:
上下文
对于我需要使用私有 Azure API 的情况,我们称之为 MYTESTAPI。 MYTESTAPI 包含一些范围,因此它能够访问我们的 .net 核心 API。这很好用,因为我正在使用以下方式发出令牌请求:
api://{clientid}/mytestapi.scope
我得到了一个令牌,我可以使用令牌访问我们的 API。我有一个带有名为 angular-oauth-oidc-client 的外部库的 Angular 客户端。当我使用(不推荐的)隐式流程和静默更新时,这一直有效。
现在我已经设置了我的 Angular 应用程序,因此我正在通过 Azure AD 连接到我们的私有 API。但问题是,我也需要获取 UserInfo。这来自“https://graph.microsoft.com/oidc/userinfo”。所以我试图做的是添加:openid, profile 到范围,这样我就可以使用图形 API 来获取基本的配置文件信息。
scopes: 'openid profile api://{clientid}/mytestapi.scope'
当我解码生成的令牌时,我没有看到 openid 或配置文件添加到“scp”部分。并且 userinfo 请求返回 401:未授权。看来我需要在 Azure 门户中配置一些东西才能使它工作。
我可能的解决方案是配置 azure API,让“mytestapi.scope”授予访问部分图形 API 的权限。
随时提出任何需要的上下文或问题。
问题:
- 是否可以将图形权限授予私有 API?如果可以,是否有更好的解决方案?
【问题讨论】:
标签: azure-active-directory microsoft-graph-api openid-connect azure-api-apps