跳到主要内容

LDAP对接说明

使用场景

LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)登录是一种基于目录服务的身份验证方法。开启后,用户可使用域账号密码登录HAP平台。

前提条件

  1. HAP服务器可访问域服务器
  2. 可登录域的账号密码

操作步骤

填写参数

  1. 在HAP系统内,进入 组织管理 > 其他,开启 LDAP登录,如下图所示:

    image-20250116143124664

  2. 配置参数-服务器设置

    服务器设置参数及AD域内用户属性和对应值

    image-20250116143731804image-20250121135300046

    • 用户目录类型;微软AD选 Microsoft Active Directory 即可,其他类型使用的库略有区别,功能基本一致
    • 服务器IP;域服务器IP,如 192.168.1.1
    • 端口; 默认 389,使用安全连接默认 636,拼接后的地址为 ldap://192.168.1.1:389ldaps://192.168.1.1:636
    • 账户; 填写域用户的 DN(distinguishedName) 属性值,如 CN=packli,OU=Dev,CN=Users,DC=mingdao,DC=local不可填写用户名,如 packliadminuser1
    • 密码; 域中的密码
    • 账户搜索范围;可以选择按DN范围查找或按DN组查找
      • BaseDN;填写DN属性值,如 CN=Users,DC=mingdao,DC=local, 表示搜索范围为当前DN下的用户,不在当前DN下的用户无法登录,不填默认为根DN如 DC=mingdao,DC=local
      • DN/组名;可配置多个DN组,第一个输入框填写组DN值,第二个输入框填写组别名;如组DN值为 CN=dev-Group1,OU=Dev,DC=mingdao,DC=local,组别名为 ldap开发一组;此功能要求DN类型是组,检测登录域用户是否是其中一个组的成员,不是成员则无法登录
  3. 配置参数-账号映射

    账号映射参数及AD域内用户属性和对应值

    image-20250116154617463 image-20250121150750425 image-20250121103031916

    • 用户账号;填写域用户唯一属性,用来匹配登录账号,默认 sAMAccountName;如用户sAMAccountName的值为peter,那么LDAP登录的用户名也为peter
    • Email;填写域用户的邮箱,默认 mail;用于创建或查找用户
    • 勾选框;当无法通过以上字段匹配到系统账号时,是否新建一个账号
      • ;域账号没有任何绑定关系,或域邮箱在HAP系统内不存在的情况,会新建一个HAP账号
      • ;域账号存在绑定关系,视为同一用户;或域邮箱在HAP系统内存在,视为同一用户;如果域账号存在绑定关系的情况(接口同步或者单点绑定),域邮箱会自动覆盖HAP账号的邮箱
  4. 配置参数-同步信息

    同步信息及AD域内用户属性和对应值

    image-20250116171153991

    image-20250121134836154image-20250121134326395
    • 用户姓名;映射域用户显示名称,默认 displayName;对应HAP人员信息-用户名称
    • 部门;映射域用户的部门,默认 department;对应HAP人员信息-部门
    • 职位;映射域用户的职务,默认 title;对应HAP人员信息-职位
    • 联系电话;映射域用户的电话号码,默认 telephoneNumber;对应HAP人员信息-工作电话(并非个人手机号)
  5. 保存

    保存操作会验证 服务器设置 的服务器IP是否连通,验证账号密码是否正确。

    • 如果保存之后长时间没有反应,可能是IP连接不通
    • 如果保存立即提示连接失败,可能是账号密码验证失败
    • 用户账号填写的不是域DN属性,可能会保存失败

测试登录

  1. 输入LDAP用户账号 sAMAccountName值或配置的其他唯一属性值

    image-20250116175255211

  2. 登录成功后,查看账号是否映射正确

    image-20250116175522749

  3. 登录失败排查,一般只提示用户名或密码不正确

    • 私有部署平台管理员登录HAP,点击右上角头像: 系统配置>日志;检索服务名sso 的日志,排查具体报错原因

    • 公有云需要联系平台管理员查看日志

sso日志常见错误

  1. 账号密码错误
    • 账号不存在,sso日志中可见,No users found
    • 密码错误,sso日志中可见,error authenticate ERROR: xxx: {"lde_message":"80090308: LdapErr: DSID-0C090446, comment: AcceptSecurityContext error, data 52e, v2580\u0000","lde_dn":null}
  2. 查找范围错误
    • DN范围下未查找到用户,sso日志中可见,No users found
    • DN组下未查找到用户或组的DN有问题,sso日志中可见,checkIsUserMemberOf ERROR: dn group illegal,find Group xxx :false
  3. LDAP配置保存失败
    • 配置中使用的账号不是域DN属性,sso日志中可见,LDAPError [InvalidCredentialsError]: 80090308: LdapErr: DSID-0C090446, comment: AcceptSecurityContext error, data 52e, v2580