Keycloak installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(X-Forwarded-Proto war notwendig. Jetzt ist es mit Version 18 ohne Probleme zu betreiben.)
Zeile 33: Zeile 33:
*[http://www.keycloak.org/ Webseite von Keycloak]
*[http://www.keycloak.org/ Webseite von Keycloak]
*[https://github.com/tpokorra/Hostsharing-Ansible-Keycloak Ansible Playbook für Hostsharing]
*[https://github.com/tpokorra/Hostsharing-Ansible-Keycloak Ansible Playbook für Hostsharing]
*[https://robferguson.org/blog/2019/12/24/getting-started-with-keycloak/ Getting started with Keycloak]


----
----

Version vom 17. Juni 2022, 15:14 Uhr

Allgemein

Keycloak [1] ist eine Open Source Lösung, die ein Single Sign On für verschiedene Anwendungen ermöglicht. Dabei ermöglicht es sowohl die Identitätsverwaltung als auch Zugriffsmanagement.

Es kann die Benutzer entweder aus einem existierenden Verzeichnisdienst (LDAP, Active Directory) auslesen, oder die Gruppen und Benutzer auch selber verwalten.

Technische Details

Keycloak ist in Java geschrieben. Bisher lief es in einem Wildfly Server, aber seit Version 17 (Februar 2022) benutzt es Quarkus, welches ein leichtgewichtiges Java Framework ist.

Es gibt ein Ansible Skript, das die Installationsschritte für Keycloak automatisiert durchführt.

Die Quellen für das Ansible Skript können hier eingesehen werden: [2]

Installation

Was das Ansible Skript macht, lässt sich mit diesen Worten beschreiben:

  • Es wird ein Linux Benutzer eingerichtet.
  • Es wird eine Postgresql Datenbank eingerichtet.
  • Es wird eine Domain aufgeschaltet.
  • Es wird Keycloak als Zip Datei heruntergeladen, z.B. [3], und ins Verzeichnis $HOME/keycloak-17.0.0 entpackt.
  • Dann werden ein paar Konfigurationen an der Datei keycloak/conf/keycloak.conf vorgenommen, um die Postgresql Datenbank einzurichten, und um den Proxymodus auf edge zu setzen und den Hostname zu setzen.
  • Nun wird die Keycloak Instanz initialisiert, mit dem Befehl: keycloak/bin/kc.sh --profile=prod build
  • Es muss der Server einmal gestartet werden, während der Admin Benutzer mit Passwort in einer Umgebungsvariable gesetzt ist, damit der Benutzer eingerichtet wird.
  • Es wird Monit konfiguriert, um den Keycloak Service zu starten, der auf einem internen Port lauscht.
  • Es wird der Apache in der htaccess Datei konfiguriert, damit die aufgeschaltete Domain über Proxy auf den Keycloak Dienst verweist. Dabei ist wichtig, dass der Java Prozess mitbekommt, dass die Seite über https läuft. Dazu wird in der htaccess Datei der Wert X-Forwarded-Proto auf https gesetzt.

Beispiel einer Einrichtung

  • Auf https://keycloak.example.org/admin anmelden.
  • Es soll nicht mit der master Realm gearbeitet werden, sondern sollte eine weitere Realm eingerichtet werden, z.B. "Meine Firma"
  • TODO

Links