如何自动化审批Microsoft Entra角色的PIM激活请求?
自动化审批PIM角色激活请求(PowerShell实现)
前提
已通过New-MgRoleManagementDirectoryRoleAssignmentScheduleRequest提交角色激活请求,当前请求处于待审批状态,需通过PowerShell自动化完成审批流程。
步骤1:连接Microsoft Graph并获取待审批请求
先确保已安装并更新Microsoft Graph PowerShell模块,再连接到Graph并筛选待审批请求:
# 安装/更新Graph模块(首次运行执行) Install-Module Microsoft.Graph.RoleManagement -Force -AllowClobber Update-Module Microsoft.Graph.RoleManagement # 连接到Graph,指定所需权限 Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory", "PrivilegedAccess.ReadWrite.AzureAD" # 获取所有状态为待审批的角色激活请求 $pendingRequests = Get-MgRoleManagementDirectoryRoleAssignmentScheduleRequest -Filter "Status eq 'PendingApproval'"
步骤2:自动化审批请求
遍历待审批请求,调用Graph API完成审批:
# 批量审批所有待审批请求(可添加过滤条件精准定位) foreach ($req in $pendingRequests) { # 确认请求关联审批实例 if ($req.ApprovalId) { try { # 执行审批,需填写理由 Invoke-MgApproveRoleManagementDirectoryRoleAssignmentScheduleRequestApproval ` -RoleAssignmentScheduleRequestId $req.Id ` -ApprovalId $req.ApprovalId ` -BodyParameter @{ ReviewResult = "Approve" # 拒绝则改为"Deny" Justification = "自动化审批:符合预设权限激活规则" } Write-Host "请求ID $($req.Id) 已成功审批" } catch { Write-Host "审批请求ID $($req.Id) 失败:$($_.Exception.Message)" } } }
精准过滤请求示例
若只需审批特定角色/用户的请求,可修改-Filter参数:
# 过滤特定角色(替换为目标角色的RoleDefinitionId)和用户的待审批请求 $targetRoleId = "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx" $targetUserId = "yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyy" $filteredRequests = Get-MgRoleManagementDirectoryRoleAssignmentScheduleRequest -Filter "Status eq 'PendingApproval' and TargetScheduleInfo/RoleDefinitionId eq '$targetRoleId' and PrincipalId eq '$targetUserId'"
权限说明
执行操作需具备以下权限之一:
- 全局管理员
- 特权角色管理员
- 被分配为该角色激活请求的审批人
截图内容说明
截图展示了Azure AD特权身份管理(PIM)的待审批请求列表界面,包含请求者姓名、申请的角色名称、请求提交时间、当前状态(待审批)等核心信息,与通过
Get-MgRoleManagementDirectoryRoleAssignmentScheduleRequest获取的数据字段对应。
内容的提问来源于stack exchange,提问作者Yashas .M
相关产品推荐
相关产品推荐

