执行 Azure 函数 cmdlet Get-AzADAppCredential 的权限不足
Insufficient privileges executing Azure function cmdlet Get-AzADAppCredential
我正在处理一个 Azure 函数,该函数试图获取和更新 Azure 应用程序注册的客户端密码。函数作为 托管身份 运行,并尝试执行 Azure powershell cmdlet New-AzADAppCredential
、Remove-AzADAppCredential
和 Get-AzADAppCredential
.
但是,在执行时我得到一个错误 Insufficient privileges to complete the operation
。
我尝试在 Azure 角色分配下为我的函数分配一个贡献者角色,我还尝试为该函数尝试访问的应用程序注册授予委派权限 Directory.ReadWrite.All
。但是,我仍然看到同样的错误。
我想知道托管标识 azure 函数需要哪些权限才能管理应用程序注册客户端机密。
谢谢!
Contributor
角色允许受让人管理和访问资源,但正如您所发现的那样,它不包括管理访问权限。同样,Directory.ReadWrite.All
用于用户数据而不是 RBAC。有two roles for RBAC-Owner
和User Access Administrator
。所有者是贡献者,UA 管理员只允许访问控制。
RBAC roles用于管理Azure订阅中的资源,在这种情况下,您需要的是Azure AD中的权限,而不是订阅中的权限。
要解决此问题,最简单的方法是将 Application Administrator
提供给您的托管身份。
导航到 Azure 门户 -> Azure Active Directory
-> Roles and administrators
-> Application Administrator
-> 将托管身份添加到角色,如下所示。
我正在处理一个 Azure 函数,该函数试图获取和更新 Azure 应用程序注册的客户端密码。函数作为 托管身份 运行,并尝试执行 Azure powershell cmdlet New-AzADAppCredential
、Remove-AzADAppCredential
和 Get-AzADAppCredential
.
但是,在执行时我得到一个错误 Insufficient privileges to complete the operation
。
我尝试在 Azure 角色分配下为我的函数分配一个贡献者角色,我还尝试为该函数尝试访问的应用程序注册授予委派权限 Directory.ReadWrite.All
。但是,我仍然看到同样的错误。
我想知道托管标识 azure 函数需要哪些权限才能管理应用程序注册客户端机密。
谢谢!
Contributor
角色允许受让人管理和访问资源,但正如您所发现的那样,它不包括管理访问权限。同样,Directory.ReadWrite.All
用于用户数据而不是 RBAC。有two roles for RBAC-Owner
和User Access Administrator
。所有者是贡献者,UA 管理员只允许访问控制。
RBAC roles用于管理Azure订阅中的资源,在这种情况下,您需要的是Azure AD中的权限,而不是订阅中的权限。
要解决此问题,最简单的方法是将 Application Administrator
提供给您的托管身份。
导航到 Azure 门户 -> Azure Active Directory
-> Roles and administrators
-> Application Administrator
-> 将托管身份添加到角色,如下所示。