User.ReadBasic.Все области не предоставлены, v2 - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь запросить следующие 3 области для oauth из каталога Azure v2: user.read, user.readbasic.all, calendars.readwrite.

Мой запрос GET авторизации

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?'
+ '&client_id=myclientid'
+ '&response_type=code'
+ `&redirect_uri=myredirecturl`
+ '&response_mode=query'
+ '&scope=user.read%20user.readbasic.all%20calendars.readwrite'
+ '&prompt=consent';

Обратите внимание, что я исключил изменение типа согласия с момента последнего разрешения.

Я успешно получил код и обменял его на токен:

axios.post(
'https://login.microsoftonline.com/common/oauth2/v2.0/token',
querystring.stringify(
  {
    client_id: my_client_id,
    client_secret: my_app_secret,
    grant_type: 'authorization_code',
    code,
    scope: 'user.readbasic.all user.read calendars.readwrite',
    redirect_uri: my_redirect_url
  },
  null,
  null,
  { encodeURIComponent: s => encodeURI(s) }
)

);

  1. Я не вижу никакого сообщения о согласии для user.readbasic.allпри входе в систему
  2. Я не получаю User.ReadBasic.All в ответе за область действия токена, который я получаю.
  3. Я получаю user.read и calendars.readwrite

Обновление Полагаю, я сужаю проблему до изменения областей или типа арендатора.Несмотря на то, что я имею приглашение = согласие в качестве параметра, я не получаю область user.readbasic.all в своем личном кабинете.Когда я отправляю ссылку авторизации другим пользователям организации, они получают полный список разрешений.Почему есть две разные страницы разрешений для разных пользователей?Два скриншота: org tenant personal tenant

1 Ответ

0 голосов
/ 14 мая 2018

Метод stringify() конвертирует ваш объект в application/json. Это неверно, должно быть application/x-www-form-urlencoded.

Подробнее о том, как сделать это с помощью Axios, см. this GitHub Issue .

Кроме того, личные учетные записи (MSA) не могут «читать основные профили всех пользователей». В качестве «личной» учетной записи связан только один пользователь.

...