代码之家  ›  专栏  ›  技术社区  ›  Paul Angelno

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

  •  2
  • Paul Angelno  · 技术社区  · 6 年前

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

    我需要确定登录用户是否是特定Azure广告组的成员。我还需要仅使用组的名称检索组的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

    我错过了什么?

    1 回复  |  直到 6 年前
        1
  •  4
  •   juunas    6 年前

    如果令牌在Power BI REST API上工作,那么它肯定不会在Azure AD Graph API上工作。

    Azure AD中的访问令牌仅在单个API上工作,由令牌中的受众(aud)声明标识。

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

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

    MS Graph API Documentation