New-AzRoleAssignment:无法验证参数“ ObjectId”上的参数

时间:2019-12-03 08:39:05

标签: azure azure-active-directory azure-container-registry

下面的代码是早期版本,它与AzureRm一起使用

$registry = Get-AzContainerRegistry -ResourceGroupName "somenamee" -Name "acrcontainername"
$sp = Get-AzADServicePrincipal -ServicePrincipalName "............."
$role = New-AzRoleAssignment -ObjectId $sp.Id -RoleDefinitionName 'acrpull' -Scope $registry.Id  

现在使用最新的Azure Module Az,它将不起作用。

New-AzRoleAssignment : Cannot validate argument on parameter 'ObjectId'. The     argument is null or empty. Provide an
argument that is not null or empty, and then try the command again.
At line:1 char:40
+ $role = New-AzRoleAssignment -ObjectId $sp.Id -RoleDefinitionName $ro ...
+                                        ~~~~~~
+ CategoryInfo          : InvalidData: (:) [New-AzRoleAssignment],     ParameterBindingValidationException
    + FullyQualifiedErrorId :         ParameterArgumentValidationError,Microsoft.Azure.Commands.Resources.NewAzureRoleAssignmentCommand

错误:

//*[@id="srp-river-results-listing1"]/div/div[2]/a/h3

2 个答案:

答案 0 :(得分:0)

  

AzureRm我使用了用户名和密码,对于Az我使用了服务主体

如果将Azure Powershell与服务主体一起使用,则需要向服务主体授予权限。

有两个选项(您需要在AAD租户中以Global administrator身份登录azure门户,我建议您使用选项2):

1。导航到Azure Active Directory-> Roles and administrators->单击Global administrator-> Add assignments->添加服务主体。

2。导航到Azure Active Directory-> App registrations->查找您的服务主体的AD App,并添加Application.ReadWrite.All的{​​{1}}权限,如下所示。

enter image description here

enter image description here


在AAD中授予权限后,命令Azure Active Directory Graph将起作用。要使用Get-AzADServicePrincipal -ApplicationId xxxxx,您的服务主体应为订阅或ContainerRegistry中的New-AzRoleAssignment。如果您没有赋予Owner角色,它将无法分配角色分配。

Owner-> Owner-> Access control (IAM)-> Add->在门户中导航到订阅或ContainerRegistry,将服务主体添加为{{ 1}},详细信息here

答案 1 :(得分:0)

1。导航到Azure Active Directory->角色和管理员->单击全局管理员->添加分配->添加服务主体。

您不能将服务主体添加到全局管理员。

2。导航到Azure Active Directory->应用程序注册->找到您的服务主体的AD App并添加 Application.ReadWrite.Azure Active Directory图形的所有权限 如下所示。

我尝试添加以下权限:

Azure Active Directory图形

  • Application.ReadWrite.All
  • Directory.ReadWrite.All

Microsoft Graph

  • Application.ReadWrite.All
  • Directory.ReadWrite.All

Az模块4.7在Powershell 7下仍然具有Get-AzADServicePrincipal错误。