Gå til hovedinnhold
Versjon: Next

Autentisering

Endepunkt for autentisering

Denne dokumentasjonen gjelder et endepunkt for autentisering.

Test endepunktet: Swagger

POST /auth/token brukes til å utstede en access token (og ofte et refresh token) som deretter sendes som header Authorization: Bearer <token> på beskyttede endepunkter.

Metode: POST
Sti: /auth/token

Headers

HeaderVerdiPåkrevdBeskrivelse
Content-Typeapplication/jsonJaDefinerer format på data sendt til APIet

Client Credentials

For å utføre handlinger på vegne av en bank må du hente ut tokens med client credentials som opprettes i administrasjonsverktøyet. Der skal du ha fått en client_id og en client_secret som så kan benyttes videre for autentisering. Deretter sender du følgende body til endepunktet:

{
"grantType": "client_credentials",
"clientId": "string",
"clientSecret": "string"
}

Eksempel (cURL)

curl -X POST "$BASE_URL/auth/token" \
-H "Content-Type: application/json" \
-d '{
"grantType": "client_credentials",
"clientId": "'"$CLIENT_ID"'",
"clientSecret": "'"$CLIENT_SECRET"'",
}'

Ekstern konsument

Eksterne konsumenter er et sett med nøkler som benyttes for å lese ut data fra APIene til Finansportalen for å generere rapporter. Disse nøklene har ingen skriverettigheter, og kan kun benyttes for å lese ut fra endepunkter som starter med /feed/.... For å hente ut nøkler til dette må du definere grantType som external_consumer, som her:

{
"grantType": "external_consumer",
"clientId": "string",
"clientSecret": "string"
}

Eksempel (cURL)

curl -X POST "$BASE_URL/auth/token" \
-H "Content-Type: application/json" \
-d '{
"grantType": "external_consumer",
"clientId": "'"$CLIENT_ID"'",
"clientSecret": "'"$CLIENT_SECRET"'",
}'

Refresh token

Om du utfører handlinger som tar lengre tid enn varighet på token du får utstedt må du refreshe den. Dette gjøres med samme endepunkt, hvor du poster med e-post og client id fra tidligere forespørsel

{
"grantType": "refresh_token",
"refreshToken": "string",
"email": "string",
"clientId": "string"
}

Eksempel (cURL)

curl -X POST "$BASE_URL/auth/token" \
-H "Content-Type: application/json" \
-d '{
"grantType": "refresh_token",
"clientId": "'"$CLIENT_ID"'",
"email": "ola@nordmann.no",
"refreshToken": "'"$REFRESH_TOKEN"'"
}'

Respons

Når du henter ut tokens fra dette endepunktet vil du få følgende svar om du har korrekt til APIet:

{
"accessToken": "string",
"refreshToken": "string",
"tokenType": "string",
"expiresIn": 0
}
FeltTypeBeskrivelse
accessTokenstringAccess token generert for videre autentisering mot endepunkt
refreshTokenstringRefreshtoken som benyttes for accesstoken etter utløp
tokenTypestringHvilken type token det er som er generert. Per dags dato vil denne alltid være Bearer
expiresInnumberAntall sekunder til access token utløper fra den er generert

Feil og statuskoder

Dersom en feil oppstår vil du motta en statuskode og feilmelding som skal tilsi hva som er galt.

StatuskodeTypeEksempel på årsak
400Ugyldig forespørselMangler data i POST request for validering av tilgang
403Ikke tillattKlienten du forsøker å autentisere med mangler de nødvendige tilgangene
415Ugyldig Content-TypeServer forventer en annen Content-Type enn det du har angitt
429Rate limitForespørselen er stoppet grunnet for stor pågang på for kort tid fra samme maskin
500Server feilEn uventet feil oppstod på API-serveren