Ошибка Python MSAL — требуется согласие администратора, когда согласие уже дано

#azure-active-directory #microsoft-graph-api #msal

#azure-active-directory #microsoft-graph-api #msal

Вопрос:

Я пытаюсь запросить Directory.Read.All область с помощью библиотеки MSAL Microsoft и получить действительную пару токенов доступа / обновления с acquire_token_by_authorization_code помощью функции.

Я прошу администратора организации дать согласие на вышеуказанное разрешение приложения с /adminconsent конечной точкой (и подтвердил, что разрешения были предоставлены — см. Скриншот ниже). Однако при попытке получить токен доступа с Directory.Read.All областью действия я получаю следующую ошибку:

 {'error': 'invalid_grant', 'error_description': "AADSTS65001: The user or administrator has not consented to use the application with ID 'XXX' named 'XXX'. Send an interactive authorization request for this user and resource [...]'suberror': 'consent_required'}
  

Не совсем уверен, как это может быть — поскольку разрешение явно предоставлено. Я попытался сбросить кэш токенов, удалив все учетные записи MSAL, но сомневаюсь, что это корень проблемы, поскольку фактический сбой — это преобразование кода авторизации в токен доступа.

Спасибо за любую помощь!

Страница Microsoft AD для получения разрешений

Комментарии:

1. Пожалуйста, поделитесь запросом MS graph, которого вы пытаетесь достичь

2. Привет, @dannybess, ты можешь получить код авторизации?

3. Если мой ответ полезен для вас, вы можете принять его в качестве ответа (нажмите на галочку рядом с ответом, чтобы переключить его с серого на заполненный.). Это может быть полезно для других участников сообщества. Большое спасибо!!!

Ответ №1:

Я могу воспроизвести вашу ошибку:

введите описание изображения здесь

Если вы используете поток кода авторизации для получения токена доступа, вам следует предоставить делегированные разрешения, поскольку это поток авторизации с взаимодействием с пользователем, поэтому попробуйте предоставить Directory.Read .Все delegated permissions , а затем предоставьте согласие администратора на разрешения.

введите описание изображения здесь