Skip to content

Instantly share code, notes, and snippets.

@thomasdarimont
Created January 25, 2019 17:52
Show Gist options
  • Save thomasdarimont/d22a616a74b45964106461efb948df9c to your computer and use it in GitHub Desktop.
Save thomasdarimont/d22a616a74b45964106461efb948df9c to your computer and use it in GitHub Desktop.
Docker OpenLDAP + phpldapadmin example

Start

docker-compose up -d

Query

 docker exec openldap ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
version: '2'
services:
openldap:
image: osixia/openldap:1.2.3
container_name: openldap
environment:
LDAP_LOG_LEVEL: "256"
LDAP_ORGANISATION: "Example Inc."
LDAP_DOMAIN: "example.org"
LDAP_BASE_DN: ""
LDAP_ADMIN_PASSWORD: "admin"
LDAP_CONFIG_PASSWORD: "config"
LDAP_READONLY_USER: "false"
LDAP_READONLY_USER_USERNAME: "readonly"
LDAP_READONLY_USER_PASSWORD: "readonly"
LDAP_RFC2307BIS_SCHEMA: "false"
LDAP_BACKEND: "mdb"
LDAP_TLS: "true"
LDAP_TLS_CRT_FILENAME: "ldap.crt"
LDAP_TLS_KEY_FILENAME: "ldap.key"
LDAP_TLS_CA_CRT_FILENAME: "ca.crt"
LDAP_TLS_ENFORCE: "false"
LDAP_TLS_CIPHER_SUITE: "SECURE256:-VERS-SSL3.0"
LDAP_TLS_PROTOCOL_MIN: "3.1"
LDAP_TLS_VERIFY_CLIENT: "demand"
LDAP_REPLICATION: "false"
#LDAP_REPLICATION_CONFIG_SYNCPROV: "binddn="cn=admin,cn=config" bindmethod=simple credentials=$LDAP_CONFIG_PASSWORD searchbase="cn=config" type=refreshAndPersist retry="60 +" timeout=1 starttls=critical"
#LDAP_REPLICATION_DB_SYNCPROV: "binddn="cn=admin,$LDAP_BASE_DN" bindmethod=simple credentials=$LDAP_ADMIN_PASSWORD searchbase="$LDAP_BASE_DN" type=refreshAndPersist interval=00:00:00:10 retry="60 +" timeout=1 starttls=critical"
#docker-compose.ymlLDAP_REPLICATION_HOSTS: "#PYTHON2BASH:['ldap://ldap.example.org','ldap://ldap2.example.org']"
KEEP_EXISTING_CONFIG: "false"
LDAP_REMOVE_CONFIG_AFTER_SETUP: "true"
LDAP_SSL_HELPER_PREFIX: "ldap"
tty: true
stdin_open: true
volumes:
- /var/lib/ldap
- /etc/ldap/slapd.d
- /container/service/slapd/assets/certs/
ports:
- "389:389"
- "636:636"
domainname: "example.org" # important: same as hostname
hostname: "example.org"
phpldapadmin:
image: osixia/phpldapadmin:latest
container_name: phpldapadmin
environment:
PHPLDAPADMIN_LDAP_HOSTS: "openldap"
PHPLDAPADMIN_HTTPS: "false"
ports:
- "8080:80"
depends_on:
- openldap
@nthung82
Copy link

nthung82 commented May 2, 2020

docker run --name ldap-service --hostname ldap-service --detach osixia/openldap:1.1.8
docker run --name phpldapadmin-service --hostname phpldapadmin-service -p 6443:443 --link ldap-service:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin:0.9.0

Login:

Username: "cn=admin,dc=example,dc=org"
Password: "admin"

@samusinho
Copy link

hi.
I'm trying to login with

Username: cn=admin,dc=example,dc=org
Password: admin

ldaplogin

but, ldap always show "user or passwor incorrect".

thanks for ur help

Copy link

ghost commented May 22, 2020

The osixia/openldap repo comes with a sample docker-compose.yml file
https://github.com/osixia/docker-openldap/blob/stable/example/docker-compose.yml

@stwaidele
Copy link

I also had the login–issue. Root cause was that the openldap–container failed and stopped immediately, throwing error messages that led to some really old bugreports.

The issue was resolved when I changed the line
image: osixia/openldap:1.2.3
to
image: osixia/openldap:latest

I'd suggest to change the example accordingly.

@AndreVirtimo
Copy link

The osixia/openldap repo comes with a sample docker-compose.yml file
https://github.com/osixia/docker-openldap/blob/stable/example/docker-compose.yml

Thank you for the information. There is no stable branch. So the current example is here:
https://github.com/osixia/docker-openldap/blob/master/example/docker-compose.yml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment