获取401:查询Azure AD Graph API的组端点时的未经授权的响应

时间:2018-04-16 20:13:12

标签: .net-core azure-active-directory azure-ad-graph-api

我有一个.Net Core 2.0应用程序,在Azure中有一个应用程序注册。

我需要确定登录用户是否是特定Azure AD组的成员。我还需要仅使用组的名称来检索组的ID。

为了检索组ID,我发出HttpWebRequest

https://graph.windows.net/myorganization/groups?api-version=1.6&$filter=displayName eq 'My group name' 

我正在传递有效的访问令牌。我说这是有效的,因为我使用此令牌成功从Power BI API检索数据。

每次执行此请求时,我都会收到401: Unauthorized回复。

应用注册具有以下委派的Azure AD Graph API权限:Read all users' basic profilesRead all groupsRead directory data

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

如果令牌在Power BI REST API上运行,那么它肯定无法在Azure AD Graph API上运行。

Azure AD中的访问令牌仅适用于由令牌中的受众(aud)声明标识的单个API。

获取令牌时,您需要使用资源https://graph.windows.net获取Azure AD Graph API的另一个令牌。

您使用的API是Azure AD Graph API,而不是Microsoft Graph API。 MS Graph API具有资源标识符https://graph.microsoft.com,可通过https://graph.microsoft.com访问。

MS Graph API Documentation