LDAP对接说明
使用场景
LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)登录是一种基于目录服务的身份验证方法。开启后,用户可使用域账号密码登录HAP平台。
前提条件
- HAP服务器可访问域服务器
- 可登录域的账号密码
操作步骤
填写参数
-
在HAP系统内,进入 组织管理 > 其他,开启 LDAP登录,如下图所示:
-
配置参数-服务器设置
服务器设置参数及AD域内用户属性和对应值
- 用户目录类型;微软AD选
Microsoft Active Directory
即可,其他类型使用的库略有区别,功能基本一致 - 服务器IP;域服务器IP,如
192.168.1.1
- 端口; 默认
389
,使用安全连接默 认636
,拼接后的地址为ldap://192.168.1.1:389
或ldaps://192.168.1.1:636
- 账户; 填写域用户的 DN(distinguishedName) 属性值,如
CN=packli,OU=Dev,CN=Users,DC=mingdao,DC=local
,不可填写用户名,如packli
、admin
、user1
- 密码; 域中的密码
- 账户搜索范围;可以选择按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类型是组,检测登录域用户是否是其中一个组的成员,不是成员则无法登录
- BaseDN;填写DN属性值,如
- 用户目录类型;微软AD选
-
配置参数-账号映射
账号映射参数及AD域内用户属性和对应值
- 用户账号;填写域用户唯一属性,用来匹配登录账号,默认
sAMAccountName
;如用户sAMAccountName的值为peter,那么LDAP登录的用户名也为peter - Email;填写域用户的邮箱,默认
mail
;用于创建或查找用户 - 勾选框;当无法通过以上字段匹配到系统账号时,是否新建一个账号
- 是;域账号没有任何绑定关系,或域邮箱在HAP系统内不存在的情况,会新建一个HAP账号
- 否;域账号存在绑定关系,视为同一用户;或域邮箱在HAP系统内存在,视为同一用户;如果域账号存在绑定关系的情况(接口同步或者单点绑定),域邮箱会自动覆盖HAP账号的邮箱
- 用户账号;填写域用户唯一属性,用来匹配登录账号,默认
-
配置参数-同步信息
同步信息及AD域内用户属性和对应值
- 用户姓名;映射域用户显示名称,默认
displayName
;对应HAP人员信息-用户名称 - 部门;映射域用户的部门,默认
department
;对应HAP人员信息-部门 - 职位;映射域用户的职务,默认
title
;对应HAP人员信息-职位 - 联系电话;映射域用户的电话号码,默认
telephoneNumber
;对应HAP人员信息-工作电 话(并非个人手机号)
- 用户姓名;映射域用户显示名称,默认
-
保存
保存操作会验证 服务器设置 的服务器IP是否连通,验证账号密码是否正确。
- 如果保存之后长时间没有反应,可能是IP连接不通
- 如果保存立即提示连接失败,可能是账号密码验证失败
- 用户账号填写的不是域DN属性,可能会保存失败
测试登录
-
输入LDAP用户账号
sAMAccountName
值或配置的其他唯一属性值 -
登录成功后,查看账号是否映射正确
-
登录失败排查,一般只提示用户名或密码不正确
-
私有部署平台管理员登录HAP,点击右上角头像: 系统配置>日志;检索服务名为
sso
的日志,排查具体报错原因 -
公有云需要联系平台管理员查看日志
-
sso日志常见错误
- 账号密码错误
- 账号不存在,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}
- 账号不存在,sso日志中可见,
- 查找范围错误
- DN范围下未查找到用户,sso日志中可见,
No users found
- DN组下未查找到用户或组的DN有问题,sso日志中可见,
checkIsUserMemberOf ERROR: dn group illegal,find Group xxx :false
- DN范围下未查找到用户,sso日志中可见,
- LDAP配置保存失败
- 配置中使用的账号不是域DN属性,sso日志中可见,
LDAPError [InvalidCredentialsError]: 80090308: LdapErr: DSID-0C090446, comment: AcceptSecurityContext error, data 52e, v2580
- 配置中使用的账号不是域DN属性,sso日志中可见,