LDAP + Jenkins Authentication
Configure Jenkins to authenticate users against OpenLDAP and enforce access using LDAP groups.Docker Compose
Download and start the stack:
wget https://raw.githubusercontent.com/VibhuviOiO/infinite-containers/main/openldap/docker-compose-jenkins.yml -O docker-compose.yml
Environment Configuration
Create .env.vibhuvioio:
LDAP_DOMAIN=vibhuvioio.com
LDAP_ORGANIZATION=Vibhuvioio
LDAP_ADMIN_PASSWORD=changeme
LDAP_CONFIG_PASSWORD=changeme
INCLUDE_SCHEMAS=cosine,inetorgperson,nis
ENABLE_MONITORING=true
Start Services
docker compose up -d
Wait 60 seconds for LDAP initialization.
Create Directory Structure
Create base.ldif:
dn: ou=People,dc=vibhuvioio,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=vibhuvioio,dc=com
objectClass: organizationalUnit
ou: Groups
Import:
docker exec -i openldap-vibhuvioio ldapadd \
-x -D "cn=Manager,dc=vibhuvioio,dc=com" -w changeme \
-f /dev/stdin < base.ldif
Create Jenkins Authorization Groups
Create groups.ldif:
dn: cn=ci-admins,ou=Groups,dc=vibhuvioio,dc=com
objectClass: groupOfNames
cn: ci-admins
member: cn=dummy,dc=vibhuvioio,dc=com
dn: cn=ci-developers,ou=Groups,dc=vibhuvioio,dc=com
objectClass: groupOfNames
cn: ci-developers
member: cn=dummy,dc=vibhuvioio,dc=com
Import:
docker exec -i openldap-vibhuvioio ldapadd \
-x -D "cn=Manager,dc=vibhuvioio,dc=com" -w changeme \
-f /dev/stdin < groups.ldif
Create Test User
Create testuser.ldif:
dn: uid=testuser,ou=People,dc=vibhuvioio,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
cn: Test User
sn: User
givenName: Test
uid: testuser
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/testuser
mail: testuser@vibhuvioio.com
userPassword: password
Import:
docker exec -i openldap-vibhuvioio ldapadd \
-x -D "cn=Manager,dc=vibhuvioio,dc=com" -w changeme \
-f /dev/stdin < testuser.ldif
Add User to Admin Group
Create add-member.ldif:
dn: cn=ci-admins,ou=Groups,dc=vibhuvioio,dc=com
changetype: modify
add: member
member: uid=testuser,ou=People,dc=vibhuvioio,dc=com
Apply:
docker exec -i openldap-vibhuvioio ldapmodify \
-x -D "cn=Manager,dc=vibhuvioio,dc=com" -w changeme \
-f /dev/stdin < add-member.ldif
Verify LDAP Authentication
docker exec openldap-vibhuvioio ldapwhoami \
-x \
-D "uid=testuser,ou=People,dc=vibhuvioio,dc=com" \
-w password
Expected: dn:uid=testuser,ou=People,dc=vibhuvioio,dc=com
Jenkins Configuration
Retrieve initial admin password:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
Open http://localhost:8080 and paste the password when prompted.
Select Install suggested plugins.Login Verification
Login with:
username: testuser
password: password
Successful login confirms LDAP authentication with group-based CI access control.