it-at-m / Wahllokalsystem

system that supports elections in the city of munich
https://opensource.muenchen.de/
MIT License
5 stars 0 forks source link

Zusammenspiel von keycloakV24 und keycloakmigration - broken bei erneutem Start der Migration #248

Closed MrSebastian closed 1 month ago

MrSebastian commented 3 months ago

Wird die Migration erneut gestartet kommt eine Exception dass der Realm bereits existiert (das erste Skript soll den Realm anlegen).

Beim Zusammenspiel mit Keycloak 20.0.5. wurde das entsprechende Skript geskippt.

Das Problem tritt auf bei Keycloak 24.0.4 in Verbindung mit Migration 0.2.55


Workaround

Immer eine komplette Migration machen in dem man im Keycloak den Realm löscht.

Ziel

Es wäre schön wenn das alte Verhalten wieder hergestellt werden könnte, da dass nur die neuen Skripte ausgeführt werden und keine Komplettmigration immer Pflicht ist.

MrSebastian commented 3 months ago

Mit dem RC für 0.2.56 von Migration habe ich es noch nicht ausprobiert.

MrSebastian commented 3 months ago

Bei V20 vom Keycloak hilft ein Löschen des Realms nicht um noch einmal die komplette Migration laufen zu lassen

MrSebastian commented 1 month ago

Bei V20 vom Keycloak hilft ein Löschen des Realms nicht um noch einmal die komplette Migration laufen zu lassen

Damit das funktioniert müssen beim User mit dem die Migration erfolgt (admin) in den Attributes die Migrationseinträge entfernt werden (Auszug auf KeycloakMigration-Doku: The migration hashes are stored in the attribute named ‘migration’ in the migration user).

MrSebastian commented 1 month ago

Empfehlung: wir bleiben bei KeycloakV20, da mit der Version 24 auch nicht mehr die Attribute über die Migration funktionieren. Erstellung einen Tickets zur Sache nach einer leichtgewichtigen Alternative zu Keycloak.

Mit Version 25 sehe ich das gleiche Problem. Das Anlegen von User-Attributen, welche zuerst in den Realm definiert werden müssen, ist aktuell über Keycloak-Migration nicht möglich.

MrSebastian commented 1 month ago

Hilfts das bei dem Problem mit den User-Attributen:? https://www.keycloak.org/server/containers#_importing_a_realm_on_startup

MrSebastian commented 1 month ago

Hat geholfen. Wenn wir den Client nicht erstellen über die API sondern importieren kann das Flag für die unmanagedAttributes gesetzt werden. Vermutlich kann es auch als definiertes UserAttribute-Feld import werden.

MrSebastian commented 1 month ago

Für die aktuelle Entwicklung reicht uns der V20.

Todo

dragonfly28 commented 1 month ago

siehe Kommentare in #361 Ziel wäre, eine Version von Keycloak und Migration-Plugin zu finden, die funktioniert.

MrSebastian commented 1 month ago

Lösungsvorschlag 1:

Wenn eine Migration erfolgt muss immer die gesamte Migration erfolgen. Eine Migration des Deltas ist nicht möglich. Grund dafür ist dass bei dem User der für die Migration verwendet wird, der admin-User vom Master-Realm, keine unmanaged Fields vorhanden sind

Konsequenz

unmittel im Rahmen des Issues

weiter Folgen


MrSebastian commented 1 month ago

Lösungsvorschlag 2:

Eine Deltamigration ist möglich wenn beim Import für den Realm RealmRoles und ein AdminBenutzer angelegt wird. Bei der Migration muss dann ein andere LOGIN_REALM (wls_realm) verwendet werden.

unmittelbare Konsequenzen

MrSebastian commented 1 month ago

geht das Löschen Rollen aus Gruppen?

MrSebastian commented 1 month ago

geht das Löschen Rollen aus Gruppen?

Ist möglich mit Keycloak 25.0.2 und Keycloakmigration 0.2.61

Es konnte eine Rollenzurodnung zu einer Gruppe entfernt werden.