你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
New-AzureADServiceAppRoleAssignment
将应用角色分配给用户、组或其他服务主体。
语法
New-AzureADServiceAppRoleAssignment
-ObjectId <String>
[-InformationAction <ActionPreference>]
[-InformationVariable <String>]
-Id <String>
-PrincipalId <String>
-ResourceId <String>
[<CommonParameters>]
说明
New-AzureADServiceAppRoleAssignment cmdlet 将资源服务主体中的应用角色分配给用户、组或其他服务主体。 分配给服务主体的应用角色也称为应用程序权限。
注意
此处所述的行为适用于 Connect-AzureAD
在没有任何参数的情况下调用或使用 Microsoft 拥有的应用程序标识时。 请参阅 示例 4 ,详细了解使用客户拥有的应用注册或服务标识进行连接时的差异。
示例
示例 1:将应用角色分配给另一个服务主体
PS C:\> Connect-AzureAD
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $resource.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $client.ObjectId
在此示例中,为客户端服务主体分配应用角色 (应用程序权限) 由资源服务主体 (定义,例如 API) :
-
ObjectId
:资源服务主体的 ObjectId (例如 API) 。 -
ResourceId
:资源服务主体的 ObjectId (例如 API) 。 -
Id
: (资源服务主体上定义的应用角色的 ID) 分配给客户端服务主体。 如果资源应用上未定义任何应用角色,则可以使用00000000-0000-0000-0000-000000000000
。 -
PrincipalId
:要向其分配应用角色的客户端服务主体的 ObjectId。
注意
此示例在调用 时不带任何参数时 Connect-AzureAD
适用。 请参阅 示例 4 ,了解如何在使用客户拥有的应用注册或服务标识进行连接时使用此 cmdlet。
示例 2:向用户分配应用角色
PS C:\> Connect-AzureAD
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $resource.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $user.ObjectId
在此示例中,将向用户分配由资源应用定义的应用角色:
-
ObjectId
:应用的服务主体的 ObjectId。 -
ResourceId
:应用的服务主体的 ObjectId。 -
Id
:应用服务主体上定义的应用角色的 ID () 分配给用户。 如果尚未为资源应用定义任何应用角色,则可以使用00000000-0000-0000-0000-000000000000
来指示应用已分配给用户。 -
PrincipalId
:要向其分配应用角色的用户的 ObjectId。
注意
此示例在调用 时不带任何参数时 Connect-AzureAD
适用。 请参阅 示例 4 ,了解如何在使用客户拥有的应用注册或服务标识进行连接时使用此 cmdlet。
示例 3:将应用角色分配给组
PS C:\> Connect-AzureAD
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $resource.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $group.ObjectId
在此示例中,为组分配了由资源应用定义的应用角色。 作为已分配组直接成员的所有用户都被视为分配应用角色:
-
ObjectId
:应用的服务主体的 ObjectId。 -
ResourceId
:应用的服务主体的 ObjectId。 -
Id
: (要分配给组的应用服务主体上定义的应用角色的 ID) 。 如果尚未在资源应用上定义应用角色,则可以使用00000000-0000-0000-0000-000000000000
来指示应用已分配给组。 -
PrincipalId
:要向其分配应用角色的组的 ObjectId。
注意
此示例在调用 时不带任何参数时 Connect-AzureAD
适用。 请参阅 示例 4 ,了解如何在使用客户拥有的应用注册或服务标识进行连接时使用此 cmdlet。
示例 4:使用客户拥有的应用或服务标识进行连接时
PS C:\> Connect-AzureAD -TenantId $tenantOrDomain -ApplicationId $appId -CertificateThumbprint $thumb
PS C:\> New-AzureADServiceAppRoleAssignment -ObjectId $client.ObjectId -ResourceId $resource.ObjectId -Id $appRole.Id -PrincipalId $client.ObjectId
使用客户拥有的应用注册或服务标识连接到 Azure AD PowerShell 模块时,此 cmdlet 的行为会更改,包括:
- 作为服务主体进行连接时,和
- 将 参数与为客户拥有的应用注册或服务标识获取的访问令牌一起使用
AadAccessToken
时。
在这些情况下,此 cmdlet 仅用于将应用角色分配给由 和 PrincipalId
参数标识ObjectId
的另一个服务主体:
-
ObjectId
:要向其分配应用角色的客户端服务主体的 ObjectId。 -
ResourceId
:资源服务主体的 ObjectId (例如 API) 。 -
Id
: (资源服务主体上定义的应用角色的 ID) 分配给客户端服务主体。 如果资源应用上未定义任何应用角色,则可以使用00000000-0000-0000-0000-000000000000
。 -
PrincipalId
:要向其分配应用角色的客户端服务主体的 ObjectId。
使用客户拥有的应用或服务标识进行连接时,分别使用 New-AzureADUserAppRoleAssignment 和 New-AzureADGroupAppRoleAssignment 为用户和组创建应用角色分配。
参数
-Id
指定要分配的资源服务主体上定义 () 的应用角色的 ID。 如果尚未在资源应用上定义应用角色,则可以使用 00000000-0000-0000-0000-000000000000
指示资源应用或服务的分配,而无需指定应用角色。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-InformationAction
指定此 cmdlet 如何响应信息事件。 此参数的可接受值为:
- 继续
- 忽略
- 查询
- SilentlyContinue
- 停止
- 挂起
类型: | ActionPreference |
别名: | infa |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-InformationVariable
指定信息变量。
类型: | String |
别名: | iv |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ObjectId
指定要分配给用户、组或其他服务主体的资源服务主体 ((例如应用或 API) )的 ObjectId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-PrincipalId
指定要向其分配应用角色的用户、组或其他服务主体的 ObjectId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-ResourceId
指定要分配给用户、组或其他服务主体的资源服务主体 ((例如应用或 API) )的 ObjectId。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
备注
请参阅 New-AzureADServiceAppRoleAssignment 到 Microsoft Graph PowerShell 的迁移指南。