byesun 发表于 2021-12-14 21:55
非常好用,谢谢管理员
1.vim ./person.json 中的 "superPermission": false, 应该是没有关系的。
您确定这个这个有关系吗
2.您是否baseDn 没有对应好,有点不解您这个意思。虽然您说您已经解决了,但是我觉得不应该啊。
是否能再详细说一下。
论坛管理员 发表于 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();
}
}
}
论坛管理员 发表于 2021-12-15 10:43
1.vim ./person.json 中的 "superPermission": false, 应该是没有关系的。
您确定这个这个有关系吗
...
是的,确实是Base DN没有对应好, 如果用户在其他OU下面好像就不行,也可能我用的windows的AD域吧。干脆重新调整了一下对应的代码后可以了。
本帖最后由 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对应情况是否对?
amic 发表于 2021-12-15 13:06
楼主,请教下~
您测试的CN=*,是指对应的AD里的名称name吗,我这边的属性里cn是小写的,见下图
大小写问题不大。 系统是使用userdn去认证的,CN=91IT外包,OU=Users,DC=XXX,DC=com 和密码。 你测试的时候,先把user移动到base dn的根目录进行测试。 确认可以用了 之后, 要进行下一步调整。
amic 发表于 2021-12-15 13:06
楼主,请教下~
您测试的CN=*,是指对应的AD里的名称name吗,我这边的属性里cn是小写的,见下图
另外,中文可能有问题, 你开一个cn=91itoursourcing 这样的不带中文的看看。 91itoursourcing 这个值要等于oa中的唯一编号。
byesun 发表于 2021-12-15 15:00
另外,中文可能有问题, 你开一个cn=91itoursourcing 这样的不带中文的看看。 91itoursourcing 这个值要 ...
刚刚移动到根目录确实成功了!
而且修改了userdn的内容,准备进一步移动进实际OU去测试下
在linux后台的错误提示,感觉不认识OU里的特殊符号"[]",我basedn里有[],错误忘记截图了
本帖最后由 amic 于 2021-12-16 08:05 编辑
最新测试,和[]都没关系,userDN只认根目录,子目录下的用户都认不了,对分了OU的组织不支持;
所以是不是代码并没有遍历包含子OU下的所有用户
其次使用sAMAccountName=*无效,MS AD里好像只支持CN=*
amic 发表于 2021-12-15 16:44
最新测试,和[]都没关系,userDN只认根目录,子目录下的用户都认不了,对分了OU的组织不支持;
所以是不是 ...
您看我们的默认配置
1.不是非要根目录,您要配置好baseDn
2.楼主配置的sAMAccountName=*,我们配置的uid=*如果您是CN=* ,直接配置CN=*,*************************** 即可
论坛管理员 发表于 2021-12-16 11:31
您看我们的默认配置
您好,管理员,
1.我的意思是userDN配置了之后,只能匹配到对应userDN里的OU根目录下的用户
并不能匹配到OU子目录下的用。应该和baseDN没关系。
2.我在测试能正常登陆AD账户的状态下,去修改了CN=* 为 sAMAccountName=*,然后维护O2的唯一编码,测试不行。