Skip to content

feat(ldap): 增加 filter 支持,限制允许登录的用户范围#239

Merged
Cairry merged 13 commits into
opsre:masterfrom
HGHNice:feat/ldap-filter
Mar 16, 2026
Merged

feat(ldap): 增加 filter 支持,限制允许登录的用户范围#239
Cairry merged 13 commits into
opsre:masterfrom
HGHNice:feat/ldap-filter

Conversation

@HGHNice
Copy link
Copy Markdown
Contributor

@HGHNice HGHNice commented Mar 9, 2026

变更说明

  • models/settings.goLdapConfig 结构体中新增 filter 字段
  • Login 方法:若设置了 filter,使用 AND 逻辑将其与用户名搜索条件合并,只有同时满足两个条件的用户才能登录
  • ListUsers 方法:若设置了 filter,将其与 (objectClass=person) 合并,限制同步到 W8T 的用户范围

配置示例

Ldap:
  enabled: true
  address: "192.168.1.100:389"
  baseDN: "dc=test,dc=com"
  adminUser: "cn=admin,dc=test,dc=com"
  adminPass: "test123."
  userDN: "ou=people,dc=test,dc=com"
  userPrefix: "uid"
  defaultUserRole: "ur-cq7nkj1d6gviooaigqi0"
  cronjob: "*/1 * * * *"
  # 只允许 jms 组内的用户登录
  filter: "(&(objectClass=person)(memberOf=cn=jms,ou=groups,dc=test,dc=com))"
**实现逻辑**
- filter 为空时(默认),行为与原来一致,baseDN 下所有用户均可登录
- filter 不为空时,搜索条件自动合并:
   登录验证:(&<filter>(sAMAccountName=<username>))
   用户同步:(&<filter>(objectClass=person))
关联 Issue: #174

@Cairry Cairry merged commit 5fd8db4 into opsre:master Mar 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants