Доступ запрещен для приложения с потоком учетных данных клиента - PullRequest
0 голосов
/ 07 ноября 2018

Мы создали приложение в AAD.

Приложению был предоставлен доступ для чтения / записи всех сообщений / писем и «чтение профилей пользователей», а глобальный администратор нажал кнопку «Предоставить разрешения» на портале. Тем не менее мы получаем Access denied ошибка при попытке доступа к

https://graph.microsoft.com/v1.0/users/{myId}/MailFolders/Inbox/ChildFolders 

для моего идентификатора пользователя (myId). URL работает нормально в графическом обозревателе, когда я вошел в систему как мой собственный пользователь.

Кроме того, при декодировании JWT в jwt.io отображаются идентификатор приложения, имя и "aud" (https://graph.microsoft.com) - но без ролей / областей действия.

Что мы сделали не так?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Хорошо, поэтому я отправил заявку в службу поддержки Microsoft. Я еще не получил никакого ответа, но теперь все работает просто отлично. Я понятия не имею, почему, но сегодня утром, когда я отправлял билет, было показано предупреждение о том, что сбой в Azure AD был недавно исправлен, поэтому, возможно, именно поэтому вчера не получилось.

0 голосов
/ 07 ноября 2018

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

Действующие права - это пересечение прав пользователя и прав приложения .

"Действующие разрешения - это разрешения, которые ваше приложение будет иметь при отправке запросов к API.

  • Для делегированных разрешений эффективными разрешениями вашего приложения будет наименее привилегированное пересечение делегированных разрешений, которые были предоставлены приложению (через согласие), и привилегий текущего зарегистрированного пользователя. Ваше приложение никогда не может иметь больше привилегий, чем зарегистрированный пользователь. "

Пользователю также необходимо разрешение на использование приложения в AAD.

Если это не делегированное разрешение, возможно, необходимо, чтобы какой-то глобальный администратор предоставил согласие всем пользователям. «Администраторы тем» могут только «запрашивать» разрешения для приложения, а глобальный администратор может дать согласие для всех пользователей.

enter image description here

...