Dokumentation

Okivo in Keycloak einrichten

Von der Registrierung bis zur ersten Push-Bestätigung. Rechne mit 30 bis 60 Minuten, je nachdem, wie du Keycloak betreibst.

Auf dieser Seite

Voraussetzungen

  • Keycloak 26.x, selbst betrieben (Container, Paket oder Kubernetes).
  • Zugriff auf den providers-Ordner und die Admin-Konsole.
  • Ausgehende HTTPS-Verbindung von Keycloak zu gateway.uat.okivo.app (Port 443).
  • Dein Keycloak ist für die Okivo-App unter der öffentlichen Adresse erreichbar, über die sich deine Nutzer auch im Browser anmelden.

Schritt für Schritt

1

Konto und Realm anlegen

Registriere dich und lege im Portal unter Realms einen Eintrag für jeden Keycloak-Realm an, der Okivo nutzen soll. Vor dem ersten Realm richtest du Okivo für dein eigenes Portal-Konto ein. Danach bekommst du drei Werte: Relay Base URL, Tenant ID und Tenant API Key.

Den API-Key siehst du nur einmal.

Kopiere ihn direkt in den Keycloak-Vault (Schritt 4). Hast du ihn verloren, erzeugst du im Portal mit „Key erneuern“ einen neuen; der alte gilt dann sofort nicht mehr.

2

Plugin installieren

Lege die Plugin-Datei push-mfa.jar in den providers-Ordner deiner Keycloak-Installation. Danach muss Keycloak einmal neu gebaut werden. Die Datei bekommst du derzeit von uns per E-Mail: support@okivo.app.

Shell
# JAR in den providers-Ordner kopieren
cp push-mfa.jar /opt/keycloak/providers/

# Keycloak neu bauen und starten
/opt/keycloak/bin/kc.sh build
/opt/keycloak/bin/kc.sh start --optimized

Mit Docker oder Podman baust du am besten ein eigenes Image:

Dockerfile
FROM quay.io/keycloak/keycloak:26.7 AS builder
COPY push-mfa.jar /opt/keycloak/providers/
RUN /opt/keycloak/bin/kc.sh build

FROM quay.io/keycloak/keycloak:26.7
COPY --from=builder /opt/keycloak/ /opt/keycloak/
3

Authenticator in den Login-Flow setzen

In der Admin-Konsole des Realms, in dem sich deine Nutzer anmelden, unter Authentication → Flows den Browser-Flow duplizieren, zum Beispiel als browser-okivo. Den Schritt Push MFA innerhalb des Unter-Flows „forms“ hinzufügen, direkt unter „Username Password Form“, und auf Required stellen. Die Aktion push-mfa unter Required actions, über die Nutzer ihr Gerät einrichten, legt das Plugin bei der ersten Anmeldung selbst an; hast du sie dort deaktiviert, schalte sie wieder ein. Danach den neuen Flow mit Bind flow als Browser-Flow festlegen.

Nicht auf der obersten Ebene und nicht im Realm „master“.

Steht „Push MFA“ auf der obersten Ebene des Flows, läuft der Schritt, bevor Keycloak den Nutzer kennt, und niemand kann sich mehr anmelden. Im Realm master sperrst du damit die Admin-Konsole. Teste den neuen Flow zuerst mit einem zweiten Browser, bevor du dich abmeldest.

4

Zugangsdaten eintragen

Am Schritt Push MFA über das Zahnrad die drei Werte aus dem Portal eintragen. Den API-Key legst du am besten im Keycloak-Vault ab und verweist nur darauf:

Vault-Datei anlegen
# Dateiname: <realm>_<schlüssel>, hier für den Realm „firma“
echo -n 'pmfa_…' > /opt/keycloak/vault/firma_push-mfa-apikey
chmod 600 /opt/keycloak/vault/firma_push-mfa-apikey

# Keycloak mit Datei-Vault starten
kc.sh start --vault=file --vault-dir=/opt/keycloak/vault

Im Feld Tenant API Key steht dann nur ${vault.push-mfa-apikey}.

5

Ersten Nutzer einrichten

Melde dich mit einem Testkonto im Realm an. Keycloak zeigt einen QR-Code; scanne ihn mit der Okivo-App. Bei der nächsten Anmeldung kommt der erste Push. Im Portal steht der Nutzer danach in der Auslastung.

RADIUS / VPN ab Team

Für VPN- und WLAN-Anmeldungen bindest du FreeRADIUS an Keycloak an. FreeRADIUS prüft das Passwort wie bisher und fragt danach beim Okivo-Plugin in deinem Keycloak einen Push an; erst nach der Bestätigung wird die Anmeldung angenommen. Die Einrichtung übernimmt unser Installationsskript für FreeRADIUS, das du mit dem Plugin bekommst.

Timeout am VPN-Gateway erhöhen

Viele Gateways brechen RADIUS-Anfragen nach 5 bis 10 Sekunden ab. Stell dort mindestens 60 Sekunden ein, sonst läuft die Anfrage ab, bevor der Nutzer bestätigen kann.

Fehlerbehebung

AnzeichenUrsache
Keycloak-Log: Relay … fehlgeschlagen: HTTP 401API-Key falsch oder erneuert. Vault-Datei prüfen.
Nutzer sieht „Nutzerlimit erreicht“ statt des QR-CodesDas Nutzerlimit des Tarifs ist erreicht. Bestehende Nutzer sind nicht betroffen.
Keycloak-Log: Zeitüberschreitung beim Relay-AufrufAusgehende Verbindung zu gateway.uat.okivo.app:443 blockiert.
RADIUS: feature_not_licensedRADIUS ist im aktuellen Tarif nicht enthalten.

Etwas fehlt oder stimmt nicht? Schreib uns an support@okivo.app.