Сбой New-AzureADMSInvitation для участника службы с разрешением администратора компании - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь пригласить гостя в свой клиент Azure AD, используя сервис-принципал из мультитенантного приложения. Приложению присвоено Company Administrator в каталоге. Однако, когда я вызываю New-AzureADMSInvitation, это выдает ошибку:

Connect-AzureAD -TenantId $AzureTenantId -ApplicationId  $AppId -CertificateThumbprint $certThumbprint

New-AzureADMSInvitation -InvitedUserDisplayName "Test User"  -InvitedUserEmailAddress "testuser@gmail.com" -InviteRedirectURL https://foo.bar.com -SendInvitationMessage $true
New-AzureADMSInvitation : Error occurred while executing NewAzureADMSInvitation 
Code: Unauthorized
Message: Insufficient privileges to perform requested operation by the application '00000003-0000-0000-c000-000000000000'. 
ControllerName=MSGraphInviteAPI, ActionName=CreateInvite, URL absolute path=/api/xxxxx/invites
InnerError:
  RequestId: b44feabd-d731-4fb6-a115-1a1d0e09ba10
  DateTimeStamp: Mon, 22 Apr 2019 23:14:47 GMT
HttpStatusCode: Unauthorized
HttpStatusDescription: Unauthorized
HttpResponseStatus: Completed
At line:1 char:1
+ New-AzureADMSInvitation -InvitedUserDisplayName "Test User"  -I ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureADMSInvitation], ApiException
    + FullyQualifiedErrorId : Microsoft.Open.MSGraphV10.Client.ApiException,Microsoft.Open.MSGraphV10.PowerShell.NewAzureADMSInvitation

Here are my apps permissions

1 Ответ

0 голосов
/ 23 апреля 2019

Интересный вопрос имеет интересный ответ.

Эта проблема вызвана New-AzureADMSInvitation вызовом MS Graph API в бэкэнде. НЕ AAD Graph API

Функции в AAD Powershell фактически вызывают API-интерфейсы в бэкэнде. Если вы захватите трассировку скрипача, вы увидите трассировку HTTPS, используемую AAD Powershell.

Как правило, AAD Powershell только вызывает AAD Graph API. Однако New-AzureADMSInvitation вызывает этот API MS Graph в бэкэнде:

POST https://graph.microsoft.com/beta/invitations

Вы можете видеть, что эта команда включает MS , это означает, что она фактически вызывает MS Graph.

Решение:

Поскольку вы используете субъект-службу для подключения AAD, AAD Powershell получит access_token с разрешениями приложения. Итак, перейдите на портал Azure> Регистрация приложения> Найдите свое приложение> Настройки> Необходимые разрешения> Добавить Microsoft Graph API> Выберите Directory.ReadWrite.All в Разрешение приложения . Пожалуйста, не забудьте нажать кнопку Grant Permissions для подтверждения прав доступа.

Повторно подключите AAD Powershell и попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...