Anbindung von Active Directory testen - Einfache Lösung im Docker Container
Häufig befinden sich die Nutzerdaten (Benutzernamen, Passwörter und Gruppenzugehörigkeiten) von Unternehmen in Active Directory Servern.
Entwickelt man eigene Anwendungen, die diese Benutzerdaten nutzen sollen oder plant man den Einsatz einer Single-Sign-On-Lösung wie Keycloak, so muss man das Active Directory anbinden. Prinzipiell verhält sich ein Active-Directory-Server (AD) wie ein "normaler" LDAP-Server. Man könnte also zur Entwicklung statt eines AD auch einen OpenLDAP-Server oder ein ähnliches leichtgewichtiges Produkt nutzen, das sich einfach als Container in Docker oder Kubernetes betreiben lässt.
Leider hat AD im Gegensatz zu anderen LDAP-Servern ein paar Eigenheiten, die berücksichtigt werden möchten - insbesondere bei der der Durchführung von Entwickler- oder Integrationstests.
Um ein Active Directory in der Entwicklung nachzubilden, bietet sich der Einsatz von Samba in Docker an. So erhält man eine leichtgewichtige und reproduzierbare AD-Umgebung, die sich ideal für Tests eignet.
Ein einfaches Setup lässt sich mit dem Docker-Image smblds/smblds
umsetzen. Dieses Image stellt einen Samba-basierten AD-Server bereit, den man via Docker Compose starten kann.
Hier ein Beispiel für eine docker-compose.yml
:
version: '3.8'
services:
ad:
image: smblds/smblds
restart: unless-stopped
environment:
INSECURE_LDAP: "true" # Erlaubt Login mit Passwort auch ohne TLS
ports:
- "389:389" # LDAP
- "636:636" # LDAPS
volumes:
- ./entrypoint.d:/entrypoint.d
Anmelden kann man sich über CN=Administrator,CN=Users,DC=samdom,DC=example,DC=com
mit dem Passwort Passw0rd
.
⚠️ Wichtig: Das Verzeichnis entrypoint.d
dient dazu, eigene Skripte beim Start des Containers auszuführen. Hier kann man z. B. Benutzer und Gruppen anlegen.
Ein Beispiel für ein solches Skript (entrypoint.d/users.sh
):
#!/bin/sh
# Benutzer zur Simpsons-Gruppe hinzufügen
samba-tool user add marge 'mArge!!!' --given-name=Marge --surname=Simpson
samba-tool user add lisa 'l1sa!!!' --given-name=Lisa --surname=Simpson
samba-tool user add homer 'h0mer!!!' --given-name=Homer --surname=Simpson
samba-tool user add bart 'bArt!!!' --given-name=Bart --surname=Simpson
samba-tool group add Simpsons
samba-tool group addmembers Simpsons marge,lisa,homer,bart
# Benutzer zur Futurama-Gruppe hinzufügen
samba-tool user add leela 'lEela!!!' --given-name=Leela [email protected]
samba-tool user add bender 'bEnder!!!' --given-name=Bender [email protected]
samba-tool group add Futurama
samba-tool group addmembers Futurama leela,bender
Damit das Skript ausgeführt werden kann, muss es ausführbar sein:
chmod +x entrypoint.d/users.sh
Vorteile dieses Ansatzes
-
Schnelles Aufsetzen einer AD-Testumgebung in wenigen Minuten
-
Reproduzierbarkeit: Jedes Teammitglied kann lokal dieselbe Umgebung nutzen
-
Integrationstests können gegen eine echte AD-Schnittstelle laufen
Was man noch beachten sollte
-
Das
smblds
-Image ist primär für Entwicklungs- und Testzwecke gedacht – nicht für Produktion.
Zu den Themen Keycloak, Spring Security, Angular und Vue bieten wir sowohl Beratung, Entwicklungsunterstützung als auch passende Schulungen an:
Vor der Inbetriebnahme von sicherheitskritischen Komponenten wie Keycloak, sollte sichergestellt sein, dass das System tatsächlich bereit für den produktiven Einsatz ist und, dass alle wesentlichen Punkte bei Konfiguration, Integration und Betriebsprozessen berücksichtigt wurden. Hierbei hilft unser Production Readiness Review für Keycloak.
Auch für Ihren individuellen Bedarf können wir Workshops und Schulungen anbieten. Sprechen Sie uns gerne an.