implementing-azure-ad-privileged-identity-management
配置 Microsoft Entra 特权身份管理(PIM)以强制执行即时角色激活(Just-in-Time)、审批工作流和 Azure AD 特权角色的访问审查。
Best use case
implementing-azure-ad-privileged-identity-management is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
配置 Microsoft Entra 特权身份管理(PIM)以强制执行即时角色激活(Just-in-Time)、审批工作流和 Azure AD 特权角色的访问审查。
Teams using implementing-azure-ad-privileged-identity-management should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/implementing-azure-ad-privileged-identity-management/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How implementing-azure-ad-privileged-identity-management Compares
| Feature / Agent | implementing-azure-ad-privileged-identity-management | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
配置 Microsoft Entra 特权身份管理(PIM)以强制执行即时角色激活(Just-in-Time)、审批工作流和 Azure AD 特权角色的访问审查。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 实施 Azure AD 特权身份管理
## 概述
Microsoft Entra 特权身份管理(Privileged Identity Management,PIM)提供基于时间和基于审批的角色激活,以降低对关键资源的过度、不必要或滥用访问的风险。PIM 将永久(常设)权限分配替换为有资格的分配,要求用户在使用前显式激活其角色,并可配置持续时间、MFA 强制执行、审批工作流和理由要求。这是 Microsoft 环境中零信任(Zero Trust)身份治理的核心组件。
## 前置条件
- Microsoft Entra ID P2 或 Microsoft Entra ID Governance 许可证
- 全局管理员或特权角色管理员角色
- 用于 Azure 资源角色管理的 Azure 订阅
- 为所有特权用户配置 MFA
- 管理员账户配备 Microsoft Authenticator 或 FIDO2 密钥
## 核心概念
### 分配类型
| 类型 | 行为 | 使用场景 |
|------|----------|----------|
| 有资格的 | 用户在使用前必须激活角色;在配置的持续时间后过期 | 日常管理工作 |
| 活跃的 | 角色始终处于激活状态;无需激活 | 服务账户、紧急访问账户 |
| 时限型 | 任一类型,带有明确的开始/结束日期 | 临时项目访问、承包商访问 |
### PIM 激活流程
```
具有有资格分配的用户
│
├── 打开 PIM 门户 → 我的角色
│
├── 点击所需角色上的"激活"
│
├── 提供理由和可选的工单号
│
├── 完成 MFA 挑战(如需要)
│
├── [如需审批] → 向审批者发送通知
│ │
│ ├── 审批者审查并批准/拒绝
│ └── 用户收到决定通知
│
├── 角色激活,持续配置的时间(如 8 小时)
│
└── 持续时间到期后角色自动停用
```
### 支持的资源类型
1. **Microsoft Entra 角色**:全局管理员、Exchange 管理员、安全管理员等
2. **Azure 资源角色**:订阅/资源组上的所有者、参与者、用户访问管理员
3. **PIM 用于组**:管理特权安全组的成员身份
## 实施步骤
### 步骤 1:规划角色分配
审计当前的永久角色分配并确定哪些应转换为有资格状态:
| 当前角色 | 永久持有者 | 行动 |
|-------------|-------------------|--------|
| 全局管理员 | 2-3 名管理员 | 转换为有资格,保留 1 个紧急访问账户为活跃 |
| Exchange 管理员 | IT 团队 | 全部转换为有资格 |
| 安全管理员 | SOC 团队 | 转换为有资格 |
| 用户管理员 | 帮助台 | 转换为有资格 |
| 应用程序管理员 | DevOps | 转换为有资格 |
最佳实践:维护不超过 2 个永久的全局管理员(紧急访问账户)。
### 步骤 2:配置角色设置
对每个 Entra 目录角色,配置 PIM 设置:
**通过 Microsoft Entra 管理中心:**
1. 导航到"身份治理 > 特权身份管理 > Microsoft Entra 角色"
2. 选择"设置"并选择要配置的角色
3. 配置以下内容:
**激活设置:**
- 最大激活持续时间:8 小时(推荐;最大 72 小时)
- 激活时要求 MFA:启用
- 要求理由:启用
- 要求工单信息:启用(用于变更管理集成)
- 要求审批:对全局管理员、安全管理员启用
**分配设置:**
- 允许永久有资格分配:否(设置过期)
- 有资格分配在以下时间后过期:6 个月(需要重新认证)
- 允许永久活跃分配:仅用于紧急访问账户
- 活跃分配时要求 MFA:启用
- 活跃分配时要求理由:启用
**通知设置:**
- 成员被分配有资格时发送电子邮件:角色分配者、管理员
- 成员激活时发送电子邮件:管理员、安全团队
- 有资格成员激活角色时发送电子邮件:角色受让人
### 步骤 3:通过 Microsoft Graph API 配置
```python
import requests
# 获取 Microsoft Graph 令牌
def get_graph_token(tenant_id, client_id, client_secret):
url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
data = {
"grant_type": "client_credentials",
"client_id": client_id,
"client_secret": client_secret,
"scope": "https://graph.microsoft.com/.default"
}
response = requests.post(url, data=data)
return response.json()["access_token"]
# 创建有资格的角色分配
def create_eligible_assignment(token, role_definition_id, principal_id,
directory_scope="/", duration_hours=8):
url = "https://graph.microsoft.com/v1.0/roleManagement/directory/roleEligibilityScheduleRequests"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
body = {
"action": "adminAssign",
"justification": "PIM 有资格分配",
"roleDefinitionId": role_definition_id,
"directoryScopeId": directory_scope,
"principalId": principal_id,
"scheduleInfo": {
"startDateTime": "2025-01-01T00:00:00Z",
"expiration": {
"type": "afterDuration",
"duration": "P180D" # 180 天有资格窗口
}
}
}
response = requests.post(url, headers=headers, json=body)
return response.json()
# 激活角色(用户自助服务)
def activate_role(token, role_definition_id, principal_id, justification,
duration_hours=8):
url = "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
body = {
"action": "selfActivate",
"principalId": principal_id,
"roleDefinitionId": role_definition_id,
"directoryScopeId": "/",
"justification": justification,
"scheduleInfo": {
"startDateTime": None, # 立即
"expiration": {
"type": "afterDuration",
"duration": f"PT{duration_hours}H"
}
}
}
response = requests.post(url, headers=headers, json=body)
return response.json()
```
### 步骤 4:配置访问审查
设置定期访问审查以验证有资格的分配仍然适当:
1. 导航到"身份治理 > 访问审查 > 新建访问审查"
2. 配置:
- 审查范围:特权身份管理角色分配
- 角色:选择所有关键角色(全局管理员、安全管理员等)
- 审查者:经理或带理由的自我审查
- 频率:关键角色每季度,其他每半年
- 自动应用结果:对无响应的审查移除访问权限
- 持续时间:审查者 14 天内响应
### 步骤 5:配置告警
启用 PIM 安全告警:
| 告警 | 触发条件 | 行动 |
|-------|---------|--------|
| 全局管理员过多 | > 5 个全局管理员 | 审查并减少 |
| 在 PIM 外分配角色 | 直接角色分配 | 调查并转换为 PIM |
| 角色不要求 MFA | 无 MFA 激活 | 启用 MFA 要求 |
| 过时的有资格分配 | 90 天内未激活 | 审查并可能移除 |
| 潜在过时的服务账户 | 未使用的活跃分配 | 调查并停用 |
## 验证清单
- [ ] 所有永久特权角色分配已转换为有资格(紧急访问除外)
- [ ] 紧急访问账户配置为活跃并设置监控告警
- [ ] 所有角色激活要求 MFA
- [ ] 全局管理员和安全管理员配置了审批工作流
- [ ] 关键角色的最大激活持续时间设置为 8 小时或更短
- [ ] 有资格分配在 6 个月后过期(需要重新认证)
- [ ] 激活要求理由和工单信息
- [ ] 角色分配和激活的电子邮件通知已配置
- [ ] 所有特权角色已安排季度访问审查
- [ ] PIM 告警已启用并每周审查
- [ ] 审计日志已转发到 SIEM 进行监控
## 参考资料
- [Microsoft Entra PIM 文档](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-configure)
- [规划 PIM 部署](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-deployment-plan)
- [开始使用 PIM](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-getting-started)
- [Microsoft Graph PIM API](https://learn.microsoft.com/en-us/graph/api/resources/privilegedidentitymanagementv3-overview)Related Skills
performing-ssl-certificate-lifecycle-management
SSL/TLS 证书生命周期管理涵盖请求、颁发、部署、监控、续期和吊销 X.509 证书的完整流程。不当的证书管理是导致中断和安全事件的主要原因。本技能涵盖使用 Python 和 ACME 协议工具自动化整个证书生命周期。
performing-privileged-account-discovery
发现并清点企业基础设施中的所有特权账户,包括域管理员、本地管理员、服务账户、数据库管理员、云 IAM 角色和应用管理员账户。
performing-privileged-account-access-review
对特权账户进行系统性审查,验证访问权限,识别过多权限,并在 PAM 基础设施中执行最小权限原则。
performing-indicator-lifecycle-management
指标生命周期管理跟踪 IOC 从初始发现到验证、富化、部署、监控和最终停用的全过程。本技能涵盖实施 IOC 质量评估、老化策略、置信度衰减评分、误报跟踪、命中率监控和自动到期的系统化流程,以维护高质量、可操作的指标数据库,最大限度减少分析师疲劳并提高检测效能。
managing-cloud-identity-with-okta
本技能涵盖将 Okta 部署为云环境集中身份提供商,配置与 AWS、Azure 和 GCP 的 SSO 集成,使用 Okta FastPass 部署抗钓鱼 MFA,管理用户预配置和取消配置的生命周期自动化,以及基于设备态势和风险信号实施自适应访问策略。
implementing-zero-trust-with-hashicorp-boundary
使用 HashiCorp Boundary 实现具备动态凭据代理、会话录制和 Vault 集成的身份感知零信任基础设施访问管理。
implementing-zero-trust-with-beyondcorp
使用身份感知代理(IAP,Identity-Aware Proxy)、上下文感知访问策略、设备信任验证和 Access Context Manager,部署 Google BeyondCorp Enterprise 零信任访问控制,对 GCP 资源和内部应用强制执行基于身份和安全态势的访问。
implementing-zero-trust-network-access
通过配置身份感知代理、微分段、基于条件访问策略的持续验证,以及在 AWS、Azure 和 GCP 环境中以 BeyondCorp 风格的架构替代传统 VPN 访问,在云环境中实施零信任网络访问(ZTNA)。
implementing-zero-trust-network-access-with-zscaler
使用 Zscaler 实施零信任网络访问(Zero Trust Network Access,ZTNA),通过 Zscaler Private Access(ZPA)配置应用分段、访问策略和连接器,替代传统 VPN 架构
implementing-zero-trust-in-cloud
本技能指导组织按照 NIST SP 800-207 和 Google BeyondCorp 原则在云环境中实施零信任(Zero Trust)架构,涵盖以身份为中心的访问控制、微分段(Micro-Segmentation)、持续验证、设备信任评估,以及部署身份感知代理(Identity-Aware Proxy)以消除 AWS、Azure 和 GCP 环境中的隐式网络信任。
implementing-zero-trust-for-saas-applications
使用 CASB、SSPM、条件访问策略、OAuth 应用治理和会话控制,为 SaaS 应用实施零信任访问控制, 对云托管服务强制执行身份验证、设备合规性检查和数据保护。
implementing-zero-trust-dns-with-nextdns
将 NextDNS 实施为零信任 DNS 过滤层,提供加密解析、威胁情报阻断、隐私保护,以及跨所有端点的组织策略执行。