REST-forespørsler med ID-porten-token
Hvordan bruke Postman til å send REST-forespørsler med ID-porten-token mot Altinns Sluttbruker-API.
I denne leksjonen vil vi følge stegene som er beskrevet i detalj på ID-portens dokumentasjonssider.
Vi anbefaler sterkt at man bruker disse ressursene hvis man trenger mer informasjon og at man gjennomgår disse etter at leksjonen er fullført for å forankre kunnskapen i OAuth2 og OpenID Connect sammenheng.
Leksjonen er delt opp i følgende steg:
- Registrere en API-klient i ID-portens Samarbeidsportal.
- Denne klienten skal bare registreres en gang. Hvis man allerede har en klient (
client_id
ogclient_secret
) kan man hoppe over dette steget.
- Denne klienten skal bare registreres en gang. Hvis man allerede har en klient (
- Sette opp OAuth 2.0 autorisasjon i Authorization panelet i Postman for ID-porten.
- Dette verktøyet forenkler flyten i OAuth 2.0 autentiseringsprotokollen.
- Bruke Authorization verktøyet i Postman til å be om et ID-porten token.
- Dette vil åpne en nettleser hvor man skal autentisere seg med ID-porten som en testbruker.
- Bruke
access_token
til å utføre en forespørsel mothttps://tt02.altinn.no/api/my/profile
.
Registrere en API-klient i Samarbeidsportalen
Logg inn på Samarbeidsportalen - Integrasjoner VER2. Her skal vi opprette en ny integrasjon med følgende oppsett:
Felt | Verdi/Beskrivelse |
---|---|
Difi-tjeneste | API-klient |
Scopes | altinn:enduser |
Navn på integrasjonen | f.eks. Postman API-klient for Altinn 2 |
Beskrivelse | … |
Tillatte grant types | authorization_code |
Klientautentiseringsmetode | client_secret_basic |
Applikasjonstype | web |
Gyldig(e) redirect uri-er | https://oauth.pstmn.io/v1/callback |
Gyldig(e) post logout redirect uri-er | https://login.idporten.dev/logout |
Tilbake-uri | https://idporten-dummy.digdir.no/authorize/response/callback |
PKCE (code_challenge_method) | S256 |
Authorization levetid | 0 |
Access token levetid | 0 |
Refresh token levetid | 0 |
Refresh token type | Engangs |
- Under Scopes må man spesifisere et eller flere scopes som avgrenser tilgangen til gitte rettighetspakker. For Altinns API er det definert følgende Scopes.
- Redirect URI er et callback-endepunkt som Postman tilbyr. Denne må endres hvis man benytter en annen klient en Postman.
- Levetiden til et Access token blir satt til 1 time som standard, når man setter verdien til 0 i klientregistreringen.
Resultatet av en vellykket registrering vil vise en kvittering:
Opprettelse av integrasjonen var vellykket:
client_name: Postman API-klient for Altinn 2
client_id: <GUID for client_id>
client_secret: <GUID for client_secret>
(client_secret vises kun en gang, ta godt vare på den. Ved tap av eller mistanke om misbruk av client_secret, må det genereres en ny.)
Ta godt vare på verdien for client_secret! Den og client_id skal vi bruke i neste steg hvor vi setter opp OAuth 2.0 verktøyet i Postman.
Oppsett av OAuth 2.0 autorisasjon i Postman
- Legg til 3 nye variabler i Postman Environment, som forklart i Collection og Environment-leksjonen.
<GUID for …> må erstattes med verdiene man ble tildelt da API-klienten ble opprettet.
VARIALBLE TYPE VALUE-kolonnene idporten-client_id default <GUID for client_id> idporten-client_secret secret <GUID for client_secret> - Velg Get my/profile forespørselen i Altinn/user/Profile. Naviger til Authorization panelet og velg OAuth 2.0 som type.
- Sett Add authorization data to til Request Headers. (Dette valget er satt som standard.)
- Under Configure New Token skal vi sette inn følgende Configuration Options:
Feltnavn Verdi Token Name f.eks ID-porten VER2 token Grant Type Authorization Code (With PKCE)
Callback URL Authorize using browser Auth URL https://login.test.idporten.no/authorize
Access Token URL https://test.idporten.no/token
Client ID {{idporten-client_id}}
Client Secret {{idporten-client_secret}}
Code Challenge Method SHA-256
Scope altinn:enduser
State Client Authentication Send as Basic Auth header
Hente ID-porten token
- Klikk på Get New Access Token nederst under Configure New Token.
- Dette vil åpne en nettleser og vise påloggingssiden til ID-porten.
- Under Velg Elektronisk ID velg Testid.
- Testid er påloggingsmetoden som er enklest å bruke for alle syntetiske testpersoner som eksisterer i Tenor - Syntetisk Folkeregister.
- Skriv inn Personidentifikator for en testperson og klikk på Autentiser
- Hvis det er første gang en testperson blir benyttet blir man spurt om å knytte en epostadresse til brukeren.
- Velg Godta på dialogen En applikasjon ber om tilgang.
- Første gang man går igjennom denne dialogen så må man akseptere at Redirect-lenkene åpnes i Postman.
- Når man blir sendt tilbake til Postman vises Manage Access Tokens-menyen. Klikk på Use Token for å aktivere tokenet som har blitt utstedt.
Nå skal tokenet vises under Current Token.
Bruke ID-porten token i en forespørsel
Når man valgt et token i Authorization panelet så vil det legges til en en ny header på forespørselen: Authorization: Bearer <access_token>
.
Denne headeren vises ikke som standard, men hvis man klikker på Show auto-generated headers så vises den øverst slik det vises på bildet under.
- Før man kan sende denne forespørselen må man sørge for at
{{ApiKey}}
environment variabelen inneholder en API-nøkkel som gir tilgang tilOrganization.read
. - Klikk Send
- Nå skal man få tilbake et svar med status 200 OK som inneholder profilen til testbrukeren.
Dette tokenet kan gjenbrukes på andre forespørseler så lenge man ikke overskrider levetiden til tokenet.
Dette gjøres enkelt ved å velge et annet endepunkt og gå til Authorization panelet og velge OAuth 2.0. Da skal både det aktive tokenet og oppsettet for å spørre om et nytt token være satt.
Vær obs på at vi begrenset Scopes til altinn:enduser
, så alle endepunkt på tjenesteeier API er ikke inkludert.