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

  1. Legen Sie ein neues Projekt unter https://console.developers.google.com/ an, oder wählen Sie ein bereits vorhandenes Projekt aus.

    Projekt Erstellung
  2. Wählen sie unter OAuth-Zustimmungsbildschirm Intern

    Zustimmungsbildschirm Erstellung
  3. 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.

    Zustimmungsbildschirm Konfiguration
  4. Navigieren Sie anschließend zum Punkt Anmeldedaten, klicken Sie auf Anmeldedaten erstellen und wählen OAuth-Client-ID aus.

  5. 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

    OAuth Client-ID erstellen
  6. Anschließend erscheint ein Popup Fenster mit der Client ID und dem Client Secret.

    Popup Client Informationen

    Diese Informationen werden für die spätere Konfiguration von NiFi und dem IGUASU UI benötigt.

Einrichtung Keycloak

  1. Erzeugen Sie einen neuen Realm und wählen Sie diesen aus.

  2. IGUASU verwendet Gruppen, um die Berechtigungen von Benutzern zu verwalten. Legen Sie flow_admin und flow_dev an. groups

  3. 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. realm management view users

  4. 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.

  5. 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. view users

  6. Legen Sie einen neuen Client mit dem Client an.

    1. Client Protocol auf openid-connect setzen.

    2. Access Type auf confidential setzen.

    3. 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 Verzeichnis Struktur
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.

IGUASU Toolkit

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
Folgende Parameter werden nun im IGUASU-Toolkit abgefragt:
  • 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