我有一个.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 profiles
,Read all groups
和Read directory data
。
我在这里缺少什么?
答案 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
访问。