feat(infra): Keycloak with four mock realms (closes #3) #43

Merged
eho merged 1 commits from feat/3-keycloak into main 2026-06-03 14:16:50 +00:00
Owner

Implements S-02 (#3).

  • infra/keycloak/docker-compose.yml — Keycloak 26.1, --import-realm, host :8180.
  • infra/keycloak/realms/*.jsondigid / eherkenning / eidas / medewerker, each with a public big-portal OIDC client + test users; protocol mappers inject bsn / kvk / eidas_id; medewerker carries realm roles.
  • make keycloak-smokecheck_realms.py does a password-grant login per realm and asserts the claim.
  • docs/synthetic-data.md (credentials) + docs/runbooks/keycloak.md.

Verified: make keycloak-smoke green — all four realms log in and return the expected claims (bsn 123456782, kvk 12345678, eidas_id FR/NL/AB-1234-5678, role behandelaar).

closes #3

🤖 Generated with Claude Code

Implements **S-02** (#3). - `infra/keycloak/docker-compose.yml` — Keycloak 26.1, `--import-realm`, host :8180. - `infra/keycloak/realms/*.json` — **digid / eherkenning / eidas / medewerker**, each with a public `big-portal` OIDC client + test users; protocol mappers inject `bsn` / `kvk` / `eidas_id`; `medewerker` carries realm roles. - `make keycloak-smoke` → `check_realms.py` does a password-grant login per realm and asserts the claim. - `docs/synthetic-data.md` (credentials) + `docs/runbooks/keycloak.md`. **Verified:** `make keycloak-smoke` green — all four realms log in and return the expected claims (bsn `123456782`, kvk `12345678`, eidas_id `FR/NL/AB-1234-5678`, role `behandelaar`). closes #3 🤖 Generated with [Claude Code](https://claude.com/claude-code)
eho added 1 commit 2026-06-03 14:16:41 +00:00
feat(infra): Keycloak with mock DigiD/eHerkenning/eIDAS/medewerker realms (closes #3)
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / unit (pull_request) Has been cancelled
CI / compose-smoke (pull_request) Has been cancelled
30d8aecf8c
Add infra/keycloak/docker-compose.yml (Keycloak 26.1, dev mode, --import-realm)
with four realms imported at boot (infra/keycloak/realms/*.json): digid,
eherkenning, eidas, medewerker. Each has a public big-portal OIDC client
(standard flow + direct access grants) and test users; protocol mappers inject
the identifying claims (bsn / kvk / eidas_id) and medewerker realm roles.

Add `make keycloak-up/keycloak-smoke/keycloak-down`; keycloak-smoke runs
infra/keycloak/check_realms.py (password-grant login per realm, asserts the
claim). Document credentials in docs/synthetic-data.md and a runbook.

Verified: `make keycloak-smoke` green — all four realms log in and return the
expected claims (bsn 123456782, kvk 12345678, eidas_id FR/NL..., role behandelaar).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
eho merged commit c904c64597 into main 2026-06-03 14:16:50 +00:00
Sign in to join this conversation.