Skip to content

Fortigi/MidPoint-training

Repository files navigation

MidPoint – Quickstart Guides & Scripts

Operationele documentatie en automatiseringsscripts voor MidPoint Identity Management, gericht op HR-synchronisatie vanuit SQL Server (HR), configuratiebeheer en migratie tussen omgevingen (DEV → TEST → ACC → PROD).

Voordat je begint

Wat je nodig hebt

  • Windows-pc met minimaal 8 GB RAM
  • Docker Desktop voor Windows — geïnstalleerd en gestart, met WSL-integratie ingeschakeld voor de gebruikte distro (Settings > Resources > WSL Integration)
  • Git en GitHub CLI (gh) — voor Windows of in je WSL-distro
  • Het bestand hr-data.sql — apart aangeleverd (auteursrechtelijk beschermd, niet in deze repository)

Stap 1 — Repository clonen

Open PowerShell of een WSL-terminal en clone de repository. Via de GitHub CLI (aanbevolen):

gh auth login
gh repo clone Fortigi/MidPoint-training
cd MidPoint-training

Of via HTTPS:

git clone https://github.com/Fortigi/MidPoint-training.git
cd MidPoint-training

Stap 2 — HR-data plaatsen

Zet het aangeleverde bestand hr-data.sql in de map db-init\:

MidPoint-training\
└── db-init\
    └── hr-data.sql   ← hier neerzetten

Stap 3 — Docker-services starten

Start alle services (SQL Server, Samba AD en phpLDAPadmin) in één keer:

docker compose up -d
docker compose logs -f sqlserver

Wacht totdat je HR data already present of HR data loaded ziet. SQL Server is dan klaar. Druk op Ctrl+C om de logweergave te stoppen.

De Samba AD-container heeft ~30 seconden nodig om het domein demo.local te provisioneren bij de eerste start.

Stap 4 — MidPoint starten

WSL vereist. Alle commando's vanaf hier draaien in een WSL-terminal. Schakel over naar WSL als je dat nog niet gedaan hebt en navigeer naar de gekloonde repository.

Download het Evolveum quickstart-script (zie ook de MidPoint Quick Start Guide):

curl -O https://raw.githubusercontent.com/Evolveum/midpoint-docker/master/midpoint-quickstart.sh
chmod +x midpoint-quickstart.sh

Heap-tuning vereist: Met de Evolveum-standaard van ½ GB crasht MidPoint bij het openen van een AD-resource met een schema van ~32 MB direct met OOM. Voeg de tuning handmatig toe na het downloaden:

sed -i '/- MP_NO_ENV_COMPAT=1$/a\      - MP_MEM_MAX=4096m\n      - MP_MEM_INIT=2048m' midpoint-quickstart.sh

Start MidPoint:

./midpoint-quickstart.sh start

Het initiële beheerderswachtwoord verschijnt in de output. Noteer het.

MidPoint is bereikbaar op: http://localhost:8080 — dit kan een paar minuten duren terwijl MidPoint opstart. Je ziet in Docker Desktop dat het CPU-gebruik van de container daalt naar onder de 100% zodra de initialisatie klaar is.

Log in met gebruiker administrator en het getoonde wachtwoord.

Stap 5 — SQL Server JDBC-driver toevoegen

MidPoint heeft de MSSQL JDBC-driver nodig om verbinding te maken met SQL Server. Voeg hem toe ná de eerste start, zodat het quickstart-script de midpoint-home map al heeft aangemaakt:

mkdir -p midpoint-home/lib
curl -sLo midpoint-home/lib/mssql-jdbc-13.2.1.jre11.jar \
  https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/13.2.1.jre11/mssql-jdbc-13.2.1.jre11.jar

Herstart daarna MidPoint zodat de driver wordt geladen:

./midpoint-quickstart.sh stop
./midpoint-quickstart.sh start

Stap 6 — Basisconfiguratie importeren

Importeer de basisconfiguratie via het pipeline-script. Maak het script eerst uitvoerbaar:

chmod +x Scripts/run-midpoint-pipeline.sh

Start daarna het script vanuit de root van de repository:

./Scripts/run-midpoint-pipeline.sh

Maak de volgende keuzes:

Keuze [1-8]: 2                          ← Bestaande changeset deployen

Keuze [0-1]: 1                          ← dev  (localhost)

Selecteer changeset [0-N]: <nummer>     ← kies de regel met TYPE=FULL en
                                           NAAM=Context-assignments-fix-duplicate-filters

Let op: er staan zowel een FULL als een DELTA versie in de lijst. Kies altijd de FULL voor een eerste installatie — de DELTA veronderstelt een bestaande basisconfiguratie.

Bevestig de import wanneer het script daarom vraagt.

Stap 7 — Wachtwoorden herstellen bij resources

Na het importeren van de changeset zijn de wachtwoorden van de resource-connectors verwijderd. Herstel ze voor elke resource:

  1. Ga naar Resources > All resources
  2. Klik op een resource om hem te openen
  3. Ga naar het tabblad Connector configuration
  4. Klik op Show empty fields
  5. Vul bij User password het wachtwoord in als clear value (zie Stap 8 — Verbindingsgegevens voor de juiste waarden)
  6. Klik op Save
  7. Ga terug naar de resource
  8. Klik op Test connection en controleer of de verbinding succesvol is

Herhaal dit voor alle 3 resources.

Stap 8 — Verbindingsgegevens

Let op: onderstaande wachtwoorden zijn uitsluitend bedoeld voor de lokale trainingsomgeving (Docker op je eigen laptop). Gebruik deze nooit in een productie- of gedeelde omgeving.

SQL Server (HR-databron)

Gebruik deze gegevens bij het configureren van de SQL Server-connector in MidPoint (Guide 01):

Instelling Waarde
Host host.docker.internal
Poort 1433
Gebruiker sa
Wachtwoord MidpointLab!2024

host.docker.internal is de hostname waarmee een Docker-container de host-machine bereikt. SQL Server draait op je laptop op poort 1433, MidPoint bereikt hem zo vanuit zijn eigen container.

Active Directory (demo doelomgeving)

Instelling Waarde
Domein demo.local
Host (vanuit MidPoint) host.docker.internal
LDAP-poort 389
LDAPS-poort 636
Bind DN cn=Administrator,cn=Users,dc=demo,dc=local
Wachtwoord Admin1234!

Bekijk en bewerk de AD-directory via phpLDAPadmin: http://localhost:8089
Log in met cn=admin,dc=demo,dc=local en wachtwoord Admin1234!.


Structuur

Midpoint/
├── Midpoint-quickstart-guides/   # Jupyter Notebooks met stap-voor-stap handleidingen
├── Scripts/                      # Automatiseringsscripts voor configuratiepipeline
│   └── README.md                 # Volledige documentatie van de scripts
├── README.md                     # Dit bestand
└── CLAUDE.md                     # Werkafspraken rond branching en gebruik

Quickstart Guides

Interactieve Jupyter Notebooks in Midpoint-quickstart-guides/, te volgen op de MidPoint-host via SSH-tunnel naar Jupyter Lab (zie Guide 2 voor setup).

# Titel Inhoud
0 Removing local changes from local GIT Lokale Git-wijzigingen opruimen
1 Midpoint SQL Server Connector Setup MSSQL JDBC-driver en connector configureren
2 Jupyter Prerequisites en Use Jupyter Lab installeren en benaderen via SSH-tunnel
3 HR sync met HR demo – Identities Setup HR-gebruikerssynchronisatie vanuit SQL Server
4 Ninja Runbook Changeset HR-sync – Identities Configuratiemigratie DEV → TEST via MidPoint Ninja
5 Demo omgeving reset en start Demo-omgeving resetten, starten en auto-restart
6 HR sync met HR demo – Organization Organisatiehiërarchie synchroniseren vanuit HR-database
7 Midpoint Config Export Documentation Configuratie exporteren per objecttype met validatie
8 Midpoint Config Import Documentation Configuratie importeren met connector-remapping en secrets-beheer
9 MidPoint Pipeline Management Volledige pipeline: exporteren, deployen, promoten, opruimen, vergelijken, omgeving leegmaken
10 HR sync met HR demo – Context assignments compact Context-assignments synchronisatie (compacte variant)
11 HR sync met HR demo – Context managers Manager-relaties synchroniseren vanuit gbg.ContextOwner via multiaccounts (tag per rij), relation=org:manager op gebruikers (v2, 12 stappen)
12 MidPoint AD target configuratie met Samba AD Samba AD als doelsysteem inrichten via LDAP (poort 389), inclusief fixes voor strongAuthRequired en smb.conf-persistentie

Scripts

De Scripts/ map bevat een volledige automatiseringspipeline voor configuratiebeheer. Zie Scripts/README.md voor volledige documentatie, inclusief vereisten, configuratie en gebruik.

Korte samenvatting:

Script Doel
midpoint-pipeline-config.json Centrale configuratie (omgevingen, hosts, containers)
run-midpoint-pipeline.sh Interactief hoofdmenu: exporteren, deployen, promoten, opruimen, vergelijken, leegmaken
export-midpoint-config.sh Configuratie exporteren uit een container; maskeert alle <protectedString> / <encryptedData> / <clearValue> elementen in alle objecttypen (dekt o.a. password, bindPassword, clientSecret, SMTP-wachtwoorden)
transfer-midpoint-export.sh Export overdragen naar een volgende omgeving
import-midpoint-config.sh Configuratie importeren met connector-OID remapping; verwijdert het hele wrapper-element van elk secret (voorkomt dat MidPoint een leeg ProtectedStringType opvult met een leeg <clearValue/>)
deploy-midpoint-scripts.sh Scripts eenmalig uitrollen naar alle omgevingen
compute-delta.py Delta berekenen tussen twee full exports
compare-changeset-env.py Vergelijk changeset met live MidPoint-omgeving via REST API; filtert cosmetische attribuut-verschillen automatisch

Technische context

  • MidPoint versie: 4.9.4
  • Deployment: Docker (containers)
  • HR-databron: SQL Server 2019+, database HR2, tabel gbg.Identities
  • AD demo-omgeving: Samba 4 (demo.local), LDAP op poort 389 / LDAPS op poort 636
  • LDAP-browser: phpLDAPadmin op http://localhost:8089
  • JDBC driver: mssql-jdbc-13.2.1.jre11.jar → in de container op /opt/midpoint/var/lib/ (wordt automatisch veiliggesteld en hersteld bij omgeving leegmaken)

Werkafspraken

Zie CLAUDE.md voor de afspraken rondom branching, PR-beheer en de scope van geautomatiseerde acties.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors