Auf dieser Seite
Tag 4 - Dex-Lokal-Login per LDAP gegen OpenCloud-IDM
Dex-LDAP-Connector zum integrierten OpenCloud-IDM, LDAPS-TLS-Zertifikatsfix und GitHub-Issue #1 mit automatisierten Tests in PASS geschlossen.
Einleitung
Tag 4 (Fenster der letzten vier Stunden am 27. Mai 2026, ~11:40–15:40 CEST auf dem Produktions-Debian-VPS) konzentriert sich auf ein einziges Authentifizierungsziel: der lokale Login muss jeden Benutzer aus dem integrierten OpenCloud-IDM akzeptieren (gleiche uid und Passwort wie in den Einstellungen) und weiterhin Dex-OIDC-Tokens für den Proxy ausgeben.
Dex' statischer Passwort-Speicher wird durch einen LDAP-Connector zum IDM-LDAPS ersetzt, das TLS-Zertifikat des internen LDAP-Dienstes korrigiert, und die Autoagents-Schleife schließt GitHub-Issue #1 mit automatisierten Tests in PASS.
Zusammenfassung
Tagesergebnis
- Dex ↔ IDM:
ldap-Connector →ldaps://opencloud:9235, Baseou=users,o=libregraph-idm; Dex im Docker-Netzwerkopencloud_opencloud-netmit Config/Daten-Volumes für CAidm/ldap.crt. - OpenCloud:
IDM_LDAPS_ADDR=0.0.0.0:9235im External-Proxy-Overlay;login.htmlnutztconnector_id=ldap; nginx und Auth-JSON aufcloud.km0digital.comausgerichtet. - IDM-TLS: Zertifikat mit SAN
DNS:opencloudregeneriert (zuvor nurlocalhost); Skriptregenerate-opencloud-idm-ldap-cert.sh. - Autoagents: Task PASS geschlossen; Paketversion 1.0.18; manueller Login mit zwei verschiedenen Benutzern ausstehend (Operator).
Problem
GitHub #1
Der hybride Flow leitete bereits Google/Apple und lokalen Login über Dex, aber der lokale Connector stützte sich auf Dex' statischen Passwort-Speicher: er funktionierte nur für vordefinierte Zugangsdaten, nicht für alle in OpenClouds IDM erstellten inetOrgPerson-Benutzer.
Anforderung: Zugangsdaten mit OpenCloud-Einstellungen vereinheitlichen und den OIDC-Issuer (OC_OIDC_ISSUER) beibehalten, den der Proxy nutzt.
Lösung
Dex-LDAP- + IDM-Integration
- Dex:
type: ldap-Connector index/config.yaml; lokale Passwort-DB entfernt. - Dex-Compose: Beitritt zu
opencloud_opencloud-net; Mounts vonopencloud-configundopencloud-datazum Lesen der CA und des gemounteten Config-idm_password. - OpenCloud-Overlay:
IDM_LDAPS_ADDR=0.0.0.0:9235, damit Dex LDAPS über Hostnameopenclouderreicht. - UI:
login.htmlmit „lokal“-Button undconnector_id=ldap; nginx/dex/authohne Connector → Login-Selector.
Ablauf
Login nach den Änderungen
login.html
├── Google → Dex connector google → OIDC token → OpenCloud proxy
├── Apple → Dex connector apple → (wenn konfiguriert)
└── Local → Dex connector ldap → IDM LDAPS opencloud:9235
(beliebige inetOrgPerson uid + Passwort)Soziale Connectors folgen demselben OIDC-Muster; lokaler Login ist keine feste Liste in Dex mehr, sondern ein LDAP-Bind gegen das eingebettete Verzeichnis des Stacks.
Collabora
Co-Bearbeitung nach vereinheitlichtem Login
Die in Tag 3 dokumentierte Collabora-Integration ermöglicht Office-Bearbeitung im Browser für alle authentifizierten Nutzer. Mit dem Dex-LDAP-Connector von Tag 4 kann jeder IDM-Nutzer (gleiches uid und Passwort wie in den Einstellungen) sich anmelden und geteilte Tabellen oder Präsentationen öffnen; mehrere Personen können dieselbe XLSX- oder PPT-Datei gleichzeitig bearbeiten.
TLS
IDM-LDAPS-Zertifikatsfix
Beim Test erreichte Dex opencloud:9235, aber das autogenerierte ldap.crt enthielt nur localhost im SAN → Fehler TLS certificate is valid for localhost, not opencloud.
Fix (0a042db): Skript scripts/regenerate-opencloud-idm-ldap-cert.sh regeneriert das Zertifikat mit DNS:localhost,DNS:opencloud,IP:127.0.0.1 und --restart-Option; dokumentiert in Runbook und Dex-README.
Commits
Tagesfenster (CEST)
cf5a561(15:27) -feat(auth): Dex LDAP login against OpenCloud IDM for all users.0a042db(15:39) -fix(dex): regenerate IDM LDAP cert with opencloud SAN for Dex TLS.
Autoagents
Abschluss-Checks
- IDM-Zert-SAN enthält
opencloud- PASS. - Dex LDAP
host: opencloud:9235- PASS. curlmitconnector_id=ldap→/dex/auth/ldap- PASS.- Falsches Passwort → HTTP 401, LDAP-Bind, kein x509 in Logs - PASS.
- Google-Connector-Smoke - PASS.
- Manueller Login zwei verschiedene Benutzer →
/files- NICHT VERIFIZIERT (Operator).
Deployment
Verifikation (Operator)
cd /opt/opencloud ./scripts/git-sync-main.sh ./scripts/apply-opencloud-compose-overrides.sh ./scripts/regenerate-opencloud-idm-ldap-cert.sh --restart rsync -a /opt/opencloud/host-www/opencloud-auth/ /var/www/opencloud-auth/ cd dex && docker compose up -d
Manuell: privates Fenster → login.html → lokaler Login mit zwei verschiedenen OpenCloud-uids; erwartet /oidc-callback.html dann /files ohne JWKS-Fehler oder /graph/v1.0/me 500.
Nächster Schritt
Tag 5
Tag 5 dokumentiert keine Deployments: er hält ein Visionstreffen in Masnou fest - warum wir glauben, dass nützliche Technologie heute schon ohne Big Tech angeboten werden kann. In der Zwischenzeit: die Services erkunden oder den Bericht zu Tag 5 lesen.