Veiledning API klient
Denne veiledningen vil forklare hvordan man lager en klient som integrerer seg med Altinns REST API. Klienten vil utføre kall til Altinn Autorisasjon og representerer en enkel tilgangsstyringsklient.
Klienten vil gjøre følgende:
- Hente et OAuth2 bearer token fra Maskinporten.
- Hente et Altinn autentiseringstoken basert på Maskinporten tokenet.
- Konvertere et fødselsnummer til et Altinn reportee id
- Hente rettigheter som en person har for en virksomhet
- Gi nye rettigheter fra en virksomhet til en person
- Slette en rettighet en person har for en virksomhet
Kodeeksemplene og det tilhørende Visual Studio Code prosjektet er skrevet i .Net Core 5 og C#, men innføringen forutsetter ikke kunnskap om .Net og C#. Du må gjerne sjekke ut Altinn 2 test apiklient på Github.
Ansvarsfraskrivelse
Koden i testklienten er skrevet for å være forklarende og lett å lese, men den er ikke ment for å brukes uten modifikasjoner i ekte program som behandler sensitive personopplysninger.
For en mer robust API-klient mot Maskinporten laget for .Net Core 5+ kan man bruke .NET client for Maskinporten APIs som vi også har på Github.
- Nødvendig forarbeid
Informasjon som er nødvendig for at klienten skal kunne autentisere seg og bruke Maskinportens og Altinns API.
- Maskinporten token
Hvordan konstruere JWT assertion og requesten for å hente et Maskinporten token.
- Altinn token
Hvordan hente et Altinn autentiseringstoken basert på et Maskinporten token.
- Hente Reportee ID
Hvordan konvertere et fødsels- eller organisasjonsnummer til en Altinn Reportee ID
- HAL+JSON modeller
Hvordan lage JSON modeller for Rights, Roles, og RightHolder
- Konvertere HAL+JSON
Et eksempel på hvordan man kan lage en tilpasset HAL+JSON konverterer for å serialisere og deserialisere lister av rettigheter med System.Text.Json.
- Hente delegeringer
Hvordan hente roller og rettigheter som er delegert til en person for en organisasjon.
- Nye delegeringer
Hvordan delegere nye rettigheter til en person.
- Fjerne delegeringer
Hvordan trekke rettigheter en person har fått.