使用SAML与Azure AD构建身份联合 是做什么的?
概述
身份联合允许由一个身份提供者验证的用户访问另一个提供者管理的资源,而无需维护单独的凭据。本技能涵盖在组织的本地Active Directory(通过AD FS或第三方IdP)与Microsoft Entra ID(原Azure AD)之间建立SAML 2.0联合,以及为第三方SaaS应用配置联合SSO。联合消除了密码同步的顾虑,将身份验证权限保留在本地,同时将SSO扩展到云资源。
使用时机
- 部署或配置本地环境中的联合身份能力时
- 建立符合合规要求的安全控制时
- 构建或改进此领域的安全架构时
- 进行需要此实现的安全评估时
前提条件
- 本地Active Directory域
- AD FS 2019+ 或第三方SAML IdP(Okta、Ping等)
- Microsoft Entra ID租户(建议使用P1或P2许可证)
- Azure AD Connect(如果使用密码哈希同步作为备份的混合身份)
- 用于联合端点的公共TLS证书
- 联合服务名称的DNS记录
核心概念
联合模型
| 模型 | 身份验证授权 | 使用场景 |
|---|
| 联合(AD FS) | 本地AD FS | 法规要求将身份验证保留在本地 |
| 托管(PHS) | 带密码哈希同步的Azure AD | 最简云身份验证,无需AD FS |
| 托管(PTA) | 通过直通代理的本地验证 | 云身份验证针对本地AD验证 |
| 第三方联合 | 外部IdP(Okta、Ping) | 多IdP环境 |
SAML联合架构
用户 → 云应用(SP)
│
└── 重定向到Azure AD
│
├── Azure AD检查联合域
│
└── 重定向到本地AD FS
│
├── AD FS针对Active Directory进行身份验证
│
├── AD FS颁发SAML令牌
│
└── 令牌回传给Azure AD
│
├── Azure AD验证联合信任
│
├── Azure AD颁发自己的令牌
│
└── 用户获取云应用的访问令牌
联合信任组件
| 组件 | 描述 |
|---|
| 令牌签名证书 | IdP用于签名SAML断言的X.509证书 |
| 联合元数据 | 描述IdP端点和能力的XML文档 |
| 信赖方信任 | 每个SP(Azure AD)在AD FS中的配置 |
| 声明规则 | 将AD属性转换为SAML声明 |
| 颁发者URI | IdP的唯一标识符(实体ID) |
工作流
第1步:准备AD FS基础设施
# 安装AD FS角色
Install-WindowsFeature ADFS-Federation -IncludeManagementTools
# 配置AD FS场
Install-AdfsFarm `
-CertificateThumbprint $certThumbprint `
-FederationServiceDisplayName