本文介绍如何为身份提供方绑定出方向的企业 OpenLDAP,实现 IDaaS 组织/账户同步到 OpenLDAP、使用 OpenLDAP 身份登录IDaaS 或应用。
OpenLDAP基础介绍
OpenLDAP是LDAP(轻型目录访问协议)的开源实现,常用于管理企业内的用户、计算机、网络等资源。由于被广泛使用,OpenLDAP也常被简称为LDAP。
基于网络端点能力,您无需开放公网端口即可实现LDAP的数据同步和委托认证。
绑定OpenLDAP
步骤一:连接OpenLDAP
登录IDaaS控制台,选择对应的IDaaS实例,单击操作列的访问控制台。
单击,随后在列表中找到OpenLDAP,单击添加。

在绑定 OpenLDAP面板中,请填写以下内容。

显示名称:用户在登录、使用IDaaS时可能看到。
网络端点:如果您希望只有IDaaS可以请求该LDAP,请在服务器中配置IP白名单。共享端点使用共享的、固定的公网出口IP,专属端点使用专属的、自定义的私网出口IP和公网出口IP。通过专属端点,IDaaS可以通过私网访问您的阿里云VPC,从而免开公网端口访问您的LDAP,详见:网络端点。
服务器地址:LDAP所在的服务器地址,LDAP默认使用389端口,如127.0.0.1:389。开启ldaps或StartTLS时一般使用636端口。
开启StartTLS:开启后可以大幅提高连接的安全性,推荐开启。请在LDAP安全性配置中了解如何开启。
管理员账户:IDaaS使用该LDAP管理员账户读取LDAP信息来完成数据同步或委托认证,该账户需要至少拥有读取权限,需使用DN格式(cn=admin,ou=技术部,dc=example,dc=com)。
管理员密码:该账户的登录密码。
信息确认无误后,单击下一步。
步骤二:选择场景
在选择场景配置页面,配置希望LDAP实现的场景能力。

基础配置
同步方向:
同步来源所选的IDaaS的节点数据将会导入到LDAP的用户或组织之下。来源节点需要填写IDaaS的节点,目标节点需要填写LDAP节点的DN,LDAP根节点的DN 一般为dc=example,dc=com(即您的域)。
增量同步:
实时导出 IDaaS 中有变动的数据。
定时校验:
定时校验是定时的全量同步,让 IDaaS 数据和LDAP数据尽量保持一致。
委托认证:
用户可以使用 LDAP 账户登录到 IDaaS。
自动更新密码:
向 LDAP 同步用户时,也将 IDaaS 账户的密码同步到 LDAP。需使用 SSL 连接,且 IDaaS 账户的密码符合 LDAP密码的需求。
高级配置
用户ObjectClass、组织ObjectClass:
通过
ObjectClass可以定义哪种类型的对象是用户或组织,例如将查询结果中ObjectClass=user的对象视作用户。一般无需修改。用户 RDN、组织 RDN:
如果您自定义了 LDAP 中对象的RDN,可以在此处配置写入标识。例如 IDaaS 将账户同步到 LDAP 时,将 ou 作为组织的 RDN。
用户登录标识:
用户在使用LDAP委托认证登录IDaaS时,IDaaS将根据这些属性去LDAP中查询用户并匹配密码,密码正确则允许用户登录IDaaS。可以使用半角逗号对多个属性进行分割,此时为或关系,即可以使用任一属性登录。请确保多个属性对应同一个LDAP用户,否则将无法登录。
步骤三:字段映射
如果您在LDAP的用户/组织中已存在存量数据,需要为LDAP账户和IDaaS账户进行绑定,或者希望使用IDaaS账户的某些字段数据作为LDAP账户的数据,例如将 IDaaS 账户的手机号作为 LDAP 用户的用户名,则需要配置字段映射。如需使用映射标识能力,需手动单击启用,如下图的手机字段。

配置完成后,单击保存并同步会触发数据同步,将导入 IDaaS 来源节点内的全量数据,并置于 LDAP 目标节点下。如果仅需保存配置,请单击仅保存。
更多字段映射的说明请查看文档字段映射。
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用户,否则用户将无法使用委托认证。
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也会将该节点的entryUUID作为节点指纹,当节点的Base DN有变动导致和节点指纹不匹配时,将阻断数据同步行为。重新配置目标节点后即可正常同步。
定时校验
IDaaS会根据设置的定时校验时间,自动全量同步IDaaS来源节点下的全量数据。如果需要及时同步数据,请手动触发全量同步。