论坛管理员 发表于 2021-12-15 10:43:11

byesun 发表于 2021-12-14 21:55
非常好用,谢谢管理员


1.vim ./person.json   中的 "superPermission": false,   应该是没有关系的。
您确定这个这个有关系吗

2.您是否baseDn 没有对应好,有点不解您这个意思。虽然您说您已经解决了,但是我觉得不应该啊。
是否能再详细说一下。

byesun 发表于 2021-12-15 12:24:24

论坛管理员 发表于 2021-12-15 10:43
1.vim ./person.json   中的 "superPermission": false,   应该是没有关系的。
您确定这个这个有关系吗
...

我看到有一段代码,感觉和superpermission有关系
if (BooleanUtils.isTrue(Config.person().getSuperPermission())
                                                && StringUtils.equals(Config.token().getPassword(), password)) {
                                        logger.warn("user: {} use superPermission.", credential);
                                } else {
                                        if (BooleanUtils.isTrue(Config.token().getLdapAuth().getEnable())) {
                                                if (!LdapTools.auth(o.getUnique(), password)) {
                                                        throw new ExceptionPersonNotExistOrInvalidPassword();
                                                }
                                        } else {
                                                if (!StringUtils.equals(Crypto.encrypt(password, Config.token().getKey()), o.getPassword())
                                                                && !StringUtils.equals(MD5Tool.getMD5Str(password), o.getPassword())) {
                                                        /* 普通用户认证密码 */
                                                        throw new ExceptionPersonNotExistOrInvalidPassword();
                                                }
                                        }
                                }

byesun 发表于 2021-12-15 12:28:24

论坛管理员 发表于 2021-12-15 10:43
1.vim ./person.json   中的 "superPermission": false,   应该是没有关系的。
您确定这个这个有关系吗
...

是的,确实是Base DN没有对应好, 如果用户在其他OU下面好像就不行,也可能我用的windows的AD域吧。干脆重新调整了一下对应的代码后可以了。

amic 发表于 2021-12-15 13:06:23

本帖最后由 amic 于 2021-12-15 13:49 编辑

byesun 发表于 2021-12-15 12:28
是的,确实是Base DN没有对应好, 如果用户在其他OU下面好像就不行,也可能我用的windows的AD域吧。干脆 ...楼主,请教下~
您测试的CN=*,是指对应的AD里的名称name吗,我这边的属性里cn是小写的,见下图

是我要把O2里用户唯一编码维护为“91IT外包”,然后这个用户移动到域下,或是域下的user目录下就能认证(还是必须是根目录)
配置好userDn为CN=*,OU=Users,DC=XXX,DC=com
就可以了吗?
两个CN cn对应情况是否对?



byesun 发表于 2021-12-15 14:53:11

amic 发表于 2021-12-15 13:06
楼主,请教下~
您测试的CN=*,是指对应的AD里的名称name吗,我这边的属性里cn是小写的,见下图



大小写问题不大。 系统是使用userdn去认证的,CN=91IT外包,OU=Users,DC=XXX,DC=com 和密码。 你测试的时候,先把user移动到base dn的根目录进行测试。 确认可以用了 之后, 要进行下一步调整。

byesun 发表于 2021-12-15 15:00:45

amic 发表于 2021-12-15 13:06
楼主,请教下~
您测试的CN=*,是指对应的AD里的名称name吗,我这边的属性里cn是小写的,见下图



另外,中文可能有问题, 你开一个cn=91itoursourcing 这样的不带中文的看看。 91itoursourcing 这个值要等于oa中的唯一编号。

amic 发表于 2021-12-15 15:29:36

byesun 发表于 2021-12-15 15:00
另外,中文可能有问题, 你开一个cn=91itoursourcing 这样的不带中文的看看。 91itoursourcing 这个值要 ...

刚刚移动到根目录确实成功了!
而且修改了userdn的内容,准备进一步移动进实际OU去测试下
在linux后台的错误提示,感觉不认识OU里的特殊符号"[]",我basedn里有[],错误忘记截图了

amic 发表于 2021-12-15 16:44:30

本帖最后由 amic 于 2021-12-16 08:05 编辑

最新测试,和[]都没关系,userDN只认根目录,子目录下的用户都认不了,对分了OU的组织不支持;
所以是不是代码并没有遍历包含子OU下的所有用户

其次使用sAMAccountName=*无效,MS AD里好像只支持CN=*


论坛管理员 发表于 2021-12-16 11:31:30

amic 发表于 2021-12-15 16:44
最新测试,和[]都没关系,userDN只认根目录,子目录下的用户都认不了,对分了OU的组织不支持;
所以是不是 ...

您看我们的默认配置


1.不是非要根目录,您要配置好baseDn
2.楼主配置的sAMAccountName=*,我们配置的uid=*如果您是CN=* ,直接配置CN=*,*************************** 即可

amic 发表于 2021-12-16 13:01:48

论坛管理员 发表于 2021-12-16 11:31
您看我们的默认配置




您好,管理员,
1.我的意思是userDN配置了之后,只能匹配到对应userDN里的OU根目录下的用户
并不能匹配到OU子目录下的用。应该和baseDN没关系。
2.我在测试能正常登陆AD账户的状态下,去修改了CN=* 为 sAMAccountName=*,然后维护O2的唯一编码,测试不行。
页: 1 2 [3] 4
查看完整版本: 请问一下ldap登录的功能要怎么样使用,谢谢