Authn.tech
首页
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • 工具总览
  • JWT 解析
  • JWT 签名
  • JWK 生成
  • JWK → PEM
  • PEM → JWK
  • PKCE 生成
  • OIDC Discovery
  • TOTP
  • WebAuthn
  • SAML 编解码
  • SAML Metadata
  • SAML Response
  • X.509 证书
  • PEM 解析
  • Base64URL
  • LDAP 过滤器
  • 概览 / 角色术语
  • OIDC Mock
  • SAML Mock
  • 邮件服务器
  • LDAP 目录
  • OIDC 登录演示
  • SAML 登录演示
  • 简体中文
  • English
  • Deutsch
GitHub
首页
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • 工具总览
  • JWT 解析
  • JWT 签名
  • JWK 生成
  • JWK → PEM
  • PEM → JWK
  • PKCE 生成
  • OIDC Discovery
  • TOTP
  • WebAuthn
  • SAML 编解码
  • SAML Metadata
  • SAML Response
  • X.509 证书
  • PEM 解析
  • Base64URL
  • LDAP 过滤器
  • 概览 / 角色术语
  • OIDC Mock
  • SAML Mock
  • 邮件服务器
  • LDAP 目录
  • OIDC 登录演示
  • SAML 登录演示
  • 简体中文
  • English
  • Deutsch
GitHub
  • LDAP

    • LDAP 概述
    • 核心概念
    • 典型流程
    • 参数与语法参考

LDAP 核心概念

条目、DN 与 RDN

目录里的每个节点叫条目(entry),由若干属性构成。每个条目有唯一的 DN(Distinguished Name),是从条目到树根的路径:

uid=alice,ou=people,dc=example,dc=com
└──┬───┘ └───┬────┘ └──────┬───────┘
  RDN      父容器          根(后缀)
  • RDN(Relative Distinguished Name):DN 最左边的一段,如 uid=alice,在同一父节点下唯一。
  • DN 从左到右由具体到根;dc=example,dc=com 通常是目录的后缀 / base DN。
  • DC=domainComponent,OU=organizationalUnit,CN=commonName,UID=user id——这些都是属性类型,拼进 DN 里。

属性

条目的数据是属性-值对,一个属性可以多值(如 objectClass、member、mail):

dn: uid=alice,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
cn: Alice Zhang
sn: Zhang
mail: [email protected]

属性名大小写不敏感;是否区分值的大小写、如何比较,由属性的 matching rule 决定(多数如 cn 大小写不敏感)。

objectClass 与 schema

  • 每个条目必须有一个或多个 objectClass,它决定了该条目**必须(MUST)和可以(MAY)**有哪些属性。
  • objectClass 有结构型(如 inetOrgPerson)、辅助型(如 posixAccount)之分。
  • schema 定义所有属性类型与 objectClass;跨厂商标准 schema(inetOrgPerson、groupOfNames 等)保证互操作。

LDIF

LDIF(LDAP Data Interchange Format)是目录数据的文本表示,用于导入导出:

dn: uid=alice,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
uid: alice
cn: Alice Zhang
sn: Zhang
mail: [email protected]

操作:bind 与 search

  • bind:建立会话并认证。匿名 bind(不给凭据)、简单 bind(DN + 密码)、SASL(如 GSSAPI/Kerberos)。简单 bind 成功即代表密码正确。
  • search:最核心的读操作,由三要素决定返回什么:
    • base DN:从哪个条目开始;
    • scope 作用域:base(仅该条目)、one(仅直接子级)、sub(该条目及所有后代);
    • filter 过滤器:RFC 4515 表达式,如 (&(objectClass=person)(uid=alice))。
  • 其他:compare(比较某属性值)、add/modify/delete/modifyDN(写)。

组与成员关系

两种常见模型:

  • groupOfNames / groupOfUniqueNames:组条目用 member 列出成员的 DN(如 cn=admins 的 member: uid=alice,...)。
  • memberOf(AD 及部分目录的反向属性):直接挂在用户条目上,便于用 (memberOf=cn=admins,...) 过滤。

安全传输

  • LDAP:389/tcp 明文(可用 StartTLS 在同端口升级为 TLS)。
  • LDAPS:636/tcp,一开始就是 TLS。生产环境务必用 TLS,否则简单 bind 的密码是明文。

术语与运算符的速查见 参考;把这些串成一次登录见 典型流程。

最近更新: 2026/7/6 08:43
贡献者: linux, Claude Opus 4.8
Prev
LDAP 概述
Next
典型流程