En aquesta pàgina
Dia 4 - Login local Dex LDAP contra IDM OpenCloud
Connector LDAP de Dex cap a l'IDM integrat d'OpenCloud, correcció TLS del certificat LDAPS i tancament de la issue #1 amb proves automatitzades.
Introducció
El dia 4 (finestra de les últimes quatre hores del 27 de maig de 2026, ~11:40–15:40 CEST al VPS Debian de producció) se centra en un únic objectiu d'autenticació: que el login local accepti qualsevol usuari de l'IDM integrat d'OpenCloud (mateix uid i contrasenya que a Configuració) i segueixi emetent tokens OIDC de Dex per al proxy.
Es substitueix l'emmagatzematge estàtic de contrasenyes de Dex per un connector LDAP cap a LDAPS de l'IDM, es corregeix el certificat TLS del servei LDAP intern i el bucle autoagents tanca la issue #1 de GitHub amb proves automatitzades en PASS.
Resum
Resultat del dia
- Dex ↔ IDM: connector
ldap→ldaps://opencloud:9235, baseou=users,o=libregraph-idm; Dex a la xarxa Dockeropencloud_opencloud-netamb volums de config/dades per a CAidm/ldap.crt. - OpenCloud:
IDM_LDAPS_ADDR=0.0.0.0:9235a l'overlay external-proxy;login.htmlusaconnector_id=ldap; nginx i JSON d'auth alineats ambcloud.km0digital.com. - TLS IDM: certificat regenerat amb SAN
DNS:opencloud(abans noméslocalhost); scriptregenerate-opencloud-idm-ldap-cert.sh. - Autoagents: tasca tancada PASS; versió del paquet 1.0.18; login manual amb dos usuaris diferents pendent d'operador.
Problema
GitHub #1
El flux híbrid ja enrutava Google/Apple i login local per Dex, però el connector local depenia d'un password store estàtic a Dex: només funcionava per a credencials predefinides, no per a tots els usuaris inetOrgPerson creats a l'IDM d'OpenCloud.
El requisit era unificar credencials amb Configuració d'OpenCloud i mantenir l'emissor OIDC (OC_OIDC_ISSUER) que consumeix el proxy.
Solució
Integració Dex LDAP + IDM
- Dex: connector
type: ldapadex/config.yaml; eliminat el password DB per a usuaris locals. - Compose Dex: unió a
opencloud_opencloud-net; muntatge de volumsopencloud-configiopencloud-dataper llegir CA iidm_passworddel config muntat. - Overlay OpenCloud:
IDM_LDAPS_ADDR=0.0.0.0:9235perquè Dex arribi a LDAPS per hostnameopencloud. - UI:
login.htmlamb botó «local» iconnector_id=ldap; rutes nginx/dex/authsense connector → selector de login.
Flux
Login després dels canvis
login.html
├── Google → Dex connector google → token OIDC → proxy OpenCloud
├── Apple → Dex connector apple → (quan estigui configurat)
└── Local → Dex connector ldap → IDM LDAPS opencloud:9235
(qualsevol uid inetOrgPerson + contrasenya)Els connectors socials segueixen el mateix patró OIDC; el local deixa de ser una llista fixa a Dex i passa a ser un bind LDAP contra el directori embarcat de l'stack.
Collabora
Coedició després del login unificat
La integració Collabora documentada al dia 3 habilita l'edició Office al navegador per a tots els usuaris autenticats. Amb el connector Dex LDAP del dia 4, qualsevol usuari de l'IDM (mateix uid i contrasenya que a Configuració) pot iniciar sessió i obrir fulls de càlcul o presentacions compartides; diverses persones poden editar el mateix fitxer XLSX o PPT alhora.
TLS
Fix certificat IDM LDAPS
Durant les proves, Dex arribava a opencloud:9235 però el ldap.crt autogenerat només incloïa localhost al SAN → error TLS certificate is valid for localhost, not opencloud.
Correcció (0a042db): script scripts/regenerate-opencloud-idm-ldap-cert.sh que regenera el certificat amb DNS:localhost,DNS:opencloud,IP:127.0.0.1 i opció --restart; documentat al runbook i README de Dex.
Commits
Finestra del dia (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
Comprovacions de tancament
- SAN del cert IDM inclou
opencloud- PASS. - Dex LDAP
host: opencloud:9235- PASS. curlambconnector_id=ldap→/dex/auth/ldap- PASS.- Contrasenya incorrecta → HTTP 401, bind LDAP, sense x509 als logs - PASS.
- Fum connector Google - PASS.
- Login manual dos usuaris diferents →
/files- NO VERIFICAT (operador).
Desplegament
Verificació (operador)
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
Manual: finestra privada → login.html → login local amb dos uid diferents d'OpenCloud; s'espera /oidc-callback.html i després /files sense errors JWKS ni /graph/v1.0/me 500.
Següent pas
Dia 5
El dia 5 no documenta desplegaments: recull una reunió de visió a Masnou sobre per què creiem que avui ja es pot oferir tecnologia útil sense passar per les grans corporacions digitals. Mentrestant, explora els serveis o el relat del dia 5.