Testtool om access tokens op te halen bij de autorisatieserver en daarmee de beveiligde W4U API-endpoints te testen. Er zijn twee manieren om te testen — allebei gebruiken ze dezelfde onderliggende .NET-client:
- PowerShell: test-api.ps1 — haalt een token op en draait automatisch vier API-tests.
- GUI: run-gui.ps1 — browser-interface om tokens op te halen, claims te bekijken en de API-tests één voor één uit te voeren.
+--------------+ 1. authenticatie (signed JWT) +--------------------+
| Testclient | ---------------------------------> | Autorisatieserver |
| (PS1 / GUI) | <--------------------------------- | |
+--------------+ 2. access token +--------------------+
|
| 3. API-call met "Authorization: Bearer <access token>"
v
+--------------+
| API-endpoint |
+--------------+
In gateway-modus zit tussen stap 2 en 3 een extra stap: de testclient wisselt zijn eigen token bij de autorisatieserver om (token-exchange, RFC 8693) voor een token dat gericht is op een specifieke achterliggende API-client, en roept daarmee het API-endpoint aan.
- Netwerktoegang: alleen via het klanten-WAN. De autorisatieserver en de API-endpoints zijn niet via internet bereikbaar.
- .NET 10 SDK of hoger (
dotnet --version). - PowerShell 7+ voor de scripts (
pwsh). - Een gekloonde repository met daarin:
config.jsonin de repository-root (meegeleverd, met nonprod-waarden);- het private-key-bestand (
.pem) waarnaarconfig.jsonverwijst (meegeleverd voor nonprod).
Eenmalig na het klonen:
dotnet restore ./w4u-api-test-client.slnAlles vanuit de repository-root:
# Standalone: vraagt interactief met welke client-identiteit je wilt testen
.\test-api.ps1
# Standalone als een specifieke benoemde client (geen prompt)
.\test-api.ps1 -Client <client-id>
# Standalone zonder prompt, gewoon de standaard-identiteit uit config.json
.\test-api.ps1 -NoPrompt
# Gateway-modus (token-exchange); de API-client wordt automatisch gekozen
# als er precies één geconfigureerd staat, anders geef je hem expliciet op
.\test-api.ps1 -Gateway
.\test-api.ps1 -Gateway -ApiClient <api-client-id>Het script haalt een token op en draait daarna vier tests tegen de API: een publieke
health check, een zoekactie, en twee gegevens-opvragingen met verschillende vereiste
rollen. Handige extra parameters: -Bsn, -Pseudonummer, -BaseUrl, -ConfigPath.
.\run-gui.ps1Dit start de GUI en opent de browser op http://localhost:5273. Daarna wijzen de vier
secties zich vanzelf:
- Configuratie — laad (en bewerk desgewenst)
config.json. - Modus — kies standalone (met een keuzerondje per client-identiteit) of gateway-modus (vink één of meer API-clients aan) en klik Token ophalen.
- Resultaat — toont per token het validatieresultaat, de gedecodeerde claims en de ruwe JWT (met kopieerknop).
- API-endpoints testen — voer de vier API-tests één voor één uit met het gekozen token; bij gateway-modus is dat standaard het uitgewisselde token.
| Resultaat | Betekenis |
|---|---|
200 OK |
Aanroep geslaagd; de client heeft de vereiste rollen |
401 Unauthorized |
Token ongeldig of verlopen — haal een nieuw token op |
403 Forbidden |
Token geldig, maar de client mist de vereiste rol — verwacht gedrag bij het testen van autorisatie |
404 Not Found |
Token en rollen in orde, maar de testdata bestaat niet in de backend |
Deze repository bevat bewust een nonprod-testsleutel en nonprod-configuratie voor het compleet kunnen testen van de authenticatie flows.