OpenLDAP 认证的实验总结

公司里有好几个工作用的平台,其中之一是个网盘,选型使用了 Kiftd。这个系统是个个人开发者开发的,因为现在公司内部使用的量不大,所以在核心功能上还没有感觉到问题,一个比较不爽的地方在于它不支持 LDAP 认证登录,这在用户管理上就带来了额外的工作。一年过去了,作者还没有把这个功能加上,在它的项目 issue 里可以看到其他用户也有类似的需求,所以就琢磨着要不要自己把这个功能补上。

困难当然是有的,第一,俺不是个 Java 程序员,第二 OpenLDAP 也不熟,二十年前倒是接触过,基本忘光了。首先按照网络上的教程,把 Visual Studio Code 里的 Java 开发环境搭建好了。将以下代码存为 LdapService.java,然后运行 main 函数即可。此代码也来源于网上,由于原来的版本依赖有其他的东西(主要是个 Logger),我做了精简,输出就粗暴地使用 System.out 了。

遗留问题:LDAP 有个叫 RDN 的东东,决定了用户的 DN 组成形式。目前在我的系统中,界面手动操作添加的用户,其 RDN 是 uid,而另一个同事用程序把之前其他地方的用户导入进去,其 RDN 是 cn,这个会干扰上面的 dn 拼接部分的代码,正在试图搞清楚如何处理是最优方案,也许需要用搜索来认证。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注