Microsoft Entra ID (Azure AD) einrichten
Microsoft Entra ID (früher Azure AD) ist als OIDC-Identity-Provider vollständig unterstützt. Diese Anleitung führt dich durch die Einrichtung — vom Anlegen der App-Registration bis zum Gruppen-Mapping in LIVCK.
Voraussetzung
Enterprise SSO ist für deine Organisation freigeschaltet und du hast die Berechtigung SSO verwalten. Lege zuerst eine SSO-Verbindung in LIVCK an (Einstellungen → Organisation → SSO → Neue Verbindung) und kopiere die dort angezeigte Redirect-URI — du brauchst sie im nächsten Schritt.
Übersicht
Entra ID liefert Gruppenzugehörigkeiten auf zwei Wegen:
| Weg | Claim-Name | Inhalt | Empfohlen? |
|---|---|---|---|
| Sicherheitsgruppen | groups | Array von GUIDs (Object IDs) | Nur bei wenigen Gruppen (< 200) |
| App-Rollen | roles | Array von Rollen-Werten (z.B. livck.admin) | Ja — für die meisten Fälle |
Wir empfehlen App-Rollen, weil sie Menschen-lesbar sind, kein Overage-Problem haben und sich sauber mappen lassen. Sicherheitsgruppen liefern GUIDs, die du einzeln nachschlagen und als Mapping eintragen musst.
Weg A: App-Rollen (empfohlen)
1. App im Entra registrieren
- Entra admin center → App registrations → New registration
- Name: z.B.
LIVCK - Supported account types: Accounts in this organizational directory only (Single Tenant)
- Redirect URI: Web → die Redirect-URI aus LIVCK eintragen
- → Register
2. App-Rollen definieren
App registrations → LIVCK → App roles → Create app role
Lege pro LIVCK-Rolle eine App-Rolle an:
| Feld | Wert |
|---|---|
| Display name | z.B. LIVCK Admin |
| Allowed member types | Users/Groups |
| Value | z.B. livck.admin (klein geschrieben, einprägsam) |
| Enabled | ☑ |
Beispiel-Rollen:
| Display name | Value | LIVCK-Rolle |
|---|---|---|
| LIVCK Admin | livck.admin | Admin |
| LIVCK Member | livck.member | Member |
| LIVCK Viewer | livck.viewer | Viewer |
Value exakt merken
Der Value landet später im Token und muss im LIVCK-Mapping exakt so eingetragen werden. Groß-/Kleinschreibung bleibt erhalten.
3. Benutzer oder Gruppen den Rollen zuweisen
Häufigster Fehler
Ohne diese Zuweisung sendet Entra keinen roles-Claim. Das ist der Schritt, der am häufigsten vergessen wird — und der Grund, warum "keine Gruppen" im Test-Login auftaucht.
- Enterprise applications → LIVCK → Users and groups → Add user/group
- Entra-Benutzer oder Entra-Gruppe auswählen
- Rolle
LIVCK Adminauswählen - → Assign
Wiederholen für jede Rolle / jeden Benutzer.
4. Zugangsdaten sammeln
- Application (client) ID: App registrations → LIVCK → Overview → Application (client) ID
- Client Secret: Certificates & secrets → New client secret → Value sofort kopieren (nur einmal sichtbar)
- Issuer-URL: Overview → Endpoints → bei "OpenID Connect metadata document" das
/.well-known/openid-configurationam Ende abschneiden → übrig bleibthttps://login.microsoftonline.com/{tenant-id}/v2.0
5. In LIVCK eintragen
Einstellungen → Organisation → SSO → Verbindung bearbeiten → Konfiguration:
| Feld | Wert |
|---|---|
| Issuer-URL | https://login.microsoftonline.com/{tenant-id}/v2.0 |
| Client-ID | aus Schritt 4 |
| Client-Secret | aus Schritt 4 |
| Groups-Claim | roles ← wichtig, nicht groups |
| Quelle des Groups-Claims | ID-Token ← nicht UserInfo |
| Wenn keine Gruppe passt | nach Bedarf (Standard-Rolle / Keine Rollen / Login ablehnen) |
→ Konfiguration speichern
6. Domain verifizieren
Siehe SSO einrichten → Domain verifizieren.
7. Mapping anlegen
Einstellungen → Organisation → SSO → Verbindung → Mappings:
Pro App-Rolle einen Eintrag:
- IdP-Gruppe: exakt der Value aus Schritt 2 (z.B.
livck.admin) - Rolle: die entsprechende LIVCK-Rolle
→ Hinzufügen
8. Testen
Klicke auf Login testen. Im Dry-Run-Report sollte stehen:
- Gruppen:
["livck.admin"] - Ermittelte Rollen: Admin
- Würde sich anmelden: ja
Weg B: Sicherheitsgruppen (alternativ)
Verwende diesen Weg nur, wenn du bereits Security Groups im Entra pflegst und keine App-Rollen anlegen möchtest.
1. App registrieren
Wie Weg A, Schritt 1.
2. Groups-Claim im Token aktivieren
App registrations → LIVCK → Token configuration → Add groups claim
- Groups to emit: Security groups / Directory roles (NICHT "All groups" — sonst Overage-Gefahr)
- Emit in: ☑ ID token ← dieses Häkchen ist Pflicht
- → Save
Nicht im Access-Token
Stelle sicher, dass "ID token" ausgewählt ist. Nur dann liefert Entra die Gruppen im ID-Token, das LIVCK ausliest.
3. In LIVCK eintragen
| Feld | Wert |
|---|---|
| Groups-Claim | groups (Default) |
| Quelle des Groups-Claims | ID-Token |
4. Mapping anlegen
Die Object-ID einer Entra-Gruppe findest du unter Groups → deine Gruppe → Overview → Object ID (eine GUID).
- IdP-Gruppe: die Object-ID (z.B.
5b2c1d4a-1234-...) - Rolle: die LIVCK-Rolle
5. Nachteil: Overage
Entra sendet den groups-Claim nur, solange der Benutzer weniger als ca. 200 Gruppen angehört. Darüber hinaus wechselt Entra auf eine Graph-basierte Referenz (_claim_sources), die LIVCK nicht auflösen kann — der Login schlägt mit "kein groups-Claim empfangen" fehl.
Lösung: Verwende Weg A (App-Rollen) stattdessen.
Troubleshooting
Im Test-Login steht "kein groups-Claim empfangen"
| Ursache | Lösung |
|---|---|
| Benutzer ist der App-Rolle nicht zugewiesen | Enterprise applications → LIVCK → Users and groups → Rolle zuweisen |
Groups-Claim-Feld steht auf groups, du nutzt aber App-Rollen | auf roles umstellen |
| Quelle steht auf UserInfo-Endpoint | auf ID-Token umstellen |
| Über 200 Gruppen zugewiesen (Overage) | App-Rollen verwenden statt Sicherheitsgruppen |
| App-Role ist nicht "Enabled" | App registrations → App roles → Rolle aktivieren |
Im Test-Login stehen GUIDs statt Rollen-Namen
Du nutzt Sicherheitsgruppen (groups-Claim), nicht App-Rollen. Entweder:
- Die GUIDs bewusst als Mapping eintragen (Weg B), oder
- Auf App-Rollen wechseln (Weg A)
Im Test-Login steht die richtige Rolle, aber Login schlägt fehl
Prüfe:
- Ist die E-Mail-Domain verifiziert? (SSO → Domains)
- Ist die Verbindung aktiviert?
- Hat der Benutzer eine verifizierte E-Mail im Entra?
Issuer-URL validieren
Die Issuer-URL muss exakt sein — ohne Trailing-Slash und ohne /.well-known/openid-configuration am Ende. LIVCK hängt das Discovery-Suffix automatisch an.
Richtig:
https://login.microsoftonline.com/{tenant-id}/v2.0
Falsch:
https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration
https://login.microsoftonline.com/{tenant-id}/v2.0/
https://login.microsoftonline.com/common/v2.0
Common-Issuer vermeiden
Verwende immer den tenant-spezifischen Issuer (/{tenant-id}/v2.0), nicht common oder organizations. Mit common ist der iss-Claim im Token je Tenant anders und LIVCKs Issuer-Validierung schlägt fehl.
Weiterführende Themen
- Enterprise SSO – Übersicht
- Rollen & Berechtigungen – Ziel der Gruppen-Zuordnung
- Mitglieder – Wer gehört zur Organisation
- Keycloak einrichten – konkrete Anleitung für Keycloak