Проблема приложения Multitenant при доступе к Graph API - PullRequest
0 голосов
/ 26 февраля 2020

У меня мультитенантное приложение js клиент с masal и Web Api все работает хорошо. Пользователь может войти в систему и использовать API.

Я пытаюсь прочитать группы объявлений, к которым принадлежит пользователь, с помощью Graph Api. Он отлично работает для пользователя в том же клиенте, где приложение было зарегистрировано, но если я использую пользователя из другого арендатора, у меня ошибка 403 (недостаточно прав для завершения операции.) При попытке доступа к / users / {userId} / memberOf конечной точки. После того, как я зарегистрировал приложения на azure для клиента и сервера, я установил соответствующие разрешения в разделе разрешений Api (Разрешение на приложение), который, как мне показалось, имеет место, но он должен пропустить что-то еще. Есть идеи, что мне не хватает?

1 Ответ

0 голосов
/ 26 февраля 2020

Пожалуйста, обратитесь к статье ниже:

Понимание согласия пользователя и администратора

Для приложения с несколькими арендаторами первоначальная регистрация приложения проживает в арендатор Azure AD, используемый разработчиком. Когда пользователь из другого арендатора входит в приложение в первый раз, Azure AD просит его дать согласие на разрешения, запрошенные приложением. Если они соглашаются, в клиенте пользователя создается представление приложения, называемое субъектом службы, и вход может продолжаться. В каталоге также создается делегирование, в котором записывается согласие пользователя на приложение.

Ваше приложение использует разрешения (/users/{userId}/memberOf), требующие согласия администратора, если обычный пользователь пытается войти в систему. приложение, которое запрашивает делегированное разрешение, которое требует согласия администратора, ваше приложение получает ошибку.

В Azure AD V2.0 вы можете перенаправить пользователя на конечную точку согласия администратора платформы удостоверений Microsoft:

// Line breaks are for legibility only.
GET https://login.microsoftonline.com/{tenant}/v2.0/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions
&scope=
https://graph.microsoft.com/calendars.read 
https://graph.microsoft.com/mail.send

См. Документ: Согласие администратора на удостоверение Microsoft платформа

...