Sicherheit
Einrichtung Single User Authentication
Wenn kein OIDC Provider konfiguriert wird, startet NiFi im Single User Modus. Der Benutzername und das Passwort werden beim ersten Start automatisch generiert und können in der Logdatei nifi-app.log eingesehen werden.
Um den Benutzernamen und das Passwort zu verändern, geben Sie vor dem Start von IGUASU folgen Befehl ein:
./nifi/bin/nifi.sh set-single-user-credentials <username> <password>
Einrichtung OpenId Connect
Bitte beachten Sie: Nach der erfolgreichen Einrichtung von OpenId Connect ist es notwendig, dass die erste Anmeldung am System mit einem Administrator Account erfolgen muss. Das System wird mit diesem Account eine automatische Konfiguration durchführen und so die Ersteinrichtung abschließen. |
Für die Einrichtung von OpenId Connect wird ein Identity Provider benötigt. Dafür kann Keycloak oder auch ein anderer Identity Provider wie Google OAuth 2.0 eingesetzt werden.
Einrichtung Google
-
Legen Sie ein neues Projekt unter https://console.developers.google.com/ an, oder wählen Sie ein bereits vorhandenes Projekt aus.
-
Wählen sie unter OAuth-Zustimmungsbildschirm Intern
-
Nach der Erstellung des Zustimmungsbildschirmes muss dieser konfiguriert werden. Vergeben Sie einen Namen für die Anwendung, wählen Sie eine Support E-Mail-Adresse aus und tragen Sie die autorisierten Domains ein.
-
Navigieren Sie anschließend zum Punkt Anmeldedaten, klicken Sie auf Anmeldedaten erstellen und wählen OAuth-Client-ID aus.
-
Wählen Sie Webanwendung aus, vergeben Sie einen Namen und geben Sie als autorisierte Weiterleitungs-URL die URL Adresse des IGUASU UI Servers und des NiFi Servers in folgendem Format an:
-
http(s)://<url-iguasu-ui>/login/oauth2/code/google
-
http(s)://<url-nifi>/nifi-api/access/oidc/callback
-
-
Anschließend erscheint ein Popup Fenster mit der Client ID und dem Client Secret.
Diese Informationen werden für die spätere Konfiguration von NiFi und dem IGUASU UI benötigt.
Einrichtung Keycloak
-
Erzeugen Sie einen neuen Realm und wählen Sie diesen aus.
-
IGUASU verwendet Gruppen, um die Berechtigungen von Benutzern zu verwalten. Legen Sie
flow_admin
undflow_dev
an. -
Legen Sie einen Servicebenutzer für IGUASU an, damit Benutzer und Rollen in Keycloak abgefragt werden können. Dieser Benutzer muss in den "Role Mappings" unter "Client Roles: realm-management" die Role
view_users
erhalten. Der Name und das Passwort werden später im IGUASU Toolkit unter NiFi Keycloak service account abgefragt. -
Für den ersten Start benötigt IGUASU einen Administrator Account der in die der Gruppe "flow_admin" hinzugefügt werden muss. Der Benutzername wird später im IGUASU Toolkit unter NiFi initial user identity bzw. NiFi initial admin identity abgefragt.
-
Keycloak enthält in der Standardkonfiguration einen Client namens "admin-cli". Diesem muss die Rolle
view_users
hinzugefügt werden. IGUASU verwendet diesen Client um Rollen und Benutzer von Keycloak abfragen zu können. -
Legen Sie einen neuen Client mit dem Client an.
-
Client Protocol auf openid-connect setzen.
-
Access Type auf
confidential
setzen. -
Valid Redirect URIs für IGUASU UI und NiFi hinzufügen.
https://iguasu.example.com:iguasu-ui-port/* und https://iguasu.exmple.com:nifi-port/*
-
Nachdem Sie die Änderungen gespeichert haben, können Sie sich im Reiter Installation
die Keycloak Konfiguration im JSON Format ansehen.Wichtige Informationen sind: realm (der Realm Name), resource (die Client ID), secret (das Client Secret), auth-server-url (die Keycloak URL).
IGUASU Toolkit ausführen
Für die Ausführung sollte sich das IGUASU Toolkit im IGUASU Verzeichnis befinden.
iguasu-x.x.x ├── bin ├── iguasu-toolkit-x.x.x ├── ui └── nifi
Starten Sie das IGUASU Toolkit, indem Sie im Verzeichnis iguasu-toolkit-x.x.x/bin die Datei run.sh(Linux/Mac) / run.bat(Windows) ausführen.
Nach der Ausführung sollten die verfügbaren Befehle, wie im Screenshot dargestellt, aufgelistet werden. Um die Konfiguration mit Keycloak als OIDC Provider zu starten, geben Sie folgenden Befehl ein:
IGUASU-TOOLKIT>secure -p keycloak
Für alle anderen Identity Provider verwenden Sie:
IGUASU-TOOLKIT>secure
oder
IGUASU-TOOLKIT>secure -p other
-
IGUASU server domain name - der Domain Name des IGUASU Servers.
-
IGUASU server host name - der Host Name des IGUASU Servers.
-
Common OIDC URL - die URL des Keycloak Servers
-
Common OIDC Realm - der Keycloak Realm Name.
-
Common OIDC Client ID - die Client ID.
-
Common OIDC Client Secret - das Client Secret
-
Common OIDC Username mapping email/preferred_username - Mapping der Benutzer in IGUASU anhand von E-Mail/Benutzername
-
NiFi HTTPS port - Port des Nifi Services
-
NiFi truststore password - Truststore Passwort. Leere Eingabe generiert automatisch einen neuen Truststore mit einem zufälligen Passwort.
Für eine abgesicherte Kommunikation zwischen dem IGUASU UI und NiFi werden Trust- und Keystores verwendet. Das IGUASU Toolkit kann automatisch die notwendigen Schlüssel samt den Trust- und Keystores generieren. In den eckigen Klammern wird das Zufallspasswort angezeigt welcher für den Trust- /Keystore generiert wird, falls kein eigenes verwendet wird. |
-
NiFi keystore password - Keystore Passwort. Leere Eingabe generiert automatisch einen neuen Keystore mit einem zufälligen Passwort.
-
NiFi Keycloak service account username - Benutzername des IGUASU Service Accounts
-
NiFi Keycloak service account password - Passwort des IGUASU Service Accounts
-
NiFi initial user identity - Benutzername des IGUASU Administrator Accounts
-
NiFi initial admin identity - Benutzername des IGUASU Administrator Accounts
Es ist zu beachten, dass der Username entsprechend der bereits abgefragten Einstellungen des Mappings "email/preferred_username" erzeugt wird. Also falls beispielsweise die "email" ausgewählt wurde, muss hier die E-Mail des Users eingetragen werden. |
-
IGUASU UI keystore password (minimum 6 characters) - Keystore Passwort für IGUASU UI. Leere Eingabe generiert automatisch einen neuen Keystore mit einem zufälligen Passwort.
-
IGUASU UI truststore password (minimum 6 characters) - Truststore Passwort für IGUASU UI. Leere Eingabe generiert automatisch einen neuen Truststore mit einem zufälligen Passwort.
-
IGUASU UI secret key password (minimum 6 characters) - Secret Key für IGUASU UI. Leere Eingabe generiert automatisch einen neuen zufälligen Secret Key.
-
Do you want to enable HTTPS for IGUASU UI? - Stellt IGUASU UI auf die verwendung von TLS um.
-
IGUASU UI Port - Port des IGUASU UI Services