diff --git a/README.md b/README.md index 908d9e9302a11861a59f0ef169fc4d69b79cf3be..3fdd3dc93cfc65d9b4819a884e4cfacf1b45fa57 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,21 @@ LDAP Testdaten zur lokalen Entwicklung von Anwendungen mit Anbindung an den Warpzone-LDAP +## LDAP Struktur + +[Die Struktur des Warpzone-LDAP ist hier im Wikk dokumentiert](https://wiki.warpzone.ms/infrastruktur:ldap) + +## Docker Container + +Der über die docker-compose erstellte Container ist über die Port 389 und 636 lokal zugreifbar. +Zusaätzlich ist eine phpLDAP Admin Instanz auf Port 8080 verfügbar. + +Folgende Anmeldungen können für den LDAP Server verwendet werden: + +**LDAP Admin** +- BN: cn=admin,dc=warpzone,dc=ms +- PW: adminpw + +**LDAP Readonly Zugriff** +- BN: cn=readonly,dc=warpzone,dc=ms +- PW: readonlypw diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..0549601d471676aa010c7072149654f9bccb9a2b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3" + +services: + + openldap: + image: osixia/openldap:1.2.4 + command: --copy-service + volumes: + - ./ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom + ports: + - 127.0.0.1:389:389 + - 127.0.0.1:636:636 + environment: + - LDAP_BACKEND=hdb + - LDAP_ORGANISATION=Warpzone DEV + - LDAP_DOMAIN=warpzone.ms + - LDAP_ADMIN_PASSWORD=adminpw + - LDAP_READONLY_USER=true + - LDAP_READONLY_USER_USERNAME=readonly + - LDAP_READONLY_USER_PASSWORD=readonlypw + + phpldapadmin: + image: osixia/phpldapadmin:0.7.2 + depends_on: + - openldap + ports: + - 127.0.0.1:8080:80 + environment: + - PHPLDAPADMIN_LDAP_HOSTS=openldap + - PHPLDAPADMIN_HTTPS=false + diff --git a/ldif/10_ldapdata.ldif b/ldif/10_ldapdata.ldif new file mode 100644 index 0000000000000000000000000000000000000000..a6bd80cebf6483b58fc41a0129058582a4915015 --- /dev/null +++ b/ldif/10_ldapdata.ldif @@ -0,0 +1,23 @@ + +# LDAP Grundstruktur + +version: 1 + +# OU für Organisatorische Gruppen +dn: ou=groups,dc=warpzone,dc=ms +objectclass: organizationalUnit +objectclass: top +ou: groups + +# OU für Infrastruktur-Gruppen +dn: ou=infrastructure,dc=warpzone,dc=ms +objectclass: organizationalUnit +objectclass: top +ou: infrastructure + +# OU für Benutzer +dn: ou=users,dc=warpzone,dc=ms +objectclass: organizationalUnit +objectclass: top +ou: users + diff --git a/ldif/20_groups.ldif b/ldif/20_groups.ldif new file mode 100644 index 0000000000000000000000000000000000000000..c7f09c07b575235452bcfc0a7bea1e1f3d672acc --- /dev/null +++ b/ldif/20_groups.ldif @@ -0,0 +1,38 @@ + +# LDAP Gruppen + +version: 1 + +# Gruppe für alle aktiven Benutzer +dn: cn=active,ou=groups,dc=warpzone,dc=ms +cn: active +objectclass: groupOfUniqueNames +objectclass: top +uniquemember: uid=testuser,ou=users,dc=warpzone,dc=ms +uniquemember: uid=testmember,ou=users,dc=warpzone,dc=ms +uniquemember: uid=testvorstand,ou=users,dc=warpzone,dc=ms +uniquemember: uid=testadmin,ou=users,dc=warpzone,dc=ms + +# Gruppe für Warpzone Mitglieder +dn: cn=member,ou=groups,dc=warpzone,dc=ms +cn: member +objectclass: groupOfUniqueNames +objectclass: top +uniquemember: uid=testmember,ou=users,dc=warpzone,dc=ms +uniquemember: uid=testvorstand,ou=users,dc=warpzone,dc=ms +uniquemember: uid=testadmin,ou=users,dc=warpzone,dc=ms + +# Gruppe für Warpzone Vorstand +dn: cn=vorstand,ou=groups,dc=warpzone,dc=ms +cn: vorstand +objectclass: groupOfUniqueNames +objectclass: top +uniquemember: uid=testvorstand,ou=users,dc=warpzone,dc=ms + +# Beispielgruppe Administratoren dieser Anwendung +dn: cn=myapp-admin,ou=infrastructure,dc=warpzone,dc=ms +cn: myapp-admin +objectclass: groupOfUniqueNames +objectclass: top +uniquemember: uid=testadmin,ou=users,dc=warpzone,dc=ms + diff --git a/ldif/30_users.ldif b/ldif/30_users.ldif new file mode 100644 index 0000000000000000000000000000000000000000..94dff67b83543c67d8cda2e939f056fce245237b --- /dev/null +++ b/ldif/30_users.ldif @@ -0,0 +1,59 @@ + +# LDAP Benutzer + +version: 1 + +# Testbenutzer ohne weitere Rechte, kein Warpzone Mitglied +dn: uid=testuser,ou=users,dc=warpzone,dc=ms +cn: Test User +givenname: User +mail: testuser@example.org +objectclass: inetOrgPerson +objectclass: top +sn: Test +uid: testuser +userpassword: warpzone + +# Testbenutzer, Warpzone Mitglied +dn: uid=testmember,ou=users,dc=warpzone,dc=ms +cn: Test Member +givenname: Member +mail: testmember@example.org +objectclass: inetOrgPerson +objectclass: top +sn: Test +uid: testmember +userpassword: warpzone + +# Testbenutzer, Warpzone Mitglied und Vorstand +dn: uid=testvorstand,ou=users,dc=warpzone,dc=ms +cn: Test Vorstand +givenname: Vorstand +mail: testvorstand@example.org +objectclass: inetOrgPerson +objectclass: top +sn: Test +uid: testvorstand +userpassword: warpzone + +# Testbenutzer, Warpzone Mitglied und Administrator +dn: uid=testadmin,ou=users,dc=warpzone,dc=ms +cn: Test Admin +givenname: Admin +mail: testadmin@example.org +objectclass: inetOrgPerson +objectclass: top +sn: Test +uid: testadmin +userpassword: warpzone + +# Testbenutzer, nicht aktiv +dn: uid=testinactive,ou=users,dc=warpzone,dc=ms +cn: Test Inactive +givenname: Inactive +mail: testinactive@example.org +objectclass: inetOrgPerson +objectclass: top +sn: Test +uid: testinactive +userpassword: warpzone diff --git a/run_container.bat b/run_container.bat new file mode 100644 index 0000000000000000000000000000000000000000..5b6daa2637d2423d40880bd63339e6864459a157 --- /dev/null +++ b/run_container.bat @@ -0,0 +1,3 @@ + +docker-compose rm -f +docker-compose up --force-recreate --build diff --git a/run_container.sh b/run_container.sh new file mode 100644 index 0000000000000000000000000000000000000000..aa64bf4d8298f92eaf187bcd0ca436997e9a6149 --- /dev/null +++ b/run_container.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +docker-compose rm -f +docker-compose up --force-recreate --build