跳转到内容

LDAP

LDAP 用于接入企业身份源。

入口

LDAP 设置位于 System Settings 的 LDAP Tab。

LDAP 设置

配置项

字段说明
Enabled是否启用 LDAP 登录。
Server URILDAP 服务地址,必须以 ldap://ldaps:// 开头。
Domain直连绑定模式下拼接 username@domain 使用。
Bind DN可选的服务账号 DN,用于先搜索用户。
Bind PasswordBind DN 对应密码。
User Search Base DN用户搜索起点 DN。
User Login Attr登录名匹配字段,默认 uid

Windows AD 常见配置

Windows Active Directory 通常使用搜索绑定模式:

字段示例
Server URIldaps://ad.example.com:636ldap://ad.example.com:389
Domainexample.com
Bind DNsvc_asp@example.comCN=svc-asp,OU=Service Accounts,DC=example,DC=com
Bind Password服务账号密码
User Search Base DNDC=example,DC=comOU=Users,DC=example,DC=com
User Login AttrsAMAccountName

如果希望用户用 UPN 登录,也可以把 User Login Attr 设置为 userPrincipalName,并要求用户在登录页输入完整 UPN,例如 alice@example.com

在域内 Windows 主机上确认配置

如果当前 Windows 主机已经加入域,可以先用本地 PowerShell 确认域名、域控和端口连通性:

powershell
$domain = $env:USERDNSDOMAIN
$domain
nltest /dsgetdc:$domain

nltest 输出中的 DCAddress 可用于确认域控地址。再检查 LDAP / LDAPS 端口:

powershell
Test-NetConnection <domain-controller-host> -Port 636
Test-NetConnection <domain-controller-host> -Port 389

如果 636 可用,优先使用 ldaps://<domain-controller-host>:636;否则使用 ldap://<domain-controller-host>:389

ASP 配置项如何确认
Server URI使用 nltest /dsgetdc:$domain 找到域控,再按端口选择 ldaps://<host>:636ldap://<host>:389
Domain通常填写 $env:USERDNSDOMAIN,例如 example.com
Bind DN建议使用专用服务账号的 UPN,例如 svc_asp@example.com;也可以使用完整 DN。
Bind Password服务账号密码。无法通过本地命令读取,需要由 AD 管理员提供或重置。
User Search Base DN通常由域名转换而来,例如 example.com 对应 DC=example,DC=com;也可以缩小到实际用户所在 OU。
User Login AttrWindows AD 通常使用 sAMAccountName;如果希望用户输入完整 UPN,则使用 userPrincipalName

如果本机安装了 RSAT Active Directory 模块,可以进一步确认 DN:

powershell
Import-Module ActiveDirectory
Get-ADDomain | Select-Object DNSRoot, DistinguishedName, PDCEmulator
Get-ADUser svc_asp -Properties UserPrincipalName, DistinguishedName |
  Select-Object SamAccountName, UserPrincipalName, DistinguishedName

认证模式

配置了 User Search Base DN 时,后端会先使用 Bind DN / Bind Password 做 service bind,然后按 User Login Attr=<username> 搜索用户 DN,最后使用用户输入的密码绑定该用户 DN。

未配置 User Search Base DN 时,后端会直接绑定用户:如果配置了 Domain,则使用 username@domain;否则直接使用 username

测试连接

不填写 Test Username / Test Password 时,Test 只验证 LDAP bind 是否成功。填写测试账号时,用户名和密码必须同时提供,后端会按当前配置执行一次完整用户认证。

LDAP 测试

登录流程

  1. 管理员启用并保存 LDAP 配置。
  2. 使用测试功能确认连接和账号查询可用。
  3. 管理员在用户管理中创建 Authentication Type 为 LDAP 的 ASP 用户。
  4. 用户在登录页切换到 LDAP。
  5. 后端确认 ASP 用户存在、账号启用、认证类型为 LDAP。
  6. 后端使用 LDAP 验证用户凭据,并以该 ASP 用户登录。

LDAP 登录

LDAP 登录不会自动创建 ASP 用户,也不会自动分配角色。Local Password 用户不能使用 LDAP 方式登录,LDAP 用户也不能使用 Platform 方式登录。

安全与审计

Bind Password 默认隐藏。保存配置、测试连接和 reveal Bind Password 都会写入 Audit Log;密码字段在审计记录中只记录是否 changed 或 reveal,不写入明文。

保存配置后,后端会刷新 LDAP runtime cache,后续登录使用最新配置。

使用建议

  • 生产环境优先使用 ldaps://
  • Windows AD 通常使用 sAMAccountName 作为 User Login Attr。
  • 将 User Search Base DN 控制在实际用户所在 OU 或域范围内。
  • 先用 Test Username / Test Password 验证真实用户登录,再开放给用户使用。

下一步

  • 用户管理 — 创建 Authentication Type 为 LDAP 的 ASP 用户。
  • 首次登录 — 查看 Platform / LDAP 登录方式。
  • 个人中心 — 了解 LDAP 用户和 Platform 用户在密码修改上的差异。