Я пытаюсь получить доступ к присоединенным группам из Microsoft Graph API, я выполнил аутентификацию Azure AD и могу получить требуемый токен доступа.

Токен доступа работает, когда я читаю данные из конечных точек SharePoint OData, но я не могу получить доступ к URL-адресу

 https://graph.microsoft.com/beta/me/joinedTeams

Я попытался получить доступ с помощью клиента PostMan, и он выдает ошибку

{
  "error": {
    "code": "AuthenticationError",
    "message": "Error authenticating with resource.",
    "innerError": {
      "request-id": "ef4be9c8-27c7-40e7-8157-c08848f5132f",
      "date": "2018-03-13T09:46:11"
    }
  }
}

Когда я попытался получить доступ к этому URL-адресу с помощью кода javascript, я получил другую ошибку

{
  "error": {
    "code": "BadRequest",
    "message": "Invalid version",
    "innerError": {
      "request-id": "51113cc5-2963-4e0f-bf70-6e080a8f5671",
      "date": "2018-03-13T09:29:18"
    }
  }
}

Я пробовал с другим набором разрешений, даже с административным доступом, но безуспешно.

Я также пытался получить доступ

https://graph.microsoft.com/beta/me/

Он работает в клиенте PostMan, но не работает в JavaScript (у меня такая же ошибка).

Tere - это заголовок, который я использую для отправки запроса

var header = {
  Authorization: "Bearer <ACCESS_TOKEN>",
  Accept: "application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false"
};

Может ли кто-нибудь подсказать, что я пропустил или какое разрешение мне следует использовать?

Для этого разрешения требуется согласие администратора. Это правильные разрешения?

enter image description here

Обновление 2 Я попытался использовать согласие администратора, предоставить все необходимые разрешения приложению (приложение AD). ниже приведены данные области, извлеченные из jwt.io

    "scp": "email Group.Read.All Group.ReadWrite.All openid User.Read User.Read.All User.ReadBasic.All User.ReadWrite.All"
    "aud": "https://graph.microsoft.com/"

Я использую учетную запись администратора со всеми разрешениями. но не повезло, я все равно получаю «Ошибка аутентификации с ресурсом» . но с помощью токена я могу получить доступ к URL-адресу

  https://graph.microsoft.com/v1.0/me

И в ответ я получаю все данные администратора

Я попытался прочитать всю доступную для этого документацию, но безуспешно

8
Sunil Soni 13 Мар 2018 в 13:07

2 ответа

Лучший ответ

У меня была такая же проблема, и мне удалось заставить ее работать, удалив завершающий « / » из параметра ресурса при запросе токена доступа.

Итак, в моем случае ресурс

https://graph.microsoft.com/ следует писать https://graph.microsoft.com

1
Laurent Mox 3 Апр 2018 в 15:29

Ваш метод getAuthenticationHeader вызывает неправильную конечную точку:

https://login.windows.net/advaiya.com/oauth2/token?api-version=1.0

Вы должны выдать HTTP POST на:

https://login.microsoftonline.com/advaiya.com/oauth2/token

Вы также отправляете &redirect_uri=<URL>. Это значение должно соответствовать redirect_uri, которое вы передали https://login.microsoftonline.com/advaiya.com/oauth2/authorize при получении токена Id.

1
Marc LaFleur 21 Мар 2018 в 20:12