> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reiner.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SSO mit Microsoft Entra ID einrichten

> Schritt-für-Schritt: Single Sign-on über Microsoft Entra ID verbinden, Domain verifizieren und Anmeldung erzwingen.

> [!NOTE]
>
> **Für wen dieser Artikel ist:** für den **Organisationsinhaber** in Reiner, der Single Sign-on konfiguriert — gemeinsam mit einem **Microsoft Entra ID-Administrator** (Global Administrator oder Privileged Role Administrator), der eine Anwendung registrieren und die Administratorzustimmung erteilen kann. Oft ist das dieselbe Person.
>
> **Ergebnis:** Die Mitglieder deiner Organisation melden sich mit ihrem Entra ID-Konto bei Reiner an, und du kannst SSO für alle verifizierten Domains verpflichtend machen.

## So funktioniert es

Reiner vermittelt die Anmeldungen über deinen Entra ID-Tenant per Standard **OpenID Connect**. Du registrierst eine Anwendung in Entra, weist nach, dass dir deine E-Mail-Domain gehört, und trägst dann drei Werte in Reiner ein. Sobald SSO erzwungen wird, wird jede Person mit einer E-Mail-Adresse aus einer verifizierten Domain direkt zu Entra ID zur Anmeldung weitergeleitet.

## Bevor du startest

* Du bist **Organisationsinhaber** in Reiner. Nur Inhaber können SSO konfigurieren.
* Dein Plan enthält SSO. Falls du den SSO-Bereich nicht siehst, wende dich an Reiner.
* Du hast **Administrator-Zugriff auf Microsoft Entra ID**, um eine App zu registrieren, ein Client Secret zu erstellen und die Administratorzustimmung zu erteilen. Für die Zustimmung brauchst du die Rolle **Global Administrator** oder **Privileged Role Administrator** — ein Application Administrator kann die App registrieren, aber die Zustimmung in Schritt 2.7 nicht erteilen.
* Du kannst für jede E-Mail-Domain, die du nutzen möchtest, einen **DNS-TXT-Eintrag** anlegen.

> [!TIP]
>
> **Die drei Werte, die du von Entra ID nach Reiner überträgst:** die **Verzeichnis-ID (Mandant)**, die **Client-ID** und das **Client Secret**. Und der **eine Wert**, den du von Reiner nach Entra ID überträgst: die **Redirect-URI**.

## Schritt 1 — Redirect-URI in Reiner abholen

**1. Einstellungen öffnen**

Öffne in Reiner **Einstellungen → Organisation → Single Sign-on (SSO)**.

**2. Microsoft Entra ID wählen**

Wähle in der Auswahl des Identity Providers **Microsoft Entra ID**.

**3. Redirect-URI kopieren**

Kopiere die dort angezeigte **Redirect-URI**. Sie sieht so aus: `https://account.reiner.ai/realms/prod-realm/broker/sso-<deine-org-id>/endpoint`

![SSO-Einstellungen mit Microsoft Entra ID und markierter Redirect-URI](https://mintcdn.com/reiner-ai/pOUTUzP8daA3bb0W/images/admin/sso-einstellungen.png?fit=max\&auto=format\&n=pOUTUzP8daA3bb0W\&q=85\&s=30ca38db7318a7935e344fb890eae827)

> [!WARNING]
>
> Kopiere immer genau die Redirect-URI, die in deinen Reiner-SSO-Einstellungen angezeigt wird. Sie ist einzigartig für deine Organisation. Entra ID lehnt die Anmeldung ab, wenn dieser Wert nicht zeichengenau übereinstimmt.

## Schritt 2 — Anwendung in Microsoft Entra ID registrieren

Das machst du im [Microsoft Entra Admin Center](https://entra.microsoft.com) → **Identität → Anwendungen → App-Registrierungen**.

**1. Neue Registrierung**

Klick auf **Neue Registrierung**. Gib einen Namen ein, z. B. `Reiner AI SSO`.

**2. Kontotyp wählen**

Wähle unter **Unterstützte Kontotypen** die Option **Nur Konten in diesem Organisationsverzeichnis** (Single Tenant).

**3. Redirect-URI eintragen**

Wähle unter **Redirect-URI** die Plattform **Web** und füge die Redirect-URI aus Schritt 1 ein. Klick auf **Registrieren**.

**4. IDs kopieren**

Kopiere auf der **Übersichtsseite** der App die **Anwendungs-ID (Client-ID)** und die **Verzeichnis-ID (Mandanten-ID)**.

**5. Client Secret erstellen**

Geh zu **Zertifikate & Geheimnisse → Geheime Clientschlüssel → Neuer geheimer Clientschlüssel**. Kopiere sofort den **Wert** des Secrets — er wird nur einmal angezeigt.

**6. Optionale Ansprüche hinzufügen**

Geh zu **Tokenkonfiguration → Optionalen Anspruch hinzufügen**. Wähle als Tokentyp **ID** und aktiviere `email`, `upn`, `given_name` und `family_name`. Klick auf **Hinzufügen** — wenn Entra ID anbietet, den dafür erforderlichen Scope `profile` zu aktivieren, bestätige das.

![Entra Tokenkonfiguration mit den optionalen Ansprüchen email, family\_name, given\_name und upn](https://mintcdn.com/reiner-ai/pOUTUzP8daA3bb0W/images/admin/entra-tokenkonfiguration.png?fit=max\&auto=format\&n=pOUTUzP8daA3bb0W\&q=85\&s=366edeb41745f9d5ceeabe5e47c9edfb)

**7. Administratorzustimmung erteilen**

Öffne **API-Berechtigungen**. Prüfe, dass unter **Microsoft Graph** die delegierten Berechtigungen `openid`, `profile`, `email` und `User.Read` eingetragen sind — fehlende ergänzt du über **Berechtigung hinzufügen → Microsoft Graph → Delegierte Berechtigungen**. Klick dann auf **Administratorzustimmung für \<dein Tenant> erteilen** und bestätige. Danach muss in jeder Zeile ein grünes **Gewährt für \<dein Tenant>** stehen.

![Entra API-Berechtigungen mit den vier erteilten Microsoft-Graph-Berechtigungen](https://mintcdn.com/reiner-ai/pOUTUzP8daA3bb0W/images/admin/entra-api-berechtigungen.png?fit=max\&auto=format\&n=pOUTUzP8daA3bb0W\&q=85\&s=4e078e1c4f16e55f8bee12c56c1dfcd7)

> [!NOTE]
>
> **Warum `given_name` und `family_name` (Schritt 2.6):** Standardmäßig enthält ein Entra ID-Token nur `name`, also den **Anzeigenamen** — keinen getrennten Vor- und Nachnamen. Das Anmeldesystem muss den Namen dann am letzten Leerzeichen aufteilen. In Tenants, deren Anzeigenamen der Konvention `Nachname Vorname` folgen (`Schmidt David`), dreht sich das um: Der Nutzer heißt in Reiner dann durchgehend Vorname `Schmidt`, Nachname `David`. Die beiden Ansprüche explizit mitzusenden, macht das Raten überflüssig.

> [!WARNING]
>
> **Schritt 2.7 nicht überspringen.** Ohne tenantweite Administratorzustimmung wird jeder Nutzer bei der ersten Anmeldung einzeln um Zustimmung gebeten — und in Tenants, in denen die Nutzerzustimmung per Richtlinie deaktiviert ist (ein verbreiteter Enterprise-Standard), scheitert die Anmeldung direkt mit **AADSTS65001** *("The user or administrator has not consented to use the application")*. Für diesen Schritt brauchst du einen **Global Administrator** oder **Privileged Role Administrator**.

> [!NOTE]
>
> **Häufigste Ursache für eine fehlgeschlagene SSO-Anmeldung: keine E-Mail-Adresse im Token.** Wenn ein Nutzer in Entra ID kein `mail`-Attribut hat und der optionale Anspruch `email` nicht konfiguriert ist, sendet Entra ID keine E-Mail-Adresse und die Anmeldung schlägt mit *"Invalid username or password."* fehl. Stell sicher, dass jeder SSO-Nutzer ein Postfach oder einen `mail`-Wert hat, und füge den optionalen Anspruch `email` wie in Schritt 2.6 hinzu. Reiner greift ersatzweise auf den UPN zurück, wenn dieser wie eine E-Mail-Adresse aussieht — die zuverlässige Lösung ist aber, `email` explizit zu konfigurieren.

## Schritt 3 — E-Mail-Domain in Reiner verifizieren

**1. Domain hinzufügen**

Zurück in **Einstellungen → Organisation → Single Sign-on (SSO)**: Füge unter **Domains** die Domain hinzu, mit der sich deine Nutzer anmelden, z. B. `titan-labs.xyz`.

**2. DNS-Eintrag anlegen**

Reiner zeigt dir ein **Verifizierungs-Token**. Lege damit den DNS-TXT-Eintrag aus der Tabelle unten an.

**3. Verifizieren**

Warte, bis das DNS propagiert ist (meist wenige Minuten), und klick dann neben der Domain auf **Verifizieren**.

| Eintragstyp | Host / Name | Wert |
| - | - | - |
| TXT | `_reiner-challenge` | das in Reiner angezeigte Token |

> [!TIP]
>
> Du kannst mehr als eine Domain hinzufügen. Jede Domain wird einzeln verifiziert, und eine Domain kann nur zu einer Organisation gehören.

## Schritt 4 — SSO in Reiner verbinden

**1. Verbinden öffnen**

Klick in **Einstellungen → Organisation → Single Sign-on (SSO)** auf **Verbinden** (oder **Konfigurieren**).

**2. Werte eintragen**

Füge die drei Werte aus der Tabelle unten ein.

**3. Speichern**

Reiner prüft die Discovery URL und speichert die Verbindung. Das Client Secret wird ausschließlich in das Anmeldesystem geschrieben und nie im Klartext gespeichert.

| Feld in Reiner | Woher der Wert kommt |
| - | - |
| **Verzeichnis-ID (Mandant)** | Verzeichnis-ID (Mandanten-ID), Schritt 2.4 |
| **Client-ID** | Anwendungs-ID (Client-ID), Schritt 2.4 |
| **Client Secret** | Wert des Secrets, Schritt 2.5 |

> [!TIP]
>
> **Die Discovery URL musst du nicht selbst zusammenbauen.** Reiner setzt sie aus deiner Verzeichnis-ID zusammen und zeigt sie unter dem Feld als Vorschau an (**„Discovery-URL: …"**) — so kannst du sie vor dem Speichern gegenprüfen.

### Sonderfall: benutzerdefinierte Discovery URL

Nutzt eure Organisation eine abweichende Entra-Umgebung, aktiviere **„Stattdessen eine benutzerdefinierte Discovery-URL eingeben"** und trage die Metadata-URL direkt ein. Kombiniere dafür die folgende Basis mit deiner **Mandanten-ID** aus Schritt 2.4:

`https://login.microsoftonline.com/<TENANT_ID>/v2.0/.well-known/openid-configuration`

## Schritt 5 — Testen, bevor du SSO erzwingst

> [!TIP]
>
> Teste zuerst mit einem Mitglied, das **nicht Inhaber** ist — so behältst du deinen Inhaber-Zugang, falls etwas nicht stimmt.

**1. Anmeldelink kopieren**

Kopiere den **SSO-Anmeldelink** aus deinen SSO-Einstellungen, oder öffne Reiner und wähle **Mit SSO anmelden**.

**2. Testanmeldung prüfen**

Prüfe, dass der Testnutzer zu Entra ID weitergeleitet wird, sich anmeldet und mit dem richtigen Konto in Reiner landet.

## Schritt 6 — SSO erzwingen

Wenn der Test erfolgreich war, aktiviere **SSO erzwingen**. Ab dann wird jede Person mit einer E-Mail-Adresse aus einer verifizierten Domain direkt zu Entra ID geleitet und kann kein Passwort mehr nutzen.

> [!NOTE]
>
> **Du kommst immer wieder rein.** Falls SSO einmal nicht funktioniert, kann ein Organisationsinhaber auf der [SSO-Recovery-Seite](https://app.reiner.ai/login/sso-recovery) einen einmaligen Ersatz-Anmeldelink anfordern. Der Link ist einmalig nutzbar und läuft nach 15 Minuten ab. Genau deshalb ist der Test mit einem Nicht-Inhaber in Schritt 5 wichtig — Inhaber behalten so einen Wiederherstellungsweg.

## SSO später verwalten

* **Erzwingen deaktivieren (Killswitch):** Schalte **SSO erzwingen** aus. Mitglieder können sich dann wieder ohne SSO anmelden. Die Verbindung bleibt konfiguriert.
* **Client Secret rotieren oder App wechseln:** Erstelle ein neues Secret in Entra ID und trage es über **Secret ersetzen** in Reiner ein. Erzwingen und Domains bleiben erhalten.
* **Domains hinzufügen oder entfernen:** Verwalte sie in der Liste **Domains**. Jede neue Domain braucht ihre eigene DNS-TXT-Verifizierung.
* **SSO vollständig trennen:** Nutze **Trennen**. Damit wird die Verbindung entfernt und das SSO-Routing gestoppt.

## Funktioniert etwas nicht?

| Symptom | Wahrscheinliche Ursache und Lösung |
| - | - |
| **„Invalid username or password"** direkt nach Entra ID | Entra ID hat für diesen Nutzer keine E-Mail-Adresse gesendet. Setze das `mail`-Attribut des Nutzers und füge den optionalen Anspruch `email` hinzu (Schritt 2.6). |
| Entra ID-Fehlerseite / Weiterleitung abgelehnt | Die Redirect-URI in Entra ID stimmt nicht mit der in Reiner überein. Kopiere sie erneut aus Schritt 1 und prüfe, dass sie unter der Plattform **Web** eingetragen ist. |
| Verbinden schlägt bei der Prüfung der Discovery URL fehl | Prüfe die Verzeichnis-ID (Mandanten-ID). Nutzt du eine benutzerdefinierte Discovery URL, prüfe, dass sie auf `/v2.0/.well-known/openid-configuration` endet. Sie muss öffentlich per HTTPS erreichbar sein. |
| Domain wird nicht verifiziert | Prüfe, dass der Host des TXT-Eintrags genau `_reiner-challenge` lautet und der Wert dem Token entspricht. Gib dem DNS Zeit zu propagieren. |
| Nutzer werden nicht zu SSO weitergeleitet | Ihre E-Mail-Domain ist nicht verifiziert, oder das Erzwingen ist ausgeschaltet. Verifiziere die Domain und aktiviere **SSO erzwingen**. |
| **Vor- und Nachname sind vertauscht** (Vorname `Schmidt`, Nachname `David`) | Entra ID sendet `given_name` / `family_name` nicht, der Name wird deshalb aus dem Anzeigenamen abgeleitet. Füge beide optionalen Ansprüche hinzu (Schritt 2.6). Betroffene Nutzer werden bei der nächsten Anmeldung korrigiert. |
| **AADSTS65001** auf der Entra ID-Anmeldeseite | Die Administratorzustimmung wurde für die App-Registrierung nie erteilt. Erteile sie unter **API-Berechtigungen** (Schritt 2.7). |

Immer noch nicht gelöst? Wende dich mit dem Namen deiner Organisation und dem ungefähren Zeitpunkt der fehlgeschlagenen Anmeldung an den Reiner-Support.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.