Недостаточно прав для завершения операции

Я хочу запросить группы пользователей. согласно https://graph.microsoft.io/en-us/docs/platform/rest я делаю следующие шаги:

  1. Получить код

    https://login.microsoftonline.com/common/oauth2/authorize? response_type=id_token%20code& client_id=<MY_CLIENT_ID>& redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Fopenid%2Freturn response_mode=query& nonce=F8GtCajiXYKcGBtw& scope=openid%20https%3A%2F%2Fgraph.microsoft.com%2FGroup.Read.All%20Group.Read.All& resource=https%3A%2F%2Fgraph.microsoft.com%2F& state=HTlUWuV5su%2BG4zBE#

Примечание. Предоставляются 3 области (openid, Group.Read.All, https://graph.microsoft.com/Group.Read.All)

а затем я вхожу в систему, ответ AAD на мой веб-сайт:

http://localhost:3000/auth/openid/return?
code=<Recieved_Code>&
id_token=<Recieved_id_Token>&
state=xxxx&
session_state=yyy
  1. Получить access_token
    POST https://login.microsoftonline.com/common/oauth2/token
    Content-Type: application/x-www-form-urlencoded
    {
          grant_type=authorization_code
          &code=Recieved_Code_from_step_1
          &redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Fopenid%2Freturn
          &resource=https%3A%2F%2Fgraph.microsoft.com%2F
          &client\_id=
          &client\_secret=
    }

и это возвращает JSON

{
   "token_type":"Bearer",
   "scope":"User.Read",
   "resource":"https://graph.microsoft.com/",
   "access_token":<Access_token_in_here>,
   ... other fields
}

Примечание. Возвращается только область User.Read

Я использую access_token из шага 2) для выполнения запроса

Итак, почему я запрашиваю разрешение на 3 области, но получаю разрешение только на одну область?


person Redman    schedule 17.06.2016    source источник
comment
Комбинации областей видимости [openid, Group.Read.All] или [openid, xxxx / Group.Read.All] также вернуть только User.Read   -  person Redman    schedule 17.06.2016


Ответы (1)


Ваш запрос использует конечную точку v1. Эта конечная точка не принимает области как часть запроса. В версии 1 вам необходимо предварительно настроить требуемые области в регистрационной записи, хранящейся в Azure Active Directory.

Я бы рекомендовал перейти на v2. Это позволит вам объявлять области в вашем коде и значительно упростить процесс регистрации.

person Marc LaFleur    schedule 17.06.2016