Migration NUI

Das von uns bereitgestellte Migrationstool unterstützt bei der Migration der Daten von der alten UI zur neuen UI. Zu den Aufgaben gehören:

  • User Migration
  • Rollen anlegen
  • Mandanten Migration
  • Migration der B2B-Arbeitsvorräte

User Migration

Dieser Abschnitt behandelt die Migration der User aus der B2B-Datenbank nach Keycloak.

Sie könnten alternativ selbständig neue User in Keycloak anlegen.

Sie könnten alternativ auch direkt ein LDAP an Keycloak anbinden.

Migration der B2B-Benutzer nach keycloak

Eine Migration der B2B-Nutzer (der Remote-B2B) ist möglich. Mithilfe eines Migrationstools können die in der Remote-B2B enthaltenen Benutzer in die Keycloak-Instanz überführt werden. Eine Übernahme der Passwörter ist ab Oktober 2020 (Ticket NUI-785) möglich. Ab NUI-519 (vorraussichtlich ab Oktober 2020) kann mit Hilfe des Migrationstools allen migrierten Nutzern eine selbst-definierbare Standardgruppe von Rollen zugewiesen werden. Die Rollen & Gruppen können dannach für jeden User einzeln in Keycloak konfiguriert werden.

Die aktuelle Dokumentation des Migrationstools finden sie hier

Migration der Benutzer

Die Migration der Benutzer von der Remote-B2B in den Keycloak erfolgt mithilfe eines Migrationstools. Dieses Migrationstool ist eine Java-Konsolen-Anwendung und wird als Jar-Datei ausgeliefert. Neben der Jar-Datei wird eine Konfigurationsdatei (application.yml) benötigt. Diese Konfigurationsdatei beinhaltet alle Einstellungen, um sowohl auf die Remote-B2B-Datenbank als auch die keycloak-Instanz zuzugreifen.

Im Folgenden ist die Konfigurationsdatei abgebildet:

spring:
  main:
    banner-mode: off

keycloak:
  serverUrl: http://[Docker-Host]:8080/auth/
  realm: B2B
  username: migration-user
  password: [Passwort des migration-user]
  clientId: admin-cli

database:
  driver: oracle.jdbc.OracleDriver
  url: jdbc:oracle:thin:@[Remote-B2B-Datenbank Host]:[Remote-B2B-Datenbank Port]:[Remote-B2B-Datenbank Name]
  username: [Datenbank User]
  password: [Datenbank Passwort]
 = b2bbp_adm_account_date_range.userid
  selectTableSql: SELECT * FROM b2bbp_adm_account
  # basicColumns are columns from db, where it must be provided and migrate to keycloak
  basicColumns: username:userid;firstname:firstname;lastname:lastname;email:email;
  # attributesColumns are columns from db, where is not necessary to be provided for keycloak user attribute
  attributeColumns: organization;password
#  attributeColumns:

ssh:
  # if database require SSH connection, then enable must be true
  enable: false
  # provide ldap username and password for ssh connection
  username: Ldap account
  password: Ldap password
  host: Ssh server
  port: 22
  remoteDbServer: Remote Database server name
  # Remote database server port number
  remoteDbPort: 5413
  # local db port must same as above database url port, else connection will fail
  localDbPort: 5437

output:
  filePath: b2b_migration_result.txt

Um das Migrationstool auszuführen, ist zunächst eine Verzeichnisstruktur zu erstellen. Für diese Dokumentation erfolgt dies mit diesen Kommandos:

:> mkdir -p /opt/b2b/nui/migration/config
:> mkdir -p /opt/b2b/nui/migration/lib

Anschließend sind sowohl die Jar-Datei des Migrationstools als auch der JDBC-Datenbanktreiber (siehe hier) in das Verzeichnis /opt/b2b/nui/migration/lib zu kopieren. Die oben aufgeführte application.yml ist in das Verzeichnis /opt/b2b/nui/migration/config zu kopieren bzw. anzulegen.

Die Ausführung des Migrationstools erfolgt mit dem folgenden Kommando:

:/opt/b2b/nui/migration> java -cp './config/:./lib/' org.springframework.boot.loader.JarLauncher

Nach der Ausführung dieses Kommandos ist die im Folgenden dargestellte Nutzereingabe mit “1” zu beantworten:

...
1 - Database user migration to keycloak
2 - Worklist definition migration
1

Sofern die Migration erfolgreich durchgeführt wurde, erscheint die folgende beispielhafte Ausgabe:

2020-08-28 08:42:43.951  INFO 1816 --- [           main] c.n.b.migration.tool.impl.UserMigration  : Executing select statement 'SELECT * FROM b2bbp_adm_account'
2020-08-28 08:42:43.995  INFO 1816 --- [           main] c.n.b.migration.tool.impl.UserMigration  : Total records need to migrate to keycloak : 2
2020-08-28 08:42:43.995  INFO 1816 --- [           main] c.n.b.migration.tool.impl.UserMigration  : Migrating data from database to keycloak...
2020-08-28 08:42:44.515  INFO 1816 --- [           main] c.n.b.migration.tool.impl.UserMigration  : Total records migrated to keycloak: 2 , details of migration error can refer to b2b_migration_result.txt
2020-08-28 08:42:44.515  INFO 1816 --- [           main] c.n.b.m.t.MigrationConsoleApplication    : -----------------------MIGRATION FINISHED-----------------------

Diese Ausgabe gibt Auskunft über den Verlauf der Migration und die Anzahl migrierten Benutzern.

manuelle Anpassung der Benutzer nach der Migration

Nachdem die oben beschriebene Benutzermigration durchgeführt wurde, müssen nun die Benutzer im Keycloak sowohl mit den entsprechenden Rollen versehen als auch ihr initiales Passwort vergeben werden. Beide Schritte sind manuell über die Keycloak-Administrationskonsole vorzunehmen.

Die Zuweisung der Rollen erfolgt nach der Auswahl des Benutzers, wie im Kapitel Users dokumentiert. Welche Rolle die einzelnen Benutzer erhalten obliegt dem durchführenden Administrator.

Da während der Benutzermigration den einzelnen Benutzer keine Passwörter zugewiesen wurden, ist dies nun manuell für jeden Benutzer wie folgt nachzuholen. Dabei wird jedem Benutzer ein initiales Passwort vergeben (z.B. [Vorname]-[Nachname]) und der Account wird mit der Aktion zum Zurücksetzen des Passwortes bei erstmaligem Login versehen.

Zunächst ist der Benutzer nach der Anmeldung an der Keycloak-Administrationskonsole zu öffnen:

Öffnen eines Benutzers zum Bearbeiten

Nachdem (wie oben erwähnt) die Rollen zugewiesen wurden, ist über “Details” und “Credentials” das initiale Passwort und die Aktion zum Zurücksetzen des Passwortes bei erstmaligem Login zu vergeben:

Setzen der Aktion zum Zurücksetzen des Passwortes

Vergabe des initialen Passwortes

Nachdem die hier beschriebenen Anpassungen vorgenommen wurden, können sich die Benutzer bei der B2B-New-UI anmelden und werden nach dem ersten Login zum Zurücksetzen ihres Passwortes aufgefordert.

Mandantenmigration

Die Mandantenmigration ist hier beschrieben.

Migration der Arbeitsvorräte

Die Migration der Arbeitsvorräte ist hier beschrieben.

View Me   Edit Me