# Keycloak

Costfluent meldet deine Leute über einen Keycloak-Realm per OpenID Connect an. Du legst einen Client im Realm an, und Costfluent vertraut den Adressen der Domains, die du bestätigst.

## Bevor du beginnst

- Du brauchst in Costfluent die Organisationsrolle Eigentümer und Administratorzugriff auf den Keycloak-Realm.
- Dein Keycloak-Server ist aus dem Internet per HTTPS erreichbar, damit Costfluent sein Discovery-Dokument und seine Schlüssel lesen kann.
- Die Adressen deiner Leute liegen in einer Domain, für die du einen DNS-TXT-Eintrag veröffentlichen kannst.

<PlanAvailability feature="Sso" plan="Core" />

## Anwendung registrieren

<Stepper>

1. Lege im Realm einen Client vom Typ OpenID Connect an.
2. Schalte die Client-Authentifizierung und den Standard-Flow (Authorization Code) ein.
3. Füge den gültigen Weiterleitungs-URI `https://app.costfluent.com/api/auth/sso/callback` hinzu.
4. Kopiere die Client-ID und aus den Zugangsdaten des Clients das Client-Secret.

</Stepper>

Deine Discovery-URL ist `https://<keycloak-host>/realms/<realm>/.well-known/openid-configuration`.

## Gruppen senden

<Stepper>

1. Öffne den eigenen Client-Scope des Clients und füge einen Mapper vom Typ Group Membership hinzu.
2. Nenne seinen Token-Claim `groups` und füge ihn dem ID-Token hinzu.
3. Entscheide über den vollständigen Gruppenpfad. Ist er eingeschaltet, sendet Keycloak `/engineering/platform`, sonst `platform`.

</Stepper>

Die **Gruppe beim Identitätsanbieter**, die du in Costfluent zuordnest, ist der Wert genau so, wie der Mapper ihn sendet, mit dem führenden Schrägstrich, wenn der vollständige Pfad eingeschaltet ist.

:::note
Bei Benutzern, die in Keycloak importiert wurden, ist die E-Mail-Adresse oft als nicht bestätigt markiert. Sie melden sich trotzdem an, solange ihre Adresse in einer Domain liegt, die die Verbindung bestätigt hat.
:::

## In Costfluent verbinden

<Stepper>

1. Öffne **Einstellungen**, dann **Single Sign-on**, und verbinde deinen Anbieter mit der Discovery-URL, der Client-ID und dem Client-Secret.
2. Füge der Verbindung deine E-Mail-Domains hinzu und bestätige jede mit ihrem DNS-TXT-Eintrag.
3. Ordne die Gruppen Teams zu und aktiviere dann die Verbindung.

</Stepper>

[Anmeldung und Sicherheit](/de/admin/sign-in-security) beschreibt jeden dieser Schritte, das Erzwingen und die Notfall-Eigentümer.

## So verhält es sich

Costfluent liest diese Claims aus dem ID-Token und, wo das ID-Token einen auslässt, vom Userinfo-Endpunkt:

- `iss`, der dem Aussteller gleichen muss, den dein Discovery-Dokument beim Verbinden nannte, `https://<keycloak-host>/realms/<realm>`.
- `sub`, die Keycloak-Benutzer-ID, als die Identität, die Costfluent speichert.
- `email`, die in einer der bestätigten Domains der Verbindung liegen muss, was auch immer `email_verified` sagt. Eine Adresse außerhalb aller bestätigten Domains wird abgelehnt, ebenso eine Anmeldung ohne Adresse.
- `name`, für den Namen eines Kontos, das Costfluent anlegt.
- `groups` oder ein anderer Claim-Name, den du an der Verbindung einstellst, wenn dein Mapper einen anderen verwendet.

Costfluent lehnt außerdem ein Token ab, dessen Signatur, Zielgruppe, Nonce oder Gültigkeit nicht stimmt, und ein Discovery-Dokument, das plötzlich einen anderen Aussteller nennt.

## Verwandte Seiten

- [Anmeldung und Sicherheit](/de/admin/sign-in-security)
- [Benutzer, Teams und Rollen](/de/admin/users-teams-and-roles)
