如何授予服务主体对 Active Directory 组的读取权限?
How to grant a Service Principal read access to the Active Directory Groups?
-
active-directory-group
-
azure-active-directory
-
github-actions
-
azure-service-principal
-
microsoft-graph-api
目前我正在尝试从我使用服务主体登录的 GitHub 操作中读取 Active Directory 组的 ObjectId。
服务委托人是具有以下附加权限的贡献者:
"Microsoft.Authorization/roleAssignments/write",
"Microsoft.Authorization/roleAssignments/read"
当 运行 使用 Azure CLI 执行以下命令时:
az ad group show -g {NAME OF GROUP}
我收到以下输出:
ValidationError: Insufficient privileges to complete the operation.
Error: Error: az cli script failed.
我已尝试通过 Microsoft Graph API 通过以下权限向服务主体授予权限:
Directory.Read.All (Granted)
Group.Read.All (Granted)
但是这些不足以授予读取权限。
两种解决方法(推荐第一种):
- 这个命令本质上调用的是
Azure AD Graph
而不是Microsoft Graph
,所以Microsoft Graph的权限不会生效,这里需要的是应用程序权限(不是委派权限)Directory.Read.All
在Azure AD Graph
.
- 另一种方式是给Azure AD admin role to the service principal, e.g.
Directory Readers
,这个role的权限小于上面的Directory.Read.All
,AAD Graph是Supported legacy API,所以推荐第二种方式。赋予作用后,稍等片刻生效,即可正常使用
active-directory-group
azure-active-directory
github-actions
azure-service-principal
microsoft-graph-api
目前我正在尝试从我使用服务主体登录的 GitHub 操作中读取 Active Directory 组的 ObjectId。
服务委托人是具有以下附加权限的贡献者:
"Microsoft.Authorization/roleAssignments/write",
"Microsoft.Authorization/roleAssignments/read"
当 运行 使用 Azure CLI 执行以下命令时:
az ad group show -g {NAME OF GROUP}
我收到以下输出:
ValidationError: Insufficient privileges to complete the operation.
Error: Error: az cli script failed.
我已尝试通过 Microsoft Graph API 通过以下权限向服务主体授予权限:
Directory.Read.All (Granted)
Group.Read.All (Granted)
但是这些不足以授予读取权限。
两种解决方法(推荐第一种):
- 这个命令本质上调用的是
Azure AD Graph
而不是Microsoft Graph
,所以Microsoft Graph的权限不会生效,这里需要的是应用程序权限(不是委派权限)Directory.Read.All
在Azure AD Graph
.
- 另一种方式是给Azure AD admin role to the service principal, e.g.
Directory Readers
,这个role的权限小于上面的Directory.Read.All
,AAD Graph是Supported legacy API,所以推荐第二种方式。赋予作用后,稍等片刻生效,即可正常使用