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