0

我正在使用Azure CLI 2.0并试图找到与以下 Powershell 命令等效的命令:

Add-MsolRoleMember -RoleObjectID $roleID -RoleMemberType ServicePrincipal -RoleMemberObjectId $appObjectId

我正在使用此命令将 Azure AD 应用程序主体添加到“用户帐户管理员”角色。

我使用此链接安装了包含“Add-MsolRoleMember”命令的MSOL Powershell 库。

因为我需要在 Mac、Linux 等上运行的命令,所以我尝试使用最新版本的“Azure CLI”,尽管我对其他代码示例(例如 Python)持开放态度。

以下是我迄今为止尝试过的 cli 命令:

az login --tenant <my tenant id>
# I get my app id from this:
az ad app list
# I cannot get the following to work, and suspect I am running 
# the incorrect command
az role assignment create --assignee <my app id>  --role <role id>

所以我的问题是:如何使用 CLI 或在 Mac、Linux 等上运行的其他库向应用程序主体添加角色?

4

3 回答 3

0

我相信这可以通过在跨平台的 Powershell 7 上运行Update-MgRoleManagementDirectoyRoleAssignment的模块中的命令来完成。Microsoft.Graph

从 Powershell 7:

Install-Module Microsoft.Graph

然后:

Connect-Graph <follow instructions to authenticate your commands>
Update-MgRoleManagementDirectoyRoleAssignment -PrincipalID <your service princiapl> -RoleDefinitionID <Role Definition>

Microsoft.Graph.Identity 模块的文档似乎很少/不存在,但您可以在此处查看 Microsoft Graph API 描述以获取指导: https ://docs.microsoft.com/en-us/azure/active-directory/用户组角色/角色分配图

于 2020-07-15T18:05:15.430 回答
0

可以在此处找到如何执行此操作的好文章:https ://blogs.msdn.microsoft.com/aaddevsup/2018/08/29/how-to-add-an-azure-ad-role-to-a-企业应用服务主体/

代码如下所示:

# Fetch User Account Administrator role instance
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'User Account Administrator'}

# If role instance does not exist, instantiate it based on the role template
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object {$_.displayName -eq 'User Account Administrator'}
    Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId

    # Fetch User Account Administrator role instance again
    $role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'User Account Administrator'}
}

#Now that we have the object IDs for the AAD role, we will need to get both object IDs to add the role to the enterprise application. We can use the command below :
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId $BeckeChB2Cs0v1GraphApiAdSPN.ObjectId
于 2019-01-07T22:43:36.363 回答
0

不幸的是,据我所知, Linux 上没有我们可以将成员添加到 Azure 组织角色的库工作。

目前,我们可以使用 Azure CLI 2.0 管理 Azure AD用户应用程序服务主体,但不能使用 CLI 2.0 将成员添加到 azure 组织角色。

az role assignment create --assignee <my app id>  --role <role id>

此命令az role assignment用于管理资源组角色。例如,我们要授予用户Owner权限。我们可以在此屏幕截图中通过 Azure 门户找到此角色: 在此处输入图像描述

关于组织角色,我们可以在这篇官方文章中找到它们,例如计费管理员合规管理员。与资源组权限不同。

您可以向此链接提供反馈,您在此链接中分享的所有反馈都将由 Microsoft 工程团队进行监控和审核。

============
更新: 在此处输入图像描述

于 2017-05-23T04:16:19.537 回答