LDAP Server

AD域要挂在 windows 下,实在麻烦

找到一个还算比较满意的ldap服务端

osixia/openldap 不好用

name: sso
services:
  samba-dc:
    image: nowsci/samba-domain:latest
    hostname: Samba-DC
    restart: always
    environment:
      DOMAIN:    'XYH.MOE'
      DOMAINPASS: 'xxxxxxxxx'    # only setup set
      DNSFORWARDER: '192.168.8.1'   # 路由器的 IP
      HOSTIP:       '192.168.8.222'  # 主机的 IP
      INSECURELDAP:  true
      NOCOMPLEXITY: false
    ports:
      - "88:88"                       # LDAP
      - "88:88/udp"                   # LDAP
      - "135:135"                     # LDAP
      - "137-138:137-138/udp"         # LDAP
      - "139:139"                     # LDAP
      - "389:389"                     # LDAP
      - "389:389/udp"                 # LDAP
      - "636:636"
      - "1024-1044:1024-1044"
      - "3268-3269:3268-3269"         # LDAP
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./samba/data/:/var/lib/samba
      - ./samba/config/samba:/etc/samba/external

LDAP Client

LDAP Admin

我的 LDAP 结构

﹀DC=xyh,DC=moe
   ﹀OU=玉衡结界
   ﹀   [组]CN=Alist
   ﹀   [组]CN=Gitea Admins
   ﹀   [组]CN=Gitea Users
   ﹀   [组]CN=Grafana Admins
   ﹀   [组]CN=Grafana Users
   ﹀   [组]CN=Harbor Admins
   ﹀   [组]CN=Harbor Users
   ﹀   [人]CN=典吏
   ﹀   [人]CN=仙玉衡
   ﹀   ...
   ﹀CN=Users
   ﹀   [组]CN=Domain Users
   ﹀   [组]CN=Domain Admins
   ﹀   [人]CN=Administrator
   ﹀   ...
   ﹀...

CN=典吏 为只读用户组

CN=仙玉衡 隶属各 Admins 组

Grafana 配置 LDAP

# /etc/grafana/grafana.ini
...
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true
skip_org_role_sync = true
...
# /etc/grafana/ldap.toml
[[servers]]
host = "ldap.xyh.moe"
port = 389
use_ssl = false
start_tls = true
tls_ciphers = []
min_tls_version = ""
ssl_skip_verify = true

bind_dn = "CN=典吏,OU=玉衡结界,DC=xyh,DC=moe"
bind_password = "${LDAP_ADMIN_PASSWORD}"
timeout = 15
search_filter = "(&(objectClass=organizationalPerson)(|(memberOf=CN=Grafana Admins,OU=玉衡结界,DC=xyh,DC=moe)(memberOf=CN=Grafana Users,OU=玉衡结界,DC=xyh,DC=moe))(|(cn=%s)(mail=%s)))"
search_base_dns = ["OU=玉衡结界,DC=xyh,DC=moe"]

[servers.attributes]
name = "givenName"
surname = "sn"
username = "sAMAccountName"
member_of = "memberOf"
email =  "mail"

[[servers.group_mappings]]
group_dn = "CN=Grafana Admins,OU=玉衡结界,DC=xyh,DC=moe"
org_role = "Admin"

[[servers.group_mappings]]
group_dn = "CN=Grafana Users,OU=玉衡结界,DC=xyh,DC=moe"
org_role = "Viewer"

#[[servers.group_mappings]]
#group_dn = "cn=admins,ou=groups,dc=grafana,dc=org"
#org_role = "Admin"
#
#[[servers.group_mappings]]
#group_dn = "cn=it1,cn=users,dc=songxwn,dc=com"
#org_role = "Editor"
#

Harbor 配置 LDAP

备注
认证模式 LDAP
LDAP URL ldap://ldap.xyh.moe:389
LDAP搜索DN CN=典吏,OU=玉衡结界,DC=xyh,DC=moe 一个只读用户
LDAP搜索密码 密码 密码
LDAP基础DN OU=玉衡结界,DC=xyh,DC=moe
LDAP过滤器 (&#124(memberOf=CN=Harbor Admins,OU=玉衡结界,DC=xyh,DC=moe)(memberOf=CN=Harbor Users,OU=玉衡结界,DC=xyh,DC=moe))
LDAP用户UID cn
LDAP搜索范围 子树
LDAP组基础DN OU=玉衡结界,DC=xyh,DC=moe
LDAP组过滤器 (&(objectClass=group)(&#124(CN=Harbor Admins,OU=玉衡结界,DC=xyh,DC=moe)(CN=Harbor Users,OU=玉衡结界,DC=xyh,DC=moe)))
LDAP组ID属性 cn
LDAP组管理员DN cn=harbor admins,ou=玉衡结界,dc=xyh,dc=moe
LDAP 组成员 memberof
LDAP组搜索范围 子树
LDAP检查证书

Alist 配置 LDAP

备注
启用Ldap登陆
Ldap 服务器 ldap.xyh.moe:389
Ldap 管理器 dn CN=典吏,OU=玉衡结界,DC=xyh,DC=moe
Ldap 管理员密码 密码
Ldap 用户搜索基础 OU=玉衡结界,DC=xyh,DC=moe
Ldap 用户搜索过滤器 (&(&#124(cn=%[1]s)(sAMAccountName=%[1]s))(memberOf=CN=Alist XS,OU=玉衡结界,DC=xyh,DC=moe))
Ldap默认路径 / 没研究,默认
Ldap 默认权限 0 没研究,默认
Ldap登录提示 LDAP 登陆 随意

Gitea 配置 LDAP

备注
认证类型* LDAP (via BindDN)
认证名称* ldap.xyh.moe
安全协议* StartTLS
主机* ldap.xyh.moe
端口* 389
忽略 TLS 验证
绑定 DN CN=典吏,OU=玉衡结界,DC=xyh,DC=moe
绑定密码 密码
用户搜索基准* OU=玉衡结界,DC=xyh,DC=moe
用户过滤规则* (&(objectClass=organizationalPerson)(&#124(memberOf=CN=Gitea Admins,OU=玉衡结界,DC=xyh,DC=moe)(memberOf=CN=Gitea Users,OU=玉衡结界,DC=xyh,DC=moe))(&#124(cn=%[1]s)(mail=%[1]s)(sAMAccountName=%[1]s)(givenName=%[1]s)))
管理员过滤规则 (memberOf=CN=Gitea Admins,OU=玉衡结界,DC=xyh,DC=moe)
受限的过滤器
用户名属性 sAMAccountName
名字属性 givenName
姓氏属性 sn
电子邮箱属性* mail
SSH公钥属性
头像属性 jpegPhoto
启用 LDAP 组
使用分页搜索
从 Bind DN 中拉取属性信息
跳过本地两部验证
允许在搜索结构为空时停用所有用户
启用用户同步
该认证源已经启用

未整理

xxx

二丫讲梵

https://github.com/osixia/docker-openldap

https://hub.docker.com/r/osixia/openldap/

修改密码

https://hub.docker.com/r/wheelybird/ldap-user-manager

https://hub.docker.com/r/ltbproject/self-service-password

https://blog.frognew.com/2017/05/openldap-self-service-password.html

LDAP

ldapsearch -x -H ldap://127.0.0.1:389 -b "dc=xyh,dc=moe" -D "cn=admin,dc=xxz,dc=moe" -w aaaaaaaa