Skip to main content

Single-Sign On

Zentraler Anmeldedienst für (fast) alle ZAM-Dienste.

Grundidee: Alle Nutzer identifizieren sich zentral über das ZAM Single-Sign On (SSO), damit nur dieser Dienst (und die dahinterliegende Datenbank) Kennwörter unverschlüsselt sieht.

Zum Einsatz kommt OpenLDAP als Datenbank für Benutzerinformationen und Keycloak als Authentifizierungsdienst.

Anmeldungen erfolgen ausschließlich über https://login.zam.haus/auth/realms/ZAM, via SAML oder OpenID. Nutzer können sich:

  1. Selbst registrieren (es muss ein eindeutiger und nicht-änderbarer Nutzername gewählt und die Email-Adresse verifiziert werden).
  2. Kennwort via E-Mail zurücksetzen.
  3. Ihren zentralen Account und zugehörige Daten via https://login.zam.haus/auth/realms/ZAM/account/ bzw. https://login.zam.haus/ verwalten.

Nutzer werden manuel folgenden Gruppen zugeordnet, aus denen sich Berechtigungen für die Clients (z.B. Wordpress, Cloud oder Wiki) ableiten:

  • Vorstand
  • Beirat
  • Crew
  • PR
  • Mitglied

Nach einer Selbstregistrierung ist ein Benutzer erstmal in keiner Gruppen.

Keycloak (SAML und OpenID Service Provider)

Läuft im keycloak Docker Container auf sphinx , erreichbar via nginx reverse Proxy:
https://sso.erlangen.ccc.de (Zugangsdaten bei Julian)

Das ZAM/der BV nutzt die ZAM realm. Neue Clients (d.h. Dienste die auf die Anmeldung via ZAM SSO aufbauen) werden darüber eingepflegt. Beim einrichten neuer Clients ist zu beachten, dass die Email-Adresse vom Nutzer selbst geändert werden kann und somit nicht für die Account-Zuordnung geeignet ist.

Der Keycloak ist so konfiguriert, dass Nutzerdaten und Gruppenzugehörigkeiten mit dem LDAP bidirektional synchronisiert werden. Keycloak nutzt den cn=admin,dc=betreiberverein,dc=de Benutzer.

LDAP Backend und Administration

Das Backend läuft im openldap_bv und das Admin-Interface im phpldapadmin_bv Docker Container, letzterer ist erreichbar via nginx reverse Proxy:
https://ldapadmin.betreiberverein.de/ (Zugangsdaten bei Julian)

Für den LDAP gibt es im docker-compose ein eigenes Netzwerk um diesen nur einigen wenigen Containern zugänglich zu machen.

Clients

Angebunden sind:

  • Wordpress betreiberverein.de
  • Bookstack wiki.betreiberverein.de
  • Nextcloud cloud.betreiberverein.de