LDAP 基本概念及项目实践

一、基础概念

开篇照例一波吐槽。LDAP这个名字大家不会陌生,即所谓轻量级目录访问协议。无论博客还是论坛,网上对它的讲解太多了,但在我看来,都不得要领。它们中的大多数都仅介绍了冰山一角,还不注明资料来源。想来,作者很可能也不知道这些知识从哪里来的,这篇文章看看、那篇文章参考一下,东拼西凑,再看看库的API,写写代码,然后…it works!!!,再然后就没有然后了吧🤔。

本文试图从协议本身出发,尽量做到系统化。就算读者看了这篇文章还是不能掌握,也可以自己翻看协议文档解决问题。毕竟一手资料才是最可靠的。

协议介绍

与LDAP相关的协议很多,但主要是两个系列,这里列出。读者可以不看本文后面内容,直接去翻协议了。

X.500系列协议

目录服务的最初协议,完整地描述了目录、目录服务的组成、目录结构等内容。X.500本身只是一个概览,各部分的实现在其子协议如X.501、X.502中,所以说X.500是一个系列协议。

值得一提的是,常见的X.509公钥证书也属于该系列协议。

LDAP系列协议

LDAP并非只有一个协议文件,其涉及到方方面面,每个方面单独由一个协议文件描述,加星号的必看

  • RFC4511*:通过TCP传输消息的方式,规定了传输层面的消息类型、消息内容,如绑定、查询等
  • RFC4512*:信息模型,规定了schema、object class、attribute type等内容
  • RFC4513*:规定了鉴权方式和安全机制:TLS、SASL
  • RFC4514:规定了DN的字符串表示方式
  • RFC4515:规定了过滤器的格式,过滤器用于查找时指定条件
  • RFC4516:规定了统一资源定位符的格式,即LDAP端点长啥样
  • RFC4517*:语法和匹配规则,列举了所有允许的语法和匹配规则
  • RFC4518:字符串国际化
  • RFC4519*:应用程序的schema,列举了所有允许的object class和attribute type
  • RFC2377*:推荐的DIT组织方式,即目录服务的树的组织方式

二、实践

实战参考:基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

file

file


相关文章:
可能是最详细的LDAP讲解
LDAP API For Python 应用实例
LDAP-实现用户统一登录管理
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

为者常成,行者常至