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

# Microsoft Entra ID einrichten

> Anmeldung, Administratorrollen und Benutzersynchronisation für VARIOS AI in Microsoft Entra ID konfigurieren

VARIOS AI meldet Nutzer über OpenID Connect an. Diese Seite beschreibt die Einrichtung in Microsoft Entra ID und die zugehörigen Werte für die `.env`. Sie benötigen eine Rolle mit dem Recht, Anwendungen zu registrieren und Berechtigungen zu erteilen, in der Regel Anwendungsadministrator plus Zustimmung eines globalen Administrators.

Ersetzen Sie in allen Schritten `<PROJECT_DOMAIN>` durch die Domain Ihrer Installation.

## Anwendung anlegen

<Steps>
  <Step title="Unternehmensanwendung erstellen">
    Öffnen Sie im Entra Admin Center **Unternehmensanwendungen → Neue Anwendung → Eigene Anwendung erstellen**. Vergeben Sie einen Namen, etwa „VARIOS AI“, und wählen Sie **Beliebige andere, nicht im Katalog gefundene Anwendung integrieren**. Entra legt dazu automatisch eine App-Registrierung an.

    Notieren Sie auf der Übersichtsseite der Unternehmensanwendung die **Objekt-ID**. Sie wird für die Benutzersynchronisation benötigt (`SCIM_OBJECT_ID`).
  </Step>

  <Step title="IDs notieren">
    Wechseln Sie zu **App-Registrierungen** und öffnen Sie die Anwendung. Notieren Sie die **Anwendungs-ID (Client)** für `OIDC_CLIENT_ID` und die **Verzeichnis-ID (Mandant)** für `OIDC_AUTHORITY`, `OIDC_CONFIGURATION_URL` und `SCIM_TENANT_ID`.
  </Step>

  <Step title="Redirect-URI eintragen">
    Unter **Authentifizierung → Plattform hinzufügen** wählen Sie **Web** (nicht Single-Page-Anwendung) und tragen die Redirect-URI ein. Ersetzen Sie dabei `<PROJECT_DOMAIN>` durch die Domain Ihrer VARIOS-AI-Installation, also den Wert von `PROJECT_DOMAIN` aus der `.env`; der Pfad dahinter bleibt unverändert.

    ```text theme={null}
    https://<PROJECT_DOMAIN>/oauth2/oidc/oidc/finishauthorization
    ```

    Beispiel für die Domain `ki.example.com`: `https://ki.example.com/oauth2/oidc/oidc/finishauthorization`
  </Step>

  <Step title="Client-Secret erstellen">
    Unter **Zertifikate & Geheimnisse → Neuer geheimer Clientschlüssel** erstellen Sie ein Secret. Nennen Sie im Namen die Anwendung, damit beim Ablauf klar ist, wo es verwendet wird. Kopieren Sie den **Wert** sofort, er wird nur einmal angezeigt, und tragen Sie ihn als `OIDC_CLIENT_SECRET` ein.

    <Warning>
      Client-Secrets laufen nach höchstens 24 Monaten ab. Notieren Sie das Ablaufdatum, ein abgelaufenes Secret ist die häufigste Ursache für eine plötzlich fehlschlagende Anmeldung.
    </Warning>
  </Step>

  <Step title="Token-Ansprüche ergänzen">
    Unter **Tokenkonfiguration → Optionalen Anspruch hinzufügen** wählen Sie den Tokentyp **ID** und die Ansprüche `email`, `family_name`, `given_name`, `preferred_username` und `upn`. Bestätigen Sie die Nachfrage, die Graph-Berechtigungen `email` und `profile` zu aktivieren.
  </Step>

  <Step title="API-Berechtigungen erteilen">
    Unter **API-Berechtigungen → Berechtigung hinzufügen → Microsoft Graph → Delegierte Berechtigungen** fügen Sie hinzu: `openid`, `profile`, `email`, `offline_access`, `User.Read`.

    Für den [Microsoft 365 Assistent](/de/extended-support/admin/globale-assistenten/microsoft365assistent) zusätzlich: `Sites.Read.All`, `Mail.Read`, `Mail.Send`, `Chat.Read`, `ChannelMessage.Read.All`, `Calendars.Read`.

    Klicken Sie anschließend auf **Administratorzustimmung erteilen** und bestätigen Sie.

    <Info>
      Alle genannten Berechtigungen sind delegiert: VARIOS AI handelt im Namen des angemeldeten Nutzers und erhält nur die Inhalte, auf die dieser Nutzer selbst Zugriff hat. Auch `Sites.Read.All` bezieht sich auf die Sites des Nutzers, nicht auf den gesamten Tenant. Anwendungsberechtigungen ohne Nutzerkontext benötigt VARIOS AI nur optional für die Benutzersynchronisation, siehe unten.
    </Info>
  </Step>

  <Step title="App-Rollen anlegen">
    Unter **App-Rollen → App-Rolle erstellen** legen Sie vier Rollen für **Benutzer/Gruppen** an. Bei den drei Administratorrollen muss der **Wert** exakt dem Namen in der `.env` entsprechen:

    | Rolle                    | Wert              | Variable                      |
    | ------------------------ | ----------------- | ----------------------------- |
    | Benutzer                 | `User`            | keine                         |
    | Administrator            | `Admin`           | `ADMIN_GROUP_NAME`            |
    | Superadministrator       | `SuperAdmin`      | `SUPERADMIN_GROUP_NAME`       |
    | Compliance-Administrator | `ComplianceAdmin` | `COMPLIANCE_ADMIN_GROUP_NAME` |
  </Step>

  <Step title="Benutzer und Gruppen zuweisen">
    Wechseln Sie zurück zur **Unternehmensanwendung → Benutzer und Gruppen → Benutzer/Gruppe hinzufügen**. Weisen Sie Benutzer oder Gruppen zu und wählen Sie je Zuweisung die passende Rolle. Damit sich nur zugewiesene Nutzer anmelden können, setzen Sie in den **Eigenschaften** der Unternehmensanwendung **Zuweisung erforderlich** auf **Ja**.

    Die Zuweisung ganzer **Gruppen** setzt eine Lizenz **Microsoft Entra ID P1** oder höher voraus. Ohne P1 lassen sich nur einzelne Benutzer zuweisen; VARIOS AI kennt dann keine Gruppen aus Entra ID.

    <Note>
      Entra löst verschachtelte Gruppen bei der Zuweisung nicht auf. Weisen Sie die Gruppen zu, in denen die Nutzer direkt Mitglied sind.
    </Note>
  </Step>
</Steps>

## Werte für die .env

```bash theme={null}
OIDC_PROVIDER=azure
OIDC_AUTHORITY=https://login.microsoftonline.com/<Verzeichnis-ID>/v2.0
OIDC_CONFIGURATION_URL=https://login.microsoftonline.com/<Verzeichnis-ID>/v2.0/.well-known/openid-configuration
OIDC_CLIENT_ID=<Anwendungs-ID>
OIDC_CLIENT_SECRET=<Client-Secret>
OIDC_SCOPE=openid profile email offline_access User.Read
OIDC_USER_IDENTIFIER=upn
OIDC_ROLES_CLAIM=roles
ADMIN_GROUP_NAME=Admin
SUPERADMIN_GROUP_NAME=SuperAdmin
COMPLIANCE_ADMIN_GROUP_NAME=ComplianceAdmin
```

Nutzen Sie den Microsoft 365 Assistenten, ergänzen Sie `OIDC_SCOPE` um die oben genannten zusätzlichen Berechtigungen. `OIDC_LOGOUT_URL` kann leer bleiben, VARIOS AI verwendet dann die Abmelde-URL aus der Entra-Konfiguration.

## Benutzer und Gruppen synchronisieren

Rollen kommen bei jeder Anmeldung aus dem Token. Damit VARIOS AI auch Gruppen kennt, etwa für die Freigabe von Assistenten, werden Benutzer und Gruppen synchronisiert. Es gibt zwei Wege.

<Tabs>
  <Tab title="Entra sendet an VARIOS AI (SCIM)">
    Entra ID überträgt Benutzer und Gruppen per SCIM an VARIOS AI. Dafür muss VARIOS AI von Entra ID aus über Port 443 erreichbar sein. Die Bereitstellung von Benutzern funktioniert mit jeder Entra-Edition; die Bereitstellung von **Gruppen** setzt **Microsoft Entra ID P1** oder höher voraus.

    In der **Unternehmensanwendung → Bereitstellung** setzen Sie den Modus auf **Automatisch** und tragen ein:

    * **Mandanten-URL:** `https://<PROJECT_DOMAIN>/scim/<SCIM_MANDANT>/v2`
    * **Geheimes Token:** der Wert von `SCIM_TOKEN` aus Ihrer `.env`, ein selbst gewähltes, langes Geheimnis

    Unter **Einstellungen → Bereich** legen Sie fest, ob nur die zugewiesenen Benutzer und Gruppen oder alle Benutzer und Gruppen des Verzeichnisses übertragen werden. Testen Sie die Verbindung, speichern Sie und starten Sie die Bereitstellung. In der `.env`:

    ```bash theme={null}
    SCIM_DIRECTION=push
    SCIM_MANDANT=<frei gewählter Kurzname>
    SCIM_TOKEN=<langes Geheimnis>
    ```
  </Tab>

  <Tab title="VARIOS AI liest aus Entra (Graph)">
    VARIOS AI liest Benutzer und Gruppen selbst über Microsoft Graph. Dabei wird die Benutzer- und Gruppenliste des gesamten Verzeichnisses gelesen, übernommen werden aber nur die Benutzer und Gruppen, die der Unternehmensanwendung zugewiesen sind, Benutzer direkt oder über eine zugewiesene Gruppe. Dafür benötigt die App-Registrierung unter **API-Berechtigungen** die **Anwendungsberechtigungen** `User.Read.All`, `Group.Read.All` und `Application.Read.All` mit Administratorzustimmung.

    Für diesen Weg ist keine Entra-Bereitstellung nötig. Da nur zugewiesene Gruppen übernommen werden und die Zuweisung von Gruppen Entra ID P1 voraussetzt, kommen ohne P1 nur einzeln zugewiesene Benutzer an und keine Gruppen.

    ```bash theme={null}
    SCIM_DIRECTION=pull
    SCIM_TENANT_ID=<Verzeichnis-ID>
    SCIM_OBJECT_ID=<Objekt-ID der Unternehmensanwendung>
    ```
  </Tab>
</Tabs>

## Prüfung

* Ein Nutzer aus einer zugewiesenen Gruppe kann sich anmelden.
* Ein Nutzer mit der Rolle `SuperAdmin` sieht das Menü Administration.
* Unter Administration → Benutzer und Gruppen erscheinen die synchronisierten Einträge.

Schlägt die Anmeldung fehl, prüfen Sie zuerst Redirect-URI, Ablaufdatum des Client-Secrets und die Gruppenzuweisung des Nutzers.
