Karaf als Identity Provider

Der Apache Karaf bringt einen einfachen Authentifizierungsservice mit, der auch für den Zugriff auf die Karaf-Konsole verwendet wird.

Beim initialen Start des BPCs (bzw. bei jedem Start, wenn nicht vorhanden), wird automatisch eine Backend Connection für den Karaf als IdP angelegt. Diese hat den Modulnamen Karaf (default) und die ID idp_karaf.

Der Zugriff auf die Karaf-Konsole erfolgt immer über den Karaf Identity Provider (IdP), unabhängig von der Konfiguration des BPC. Für die Authentifizierung an der Karaf-Konsole ist daher ausschließlich die users.properties- und keys.properties-Konfiguration des Karaf relevant.

Konfiguration

Es wird eine neue Backend-Connection vom Typ identity_provider angelegt. Dort sind folgende Werte zu setzen:

Setting (Key) Gruppe Wert Beschreibung

Module_Name
(module_name)

module

idp-karaf

Einen sprechenden und eindeutigen Namen vergeben

IdentityProvider
(identityProvider)

config

karaf

Den Karaf als Identity Provider festlegen

Datenquelle (JAAS File)

Die Authentifizierung und Verwaltung von Benutzern für den Zugriff auf die Karaf-Konsole erfolgt über Java Authentication and Authorization Service (JAAS)-Dateien. Diese Dateien, insbesondere users.properties und keys.properties, ermöglichen es, Benutzer zu definieren und ihre Zugriffsberechtigungen festzulegen. Dabei kann sowohl die Authentifizierung mittels Passwort-Hashes als auch über Public/Private-Key-Verfahren konfiguriert werden.

Verwendung von users.properties für Karaf Zugriff

Die Benutzer werden über die Datei KARAF_HOME/etc/users.properties gesteuert.
Die Passwörter werden in der Datei, in dem Format {CRYPT}Passwort-Hash{CRYPT}, als Hashes abgelegt. Aus dem Passwort-Hash kann das Klartextpasswort nicht rekonstruiert werden.

Zum Ändern des Passwortes ist {CRYPT}Passwort-Hash{CRYPT} komplett durch ein Klartextpasswort zu ersetzen. Dabei ist darauf zu achten, dass auch die {CRYPT} Elemente entfernt werden (siehe auch die folgenden Beispiele). Das neue Passwort ist direkt nach dem Speichern der Datei wirksam und wird anschließend automatisch durch einen Hash ersetzt.

users.properties Datei mit Passwort-Hashes
bpcadmin = {CRYPT}XYZ{CRYPT},bpcadmin
virtimo = {CRYPT}XYZ{CRYPT},_g_:admingroup,bpcNoFrontend
_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh
users.properties Datei mit Klartextpasswörtern
bpcadmin = einSehrSicheresPasswort123,bpcadmin
virtimo = einAnderesSehrSicheresPasswort123,_g_:admingroup,bpcNoFrontend
_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh

Wird die Syntax der Datei nicht eingehalten, so ist eine Authentifizierung nicht möglich und führt dann zu einem IDENTITY_PROVIDER_NOT_FOUND Fehler.

Verwendung von keys.properties für Karaf Zugriff

Zusätzlich zu users.properties kann auch keys.properties verwendet werden, um Benutzer mit SSH-Schlüsseln zu authentifizieren. Hier wird festgelegt, welche Benutzer über SSH-Schlüssel Zugriff haben, was zusätzliche Sicherheit bietet.
Siehe Karaf SSH Zugriff.


Keywords: