Altinn / Altinn/altinn-platform-validation-tests
Automatisk nøkkelrotasjon for Maskinporten i test - K6 og AM Frontend/Playwright
- Dominant language
- JavaScript
- Stars
- 2
- Forks
- 1
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 124
Description
En nøkkel på en Maskinporten-klient lever maks ett år fra den ble postet. Når den utløper slutter alle tester som bruker `MaskinportenAccessTokenGenerator` å få token, og ingenting varsler oss før det skjer. Et nytt POST av det samme nøkkelsettet nullstiller klokka, uten endring i privatnøkkel, `kid`, Key Vault-secret eller tester.
Konkret i TT02, mot klienten bak `313175650-maskinporten-client`:
- Skaffe admin-klient med `idporten:dcr.modify`. Scopet kan ikke ligge sammen med testscopene, så det blir en egen klient (servicedesk@digdir.no).
- Poste nøkkelsettet på nytt til `POST https://api.test.samarbeid.digdir.no/clients/{client_id}/jwks` manuelt én gang, og verifisere med `K6/api/tests/sanity-checks/token-generators.js`. POST erstatter hele settet, så alle nøkler klienten skal beholde må sendes med.
- Sette opp en scheduled workflow som gjør det samme periodisk, med samme federated Azure-innlogging som de andre workflowene.
- La jobben også fornye admin-klientens egen nøkkel, som har samme ettårsgrense.
- Feile i sanity-check-testen når utløpsdatoen nærmer seg, slik at en jobb som slutter å kjøre ikke går upåaktet hen.
[Selvbetjening via API](https://docs.digdir.no/docs/Maskinporten/maskinporten_sjolvbetjening_api.html)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with K6/api/tests/sanity-checks/token-generators.js and the existing workflows that use federated Azure login. Verify the TT02 Maskinporten client and admin-client JWKS POST flow against the documented API, then confirm that the scheduled renewal runs periodically and the sanity check fails before key expiry.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, github-actions, javascript
- Domain
- api, authentication, ci-cd, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100