
# 集成LDAP身份源
OneAccess支持通过LDAP身份源导入用户和组织信息，实现OneAccess实时同步LDAP身份源中用户和组织信息。OneAccess集成企业LDAP，支持LDAPv3协议。
本文主要介绍OneAccess集成LDAP身份源的方法。
#### 配置流程
![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000002141590945.png)
#### 前提条件
- 请确保您已拥有LDAP平台账号管理员权限。
- 请确保您已拥有OneAccess管理门户的访问权限。
- 请确保当前OneAccess管理门户可以访问到LDAP平台。
- 请确保您已了解LDAP协议及LDAP服务器获取方式。
 
#### 在OneAccess中添加LDAP身份源
在OneAccess中配置身份源参数，确保OneAccess可同步LDAP服务器中的数据。
1. 在OneAccess中创建身份源。 
   1. 登录OneAccess管理门户。
   
   2. 在导航栏中，选择"用户 \> 身份源管理"。
   
   3. 在身份源管理页面，单击LDAP身份源操作列的"添加身份源"，输入"身份源名称"，单击"确定"。
   
   
   
   
2. 设置导入配置。 
   1. 在LDAP身份源列表页面，单击目标身份源的操作列的"详情"。 ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001485924844.png)
      
   
   2. 单击"导入配置"，在该页签填写导入配置参数并单击"确定"。
      - 基础配置：LDAP服务器的连接参数，实现OneAccess和LDAP服务器的连接，请务必填写并保证正确。
        表1基础配置 
        | 参数       | 说明                                                                                                                                                                                                                                                                                                    |
        |:---|:---|
        | \*主机     | 运行LDAP服务器的主机名称或 IP 地址。 说明： OneAccess目前只支持公网访问，LDAP服务器需要提供公网地址。                                                                                                                                                                   |
        | \*TCP端口  | 用于与LDAP服务器进行通信的服务器TCP/IP 端口号。默认为636。                                                                                                                                                                                                                                                                  |
        | SSL      | 系统默认true，即使用SSL连接到LDAP服务器。                                                                                                                                                                                                                                                                            |
        | StartTLS | 是否启用startTLS进行加密通信。 - true：启用StartTLS，且SSL不能设置为true；  - false：不启用StartTLS。   |
        | 校验证书     | 是否校验证书。仅在SSL为true或者StartTLS为true时有效。true: 校验证书，false: 不校验证书。证书必须是公网认证的证书，自签名证书不可以。                                                                                                                                                                                                                    |
        | 协议版本     | 系统默认TLSv1.2，推荐使用TLSv1.3、TLSv1.2。                                                                                                                                                                                                                                                                      |
        | 主体       | 进行LDAP服务器验证时使用的账号名。传参带域名，如"admin@test.com "或"TEST\\admin"。                                                                                                                                                                                                                                            |
        | 密码       | 主体账号的密码。                                                                                                                                                                                                                                                                                              |
        | \*基本上下文  | 搜索 LDAP 树时将使用该树中的一个或多个节点作为起始点，需填写要同步LDAP中数据所在的根节点。在从 LDAP 服务器寻找用户或搜寻某个用户所属的组时，将从该节点开始执行搜索。 如"OU=huaweitest,DC=test,DC=com"。                                                                                                                                        |
        | UID 属性   | 映射到UID属性的LDAP属性的名称。                                                                                                                                                                                                                                                                                   |
        | 账户对象类    | 在LDAP树中创建新用户对象时将使用的一个或多个对象类。如果输入多个对象类，每一项输入应独占一行；请不要使用逗号或分号来分隔多个对象类。有些对象类可能要求您指定类分层结构中的所有对象类。                                                                                                                                                                                                         |
           
        
      
      - 可选配置：可默认配置，如需同步密码需配置密码的相关参数，包括启用密码同步和要同步的密码属性，如出现同步异常，可根据实际的使用情况进行参数调整，包括但不限于账户对象类、机构对象类等参数。
        表2可选配置 
        | 参数                 | 说明                                                                                                                                                                                                                                                |
        |:---|:---|
        | 域名                 | 域名存在时，回收的用户名中将该域名排除掉（存在多个域名用","分隔，默认用户名会排除域名）                                                                                                                                                                                                     |
        | 账户用户名属性            | 保存账户用户名的一个或多个属性。在进行验证时，将使用这些属性查找要验证的用户名的LDAP条目。                                                                                                                                                                                                   |
        | 机构对象类              | 在LDAP树中创建新机构对象时将使用的一个或多个对象类。如果输入多个对象类，每一项输入应独占一行；请不要使用逗号或分号来分隔多个对象类。有些对象类可能要求您指定类分层结构中的所有对象类。                                                                                                                                                     |
        | 机构名属性              | 保存机构名的一个或多个属性。在进行验证时，将使用这些属性查找要验证的机构名的LDAP条目。                                                                                                                                                                                                     |
        | 故障转移服务器            | 列出首选服务器发生故障时将用于故障转移的所有服务器。如果首选服务器发生故障，JNDI将连接到列表中的下一个可用服务器。按照 "ldap://ldap.example.com:389/" 格式（符合 RFC 2255 中所述的标准 LDAP v3 URL）列出所有服务器。只有 URL 的主机和端口部分在此设置中是相关的。                                                                                  |
        | 密码属性               | 用于保存密码的LDAP属性的名称。在更改用户的密码时，会为该属性设置新密码。                                                                                                                                                                                                            |
        | 用于检索账户的 LDAP过滤器    | 用于控制从LDAP资源返回的账户的可选LDAP过滤器。如果未指定任何过滤器，则只返回包含所有指定对象类的账户。                                                                                                                                                                                           |
        | 密码散列算法             | 指出Identity System对密码执行散列时应使用的算法。目前支持的值为SSHA、SHA、SMD5和MD5。空值表示系统不会对密码执行散列。除非LDAP服务器执行散列（Netscape Directory Server 和 iPlanet Directory Server 执行散列），否则这将导致明文密码存储在LDAP中。                                                                             |
        | 优先处理资源密码策略重置后更改    | 如果在登录模块中指定此资源（即，此资源是传递验证目标），并且将资源的密码策略配置为在重置后更改，则以管理方式重置了资源账户密码的用户需要在成功验证后更改该密码。                                                                                                                                                                  |
        | 使用VLV控件            | 指定是否在标准LDAP控件上强制使用VLV控件。默认为"false"。                                                                                                                                                                                                               |
        | VLV 排序属性           | 指定用于资源上VLV索引的排序属性。                                                                                                                                                                                                                                |
        | 读取模式               | 如果为TRUE，连接器将从服务器中读取模式。如果为FALSE，连接器将根据配置中的对象类提供一个默认模式。要使用扩展对象类，该属性必须为TRUE。                                                                                                                                                                         |
        | 要同步的基本上下文          | LDAP树中用于确定是否应同步更改的一个或多个起始点。如果未设置此属性，则将使用基本上下文属性来同步更改。                                                                                                                                                                                             |
        | 要同步的对象类            | 要同步的对象类。更改日志针对所有对象；它会根据所列出的对象类来对更新进行过滤。除非您要将对象与任何超类值同步，否则不应列出对象类的超类。例如，如果仅应同步 "inetOrgPerson" 对象，但应过滤掉 "inetOrgPerson" 的超类（"person"、"organizationalperson" 和 "top"），则此处仅应列出 "inetOrgPerson"。LDAP 中的所有对象都是 "top" 的派生子类。因此，绝不应列出 "top"，否则将无法过滤任何对象。 |
        | 要同步的属性             | 要同步的属性的名称。设置此项后，如果更改日志中的更新没有对任何命名属性进行更新，则会忽略这些更新。例如，如果仅列出 "department"，则只处理影响 "department" 的更改。而忽略所有其他更新。如果将其留空（默认设置），则处理所有更改。                                                                                                                    |
        | 过滤更改的方式            | 用于从更改中过滤的目录管理员名称 (DN)。可过滤出所有 "modifiersName"属性与该列表中的条目相匹配的更改。为避免循环，标准值设置为该适配器使用的管理员名称。条目应该采用"cn=Directory Manager"格式。                                                                                                                             |
        | 要同步的账户的AD 过滤器      | 同步对象时使用的可选LDAP过滤器。由于更改日志适用于所有对象，因此此过滤器只更新符合指定过滤器条件的对象。如果指定了过滤器，则只有在对象符合过滤器条件并且包含已同步的对象类时，才会对其进行同步。                                                                                                                                                |
        | 更改日志块大小            | 每个查询获取的更改日志条目数。                                                                                                                                                                                                                                   |
        | 更改编号属性             | 更改编号属性                                                                                                                                                                                                                                            |
        | 使用 OR 而不是 AND 进行过滤 | 通常，用于获取更改日志条目的过滤器是基于AND条件检索一段时间间隔内的更改条目。如果设置了此属性，则过滤器将改用OR条件配合所需的更改数量进行过滤。                                                                                                                                                                        |
        | 从过滤器中删除日志条目对象类     | 如果设置了此属性（默认设置），用于获取更改日志条目的过滤器不会包含"changeLogEntry"对象类，因为更改日志中应该不包含其他对象类型的条目。                                                                                                                                                                       |
        | 要同步的密码属性           | 在执行密码同步时要同步的密码属性的名称。                                                                                                                                                                                                                              |
        | 状态管理类              | 用于管理启用/禁用状态的类。 如果未指定类，则无法进行身份状态管理。                                                                                                                                                                                                                |
        | 是否搜索密码             | 搜索时是否检索用户密码。 默认值为"否"。                                                                                                                                                                                                                             |
        | DN属性               | 条目DN属性名称（默认：entryDN）。                                                                                                                                                                                                                             |
        | LDAP过滤器            | 一个可选的LDAP过滤器，用于控制从LDAP资源返回的组。 如果未指定过滤器，则仅返回包含所有指定对象类的组。                                                                                                                                                                                           |
        | 读超时                | 等待接收响应的时间。如果在指定的时间内没有响应，读取尝试将被中止。值为0或小于0表示没有限制。                                                                                                                                                                                                   |
        | 连接超时               | 打开新服务器连接时的等待时间。 值0表示将使用TCP网络超时，可能是几分钟。 值小于0表示没有限制。                                                                                                                                                                                                |
        | 账号DN前缀             | 默认值cn，也可以为uid等其它用于dn前缀的属性名。                                                                                                                                                                                                                       |
           
        
      
      - 高级配置：用于配置顶层组织、组织、用户映射策略。
        表3高级配置 
        | 参数     | 说明                                                                                                                              |
        |:---|:---|
        | 定时同步   | 每天定时执行同步任务的时间。                                                                                                                  |
        | 选择组织   | LDAP服务器的组织同步至OneAccess后的父级组织。如果不填，将自动创建顶层组织。                                                                                    |
        | 删除阈值   | 默认20%，该功能为平台提供的一种保护机制，支持自定义设置比例。当上游身份源应用禁用/删除超过设定的阈值数据，平台接到指令后，不会进行同步禁用/删除。                                                     |
        | 组织匹配策略 | LDAP 服务器组织与OneAccess组织的映射关系。当OneAccess同步LDAP服务器中的组织时，根据该策略进行匹配。如属性名为**编码** 、身份源属性名为**组织编码**，LDAP服务器中的组织将以编码为匹配策略映射至OneAccess。   |
        | 创建组织   | 开启后，如果同步组织时匹配失败，则OneAccess将自动创建对应组织。默认开启，为了您的数据完整，建议开启。                                                                         |
        | 更新组织   | 开启后，如果同步组织时匹配成功，则OneAccess将自动更新该组织。默认开启，为保证您的数据正确，建议开启。                                                                         |
        | 删除组织   | 当LDAP的组织数据成功同步至OneAccess后，如果删除LDAP中的组织，则OneAccess会和设置的删除阈值进行对比，删除组织数和上次同步数据总数的比值大于阈值则删除失败，删除组织数和上次同步数据总数的比值小于阈值则删除成功。           |
        | 用户匹配策略 | LDAP 服务器用户与OneAccess用户的映射关系。当OneAccess同步 LDAP 服务器中的用户时，根据该策略进行匹配。如属性名为用户ID、身份源属性名为**员工唯一标识ID**，LDAP服务器的用户将以编码为匹配策略映射至OneAccess。 |
        | 创建用户   | 开启后，如果同步用户时匹配失败，则OneAccess将自动创建对应用户。默认开启，为了您的数据完整，建议开启。                                                                         |
        | 更新用户   | 开启后，如果同步用户时匹配成功，则OneAccess将自动更新该用户。默认开启，为保证您的数据正确，建议开启。                                                                         |
        | 删除用户   | 当LDAP的用户数据成功同步至OneAccess后，如果删除LDAP中的用户，则OneAccess会和设置的删除阈值进行对比，删除用户数和上次同步数据总数的比值大于阈值则删除失败，删除用户数和上次同步数据总数的比值小于阈值则删除成功。           |
           
        
       
   
   
   
   
3. （可选）设置对象模型。 
   在身份源详情页面，选择"对象模型"页签，修改、添加、删除用户和组织的属性、映射规则。
   表4对象模型 
   | 参数                                                     || 说明                                 |
   |:---|---|:---|
   | 用户对象  | 属性定义 | LDAP身份源的用户属性。                      |
   | 用户对象  | 映射定义 | LDAP与OneAccess用户数据同步时的映射规则，支持脚本转换。 |
   | 机构对象   | 属性定义 | LDAP身份源的组织属性。                      |
   | 机构对象   | 映射定义 | LDAP与OneAccess组织数据同步时的映射规则，支持脚本转换。 |
      
   - 添加属性。
     1. 在"属性定义"页签，单击"添加"，弹出"添加属性"弹框。 ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000002106552748.png)
        
     
     2. 选择"身份源可选属性"，输入"显示标签"、描述。
     
     3. 选择"类型"。当"类型"选择为"文本"时，需要设置"格式"。
     
     4. 设置该属性是否为必填，单击"确定"，属性添加完成。
      
   
   - 设置映射规则。 在"映射定义"页签，单击"编辑"，通过设置转换方式、脚本表达方式、执行方式、系统用户设置映射规则。
     ![](https://support.huaweicloud.com/bestpractice-oneaccess/zh-cn_image_0000001485924840.png)
     
    
   
   
#### 验证OneAccess同步LDAP数据
- 导入同步：
  1. 在LDAP身份源列表页面，单击目标身份源的"详情"进入新增LDAP身份源详情页面，单击"导入同步"，在"导入同步"页签单击"执行"。OneAccess将主动同步LDAP身份源的用户及组织数据，并生成操作记录。
  
  2. 执行完成后，单击目标记录的"详情"，查看详细信息。
  
  3. 同步成功后，在"组织与用户"可查看已同步至OneAccess的用户和组织。
   
 
- 定时同步：如果"导入配置 \> 高级配置"中设置了"定时同步"，即可在LDAP身份源列表页面，单击目标身份源的"详情"进入新增LDAP身份源详情页面，单击"定时同步"在"定时同步"页签查看定时同步的记录。
 
