使用Microsoft Graph访问Azure企业应用程序

时间:2020-04-08 22:10:33

标签: azure-active-directory microsoft-graph-api spfx

我正在尝试获取此页面上列出的应用程序的列表:https://myapplications.microsoft.com/(必须通过AAD租户进行身份验证才能查看这些应用程序)。

我正在使用SPFx,并认为可以使用以下microsoft graph端点来做到这一点; https://docs.microsoft.com/en-us/graph/api/application-list

该端点似乎只返回自定义应用程序注册,而不返回其他应用程序,例如Microsoft Teams或Yammer。

我看到“所有应用程序”页面使用以下端点获取其列表; https://myapplications.microsoft.com/api/me/getExpandedAssignedWorkspaces-但不喜欢我的AAD令牌(401)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

通过使用浏览器的开发人员工具并跟踪所有请求,我发现它实际上使用了ID令牌。

enter image description here

然后我可以使用id_token调用API:

enter image description here

https://myapplications.microsoft.com/api/me/getExpandedAssignedWorkspaces不是已发布的API,客户端ID为2793995e-0a7d-40d7-bd35-6968ba142197的应用不是公共应用。因此,您可以使用OpenID Connect来获取ID令牌。

您需要生成如下所示的URL:

https://login.microsoftonline.com/{your_tenant_id}/oauth2/authorize?response_type=id_token&client_id=2793995e-0a7d-40d7-bd35-6968ba142197&redirect_uri=https%3A%2F%2Fmyapplications.microsoft.com&state={new_guid}&nonce={new_guid}

然后,您将可以使用开发人员工具查看id令牌。