具有公司管理员权限的Service Principal的New-AzureADMSInvitation失败

时间:2019-04-22 23:17:50

标签: azure azure-active-directory

我正在尝试使用多租户应用程序中的服务主体邀请来宾用户加入我的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 :(得分:0)

有趣的问题有一个有趣的答案。

此问题是由<div> <h2><u>Products and Services</u></h2> <h4> <select id="dropdown"> <option value="empty"></option> <option value="0">Basic</option> <option value="1">Intermediate</option> <option value="2">Advanced</option> </select> <p id="DescChange">1</p> <p id="CostChange">2</p> <p></p> <p></p> </h4> </div> 在后​​端调用MS Graph API引起的。 NOT AAD Graph API

AAD Powershell中的功能实际上是在后端调用API。如果捕获提琴手跟踪,您将看到AAD Powershell使用的HTTPS跟踪。

通常,AAD Powershell仅仅调用AAD Graph API。但是,<p>在后​​端调用此MS Graph API:

$new = vsprintf('%3$s-%2$s-%1$s', explode('-', $old));

您可以看到此命令包括 MS ,这意味着它实际上是在调用MS Graph。

解决方案:

当您使用服务主体连接AAD时,AAD Powershell将获得具有应用程序权限的access_token。因此,请转到Azure门户>应用程序注册>找到您的应用程序>设置>所需权限>添加Microsoft Graph API>在应用程序权限中选择from PySide.QtGui import * from PySide.QtCore import * class CustomTableView(QTableView): """Table view of icons and text.""" def __init__(self): super(CustomTableView, self).__init__() custom_model = QStandardItemModel() for v in range(10): for i in range(10): new_item = QStandardItem("image.png", str(i)) custom_model.setItem(v, i, new_item) 。另请记住,请点击New-AzureADMSInvitation按钮以同意权限。

重新连接AAD Powershell,然后尝试一下。