From 868196d9da50efe2d060ecf080ab9a98901f7e4c Mon Sep 17 00:00:00 2001
From: Christian Elberfeld <christian.elberfeld@adesso.de>
Date: Mon, 22 Apr 2019 16:05:01 +0200
Subject: [PATCH] initial version

---
 README.md             | 18 +++++++++++++
 docker-compose.yml    | 31 +++++++++++++++++++++++
 ldif/10_ldapdata.ldif | 23 +++++++++++++++++
 ldif/20_groups.ldif   | 38 ++++++++++++++++++++++++++++
 ldif/30_users.ldif    | 59 +++++++++++++++++++++++++++++++++++++++++++
 run_container.bat     |  3 +++
 run_container.sh      |  4 +++
 7 files changed, 176 insertions(+)
 create mode 100644 docker-compose.yml
 create mode 100644 ldif/10_ldapdata.ldif
 create mode 100644 ldif/20_groups.ldif
 create mode 100644 ldif/30_users.ldif
 create mode 100644 run_container.bat
 create mode 100644 run_container.sh

diff --git a/README.md b/README.md
index 908d9e9..3fdd3dc 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 0000000..0549601
--- /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 0000000..a6bd80c
--- /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 0000000..c7f09c0
--- /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 0000000..94dff67
--- /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 0000000..5b6daa2
--- /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 0000000..aa64bf4
--- /dev/null
+++ b/run_container.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker-compose rm -f
+docker-compose up --force-recreate --build
-- 
GitLab