1. 零信任身份源接入与用户目录同步
为什么身份源接入是零信任的第一块基石
零信任的核心原则是"永不信任、始终验证",而验证的前提是知道"谁在请求访问"。企业现有的用户身份通常沉淀在 LDAP 或 Active Directory 中,零信任控制平面本身并不存储这些用户,它需要通过标准协议把目录中的用户、组和属性同步过来,形成一份可供策略引擎实时查询的身份清单。没有这一步,后续的 MFA 策略、设备绑定、最小权限访问都无从谈起。
本案例的任务是:把一台企业 LDAP 目录接入零信任控制平面,完成用户、组、属性的同步映射,并验证同步后的身份数据能够被访问策略正确匹配。
接入前需要确认的三类信息
- 目录连接信息:LDAP 服务器地址、端口(389 明文 / 636 TLS)、Base DN、绑定账号 DN 与密码。绑定账号只需读取权限,不要用域管理员。
- 同步范围:指定要同步的 OU 或组,避免把服务账号、测试账号一并拉入。常用做法是只同步
ou=employees下的用户。 - 属性映射:零信任平台需要至少一个唯一标识(如
uid或sAMAccountName)、显示名(cn)、邮箱(mail)、所属组(memberOf)。这些字段决定后续策略能否按人和组匹配。
绑定账号建议单独创建,例如
cn=zt-reader,ou=svc,dc=corp,dc=example,dc=com,仅授予对目标 OU 的读取权限。这样即使凭据泄露,影响面也被限制在只读范围。同步链路与数据映射关系
下图展示了从 LDAP 目录到零信任控制平面的完整同步链路:绑定账号发起查询,目录返回条目,控制平面按映射规则转换字段,最终写入身份库并供策略引擎调用。
关键配置与同步映射
以下是一份可直接参考的 LDAP 连接器配置示例,字段名以常见零信任平台(如 Keycloak、Okta、Azure AD Connect 等)的通用语义为准,具体界面名称可能不同,但映射逻辑一致。
# LDAP 连接器配置示例
connection:
url: "ldaps://ldap.corp.example.com:636"
bind_dn: "cn=zt-reader,ou=svc,dc=corp,dc=example,dc=com"
bind_password: "<从密钥管理服务注入>"
base_dn: "ou=employees,dc=corp,dc=example,dc=com"
user_filter: "(objectClass=person)"
group_filter: "(objectClass=groupOfNames)"
sync:
mode: "incremental" # 首次 full,后续 incremental
interval: "15m"
attribute_mapping:
user_id: "uid" # 唯一标识,不可为空
display_name: "cn"
email: "mail"
department: "ou"
groups: "memberOf" # 多值属性,映射为组列表
group_mapping:
- ldap_group: "cn=dev-team,ou=groups,dc=corp,dc=example,dc=com"
zt_group: "engineering"
- ldap_group: "cn=ops-team,ou=groups,dc=corp,dc=example,dc=com"
zt_group: "operations"
绑定密码不要明文写入配置文件。生产环境应通过密钥管理服务(如 Vault、KMS)注入,或使用平台提供的凭据保险箱功能。同步账号的权限应严格限制为只读,且仅覆盖需要同步的 OU。
同步后的验证方法
同步完成后,不能只看"同步成功"的提示,必须验证身份数据是否真正可用于策略匹配。建议按以下顺序检查:
- 数量核对:在零信任平台查询用户总数,与 LDAP 中
ou=employees下objectClass=person的条目数对比。若不一致,检查user_filter是否过滤掉了部分账号。 - 属性抽查:随机抽取 3~5 个用户,核对
uid、cn、mail、memberOf是否与 LDAP 一致。重点关注多值属性memberOf是否完整同步。 - 组关系验证:确认
dev-team和ops-team的成员列表与 LDAP 一致,且已映射为engineering和operations两个零信任组。 - 策略匹配测试:创建一条测试策略,条件为
user.groups contains "engineering",用dev-team中的用户发起访问,确认策略能够命中。
常见问题与排查方向
| 现象 | 可能原因 | 排查动作 |
|---|---|---|
| 同步用户数为 0 | Base DN 或绑定账号权限错误 | 用 ldapsearch 以绑定账号手动查询,确认能返回条目 |
| 部分用户缺失 | user_filter 过严或 OU 范围不对 | 放宽 filter 为 (objectClass=*) 测试,确认条目是否在范围内 |
| 组关系为空 | memberOf 未启用或映射字段名错误 | 检查 LDAP 是否返回 memberOf,确认映射键名与平台字段一致 |
| 策略无法匹配 | 组名映射未生效或大小写不一致 | 在身份库中直接查询该用户的 groups 字段,确认值是否为 engineering |
同步验证通过的标准:用户数量与 LDAP 一致、关键属性抽查无误、组映射正确、且至少一条基于组的策略能够成功匹配。四项全部满足,才说明身份源接入真正完成,可以进入后续的 MFA 策略配置环节。