feat: ldap
This commit is contained in:
parent
5d946e8a34
commit
bd649cb305
11
ldap/.env
Normal file
11
ldap/.env
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
BASE_URL=ldap.
|
||||||
|
EMAIL=
|
||||||
|
|
||||||
|
LDAP_LOG_LEVEL=0
|
||||||
|
|
||||||
|
LDAP_DOMAIN=
|
||||||
|
LDAP_ORGANIZATION=
|
||||||
|
LDAP_ADMIN_PASSWORD=
|
||||||
|
|
||||||
|
LDAPSIZELIMIT=1000
|
||||||
|
LDAPTIMELIMIT=60
|
11
ldap/Dockerfile
Normal file
11
ldap/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM debian:12-slim
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
ldap-utils \
|
||||||
|
slapd \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY entrypoint.sh /usr/local/bin/
|
||||||
|
EXPOSE 389 636
|
||||||
|
ENTRYPOINT ["entrypoint.sh"]
|
9
ldap/compose-dev.yaml
Normal file
9
ldap/compose-dev.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
services:
|
||||||
|
ldap:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "389:389"
|
||||||
|
- "636:636"
|
||||||
|
env_file:
|
||||||
|
- .env
|
24
ldap/compose.yaml
Normal file
24
ldap/compose.yaml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
services:
|
||||||
|
install_site:
|
||||||
|
build: install_site
|
||||||
|
environment:
|
||||||
|
- BASE_URL
|
||||||
|
- EMAIL
|
||||||
|
volumes:
|
||||||
|
- certs:/etc/letsencrypt/
|
||||||
|
- certbotroot:/var/www/certbot/
|
||||||
|
|
||||||
|
ldap:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "389:389"
|
||||||
|
- "636:636"
|
||||||
|
env_file:
|
||||||
|
.env
|
||||||
|
volumes:
|
||||||
|
- certs:/etc/letsencrypt/:ro
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
certs:
|
||||||
|
external: true
|
28
ldap/entrypoint.sh
Executable file
28
ldap/entrypoint.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
LDAPMODIFY=(ldapmodify -Q -YEXTERNAL -Hldapi:///)
|
||||||
|
SLAPD=(su openldap -c "slapd '-hldap:/// ldaps:/// ldapi:///' -d$LDAP_LOG_LEVEL")
|
||||||
|
|
||||||
|
# https://sources.debian.org/src/openldap/2.5.13+dfsg-5/debian/slapd.templates/
|
||||||
|
cat <<EOF | debconf-set-selections && dpkg-reconfigure slapd
|
||||||
|
slapd slapd/dump_database select always
|
||||||
|
slapd slapd/domain string '$LDAP_DOMAIN'
|
||||||
|
slapd shared/organization string '$LDAP_ORGANIZATION'
|
||||||
|
slapd slapd/password1 string '$LDAP_ADMIN_PASSWORD'
|
||||||
|
slapd slapd/password2 string '$LDAP_ADMIN_PASSWORD'
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# start slapd
|
||||||
|
"${SLAPD[@]}" &
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# enable SHA2
|
||||||
|
"${LDAPMODIFY[@]}" <<EOF
|
||||||
|
dn: cn=module{0},cn=config
|
||||||
|
changetype: modify
|
||||||
|
add: olcModuleLoad
|
||||||
|
olcModuleLoad: pw-sha2
|
||||||
|
EOF
|
||||||
|
|
||||||
|
/etc/init.d/slapd stop
|
||||||
|
exec "${SLAPD[@]}"
|
1
ldap/install_site
Symbolic link
1
ldap/install_site
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../_nginx/install_site
|
15
ldap/user.ldif
Normal file
15
ldap/user.ldif
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
dn: cn=firstname.lastname,dc=domain,dc=tld
|
||||||
|
givenName: firstname
|
||||||
|
cn: firstname.lastname
|
||||||
|
sn: lastname
|
||||||
|
uid: flastname
|
||||||
|
homeDirectory: /home/flastname
|
||||||
|
mail: flastname@domain.tld
|
||||||
|
mail: first.lastname@domain.tld
|
||||||
|
# slappasswd -h{SHA512} -omodule-load=pw-sha2 -s password
|
||||||
|
userPassword: {SHA512}sQnzu7wkTrgkQZF+0G1hi5AI3Qmzvv0bXgc5THBqi7mAsdd4Xll27ASbRt9fEyavWi6m0QP9B8lThf+rDKy8hg==
|
||||||
|
loginShell: /bin/bash
|
||||||
|
uidNumber: 5001
|
||||||
|
gidNumber: 0
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: posixAccount
|
Loading…
Reference in New Issue
Block a user