我的组织必须摆脱他们的 LDAP 服务器,因此我面临着替换其功能的任务。为了使其尽可能可定制且面向未来,我正在寻找可以在任何网络服务器上运行的东西,因此将来可以在 nginx、apache2 或使用从 php 到 js 的任何东西中重新实现。
到目前为止,我已经找到了 pam 的替代品:quarxConnect 的 pam_oauth2.so 模块查询自定义的 oauth2 实现,可以将其设置为从任何地方提取数据。
这可以很好地替代 pam 配置中的 pam_sss.so。
但它不会取代 nss 或 autofs 中的 ldap。 autofs 可以在文件服务器端解决,但我找不到 nss 的任何内容。
我现在真的抓住了救命稻草,以至于我考虑将 /etc/passwd 和 /etc/groups 文件套接字设置为一个程序,该程序从 webAPI 查询所需的数据并即时构建一个文件。不过,我对如何实现这一点没有经验,坦率地说,这似乎是一个愚蠢的解决方案。 sssd 似乎做了同样的事情,但它可以以某种方式检测需要哪个用户的信息,所以只构建该行。
如果有人能给我一些关于如何为 nss 构建模块的文档,那就太好了。我找不到这样一个模块必须回答的调用以及如何从 nss 调用它(据我所知,nsswitch.conf 使用某种别名,而不是某些目录的路径或文件名)。
我在这条奇怪的道路上走得很深,但也对完全不同的替代方法持开放态度。甚至有些奇怪的东西,比如 ldap 服务器的 Web 服务器实现,它与客户端对话 ldap,但从任何地方提取数据。但我更喜欢一个更简单的协议。