# Single Sign-on

> Leser und Mitglieder mit einem bestehenden Konto anmelden (OpenID Connect) – mit automatischer Zuordnung von Rollen und Gruppen.

Mit Single Sign-on melden sich Leser und Mitglieder mit einem Konto an, das sie schon haben – zum Beispiel ihrem
Cyrellian-Konto oder dem Firmen-Login. Docsello unterstützt jeden Anbieter, der **OpenID Connect (OIDC)** spricht.
Die Anmeldeseite zeigt dann zusätzlich einen Button **Mit … anmelden**.

## Anbieter einrichten

:::steps
### Redirect-URI beim Anbieter eintragen

Öffne in Docsello **Einstellungen**, Abschnitt **Anmeldung mit Single Sign-on (OIDC)**. Dort steht die
**Redirect-URI für deinen Anbieter**, z. B. `https://docs.example.com/auth/oidc/callback`. Lege beim Anbieter einen
Client mit dieser Redirect-URI an. Hat deine Website eigene Domains, trage zusätzlich
`https://<domain>/auth/oidc/callback` für jede Domain ein.

### Anbieter in Docsello hinzufügen

Im leeren Formular darunter ausfüllen:

| Feld | Inhalt |
|---|---|
| **Anzeigename** | Text auf dem Anmelde-Button, z. B. „Cyrellian“ |
| **Issuer** | Adresse des Anbieters, z. B. `https://account.cyrellian.com` |
| **Client ID** / **Client secret** | Vom Anbieter. Beim Bearbeiten: *Secret (leer = unverändert)* |
| **Scopes** | Standard `openid email profile`; für Gruppen meist zusätzlich `groups` |
| **Gruppen-Claim** | Name des Claims mit den Gruppen, Standard `groups` |
| **Rolle neuer Nutzer** | *Neue Nutzer: Gast (Leser)* oder *Neue Nutzer: Mitglied* |
| **Aktiv** | Anbieter auf der Anmeldeseite anbieten |

### Speichern

**Anbieter hinzufügen** klicken. Mehrere Anbieter sind möglich; **Entfernen** löscht einen Anbieter.
:::

## Wer bekommt was?

Viele Anbieter schicken bei der Anmeldung die Gruppen des Kontos mit. In der Tabelle **Wer bekommt was?** legst du
pro Zeile fest, was eine Gruppe des Anbieters in Docsello bedeutet:

| Spalte | Bedeutung |
|---|---|
| **Wer** | Gruppe vom Anbieter – aus der Liste wählen oder mit *Andere …* frei eintippen |
| **Rolle im Workspace** | *Admin*, *Mitglied*, *Gast* oder *– Rolle nicht ändern –* |
| **Zusätzlich in Gruppe** | Optional eine Docsello-Gruppe, der du in den Bereichen Zugriff gibst |

Mit **Zeile hinzufügen** kommen weitere Zeilen dazu. Die Zuordnung gilt bei **jeder** Anmeldung; hat jemand mehrere
Gruppen, gewinnt die höchste Rolle. Inhaber und Admins werden nie herabgestuft.

Zur Erinnerung, was die Rollen bedeuten: *Admin* verwaltet alles. *Mitglied* liest interne Bereiche (je nach Bereich
auch bearbeiten). *Gast* sieht nur öffentliche Bereiche und was ihm oder seiner Gruppe freigegeben ist. Siehe
[Rollen](doc:rollen).

### Woher kommt die Liste der Gruppen?

Docsello lädt die Gruppen mit lesbaren Namen direkt vom Anbieter, wenn dieser einen Gruppen-Katalog veröffentlicht
(Feld `groups_catalog_uri` in seiner OpenID-Konfiguration – Cyrellian tut das, inklusive aller Tarife). Außerdem merkt
sich Docsello alle Gruppen, die bei bisherigen Anmeldungen mitgeschickt wurden. Gibt es beides noch nicht, schlägt
Docsello die Gruppen von Cyrellian vor.

## Beispiel: Anmeldung mit Cyrellian

Cyrellian (account.cyrellian.com) schickt im Claim `groups` unter anderem:

| Gruppe | Wer |
|---|---|
| `cyrellian:operator` | Operatoren der Plattform |
| `plazello:merchant` | Konten mit aktiver Plazello-Lizenz |
| `plazello:plan:<tarif>` | Konten mit einem bestimmten Plazello-Tarif |
| `docsello:customer` | Konten mit aktiver Docsello-Lizenz |

Eine typische Einrichtung für eine Kunden-Dokumentation:

| Wer | Rolle im Workspace | Zusätzlich in Gruppe |
|---|---|---|
| `cyrellian:operator` | Admin | – keine – |
| `plazello:merchant` | Gast | Kunden |

Dazu gibst du der Gruppe „Kunden“ in den Bereichen mit Sichtbarkeit *Anmeldung erforderlich* die Rolle *Lesen*.
Kunden sehen dann nach der Anmeldung genau diese Bereiche – ohne Einladung.

## Lokale Konten

Ohne Single Sign-on melden sich Personen mit E-Mail und Passwort an (mindestens 10 Zeichen) oder lassen sich mit
**Link per E-Mail** einen Anmeldelink schicken. **Passwort vergessen?** setzt das Passwort per E-Mail zurück. Neue
Konten gibt es auf einer selbst gehosteten Installation nur per Einladung oder Single Sign-on.
