如何通过PowerShell配置PIM合格与活动角色分配及权限、认证方式
通过PowerShell配置Microsoft Entra PIM合格与活动角色分配
所需权限级别
执行PIM角色分配配置操作,身份需具备以下角色之一:
- Privileged Role Administrator:默认的PIM管理角色,可管理所有角色的合格/活动分配
- Global Administrator:拥有全局权限,可执行所有PIM操作
若使用服务主体(应用注册)执行操作,需:
- 为服务主体分配上述角色之一
- 在Microsoft Graph API中授予
PrivilegedAccess.ReadWrite.AzureAD应用权限
身份验证方式
两种方式均支持,具体如下:
1. 服务账号(用户身份)
直接使用具备权限的服务账号(或普通用户账号)登录:
Connect-MgGraph -Scopes "PrivilegedAccess.ReadWrite.AzureAD"
登录时需完成MFA验证(若账号开启MFA)。
2. 客户端ID+密钥(服务主体)
通过应用注册创建服务主体后,使用客户端ID、租户ID和密钥登录:
$clientId = "<你的应用注册客户端ID>" $tenantId = "<你的租户ID>" $clientSecret = ConvertTo-SecureString "<你的客户端密钥>" -AsPlainText -Force Connect-MgGraph -ClientId $clientId -TenantId $tenantId -ClientSecret $clientSecret -Scopes "PrivilegedAccess.ReadWrite.AzureAD"
配置合格角色分配
合格角色允许用户在需要时激活角色,而非永久拥有。使用New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest命令创建分配:
# 替换为实际参数 $roleDefinitionId = "<目标角色的定义ID,例如全局管理员:62e90394-69f5-4237-9190-012177145e10>" $principalId = "<用户/服务主体的对象ID>" $tenantId = "<你的租户ID>" # 设置有效期(示例:1年) $scheduleInfo = @{ StartDateTime = Get-Date Expiration = @{ Type = "AfterDuration" Duration = "P365D" } } # 创建合格角色分配请求 New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest -Action "AdminAssign" ` -RoleDefinitionId $roleDefinitionId ` -PrincipalId $principalId ` -DirectoryScopeId "/$tenantId" ` -ScheduleInfo $scheduleInfo
配置活动角色分配
活动角色为即时生效的角色分配,无需用户激活。使用New-MgRoleManagementDirectoryRoleAssignmentScheduleRequest命令创建:
# 替换为实际参数 $roleDefinitionId = "<目标角色的定义ID>" $principalId = "<用户/服务主体的对象ID>" $tenantId = "<你的租户ID>" # 设置有效期(示例:8小时) $scheduleInfo = @{ StartDateTime = Get-Date Expiration = @{ Type = "AfterDuration" Duration = "PT8H" } } # 创建活动角色分配请求 New-MgRoleManagementDirectoryRoleAssignmentScheduleRequest -Action "AdminAssign" ` -RoleDefinitionId $roleDefinitionId ` -PrincipalId $principalId ` -DirectoryScopeId "/$tenantId" ` -ScheduleInfo $scheduleInfo
验证分配结果
- 验证合格角色分配:
Get-MgRoleManagementDirectoryRoleEligibilitySchedule -Filter "PrincipalId eq '<对象ID>'"
- 验证活动角色分配:
Get-MgRoleManagementDirectoryRoleAssignmentSchedule -Filter "PrincipalId eq '<对象ID>'"
内容的提问来源于stack exchange,提问作者GUNDRAJU KRUPA VANI
相关产品推荐
相关产品推荐

