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

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

LDAP 典型流程

搜索:bind → search → 结果

用 ldapsearch 演示同一过程:

ldapsearch -H ldaps://ldap.example.com \
  -D "cn=svc-reader,ou=apps,dc=example,dc=com" -w '****' \
  -b "ou=people,dc=example,dc=com" -s sub \
  "(&(objectClass=person)(mail=alice@example.com))" cn mail

用户认证:两种做法

1)直接 bind(simple bind)

应用直接用用户的 DN + 用户输入的密码去 bind,成功即认证通过:

  1. 若已知用户 DN 模板(如 uid=<输入>,ou=people,dc=example,dc=com),直接拼出 DN;
  2. bind(userDN, password);
  3. 成功 = 密码正确;失败(invalidCredentials)= 拒绝登录。

简单,但要求应用能从用户名推出 DN。

2)search + bind(最常用)

用户名不一定等于 RDN(可能用 mail 或 sAMAccountName 登录),于是:

  1. 应用先用一个服务账号 bind(只读权限);
  2. 按登录名 search 出用户条目,拿到其真实 DN,例如 (|(uid=<输入>)(mail=<输入>));
  3. 用查到的 DN + 用户密码再做一次 bind 验证密码;
  4. (可选)再 search / 读 memberOf 判断组成员做授权。

与联邦登录的衔接

企业里 LDAP/AD 常作为 IdP 的后端目录:

也就是说,前端讲 SAML / OIDC,背后仍是 LDAP 的 bind/search 在验证与取数。

想动手试搜索与过滤器,用 过滤器构建器 对 Mock LDAP 示例目录搜索。

最近更新: 2026/7/27 02:33
贡献者: linux, Claude Opus 4.8
Prev
核心概念
Next
参数与语法参考