绑定OpenLDAP

更新时间: 2023-12-06 17:58:18

本文介绍 OpenLDAP 的配置和常见用法。

OpenLDAP基础介绍

简介

OpenLDAP 是 LDAP(轻型目录访问协议)的开源实现,常用于管理企业内的用户、计算机、网络等资源。由于被广泛使用,OpenLDAP 也常被简称为 LDAP。

说明

基于网络端点能力,您无需开放公网端口即可实现 LDAP 的数据同步和委托认证。

绑定OpenLDAP

在【身份提供方】中,单击【绑定OpenLDAP】,即可开始绑定 OpenLDAP 流程。

image

第一步:连接OpenLDAP

在第一步中,您需要在 IDaaS 中填写以下信息:

image.png

  • 显示名称:用户在登录、使用 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 实现的场景能力。

image.png

能力说明

  • 同步方向:同步来源所选的 LDAP 的用户/组织数据将会导入到 IDaaS 的这个节点之下。【来源节点】需要填写 LDAP 节点的 DN,LDAP 根节点的 DN 一般为 dc=example,dc=com(即您的域)。

说明

目前仅支持入方向 LDAP 的同步,暂不支持出方向。

  • 定时校验:由于 LDAP 不支持查询增量数据,IDaaS 将于每日凌晨自动全量同步 LDAP 来源节点下的全量数据。

    • 您可以在字段映射中设置映射标识,使用 IDaaS 账户的某个字段(如手机号)与 LDAP 用户的某个字段(如手机号)进行匹配,如果匹配成功,将绑定并覆盖更新;否则将创建 IDaaS 账户。

    • 如果需要及时同步数据,请手动触发全量同步。

    • IDaaS 内置了同步保护能力, 当 30 个以上的账户或 10 个以上的组织需要被删除时,自动取消同步任务,以防止数据被误删除。建议根据企业规模调整同步保护设置。imageimage

    • 如果单条账户数据无法导入,不影响其他数据导入。

    • 失败信息可在【同步日志】中查看。

  • 委托认证:用户可以使用 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过滤

image.png

第三步:字段映射

如果您在 IDaaS 中已存在存量数据,需要 LDAP 用户/组织和 IDaaS 账户/组织绑定,或者希望使用 LDAP 中用户的某些字段数据作为 IDaaS 账户的数据,例如将 LDAP 用户的手机号作为 IDaaS 账户的账户名,则需要在第三步配置字段映射。如需使用映射标识能力,需手动单击启用,如下图的手机字段。

image.png

更多字段映射的说明请查看文档 字段映射

LDAP安全性配置

默认情况下,LDAP 在传输数据时不加密且不受保护,存在明文数据被窃取的风险。使用 ldaps 或 StartTLS 可以有效提高数据传输的安全性。在 LDAP 中配置证书后,即可在 IDaaS 中使用 ldaps 或 StartTLS,强烈建议您开启。

在配置完证书后,您可以在 IDaaS 中一键获取证书指纹,建立 IDaaS 对 LDAP 证书的信任关系,降低伪造证书的风险。

image.png

LDAP个性化配置

ObjectClass

LDAP 中的 ObjectClass 是 attribute 的集合,每个对象都必须拥有 ObjectClass。可以通过 ObjectClass 定义一个对象是用户、组织或计算机等,例如针对下图的对象,在 IDaaS 中设置【用户ObjectClass】为“inetOrgPerson,posixAccount,top”时,IDaaS 即会将对象视作为用户。在 LDAP 中编辑对象时即可看到 ObjectClass。

image

重要

LDAP 有灵活的自定义能力,如果您自定义了用户/组织的 ObjectClass,请确保 ObjectClass 的一致,以免同步到 IDaaS 的数据不符合您的预期。

登录标识

用户在使用 LDAP 委托认证登录 IDaaS 时,IDaaS 将根据这些属性去 LDAP 中查询用户并匹配密码,密码正确则允许用户登录 IDaaS。

一般可以使用 uid、手机号、邮箱、工号等属性用于登录,如有需要可在创建时或【委托认证】中定义。如果使用多个属性,请确保属性的唯一并对应同一个 LDAP 用户,否则用户将无法使用委托认证。

Filter过滤

重要

修改 ObjectClass 和 filter 将影响 LDAP 的过滤条件,在执行全量同步时将删除不符合过滤条件的 IDaaS 账户和组织。建议在修改前调整同步保护限额,并充分测试过滤结果是否符合预期(例如使用另一个 IDaaS 实例进行测试)。

基础介绍

如果您需要筛选分散在不同组织中的部分用户同步到 IDaaS,您可以自定义 filter 语句,只有满足条件的用户才可同步到 IDaaS。Filter 语句默认包含且关系的 ObjectClass 条件,您可以单击【查看详情】查看完整的语句。

image.png

您可在 LDAP Admin 工具中输入 filter 语句,检查过滤后的结果。

image.png

以下是 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,如下图所示:

image

另外,当节点的路径有变化时,节点的 Base DN 也会有变化,为避免节点路径调整导致 LDAP 数据同步出错,您在 IDaaS 中配置同步来源节点的 Base DN 时,IDaaS 也会将该节点的 ObjectGuid 作为节点指纹,当节点的 Base DN 有变动导致和节点指纹不匹配时,将阻断数据同步行为。重新配置来源节点后即可正常同步。

定时校验

由于 LDAP 不支持查询增量数据,IDaaS 将于每日凌晨自动全量同步 LDAP 来源节点下的全量数据。如果需要及时同步数据,请手动触发全量同步。

IDaaS 内置了同步保护能力, 当 30 个以上的账户或 10 个以上的组织需要被删除时,自动取消同步任务,以防止数据被误删除。建议根据企业规模调整同步保护设置。

image.png

image.png

阿里云首页 应用身份服务 (IDaaS) 相关技术圈