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
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.
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.
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.
# 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:
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/
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.
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.
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:
# 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}.
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.
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
| Anzeichen | Ursache |
|---|---|
Keycloak-Log: Relay … fehlgeschlagen: HTTP 401 | API-Key falsch oder erneuert. Vault-Datei prüfen. |
| Nutzer sieht „Nutzerlimit erreicht“ statt des QR-Codes | Das Nutzerlimit des Tarifs ist erreicht. Bestehende Nutzer sind nicht betroffen. |
| Keycloak-Log: Zeitüberschreitung beim Relay-Aufruf | Ausgehende Verbindung zu gateway.uat.okivo.app:443 blockiert. |
RADIUS: feature_not_licensed | RADIUS ist im aktuellen Tarif nicht enthalten. |
Etwas fehlt oder stimmt nicht? Schreib uns an support@okivo.app.