Get-AzureADApplication 和 Set-AzureADApplication 等操作的权限不足

Insufficient privilege for operation like Get-AzureADApplication and Set-AzureADApplication

我想要自动化部署,它需要更新 Azure AD 应用程序注册设置。

到目前为止我能够:

但是我无法执行如下命令:

我收到以下错误消息

Set-AzureADApplication : Error occurred while executing SetApplication Code: Authorization_RequestDenied Message: Insufficient privileges to complete the operation

根据我的研究,我设置了一些 API 权限如下:

不幸的是,尽管授予了所有权限,但仍然没有足够的权限。 你知道我是否错过了什么吗?我应该添加任何特定权限以使其正常工作吗? 问候。

您遇到此问题是因为 Powershell cmdlet 的工作方式与 MS Graph 不同。 Powershell 不需要权限,而是需要角色来执行此操作。请将全局管理员角色添加到您的服务原则中,然后尝试 Connect-AzureAD 以便问题得到解决。

详情请参考Assigning administrator roles in Azure Active Directory

另一个回复提到,你可以把Global Administrator角色给service principal,是对的,但是这种情况下Global Administrator的权限太大了,可能会造成一些问题安全问题。

在这种情况下,您使用的命令 Get-AzureADApplicationSet-AzureADApplication 本质上是调用 Azure AD Graph API,因此要解决此问题,更好的解决方案是添加权限Azure AD Graph API,请按照以下步骤操作。

1.Navigate 到您的广告应用程序的 API permissions -> select Azure Active Directory Graph不是 Microsoft Graph ).

2.Select Application permissions不是 Delegated permissions)-> Application.ReadWrite.All -> 单击 Add permissions

3.At最后,点击Grant admin consent for xxx按钮。

稍等片刻,再次尝试命令,它会正常工作。

更新:

查看文档后,发现MS已经发布了一些调用Microsoft Graph的新命令,以前没有见过。

例如在您的情况下,您可以使用 Get-AzureADMSApplication 而不是 Get-AzureADApplication.

Get-AzureADMSApplication -Filter "DisplayName eq 'joyttt'"

使用 Set-AzureADMSApplication 代替 Set-AzureADApplication

Set-AzureADMSApplication -ObjectId <object-id> -Web @{ RedirectUris = "https://mynewapp.contoso.com/" }

对于Get-AzADServicePrincipal,目前没有对应的,以后应该会有。使用上述命令时,Microsoft Graph 的权限将起作用,无需使用 Azure AD Graph,但您应该使用 Application permission,而不是 Delegated permission(您在问题中使用了 Delegated permission .)

我也遇到了类似的问题,请确保做以下两件事:

  1. 将 运行 设置为 azure 自动化帐户
  2. 在将 运行 设置为帐户后,在新创建的 azure 自动化帐户的应用程序注册中,确保明确添加云应用程序管理员角色。
  3. 为 Application.ReadWrite.All 添加 API 权限(Microsoft 图)

在我的例子中,应用程序注册在角色和管理员屏幕下显示云应用程序管理员角色,我认为这为新应用程序注册提供了所需的权限,但事实并非如此。 PowerShell 脚本仅在我们明确分配云应用程序管理员角色后才起作用。