ixrjog/opscloud4

ladp只支持ApacheDS吗?不支持OpenLDAP吗?

Walker0909 opened this issue · 22 comments

ladp只支持ApacheDS吗?不支持OpenLDAP吗?

配置文件例子是ApacheDS的,如果用的是OpenLDAP则按其配置即可,LDAP协议都是支持的

我的ldap信息如下:
ldapHost = "192.168.2.100";
ldapPort = 389;
ldapBindDN = "cn=ab_admin,dc=tbsign,dc=cn";
ldapPassword = "12345";
BASE_DN = "dc=tbsign,dc=cn";

配置文件里对应的配置信息如下:

ldap.url=ldap://192.168.2.100:389
ldap.base.dn=dc=tbsign,dc=cn

管理员账户,用户账户管理

ldap.manager.dn=cn=ab_admin,dc=tbsign,dc=cn

密码

ldap.manager.passwd=12345
ldap.group.dn=ou=group
ldap.user.dn=ou=1

ldap.user.id=cn
ldap.user.object=inetorgperson
ldap.group.object=groupOfUniqueNames
ldap.group.member=uniqueMember

帮忙确认下配置信息是否有误,另外
ldap.group.dn=ou=group
ldap.user.dn=ou=1

ldap.user.id=cn
ldap.user.object=inetorgperson
ldap.group.object=groupOfUniqueNames
ldap.group.member=uniqueMember
几个选项,openldap一般来说是不配置的,是否使用默认选项还是直接注释掉?

ldap.group.dn=ou=groups // 用户组的dn相对路径 (在ldap.base.dn下)
ldap.user.dn=ou=users // 用户的dn相对路径 (在ldap.base.dn下)
ldap.user.id=cn // cn或uid看配置
ldap.user.object=inetorgperson //用户Top对象
ldap.group.object=groupOfUniqueNames //用户组Top对象
ldap.group.member=uniqueMember //用户组中绑定用户的名称
以上参数都是必须的,使用ldap客户端登录openLdap查看

十分感谢楼主,ldap在楼主的悉心指导下已配置完成,启动的时候不再报ldap相关的错误,但是用户信息现在还是没有,如图所示:

image

登录报系统错误,如图:
image

image

麻烦帮忙看下是什么原因导致,是否是因为用户信息是采用定时同步的机制,还没到同步时间导致的?
感谢楼主的不吝赐教,再次感谢!

现在在opscloud里新建的用户已经可以同步到ldap中去了,但是使用这个用户仍然无法登陆。

没太明白您的意思?我现在登录的账号就是在ldap里已经存在的用户,但是登录的时候报系统错误。
Eg:
image

image

image
系统未报异常。

亲~怎么破呢?

opsadmin账户 DN: cn=opsadmin,dc=tbsign,dc=cn ?
是否有详细登录日志

我是用在centos7中的ldap里面的用户登录windows中的apacheds,可以连接上ip,但是在认证的那个界面总报[LDAP:error code 49 - livalid Crentials]的错误

oc的ldap有很多配置项,需要按当前ldap配置修改

dn: uid=vagrant,ou=People,dc=mycompany,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
sn: vagrant
givenName: vagrant
cn: vagrant
displayName: vagrant
uidNumber: 1000
gidNumber: 1000+
gecos: vagrant
这是我的用户注册的信息,我在apache的authentication中应该怎么填?

ldap.url=ldap://xxx:389(样例中无法获取)
ldap.base.dn=dc=mycompany,dc=com

管理员账户,用户账户管理

ldap.manager.dn=uid=admin,ou=system(管理账户dn)(样例中无法获取)
ldap.manager.passwd=密码
ldap.group.dn=ou=groups(样例中无法获取)
ldap.user.dn=ou=People
ldap.user.id=uid
ldap.user.object=inetorgperson
ldap.group.object=groupOfUniqueNames (样例中无法获取)
ldap.group.member=uniqueMember(样例中无法获取)

ldap.url=ldap://xxx:389(样例中无法获取)
ldap.base.dn=dc=mycompany,dc=com

管理员账户,用户账户管理

ldap.manager.dn=uid=admin,ou=system(管理账户dn)(样例中无法获取)
ldap.manager.passwd=密码
ldap.group.dn=ou=groups(样例中无法获取)
ldap.user.dn=ou=People
ldap.user.id=uid
ldap.user.object=inetorgperson
ldap.group.object=groupOfUniqueNames (样例中无法获取)
ldap.group.member=uniqueMember(样例中无法获取)

想问一下,是不是同样适用于AD?

不能直接使用AD,需要修改代码

不能直接使用AD,需要修改代码

建议兼容下AD,很多公司也是在用AD来管理用户什么的

有空可以支持下,Opscloud实现了LDAP的CRUD,不是简单的只读查询

有空可以支持下,Opscloud实现了LDAP的CRUD,不是简单的只读查询

谢谢:P

请教下 在用openldap时改成下面这样

spring:
ldap:
url: ldap://10.3.87.30:389
group:
dn: ou=groups
object: groupOfUniqueNames
member: uniqueMember
user:
dn: ou=People
id: uid
object: inetorgperson
base:
dn: dc=join,dc=com
manager:
dn: uid=admin,ou=system
passwd: admin123456

还是不需要spring

你这是老版本的吧
application-ldap-open.yml

# o - organization(组织-公司)
# ou - organization unit(组织单元-部门)
# c - countryName(国家)
# dc - domainComponent(域名)
# sn - suer name(真实名称)
# cn - common name(常用名称

spring:
  ldap:
    urls: ldap://127.0.0.1:10389
    base: ou=system
    username: 'uid=admin,ou=system'
    password: secret

ldap:
  custom:  {userId: cn,
            userBaseDN: ou=users,
            userObjectClass: inetorgperson,
            groupId: cn,
            groupBaseDN: ou=groups,
            groupObjectClass: groupOfUniqueNames,
            groupMember: uniqueMember}

你这是老版本的吧
application-ldap-open.yml

# o - organization(组织-公司)
# ou - organization unit(组织单元-部门)
# c - countryName(国家)
# dc - domainComponent(域名)
# sn - suer name(真实名称)
# cn - common name(常用名称

spring:
  ldap:
    urls: ldap://127.0.0.1:10389
    base: ou=system
    username: 'uid=admin,ou=system'
    password: secret

ldap:
  custom:  {userId: cn,
            userBaseDN: ou=users,
            userObjectClass: inetorgperson,
            groupId: cn,
            groupBaseDN: ou=groups,
            groupObjectClass: groupOfUniqueNames,
            groupMember: uniqueMember}

原配置就是你这个,那意思是这个就是openldap的配置? 我以为上面的是apacheds的配置

只要是LDAP协议都支持,目前测试成功的有ApacheDS&ODS