你当前正在访问 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 仅用于将应用角色分配给由 ObjectId
和 PrincipalId
参数标识的另一个服务主体:
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
来指示资源应用或服务的分配,而无需指定应用角色。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InformationAction
指定此 cmdlet 如何响应信息事件。 此参数的可接受值为:
- 继续
- 忽略
- 查询
- SilentlyContinue
- 停止
- 挂起
Type: | ActionPreference |
Aliases: | infa |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InformationVariable
指定信息变量。
Type: | String |
Aliases: | iv |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ObjectId
指定要分配给用户、组或其他服务主体的资源服务主体 ((例如应用或 API) )的 ObjectId。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PrincipalId
指定要向其分配应用角色的用户、组或其他服务主体的 ObjectId。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResourceId
指定要分配给用户、组或其他服务主体的资源服务主体 ((例如应用或 API) )的 ObjectId。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
备注
请参阅 New-AzureADServiceAppRoleAssignment 到 Microsoft Graph PowerShell 的迁移指南。
相关链接
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈