Я пишу веб-приложение, используя API безопасности в Microsoft Graph, и выполняю аутентификацию в Azure AD, но для доступа к API требуется согласие администратора для каждого арендатора, использующего мое приложение.
Как я могу проверить, дал ли администратор арендатора мое приложение?Таким образом, я знаю, отправлять ли пользователя в обычный поток входа в систему или в поток согласия администратора.
Можно ли сделать вызов REST в Azure AD для получения этой информации?Я пытался использовать oAuth2PermissionGrant
, но это, похоже, работает только с идентификатором объекта, и у меня есть только мой идентификатор приложения / клиента.
Редактировать :
Я был озадачен тем, какие области были нужны в моем приложении, но получается, что когда я добавляю администратору только делегированные разрешения, такие как SecurityEvents.Read.All
иSecurityEvents.ReadWrite.All
только на Portal Registraion Application Portal и используйте только разрешение User.Read
в моем приложении для запроса основной информации пользователей.При запросе токена доступа возможны два разных результата:
- Если администратор не дал согласия моего приложения, токен доступа будет содержать только область действия
User.Read
. - Если администратор дал согласие, токен доступа будет содержать делегированные области действия
User.Read
, SecurityEvents.Read.All
и SecurityEvents.ReadWrite.All
.Хотя мое приложение запрашивает только User.Read
.
, я обнаружил, что могу использовать это, чтобы определить, дало ли администратор согласие на мое приложение, проверив области действия маркеров доступа.Если он содержит SecurityEvents.Read.All
или SecurityEvents.ReadWrite.All
, пользователь может продолжить работу в приложении.Но если эти делегированные разрешения не входят в сферу действия, я могу попросить поток разрешений администратора https://login.microsoftonline.com/common/adminconsent?client_id=<APP ID>&state=12345&redirect_uri=http://localhost/myapp/permissions
запросить разрешения для добавления к арендатору.
Спасибо @ marc-lafleur, я использовал администраторачтобы играть с oAuth2PermissionGrant
в Graph Explorer, и я не поймал сценарий курица против яйца, пока вы не указали на это.