Userimport in Midpoint durch Erstellung von Ressourcen mit der GUI

Published on HivePostify by @achimmertens · Thu Aug 20 2026

Hallo zusammen,

[Midpoint](https://evolveum.com/midpoint/) ist ein Opensource Identity, Governance und Account Management (IGA) Tool, welches viele Firmen verwenden um ihre Benutzer und deren Rechte zu verwalten. Ich bin gerade dabei beruflich dieses Tool auszuprobieren und habe dazu schon mal vor ca. einem Jahr ein paar Artikel ([hier](https://ecency.com/@achimmertens/wie-man-eine-hrcsv-user-datei-in-dem-iga-server-midpoint-importiert) und [hier](https://ecency.com/@achimmertens/installation-eines-midpoint-docker-containers)) geschrieben.

Userliste in Midpoint

Ich hatte [damals](https://ecency.com/@achimmertens/wie-man-eine-hrcsv-user-datei-in-dem-iga-server-midpoint-importiert) 3 Wege aufgelistet, wie man User in Midpoint importiert: 1. Durch einfaches, von Hand Erstellen eines Users 2. Durch einen Import einer Userliste, die in XML existiert 3. Durch einen automatisierten CSV-Import via Ressourcen. Dieses Ressourcenobjekt habe ich als XML-Datei importiert.

Punkt 3 ist der offizielle Weg, der bei [Evolveum](https://github.com/Evolveum/midpoint-book/tree/master/samples/5) beschrieben ist. Bei mir hat das zwar geklappt, ich konnte aber entscheidende Felder in der GUI anschließend nicht ändern.

Ich hatte vor einem Jahr versucht einen vierten Weg zu etablieren, nämlich wie man diese Import-Ressourcen von Hand erstellt. Ich hatte ca. eine Woche investiert. Ich konnte Accounts erstellen, diese aber nicht als Personenobjekte importieren und habe es dann aber aufgegeben. Nun habe ich es wieder aufgegriffen und Dank meines KI Agenten, dem ich Webzugriff auf meine Midpointinstanz gegeben habe (und einer Menge Durchhaltevermögen), gelöst. Hier ist das Ergebnis:

CSV Import in MidPoint via manuell in der GUI erstellter Ressourcenobjekte

Wir erstellen ein Ressourcenobjekt, das dafür sorgt, dass eine csv-Datei importiert wird:

Ressourcen → Neu → CsvConnector

Lifecycle Status: Active

Die Import-Datei muss natürlich im Container existieren:

bash podman cp hr.csv midpoint-midpointserver-1:/opt/midpoint/var/import/hr.csv

Die Felder hat der Importer an dieser Stelle schon selbst erkannt/gefunden:

Damit existieren jetzt schon die ersten Ressourcenobjekte (aber noch keine Accounts):

Innerhalb der jetzt neu erstellten Resource brauchen wir einen Import-Task. Den erstellen wir mit Klick auf Definierte Aufgabe und das Plus-Symbol, dann auf neue Importaufgabe:

Art: Account Objektklasse: AccountObjectClass

Die Accounts fügen wir jetzt mit Ressource → Schemaverwaltung → Objekttypen → Objekttyp hinzu:

- Anzeigename: Normal Account - Art: Account - Objektklasse: AccountObjectClass - Typ: Benutzer - Use existing archetype: Person

Jetzt (oder nach einem Importlauf) tauchen die Personen auch unter Ressource → Accounts auf:

Accounts sind noch keine Benutzer. Diese stehen daher bis jetzt noch nicht in der Midpoint-Benutzer-Auflistung:

---

6.1 Accounts als Benutzer hinzufügen

6.1.1 Synchronisation hinzufügen

Ressourcen → Alle Ressourcen → CSV-Connector → Schema Handling → Object Typ → Normal Account → Synchronisation → Add Reaction

| Name | Situation | Action | |------|-----------|--------| | Neuen User anlegen | Unlinked (unverknüpft) | Link (verknüpfen) | | Bestehenden User aktualisieren | Linked | synchronize | | sync | Unmatched (Nicht zugeordnet) | Add Focus |

6.1.2 Mappings hinzufügen

Ressource → Schemaverwaltung → Objekttypen → Objekttyp hinzu: Mappings → Eingehende Mappings

| Name | From Resource Attribute | Expression | Target | |------|------------------------|------------|--------| | EmployeeNumber | empno | As is | employeeNumber | | Firstname | firstname | As is | givenName | | Lastname | lastname | As is | familyName |

6.1.3 Mappings aktivieren (falls nicht schon geschehen)

Im Admin-Menü: Object Templates → Alle Objekt Templates → Person Object Template

Überprüfen, ob der Familienname erstellt wird:

script: basic.contactName(givenName, familyName)

Wichtig ist, dass givenName und familyName exakt so im Mapping stehen und der Life-Cycle-Status für generate name jsmith 8 2 aktiv geschaltet ist:

Jetzt können wir die Personen importieren: Ressource → Alle Ressourcen → CSV-Connector → Accounts → Account(s) auswählen und Import klicken

Danach tauchen die Benutzer unter Benutzer → Alle Benutzer auf:

---

7. LDAP User synchronisieren

Voraussetzung: Die LDAP-Schnittstelle ist aufgebaut und funktioniert.

Damit der Benutzer nach LDAP übertragen wird, muss diesem User die Schnittstelle/Ressource LDAP zugeordnet werden.

Dazu klicken wir beim Benutzer unter Zuweisungen → Alle auf das kleine Stift-Symbol:

Wir wählen "All Assignments" → Hinzufügen:

Wir suchen uns die LDAP-Ressource aus und klicken auf Hinzufügen:

Danach ist es wichtig, noch auf Speichern zu drücken:

Direkt danach tauchte der User im LDAP-Browser auf:

---

8. Fazit

Mit dem oben gebauten Konstrukt haben wir einen einfachen, funktionierenden IGA Server, der größere Mengen von Userdaten importieren kann. Diese können nun aufbereitet (z.B. für Logins oder mit Rechten verknüpft werden) und weiter gereicht werden. Darüber werde ich dann in Kürze berichten, also: Stay tuned,

Achim Mertens

Tags: #midpoint#csv#import#xml#doku#deutsch#hr#iam#iga

View full post on HivePostify →

Join HivePostify — Pakistan's First Web3 Platform →