绑定OpenLDAP

本文介绍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个以上的组织需要被删除时,自动取消同步任务,以防止数据被误删除。建议根据企业规模调整同步保护设置。image

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

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

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

重要

修改ObjectClassfilter将影响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