Я пытаюсь запросить следующие 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) }
)
);
user.readbasic.all при входе в системуUser.ReadBasic.All в ответе на предмет вознаграждения за токен.Обновлять
Я считаю, что сужаю проблему к изменению объема или типа арендатора. Хотя в качестве параметра у меня есть prompt = согласие, я не получаю область user.readbasic.all в моей личной учетной записи. Когда я отправляю ссылку для авторизации другим пользователям организации, они получают полный список разрешений. Почему для разных пользователей существуют две разные страницы разрешений? Два скриншота:


да, я сделал это на apps.dev.microsoft.com
Попробуйте использовать https%3A%2F%2Fgraph.microsoft.com%2Fcalendars.readwirte%20 https%3A%2F%2Fgraph.microsoft.com%2Fuser.read%20 https%3A%2F%2Fgraph.microsoft.com%2Fuser.readbasic.all в прицеле.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Метод stringify() преобразует ваш объект в application/json. Это неверно, это должен быть application/x-www-form-urlencoded.
Подробнее о том, как это сделать с помощью Axios, см. этот выпуск GitHub.
Кроме того, личные учетные записи (MSA) не могут «читать основные профили всех пользователей». В качестве «личной» учетной записи связан только один пользователь.
Личные аккаунты не могу читают «базовые профили всех пользователей». Это личный кабинет, в нем только один пользователь.
Точка зрения Марка о личных счетах решила мой вопрос. Поскольку мне были предоставлены другие возможности, в настоящее время у меня нет оснований полагать, что stringify была причиной каких-либо проблем.
Вы добавили делегированные разрешения
user.readbasic.allв это приложение AADv2?