
yadd/lemonldap-ng-base该镜像为yadd/lemonldap-ng-*系列Docker的基础镜像,主要功能是配置LemonLDAP::NG(一款开源SSO解决方案)。它不直接提供服务,而是为其他LLNG相关镜像提供统一的配置环境,支持通过环境变量自定义核心参数,并集成多种配置存储后端。
stable:包含Debian backports的最新lemonldap-ng*软件包及稳定补丁stable-no-s6:与stable相同,但不含S6-overlay2.x.x-y:版本化标签,包含指定版本的lemonldap-ng*软件包及补丁版本"y"2.x.x-y-no-s6:与版本化标签相同,但不含S6-overlay此外提供基于日期的标签。
SSODOMAIN)PORTAL)LOGLEVEL)REDIS_SERVER,自动将globalStorage切换为Apache::Session::Browseable::Redis并配置(索引由REDIS_INDEXES指定,默认:"uid mail")PG_SERVER且PostgreSQL目标表为空FORCE_KEY_REGENERATION=yes,自动生成随机配置密钥建议将
FORCE_KEY_REGENERATION设置为yes以确保密钥安全
SSODOMAIN = example.com(SSO域名)CROWDSEC_SERVER = (CrowdSec服务器完整URL,例:[***]CROWDSEC_POLICY = reject(策略类型,可选:warn, reject)CROWDSEC_KEY = (必填,通过cscli bouncers add mylemon获取)CROWDSEC_IGNORE_FAILURES = (可选值:<空> 1,是否忽略CrowdSec连接失败)FORWARDED_BY = (反向代理IP地址,若使用反向代理需设置)FORWARDED_HEADER = X-Forwarded-For(转发请求头字段)PORTAL = [***](门户完整URL)LISTEN = (FastCGI服务器监听地址,格式:端口号)LLNG_AUDITLOGGER = Lemonldap::NG::Common::AuditLogger::UserLoggerJSON(审计日志器,可选UserLoggerCompat以输出文本日志)LOGLEVEL = info(日志级别,可选:debug, info, notice, warn, error)LOGGER = syslog(日志输出方式,可选:stderr, syslog, loki)USERLOGGER = syslog(用户日志输出方式,可选值同LOGGER)AUDITLOGGER = (审计日志输出方式,无默认值)NGINX_LOG_JSON = (若设置值,将LLNG日志格式改为JSON)LOKIURL = http://localhost:3100/loki/api/v1/push(Loki日志服务器URL)LOKITENANT = (Loki租户ID,无默认值)FORCE_KEY_REGENERATION = no(是否强制重新生成配置密钥)LANGUAGES = 默认LLNG语言列表(通过逗号分隔设置自定义语言,例:fr,en)PG_SERVER = (PostgreSQL服务器地址,无默认值)PG_DATABASE = lemonldapng(数据库名)PG_USER = lemonldap(数据库用户)PG_PASSWORD = lemonldap(数据库密码)PG_TABLE = lmConfig(配置表名)PG_OPTIONS = (PostgreSQL连接选项,无默认值)DBI_CHAIN = 若PG_SERVER存在,则为DBI:Pg:database=$PG_DATABASE;host=$PG_SERVER;$PG_OPTIONS,否则为空DBI_USER = $PG_USER(数据库连接用户)DBI_PASSWORD = $PG_PASSWORD(数据库连接密码)REDIS_SERVER为空且配置数据库为空时使用):
PG_PERSISTENT_SESSIONS_TABLE = psessions(持久会话表)PG_SESSIONS_TABLE = sessions(普通会话表)PG_SAML_TABLE = samlsessions(SAML会话表)PG_OIDC_TABLE = oidcsessions(OIDC会话表)PG_CAS_TABLE = cassessions(CAS会话表)HANDLER_CRON = yes(是否启用handler会话清理)PORTAL_CRON = yes(是否启用portal会话清理)LemonLDAP::NG日志:使用默认syslog时,日志存储于/var/log/syslogd/(S6默认行为)
通过PG_OPTIONS设置额外连接参数,示例:
PG_OPTIONS=port=23456PG_OPTIONS=sslmode=requirePG_OPTIONS=port=23456;sslmode=require通过DBI_CHAIN手动指定完整连接串(需配合DBI_USER和DBI_PASSWORD):
DBI_CHAIN=dbi:Pg:dbname=lemonldapng;host=postgresql.host.tld;port=23456;sslmode=require DBI_USER=pguser DBI_PASSWORD=pgpassword
自2.19.0-1标签起,支持两种方式覆盖LLNG配置参数:
将配置文件放入/over目录:
设置OVERRIDE_<参数名>环境变量,示例(docker-compose.yml):
yamlenvironment: - OVERRIDE_checkXSS=0 - OVERRIDE_exportedVars={"Name":"cn"}
JSON格式仅支持对象和数组
使用下划线分隔子键,例:设置ldapExportedVars的uid子键为cn:
yamlenvironment: - OVERRIDE_ldapExportedVars_uid=cn
注意:父级配置键(如ldapExportedVars)必须已存在
以下示例配合yadd/lemonldap-ng-portal并启用CrowdSec:
yamlversion: "3.4" services: pgdb: image: yadd/lemonldap-ng-pg-database environment: - POSTGRES_PASSWORD=zz healthcheck: test: ["CMD-SHELL", "pg_isready"] interval: 10s timeout: 5s retries: 5 redis: image: redis portal: image: yadd/lemonldap-ng-portal environment: - PG_SERVER=pgdb - REDIS_SERVER=redis:6379 - LOGGER=stderr - USERLOGGER=stderr - OVERRIDE_exportedVars={"cn":"cn","mail":"mail","uid":"uid"} - CROWDSEC_SERVER=[***] - CROWDSEC_KEY=myrandomstring - CROWDSEC_ACTION=reject depends_on: pgdb: condition: service_healthy redis: condition: service_started crowdsec: image: crowdsecurity/crowdsec environment: - BOUNCER_KEY_llng=myrandomstring
版权所有:
许可协议:GNU通用公共许可证v2.0




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务