# Keycloak

Dies ist die technische Anleitung primär zum Einbinden neuer Dienste. Suchst Du vielleicht die [Anleitungen/Single Sign-On](https://wiki.ping.de/books/anleitungen/page/single-sign-on)? <span class="anchor" id="bkmrk-"></span><span class="anchor" id="bkmrk--1"></span>

# Keycloak

<span class="anchor" id="bkmrk--3"></span>

[Keycloak](https://keycloak.org) ist eine Identity Management Software, in Java geschrieben. Wir setzen sie seit August 2025 auf auth.ping.de ein. <span class="anchor" id="bkmrk--4"></span><span class="anchor" id="bkmrk--5"></span>

Deployed als docker container auf hafen. Für die User aus der Ping- und Prima-Mitglieder Datenbank haben wir den Realm PING angelegt. <span class="anchor" id="bkmrk--6"></span><span class="anchor" id="bkmrk--7"></span>

Der Datenexport aus den Datenbanken erfolgt über Perl-Scripte, die hier auch mal dokumentiert werden sollten. <span class="anchor" id="bkmrk--8"></span><span class="anchor" id="bkmrk--9"></span>

Unter der URL [https://auth.ping.de/realms/PING/account](https://auth.ping.de/realms/PING/account) können Mitglieder z.B. 2FA konfigurieren. <span class="anchor" id="bkmrk--10"></span><span class="anchor" id="bkmrk--11"></span>

Es gibt in dem Realm zwei Gruppen "ping" und "prima", so dass gewisse Dienste auf diese Gruppen eingeschränkt werden können (wenn Daten nicht existieren für alle User u.s.w.). <span class="anchor" id="bkmrk--12"></span><span class="anchor" id="bkmrk--13"></span>

## Neue Anwendung zu Keycloak hinzufügen

<span class="anchor" id="bkmrk--15"></span>

Wenn man dann eine Software hat, die sich via [OIDC](https://de.wikipedia.org/wiki/OpenID_Connect) an ein [Single Sign-on](https://de.wikipedia.org/wiki/Single_Sign-on) dranflanschen lässt, dann geht das wie folgt: <span class="anchor" id="bkmrk--16"></span><span class="anchor" id="bkmrk--17"></span>

1. Im Keycloak **im Realm PING** einen neuen Client anlegen.   
    Meist findet man eine Anleitung, welche Parameter dabei zu beachten sind.   
    Vermutlich wollt ihr unter "capability config" den Punkt "client authentication" einschalten. Darum geht es schließlich.   
    Tragt auch die richtige URL des Clients unter *Root URL* ein. <span class="anchor" id="bkmrk--18"></span>
2. Nachdem ihr den Client angelegt habt, findet ihr in dessen *Client details* unter *Credentials* das *Client secret*. Das braucht ihr für die Anwendung, die angebunden werden soll. <span class="anchor" id="bkmrk--19"></span>
3. In der Anwendung könnt ihr bei der Konfiguration des OIDC vielleicht den Erkennungsendpunkt angeben. Der lautet  
    [https://auth.ping.de/realms/PING/.well-known/openid-configuration](https://auth.ping.de/realms/PING/.well-known/openid-configuration) <span class="anchor" id="bkmrk--20"></span><span class="anchor" id="bkmrk--21"></span>

### Gruppen aus Keycloak in der Anwendung

<span class="anchor" id="bkmrk--23"></span>

Wenn ihr jetzt noch Rollen für besondere Berechtigungen vom Keycloak in eure Anwendung übernehmen wollt, dann könnt ihr im Keycloak noch Client Roles definieren, Usern diese zuweisen und dann in einem *Client scope* für den Client die Rollen mappen. Dazu legt ihr einen *token mapper* vom Typ *user client roles* an. Dort ist vermutlich die Checkbox "Add to ID token" wichtig, also aktiviert die. <span class="anchor" id="bkmrk--24"></span><span class="anchor" id="bkmrk--25"></span>

Viel Erfolg.

#### Im Keycloak konfigurierte Dienste:

- conf.ping.de BigBlueButton greenlight-v3 UI 2026-04
- wiki.ping.de Bookstack 2026-03
- poz.ping.de wordpress 2026-04
- weiterbildung.ping.de wordpress 2026-04
- matrix anmeldung 2026-03
- code.ping.de forgejo git repo
- milla apache geschützter Bereich 2026-03
- cloud.ping.de nextcloud
- ki.ping.de open-webui