Azure active directory 权限不足,无法执行Get-AzureADApplication和Set-AzureADApplication等操作

Azure active directory 权限不足,无法执行Get-AzureADApplication和Set-AzureADApplication等操作,azure-active-directory,azure-ad-graph-api,Azure Active Directory,Azure Ad Graph Api,我想自动化部署,它需要更新Azure AD应用程序注册的设置 到目前为止,我能够: 创建具有证书的Azure AD Appregistration和服务主体(thx MS文档) 然后使用命令Connect AzureAD和以前的服务主体及其证书 使用像Get-AzureADApplication-ObjectId 11111111-2222-3333-4444-5555这样的命令 在前面的项目符号ObjectId 11111111-2222-3333-4444-555555中,与我在第一个项目

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

到目前为止,我能够:

  • 创建具有证书的Azure AD Appregistration和服务主体(thx MS文档)
  • 然后使用命令Connect AzureAD和以前的服务主体及其证书
  • 使用像Get-AzureADApplication-ObjectId 11111111-2222-3333-4444-5555这样的命令
  • 在前面的项目符号ObjectId 11111111-2222-3333-4444-555555中,与我在第一个项目符号上创建的应用程序匹配
但是,我无法执行以下命令:

  • 获取AzureADApplication-筛选器“DisplayName eq'$AADApplicationName'”
  • $aADApplicationame与以前创建的应用程序匹配
  • 设置AzureADApplication-ObjectId$aADApplication.ObjectId-ReplyUrls$ReplyUrls
  • 获得AzADServicePrincipal
我收到以下错误消息

Set-AzureADApplication:执行SetApplication时出错 代码:授权被拒绝 消息:权限不足,无法完成操作

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

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

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


有关详细信息,请参阅。

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


有关更多详细信息,请参阅。

另一个答复中提到,您可以将
全局管理员
角色授予服务主体,这是正确的,但在这种情况下
全局管理员
的权限太大,可能会导致一些安全问题

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

1.导航到您的广告应用程序的
API权限
->选择
Azure Active Directory图形
Microsoft图形

2.选择
应用程序权限
授权权限
)->
应用程序。读写。所有
->单击
添加权限

3.最后,单击
授予xxx管理员许可
按钮

过一会儿,再次尝试这些命令,它将正常工作

更新:

查看文档后,我发现MS已经发布了一些新命令,这些命令称为Microsoft Graph,以前从未见过

e、 g.在您的情况下,您可以使用而不是
获取AzureADApplication

Get-AzureADMSApplication -Filter "DisplayName eq 'joyttt'"
Set-AzureADMSApplication -ObjectId <object-id> -Web @{ RedirectUris = "https://mynewapp.contoso.com/" }
使用而不是
设置AzureADApplication

Get-AzureADMSApplication -Filter "DisplayName eq 'joyttt'"
Set-AzureADMSApplication -ObjectId <object-id> -Web @{ RedirectUris = "https://mynewapp.contoso.com/" }
Set-AzureADMSApplication-ObjectId-Web@{RedirectUris=”https://mynewapp.contoso.com/" }

对于
获取AzADServicePrincipal
,目前没有等效的,将来应该有。使用上述命令时,Microsoft Graph的权限将起作用,无需使用Azure AD Graph,但您应该使用
应用程序权限
,而不是
委派权限
(您在问题中使用了
委派权限

如另一个答复所述,您可以将
全局管理员
角色授予服务主体,这是正确的,但在这种情况下
全局管理员
的权限太大,可能会导致一些安全问题

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

1.导航到您的广告应用程序的
API权限
->选择
Azure Active Directory图形
Microsoft图形

2.选择
应用程序权限
授权权限
)->
应用程序。读写。所有
->单击
添加权限

3.最后,单击
授予xxx管理员许可
按钮

过一会儿,再次尝试这些命令,它将正常工作

更新:

查看文档后,我发现MS已经发布了一些新命令,这些命令称为Microsoft Graph,以前从未见过

e、 g.在您的情况下,您可以使用而不是
获取AzureADApplication

Get-AzureADMSApplication -Filter "DisplayName eq 'joyttt'"
Set-AzureADMSApplication -ObjectId <object-id> -Web @{ RedirectUris = "https://mynewapp.contoso.com/" }
使用而不是
设置AzureADApplication

Get-AzureADMSApplication -Filter "DisplayName eq 'joyttt'"
Set-AzureADMSApplication -ObjectId <object-id> -Web @{ RedirectUris = "https://mynewapp.contoso.com/" }
Set-AzureADMSApplication-ObjectId-Web@{RedirectUris=”https://mynewapp.contoso.com/" }
对于
获取AzADServicePrincipal
,目前没有等效的,将来应该有。使用上述命令时,Microsoft Graph的权限将起作用,无需使用Azure AD Graph,但您应该使用
应用程序权限
,而不是
委派权限
(您在问题中使用了
委派权限

Hi Hari