本文介绍 OpenLDAP 的配置和常见用法。
OpenLDAP基础介绍
简介
OpenLDAP 是 LDAP(轻型目录访问协议)的开源实现,常用于管理企业内的用户、计算机、网络等资源。由于被广泛使用,OpenLDAP 也常被简称为 LDAP。
基于网络端点能力,您无需开放公网端口即可实现 LDAP 的数据同步和委托认证。
绑定OpenLDAP
在【身份提供方】中,单击【绑定OpenLDAP】,即可开始绑定 OpenLDAP 流程。
第一步:连接OpenLDAP
在第一步中,您需要在 IDaaS 中填写以下信息:
显示名称:用户在登录、使用 IDaaS 时可能看到。
网络端点:如果您希望只有 IDaaS 可以请求该 LDAP,请在服务器中配置 IP 白名单。共享端点使用共享的、固定的公网出口 IP,专属端点使用专属的、自定义的私网出口 IP 和公网出口 IP。通过专属端点,IDaaS 可以通过私网访问您的阿里云 VPC,从而免开公网端口访问您的 LDAP,详见:网络端点
服务器地址:LDAP 所在的服务器地址,LDAP 默认使用 389 端口,如 127.0.0.1:389。开启 ldaps 或 StartTLS 时一般使用 636 端口。
ldaps/StartTLS:开启后可以大幅提高连接的安全性,推荐开启。请在 LDAP安全性配置中了解如何开启。
管理员账户:IDaaS 使用该 LDAP 管理员账户读取 LDAP 信息来完成数据同步或委托认证,该账户需要至少拥有读取权限,需使用 DN 格式(cn=admin,ou=技术部,dc=example,dc=com)。
管理员密码:该账户的登录密码。
第二步:选择场景
在第二步中,选择希望和 LDAP 实现的场景能力。
能力说明
同步方向:同步来源所选的 LDAP 的用户/组织数据将会导入到 IDaaS 的这个节点之下。【来源节点】需要填写 LDAP 节点的 DN,LDAP 根节点的 DN 一般为 dc=example,dc=com(即您的域)。
目前仅支持入方向 LDAP 的同步,暂不支持出方向。
定时校验:由于 LDAP 不支持查询增量数据,IDaaS 将于每日凌晨自动全量同步 LDAP 来源节点下的全量数据。
您可以在字段映射中设置映射标识,使用 IDaaS 账户的某个字段(如手机号)与 LDAP 用户的某个字段(如手机号)进行匹配,如果匹配成功,将绑定并覆盖更新;否则将创建 IDaaS 账户。
如果需要及时同步数据,请手动触发全量同步。
IDaaS 内置了同步保护能力, 当 30 个以上的账户或 10 个以上的组织需要被删除时,自动取消同步任务,以防止数据被误删除。建议根据企业规模调整同步保护设置。
如果单条账户数据无法导入,不影响其他数据导入。
失败信息可在【同步日志】中查看。
委托认证:用户可以使用 LDAP 用户/密码登录到 IDaaS,
自动更新密码:用户通过 LDAP 委托认证到 IDaaS 时,如果 IDaaS 账户的密码为空,则更新为 LDAP 账户的密码。LDAP 密码需满足 IDaaS 密码策略的要求,否则将无法自动更新。
高级配置
用户/组织ObjectClass:通过 ObjectClass 可以定义哪种类型的对象是用户/组织,例如将查询结果中 ObjectClass=user 的对象视作用户。
LDAP 有灵活的自定义能力,如果您自定义了用户/组织的 ObjectClass,请确保 ObjectClass 的一致,以免同步到 IDaaS 的数据不符合您的预期。
用户登录标识:用户在使用 LDAP 委托认证登录 IDaaS 时,IDaaS 将根据这些属性去 LDAP 中查询用户并匹配密码,密码正确则允许用户登录 IDaaS。可以使用半角逗号对多个属性进行分割,此时为或关系,即可以使用任一属性登录。请确保多个属性对应同一个 LDAP 用户,否则将无法登录。
用户filter过滤:如果您需要筛选分散在不同组织中的部分用户同步到 IDaaS,您可以自定义 filter 语句,只有满足条件的用户才可同步到 IDaaS。Filter 语句默认包含且关系的 ObjectClass 条件,您可以单击【查看详情】查看完整的语句。更多注意事项和常见用法请查看Filter过滤。
第三步:字段映射
如果您在 IDaaS 中已存在存量数据,需要 LDAP 用户/组织和 IDaaS 账户/组织绑定,或者希望使用 LDAP 中用户的某些字段数据作为 IDaaS 账户的数据,例如将 LDAP 用户的手机号作为 IDaaS 账户的账户名,则需要在第三步配置字段映射。如需使用映射标识能力,需手动单击启用,如下图的手机字段。
更多字段映射的说明请查看文档 字段映射。
LDAP安全性配置
默认情况下,LDAP 在传输数据时不加密且不受保护,存在明文数据被窃取的风险。使用 ldaps 或 StartTLS 可以有效提高数据传输的安全性。在 LDAP 中配置证书后,即可在 IDaaS 中使用 ldaps 或 StartTLS,强烈建议您开启。
在配置完证书后,您可以在 IDaaS 中一键获取证书指纹,建立 IDaaS 对 LDAP 证书的信任关系,降低伪造证书的风险。
LDAP个性化配置
ObjectClass
LDAP 中的 ObjectClass 是 attribute 的集合,每个对象都必须拥有 ObjectClass。可以通过 ObjectClass 定义一个对象是用户、组织或计算机等,例如针对下图的对象,在 IDaaS 中设置【用户ObjectClass】为“inetOrgPerson,posixAccount,top”时,IDaaS 即会将对象视作为用户。在 LDAP 中编辑对象时即可看到 ObjectClass。
LDAP 有灵活的自定义能力,如果您自定义了用户/组织的 ObjectClass,请确保 ObjectClass 的一致,以免同步到 IDaaS 的数据不符合您的预期。
登录标识
用户在使用 LDAP 委托认证登录 IDaaS 时,IDaaS 将根据这些属性去 LDAP 中查询用户并匹配密码,密码正确则允许用户登录 IDaaS。
一般可以使用 uid、手机号、邮箱、工号等属性用于登录,如有需要可在创建时或【委托认证】中定义。如果使用多个属性,请确保属性的唯一并对应同一个 LDAP 用户,否则用户将无法使用委托认证。
Filter过滤
修改 ObjectClass 和 filter 将影响 LDAP 的过滤条件,在执行全量同步时将删除不符合过滤条件的 IDaaS 账户和组织。建议在修改前调整同步保护限额,并充分测试过滤结果是否符合预期(例如使用另一个 IDaaS 实例进行测试)。
基础介绍
如果您需要筛选分散在不同组织中的部分用户同步到 IDaaS,您可以自定义 filter 语句,只有满足条件的用户才可同步到 IDaaS。Filter 语句默认包含且关系的 ObjectClass 条件,您可以单击【查看详情】查看完整的语句。
您可在 LDAP Admin 工具中输入 filter 语句,检查过滤后的结果。
以下是 LDAP Filter 常用的语法和语句。
常用语法
运算符 | 含义 | 示例 |
= | 相等 | (cn=Alice) |
>= | 大于等于 | (pwdLastSet>=1319563845000000000) |
<= | 小于等于 | (employeeNumber<=1000) |
& | 且关系,必须满足全部条件 | (&(cn=CN*)(title=RD)) |
| | 或关系,必须满足任一条件 | (|(cn=Test*)(cn=Admin*)) |
! | 非关系,必须不满足全部条件 | (!(cn=Test*)(cn=Admin*)) |
常用语句
场景 | 示例 |
用户名以“CN”开头 | (cn=CN*) |
指定邮箱的用户 | (mail=alice@example.com) |
LDAP同步配置
获取 Base DN
Base DN 是 LDAP 中某个节点的路径标识,IDaaS 只会在该节点下执行查询和数据同步等操作。您可以在【同步方向】中设置来源节点的 Base DN。
DN 的格式为:ou=某组织,dc=example,dc=com,根节点的 DN 一般为 dc=example,dc=com(即您的域)。您也可以在 LDAP 中直接查看节点的 DN,如下图所示:
另外,当节点的路径有变化时,节点的 Base DN 也会有变化,为避免节点路径调整导致 LDAP 数据同步出错,您在 IDaaS 中配置同步来源节点的 Base DN 时,IDaaS 也会将该节点的 ObjectGuid 作为节点指纹,当节点的 Base DN 有变动导致和节点指纹不匹配时,将阻断数据同步行为。重新配置来源节点后即可正常同步。
定时校验
由于 LDAP 不支持查询增量数据,IDaaS 将于每日凌晨自动全量同步 LDAP 来源节点下的全量数据。如果需要及时同步数据,请手动触发全量同步。
IDaaS 内置了同步保护能力, 当 30 个以上的账户或 10 个以上的组织需要被删除时,自动取消同步任务,以防止数据被误删除。建议根据企业规模调整同步保护设置。
- 本页导读 (0)