LDAP User Manager是一个PHP LDAP账户管理器,提供基于Web的GUI界面,用于快速填充新的LDAP目录并轻松管理用户账户和组。它还包含自助密码修改模块,设计用于OpenLDAP并以容器形式运行,可与osixia/openldap等OpenLDAP容器配合使用。
初始设置:添加管理员账户
!administrator_setup
添加新组
!new_group
管理组成员
!group_membership
编辑账户
!account_overview
自助密码修改
!self_service_password_change
适用于需要通过直观Web界面管理LDAP用户和组的场景,特别适合:
bashdocker run \ --detach \ --name=lum \ -p 80:80 \ -p 443:443 \ -e "SERVER_HOSTNAME=lum.example.com" \ -e "LDAP_URI=ldap://ldap.example.com" \ -e "LDAP_BASE_DN=dc=example,dc=com" \ -e "LDAP_REQUIRE_STARTTLS=TRUE" \ -e "LDAP_ADMINS_GROUP=admins" \ -e "LDAP_ADMIN_BIND_DN=cn=admin,dc=example,dc=com" \ -e "LDAP_ADMIN_BIND_PWD=secret"\ -e "LDAP_IGNORE_CERT_ERRORS=true" \ -e "EMAIL_DOMAIN=ldapusermanager.org" \ wheelybird/ldap-user-manager:v1.5
修改上述变量值以适应您的环境,然后访问 [***] 开始使用。
配置通过环境变量进行。请注意:
LDAP_URI:LDAP服务器的URI,例如 ldap://ldap.example.com 或 ldaps://ldap.example.comLDAP_BASE_DN:组织的基准DN,例如 dc=example,dc=comLDAP_ADMIN_BIND_DN:具有修改LDAP_BASE_DN下所有记录权限的用户DN,例如 cn=admin,dc=example,dc=comLDAP_ADMIN_BIND_PWD:LDAP_ADMIN_BIND_DN用户的密码LDAP_ADMINS_GROUP:定义可使用此工具管理LDAP账户的管理员组名称,例如 adminsSERVER_HOSTNAME(默认:ldapusername.org):此界面的主机名ORGANISATION_NAME(默认:LDAP):您的组织名称SITE_NAME(默认:{ORGANISATION_NAME} user manager):更改菜单中的标题,例如"我的公司账户管理"LDAP_USER_OU(默认:people):用于存储用户账户的OU名称(无需附加基准DN)LDAP_GROUP_OU(默认:groups):用于存储组的OU名称(无需附加基准DN)LDAP_REQUIRE_STARTTLS(默认:TRUE):若为TRUE,则需要TLS连接;若为FALSE,则可在无STARTTLS情况下工作,但页面会显示警告LDAP_IGNORE_CERT_ERRORS(默认:FALSE):若为TRUE,则忽略LDAP服务器证书问题(如FQDN不匹配),适用于自签名证书或通过轮询DNS连接多台服务器的情况LDAP_TLS_CACERT(无默认值):当LDAP_REQUIRE_STARTTLS启用时,用于TLS连接的CA证书内容,例如 -e LDAP_TLS_CACERT="$(</path/to/ca.crt)"(确保使用引号)仅当尝试使用户管理器与已填充的LDAP目录配合使用且默认设置不适用时才修改这些设置:
LDAP_ACCOUNT_ATTRIBUTE(默认:uid):用作账户标识符的账户属性,详见账户名称LDAP_GROUP_MEMBERSHIP_ATTRIBUTE(默认:memberUID 或 uniqueMember):将用户账户添加到组时使用的属性。检测到groupOfMembers对象类或FORCE_RFC2307BIS为TRUE时默认使用uniqueMember,否则默认使用memberUID。显式设置此变量将覆盖默认值LDAP_ACCOUNT_ADDITIONAL_OBJECTCLASSES(无默认值):创建账户时使用的额外对象类的逗号分隔列表,详见额外对象类和属性LDAP_ACCOUNT_ADDITIONAL_ATTRIBUTES(无默认值):创建账户时显示的额外属性的逗号分隔列表,详见额外对象类和属性LDAP_GROUP_MEMBERSHIP_USES_UID(默认:TRUE 或 FALSE):若为TRUE,则组成员条目仅为用户名;否则为成员的完整DN。检测到groupOfMembers对象类或FORCE_RFC2307BIS为TRUE时默认使用FALSE,否则默认使用TRUE。显式设置此变量将覆盖默认值FORCE_RFC2307BIS(默认:FALSE):若自动检测未能识别RFC2307BIS schema可用,可设为TRUE强制启用。设为FALSE时用户管理器将使用自动检测,详见使用RFC2307BIS schemaDEFAULT_USER_GROUP(默认:everybody):新账户自动添加的组。注意:若此组不存在,则会创建与用户名同名的组并将用户添加到该组DEFAULT_USER_SHELL(默认:/bin/bash):用户登录服务器时启动的shellEMAIL_DOMAIN(无默认值):若设置,电子邮件地址字段将自动填充为username@email_domain格式ENFORCE_SAFE_SYSTEM_NAMES(默认:TRUE):若设为TRUE(默认),将对照USERNAME_REGEX检查系统登录名和组名以确保其在服务器上可用,详见账户名称USERNAME_FORMAT(默认:{first_name}-{last_name}):用于动态生成存储在uid属性中的用户名的模板,详见用户名格式USERNAME_REGEX(默认:^[a-z][a-zA-Z0-9._-]{3,32}$):用于确保账户名和组名在服务器上可用的正则表达式,详见用户名格式PASSWORD_HASH(无默认值):用于在LDAP中存储密码的哈希方法,选项包括(按优先级排序)SHA512CRYPT、SHA256CRYPT、MD5CRYPT、SSHA、SHA、SMD5、MD5、CRYPT。若所选方法不可用,将自动选择最强可用方法(SSHA是保证可用的最强方法)。生产环境绝不应使用明文密码ACCEPT_WEAK_PASSWORDS(默认:FALSE):设为TRUE可阻止因密码太弱而被拒绝,但仍会显示密码强度指示。生产环境不应启用此选项需使用现有SMTP服务器发送邮件。若未设置SMTP_HOSTNAME,将禁用邮件发送功能:
SMTP_HOSTNAME(无默认值):用于发送邮件的SMTP服务器主机名SMTP_HOST_PORT(默认:25):SMTP服务器端口SMTP_USERNAME(无默认值):SMTP服务器认证用户名(若需要)SMTP_PASSWORD(无默认值):SMTP服务器认证密码(若需要)SMTP_USE_TLS(默认:FALSE):设为TRUE若SMTP服务器要求启用TLSEMAIL_FROM_ADDRESS(默认:admin@EMAIL_DOMAIN):发送邮件时使用的发件人地址,默认域名来自用户账户设置中的EMAIL_DOMAINEMAIL_FROM_NAME(默认:SITE_NAME):发送邮件时使用的发件人名称,默认名称来自组织设置中的SITE_NAMEACCOUNT_REQUESTS_ENABLED(默认:FALSE):设为TRUE可启用用户账户申请表单。这将向ACCOUNT_REQUESTS_EMAIL发送包含用户详细信息和账户创建页面链接的邮件,创建页面将自动填充详细信息。需先配置邮件发送(见上文邮件发送),否则将禁用请求并在日志中记录错误ACCOUNT_REQUESTS_EMAIL(默认:EMAIL_FROM_ADDRESS):接收新账户请求的电子邮件地址NO_HTTPS(默认:FALSE):设为TRUE将以HTTP模式运行服务器,不加密传输。不安全,仅用于测试SESSION_TIMEOUT(默认:10 minutes):闲置会话超时时间LDAP_DEBUG(默认:FALSE):设为TRUE可提高LDAP请求的日志级别,会将密码输出到错误日志,生产环境不应启用。用于调试LDAP记录更新问题LDAP_VERBOSE_CONNECTION_LOGS(默认:FALSE):设为TRUE可启用详细LDAP连接日志(PHP的LDAP_OPT_DEBUG_LEVEL 7),会产生大量日志,生产环境应禁用。用于调试LDAP服务器连接问题SESSION_DEBUG(默认:FALSE):设为TRUE可提高会话和用户授权的日志级别,会将Cookie密钥输出到错误日志,生产环境不应启用SMTP_LOG_LEVEL(默认:0):设为1-4可获取SMTP日志信息(0禁用SMTP调试日志,但仍显示错误)。详见PHPMailer SMTP调试当NO_HTTPS设为FALSE(默认)时,Web服务器(Apache HTTPD)需要找到/opt/ssl/server.key和/opt/ssl/server.crt,且这些证书应与SERVER_HOSTNAME匹配。若未找到这些文件,启动脚本将基于SERVER_HOSTNAME创建自签名证书。
要使用自己的密钥和证书,需将包含它们的目录挂载到/opt/ssl。若需要证书链文件(Apache的SSLCertificateChainFile选项),可命名为chain.pem并放在与server.key和server.crt相同的目录中。
例如,若密钥和证书文件位于/home/myaccount/ssl,可在docker run命令中添加以下行(在最后一个-e行之后):
bash-v /home/myaccount/ssl:/opt/ssl \
理想情况下,应在空LDAP目录上使用此工具。可使用设置工具创建用户管理器所需的LDAP结构以创建账户和组。访问https://{SERVER_HOSTNAME}/setup开始设置(将{SERVER_HOSTNAME}替换为Docker运行命令中设置的SERVER_HOSTNAME值)。
登录密码是管理员用户的密码(即LDAP_ADMIN_BIND_DN设置的值)。
设置工具将创建用户和账户树、存储创建用户账户或组时使用的最后一个UID和GID的记录、管理员组以及初始管理员账户。
!initial_setup
创建账户时,可选择向账户创建对象发送邮件。邮件将包含其新用户名、密码和自助密码修改工具的链接。
邮件通过SMTP发送,因此需要能够连接到SMTP服务器并通过环境变量传入服务器设置(见上文邮件发送)。
若未传入这些设置,或创建的账户没有(有效的)电子邮件地址,则发送邮件选项将被禁用。
账户创建时会提示邮件是否发送成功,但请注意,SMTP服务器接受邮件并不意味着一定能成功投递。若收到邮件未发送的消息,请检查日志中的错误。可将日志级别(SMTP_LOG_LEVEL)设为大于0以查看SMTP调试日志。
登录用户管理器时使用账户的账户标识符值。默认情况下,用户管理器使用系统用户名作为登录名,即LDAP的uid属性。因此,若系统用户名为test-person,则使用该名称登录。
uid属性通常用作Linux、FreeBSD、NetBSD等系统的登录用户名,因此若使用LDAP创建服务器账户,这是一个很好的选择。
其他服务或软件可能使用通用名称(cn)属性,通常是个人的全名,因此可能以Test Person登录。
账户标识符用于唯一标识账户,因此不能创建账户标识符相同的多个账户。
应确保LDAP客户端在验证用户时使用相同的账户标识符属性。
若使用LDAP进行服务器账户管理,通常对字符数量和类型有约束。用户管理器将对照USERNAME_REGEX验证用户名和组名。若不需要如此严格的检查,可将ENFORCE_SAFE_SYSTEM_NAMES设为FALSE。
输入人名时,系统用户名会基于模板自动填充。模板由USERNAME_FORMAT定义,是包含预定义宏的字符串,这些宏将被替换为相关值。
默认模板为{first_name}-{last_name},例如"Jonathan Testperson"的用户名将为"jonathan-testperson"。
当前可用的宏:
{first_name}:小写的名字{first_name_initial}:小写的名字首字母{last_name}:小写的姓氏{last_name_initial}:小写的姓氏首字母USERNAME_FORMAT字符串中的其他内容将保持不变。若启用ENFORCE_SAFE_SYSTEM_NAMES,用户名还将对照USERNAME_REGEX检查有效性,以确保没有使用LDAP创建服务器或电子邮件账户时禁止使用的字符。
若设置了EMAIL_DOMAIN,电子邮件地址字段将自动更新为username@email_domain格式。手动输入任何内容到该字段将停止电子邮件字段的自动更新。
若需要将此用户管理器与现有LDAP目录配合使用,且账户记录需要额外的对象类和
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429