Работает ли Microsoft Graph без пользователя.Область чтения?

#microsoft-graph-api

Вопрос:

Мой вопрос в том, работает ли Microsoft Graph без пользователя.Область чтения ? Я не могу напрямую запросить разрешения openid профиля электронной почты.

Это приводит к ошибке доступа. Как и Пользователь.Прочитайте предварительное требование для профиля электронной почты или openid ?

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

1. Я опубликовал свои идеи ниже, и я где-то неправильно понял? Пожалуйста, не стесняйтесь сообщать нам, если возникнут какие-либо дополнительные проблемы.

Ответ №1:

User.Read это просто делегированное разрешение на получение профиля пользователя с помощью MS Graph Get User. Если вашему приложению не нужно читать профиль пользователя, вам не нужно это разрешение, но в большинстве случаев вам это нужно, потому что ваше приложение действует от имени пользователя.

Работает ли Microsoft Graph без пользователя.Область чтения ?

Нет, но в большинстве случаев вам нужна область для чтения профиля пользователя и конечных точек вызова /me.

Ответ №2:

Вам следует проверить документ api, чтобы узнать, требуется ли для вызова этого api User.Read разрешение.

Например: я хочу вызвать этот api для перечисления электронных писем, и мы видим, что этот api предоставляет 2 вида разрешений: одно для делегата, другое для приложения(это означает, что поддерживается поток учетных данных клиента). Здесь перечислены все разрешения api, и нам нужно перейти на портал azure ad, чтобы добавить разрешение api в ваше приложение azure ad, которое использовалось для создания маркера доступа.

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

После создания маркера доступа вы можете использовать инструмент декодирования jwt, чтобы проверить, содержит ли ваш маркер доступа правильные области(для разрешения делегата) или роли(для разрешения приложения). Использование правильного токена для вызова api не приведет к AccessDenied ошибке. Кстати, недавно добавленное разрешение может быть отложено для вступления в силу.