Denne leksjonen vil vise hvordan man lager en JWT (JSON Web Token) grant og bruker det til å hente et Maskinporten token. For overordnet beskrivelse refererer vi til Maskinportens guide for API-konsumenter. Koden under er skrevet i C# og .Net Core 3.1 og kan ses i sin helhet på Github.
JWT grant oppsett JWT grantet består av to deler:
Header - som beskriver hvordan hvordan JSON Web Tokenet er signert. Dette forutsetter at koden har tilgang til virksomhetssertifkatet. »
I denne leksjonen vil vi vise hvordan man henter en Reportee ID over REST hvis man har fødselsnummer og etternavnet til en person. Dette er IDen til personen som senere skal gis rettigheter til. Kodeeksemplene som brukes i denne leksjonen er hentet fra ReporteeHandler.cs og Reportee.cs.
POST reportees/ReporteeConversion REST endepunket som skal brukes er POST reportees/ReporteeConversion. I tillegg til Altinn token så krever dette endepunktet API-nøkkel.
HTTP requesten ser slik ut. »
I denne leksjonen vi vi vise hvordan man kan hente delegerte rettigheter som er gitt til en person over REST. Koden vi viser i denne leksjonen kan ses i sin helhet i AuthorizationHandler.cs i det tilhørende C#/.Net prosjektet.
GET authorization/Delegations REST kallet vi skal bruke for å hente alle rollene og rettighetene en person har for en organisasjon er GET {who}/authorization/Delegations/{receiverId}.
{who} er aktøren som det gis tilgang til. Man kan bruke det forhåndsdefinerte argumentet my for å referere til samme aktør som har autentisert seg i REST kallet. »
I denne leksjonen vil vi vise hvordan man delegerer nye rettigheter til en person over REST. Leksjonen bygger på modeller og konverterere vil definerte i tidligere leksjoner. Koden vi viser i denne leksjonen kan ses i sin helhet i AuthorizationHandler.cs i det tilhørende C#/.Net prosjektet.
POST authorization/Delegations For å delegere nye roller og rettigheter til en aktør over REST skal man bruke POST api/{who}/authorization/Delegations.
RightHolder modellen som skal brukes som body i kallet skal inneholde følgende: »
I denne leksjonen vi vi vise hvordan man kan trekke rettigheter som er gitt til en person over REST. Koden vi viser i denne leksjonen kan ses i sin helhet i AuthorizationHandler.cs i det tilhørende C#/.Net prosjektet.
DELETE authorization/Delegations Det er ikke alle tilganger i Altinn som kan styres over REST. Man kan ha tilganger på grunn av en rolle man har for organisasjonen. Her vil vi derfor anta at personen har fått tilgang til en tjeneste som en delegering, som man nå ønsker å trekke tilbake. »
Scopes for begrensning av tilgang Alle API-forespørsler til Altinn 2.0 krever en API-nøkkel som vil være begrenset til en eller flere områder av API-et.
I tillegg kan du velge å provisjonere klienter i ID-porten/Maskinporten med et eller flere scopes, som vil ytterligere begrense hvilke operasjoner klienten kan utføre. Merk at scopes er kun en mekanisme for begrensning av eksisterende rettigheter; hvis din organisasjon eller API-nøkkel ikke har tilgang til et gitt API vil ikke scope på en klient gi deg tilgang. »
Nødvendig forarbeid - Postman introduksjon Følgende steg er nødvendige for å følge leksjonene i denne introduksjonen.
Hvordan importere Altinn API collection og environment Denne leksjonen vil vise deg hvordan man importerer Altinns API Collection og Environment som er publisert som egne filer på Github.
REST forespørsler mot åpne API-endepunkter Hvordan bruke Postman til å utføre REST-forespørsler mot de åpne Altinn API-endepunktene, som ikke krever autentisering eller API-nøkler.
REST-forespørsler med ID-porten-token Hvordan bruke Postman til å send REST-forespørsler med ID-porten-token mot Altinns Sluttbruker-API. »
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
»