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

# OIDC-Anwendungen

> Konfigurieren Sie eine OIDC-Anwendung in Iru Identity: Client-Anmeldedaten und Rotation, Weiterleitungs-URIs, Scopes, Claim-Zuordnung, Signaturschlüssel und Sitzungsdauer.

Mit einer **OIDC-Anwendung** können sich Benutzer bei einem Dienst anmelden, der OpenID
Connect unterstützt, wobei Iru als Identitätsanbieter fungiert. Iru stellt dem Dienst eine
**Client-ID** und einen **geheimen Clientschlüssel** aus, sendet nach der Anmeldung ein **ID-Token** und
ordnet die Profilattribute Ihrer Benutzer in die **Claims** dieses Tokens ein.

Verwenden Sie diese Abschnitte, um eine benutzerdefinierte OIDC-App oder eine App zu konfigurieren, die Sie
[von einer Vorlage gelöst](/de/identity/applications/application-templates) haben. Sie
bearbeiten die Konfiguration in einem **Entwurf** und legen diesen dann als current-Version fest; das Versionsmodell finden Sie unter
[Übersicht über Anwendungen](/de/identity/applications/applications-overview).

## Schritt 1: Client-Anmeldedaten speichern

Wenn Sie eine OIDC-App erstellen, generiert Iru eine **Client-ID** und einen **geheimen
Clientschlüssel**. Das Geheimnis wird **nur einmal** angezeigt, kopieren Sie daher beides an einen sicheren Ort,
bevor Sie den Dialog schließen.

<Warning>
  Der geheime Clientschlüssel wird nach der Erstellung nicht erneut angezeigt. Wenn Sie ihn verlieren, rotieren Sie
  das Geheimnis, um ein neues zu generieren.
</Warning>

Die **Protocol details** der App listen außerdem die Endpunkte auf, die der Dienst für die Kommunikation
mit Iru benötigt:

| Detail | Bedeutung |
| - | - |
| **Client ID** | Die öffentliche Kennung der App. |
| **Well-Known URL** | Das OpenID-Discovery-Dokument; viele Dienste konfigurieren alles über diese eine URL. |
| **Token Endpoint** | Wo der Dienst einen Autorisierungscode gegen Token austauscht. |
| **User Info Endpoint** | Wo der Dienst Profil-Claims für den angemeldeten Benutzer liest. |

## Schritt 2: Weiterleitungs-URIs festlegen

Fügen Sie im **Entwurf** der App unter den OIDC-Einstellungen die URIs hinzu, zu denen Iru
weiterleiten darf:

<Steps>
  <Step title="Zulässige Weiterleitungs-URIs für die Anmeldung">
    Wohin Iru den Benutzer nach einer erfolgreichen Anmeldung zurückleitet. Fügen Sie jede URL hinzu, die der
    Dienst verwendet.
  </Step>

  <Step title="Zulässige Weiterleitungs-URIs für die Abmeldung">
    Wohin Iru den Benutzer nach der Abmeldung zurückleitet.
  </Step>
</Steps>

<Note>
  Weiterleitungs-URIs müssen exakt übereinstimmen. Es gibt eine Option, Platzhalter in
  Weiterleitungs-URIs zuzulassen; lassen Sie sie deaktiviert, sofern der Dienst sie nicht ausdrücklich erfordert, da
  eine exakte Übereinstimmung sicherer ist.
</Note>

## Schritt 3: Scopes wählen

**Scopes** steuern, welche Kategorien von Claims der Dienst anfordern darf. Iru
bietet die Standard-Scopes von OpenID Connect:

| Scope | Gewährt Zugriff auf |
| - | - |
| **OpenID** (`openid`) | Erforderlich für OpenID Connect; immer enthalten. |
| **Profile** (`profile`) | Grundlegende Profil-Claims. |
| **E-Mail** (`email`) | Die E-Mail-Adresse des Benutzers. |
| **Address** (`address`) | Die Adresse des Benutzers. |
| **Phone** (`phone`) | Die Telefonnummer des Benutzers. |
| **Offline access** (`offline_access`) | Ein Aktualisierungstoken, damit der Dienst angemeldet bleiben kann, ohne erneut nachzufragen. |

<Tip>
  `openid` ist immer vorhanden und kann nicht entfernt werden. Aktivieren Sie nur die zusätzlichen
  Scopes, die der Dienst wirklich benötigt.
</Tip>

## Schritt 4: Subject und Claims zuordnen

Öffnen Sie die **Zuordnung** der Anwendung. Die Zuordnung enthält ein **Betreff** sowie alle
zusätzlichen **Claims**.

### Subject

Das Subject ist die primäre Kennung des angemeldeten Benutzers und wird als
Claim `sub` gesendet. Bei einer OIDC-App wird das Standard-Subject aus der
`user.id` des Benutzers zugeordnet. Sie können den Wert ändern, aus dem es gebildet wird, und es einem Scope zuordnen.

### Claims

Fügen Sie alle zusätzlichen Claims hinzu, die der Dienst im ID-Token erwartet. Für jeden legen Sie fest:

* Einen **Namen:** den Claim-Namen.
* Einen **Wert:** das Profilattribut oder den Ausdruck, aus dem er gebildet wird.
* Einen **Scope:** den Scope, zu dem der Claim gehört.
* Ob er **aktiviert** ist.

Eine Live-**Vorschau** zeigt das Token, das erzeugt wird, sodass Sie die
Claims vor der Veröffentlichung bestätigen können.

<Warning>
  Einige Claim-Namen sind durch den OpenID Connect-Standard reserviert und können nicht
  als benutzerdefinierte Claims verwendet werden: `iss`, `aud`, `exp`, `nbf`, `iat` und `jti`.
</Warning>

## Schritt 5: Geheimen Clientschlüssel rotieren

Der geheime Clientschlüssel kann rotiert werden, ohne die App neu zu erstellen – über
**Protocol details → Client secrets** der App.

<AccordionGroup>
  <Accordion title="Rotieren" icon="rotate">
    **Rotate** stellt einen neuen geheimen Clientschlüssel aus, während der vorherige noch
    **24 Stunden** lang funktioniert, sodass Sie den Dienst aktualisieren können, bevor das alte Geheimnis ungültig wird. Während
    dieses Zeitraums wird das vorherige Geheimnis mit dem Badge **Expires Soon** angezeigt; ein
    neu ausgestelltes Geheimnis ist langlebig.
  </Accordion>

  <Accordion title="Ungültig machen" icon="ban">
    **Invalidate** beendet das aktuelle Geheimnis sofort, ohne Übergangszeit. Verwenden Sie
    dies, wenn ein Geheimnis möglicherweise offengelegt wurde, und aktualisieren Sie den Dienst dann umgehend.
  </Accordion>
</AccordionGroup>

<Note>
  Iru verwaltet die Signaturschlüssel, mit denen es ID-Token signiert, und veröffentlicht sie an den
  Discovery- und Schlüssel-Endpunkten, sodass Dienste Token automatisch validieren; es muss
  nichts manuell rotiert werden.
</Note>

## Schritt 6: Veröffentlichen, zuweisen und aktivieren

<Steps>
  <Step title="Entwurf als current festlegen">
    Veröffentlichen Sie Ihren Entwurf, damit er zur Live-Konfiguration wird.
  </Step>

  <Step title="Zugriff zuweisen">
    Weisen Sie die Gruppen zu, die die App erhalten sollen. Siehe
    [Zugriff zuweisen](/de/identity/applications/assigning-access).
  </Step>

  <Step title="Aktivieren">
    Aktivieren Sie die App, damit sich zugewiesene Benutzer anmelden können.
  </Step>

  <Step title="Anmeldung testen">
    Melden Sie sich als Testbenutzer über das App-Dashboard an, um die Erfahrung zu überprüfen.
  </Step>
</Steps>

## Authentifizierungsablauf

Eine OIDC-App meldet Benutzer mit dem **Autorisierungscode-Ablauf** an:

<Steps>
  <Step title="Weiterleitung zu Iru">
    Die App leitet den Benutzer zur Anmeldung an Iru weiter.
  </Step>

  <Step title="Authentifizieren und Richtlinie auswerten">
    Iru authentifiziert den Benutzer und wertet die
    [Authentifizierungsrichtlinie](/de/identity/authentication/authentication-policies) der App aus.
  </Step>

  <Step title="Autorisierungscode zurückgeben">
    Iru leitet mit einem kurzlebigen Autorisierungs**code** zurück zur **Weiterleitungs-URI**
    der App.
  </Step>

  <Step title="Code gegen Token austauschen">
    Die App tauscht den Code am **Token-Endpunkt** von Iru gegen ein **ID-Token** (wer
    der Benutzer ist) und ein **Zugriffstoken** aus.
  </Step>

  <Step title="Claims lesen (und angemeldet bleiben)">
    Die App kann mit dem Zugriffstoken den **User-Info-Endpunkt** aufrufen, um
    Profil-Claims zu lesen, und (wenn Sie `offline_access` aktiviert haben) ein **Aktualisierungstoken** verwenden,
    um angemeldet zu bleiben.
  </Step>
</Steps>

Die meisten Bibliotheken konfigurieren diesen gesamten Ablauf über die **Well-Known URL** in den
**Protocol details**.

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Zugriff zuweisen" icon="user-check" href="/de/identity/applications/assigning-access">
    Die App Benutzern und Gruppen zuweisen.
  </Card>

  <Card title="Bereitstellung" icon="arrows-rotate" href="/de/identity/applications/provisioning">
    Konten in der App automatisch erstellen und entfernen, wenn sich der Zugriff ändert.
  </Card>

  <Card title="Authentifizierungsrichtlinien" icon="shield-halved" href="/de/identity/authentication/authentication-policies">
    Festlegen, wer sich anmelden kann und was nachgewiesen werden muss.
  </Card>

  <Card title="Übersicht über Anwendungen" icon="grip" href="/de/identity/applications/applications-overview">
    Protokolle und das Versionsmodell vom Entwurf zur current-Version überprüfen.
  </Card>
</CardGroup>
