4. 企业级身份与访问管理(IAM)架构

在 Azure 生产环境中,身份是新的安全边界。企业级 IAM 架构的目标不是“让用户能登录”,而是让每一次访问都经过明确验证、最小授权和持续评估。围绕这一目标,Azure 提供了两条身份主线:一条是云原生身份(Azure AD / Entra ID 直接管理用户与凭据),另一条是混合身份(通过 Azure AD Connect 将本地 AD DS 用户同步到云端)。选择哪条路线,取决于企业是否仍有大量本地应用依赖域账户、是否存在多林结构、以及是否要求密码哈希留在本地。

身份源与同步:Azure AD Connect 还是云原生

如果企业已有本地 Active Directory,并且短期内无法迁移全部应用,通常采用 Azure AD Connect 做目录同步。同步的核心不是“把用户复制上去”,而是建立对象锚点(Source Anchor)和身份匹配规则。生产环境建议使用密码哈希同步(PHS)作为默认认证方式,因为它不要求开放入站端口,且支持泄露凭据检测;若合规要求密码校验必须发生在本地,则使用直通认证(PTA)并部署至少两个 PTA 代理实现高可用。联合身份(AD FS)仅在需要智能卡、第三方 MFA 或复杂声明规则时保留。

同步范围要严格控制。使用 OU 过滤和属性过滤,只同步需要访问云资源的账户,避免把服务账户、测试账户和过期账户带入云端。同步周期默认 30 分钟,关键变更可通过 Start-ADSyncSyncCycle -PolicyType Delta 手动触发。判断同步是否健康,重点看三个信号:连接器空间无导出错误、Metaverse 中对象无重复、以及云端用户 onPremisesSyncEnabled 为 true。

条件访问:把零信任策略落到每次登录

条件访问(Conditional Access)是零信任的执行点。它不直接“允许或拒绝”,而是根据信号组合决定是否要求额外验证或限制会话。生产环境建议按“先报告、再强制”的顺序推进:先以 Report-only 模式观察策略命中情况,确认不会误伤合法用户后再启用。

一个可落地的基线策略组合如下:

  • 所有用户访问所有云应用,要求 MFA,排除紧急访问账户。
  • 管理员角色登录,要求 MFA 且设备必须合规或已加入 Azure AD。
  • 来自非受信国家/地区的登录,阻止访问或要求 MFA + 设备合规。
  • 旧版身份验证客户端(如 IMAP、SMTP AUTH),直接阻止。
  • 高风险登录(Identity Protection 判定),要求密码更改或阻止。

策略设计要避免“全有全无”。例如,对财务系统可以要求“公司网络或合规设备 + MFA”,对普通办公应用只要求 MFA。命名策略时带上编号和用途,如 CA-001-AllUsers-MFA,便于审计和排障。

MFA、PIM 与服务主体:最小权限的三道闸门

MFA 解决“你是谁”,PIM 解决“你何时能成为谁”,服务主体与托管标识解决“应用如何安全地访问资源”。三者缺一不可。

PIM(Privileged Identity Management)的核心是“按需激活、限时有效、审批留痕”。生产环境不应把全局管理员、订阅所有者、安全管理员等角色永久分配给个人。正确做法是:用户拥有“符合条件”的角色分配,激活时选择时长(如 2 小时)、填写工单号、通过 MFA 和审批,系统自动记录激活日志。激活后角色到期自动失效,避免长期高权限暴露。

服务主体(Service Principal)用于应用身份,但它的凭据(客户端密码或证书)容易过期或被泄露。更安全的做法是使用托管标识(Managed Identity):由 Azure 自动管理凭据,应用无需在代码或配置中保存任何密码。系统分配的托管标识随资源生命周期存在,用户分配的托管标识可跨资源复用。应用通过 DefaultAzureCredential 或 IMDS 端点获取令牌,再访问 Key Vault、Storage 或 SQL Database。

Azure 企业级 IAM 零信任访问控制链 身份源 本地 AD DS Azure AD Connect PHS / PTA / 联合 云原生身份 Entra ID 用户/组 动态组 / 角色 B2B / B2C 条件访问策略引擎 信号:用户 / 设备 / 位置 / 应用 / 风险 决策:允许 / 要求 MFA / 限制会话 / 阻止 模式:Report-only → 强制 同步 评估 MFA 多因素认证 Authenticator / FIDO2 / 证书 解决“你是谁” 排除紧急访问账户 PIM 特权身份管理 符合条件 → 激活 → 限时 审批 + 工单 + 审计日志 解决“何时能成为谁” 服务主体 / 托管标识 应用身份,无密码凭据 系统分配 / 用户分配 解决“应用如何访问资源” 目标资源与数据平面 Azure 资源 · Key Vault · Storage · SQL · Microsoft Graph · 第三方 SaaS 访问结果写入 Entra ID 登录日志、审计日志与 PIM 激活记录 持续评估与风险信号回传

生产环境落地要点与判断依据

第一,紧急访问账户(Break-glass)必须保留至少两个,使用云原生账户、长密码、排除在所有条件访问策略之外,并对其登录行为单独告警。第二,所有管理员角色都应通过 PIM 激活,永久分配只保留给紧急账户。第三,服务主体优先使用托管标识;若必须使用客户端密码,设置 6 个月轮换并存入 Key Vault,禁止硬编码。第四,条件访问策略变更前先在 Report-only 模式运行 1~2 周,观察登录日志中“策略已应用”与“策略未应用”的比例,确认无合法用户被误拦截后再切换为“启用”。

判断 IAM 架构是否达到生产标准,可以看四个可观测信号:条件访问策略覆盖率是否达到 100%(排除紧急账户)、PIM 激活是否全部带审批和 MFA、托管标识是否替代了大部分客户端密码、以及登录日志中高风险登录是否被自动阻断或要求密码更改。

最后,IAM 不是一次性配置,而是持续运营。建议每月审查一次 PIM 激活记录和角色分配,每季度审查一次条件访问策略命中情况,每半年轮换一次仍在使用客户端密码的服务主体。只有把身份、条件、特权和应用身份四条线同时收紧,零信任访问控制才真正落到生产环境。