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
| Header | Verdi | Påkrevd | Beskrivelse |
|---|---|---|---|
Content-Type | application/json | Ja | Definerer 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
}
| Felt | Type | Beskrivelse |
|---|---|---|
accessToken | string | Access token generert for videre autentisering mot endepunkt |
refreshToken | string | Refreshtoken som benyttes for accesstoken etter utløp |
tokenType | string | Hvilken type token det er som er generert. Per dags dato vil denne alltid være Bearer |
expiresIn | number | Antall 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.
| Statuskode | Type | Eksempel på årsak |
|---|---|---|
| 400 | Ugyldig forespørsel | Mangler data i POST request for validering av tilgang |
| 403 | Ikke tillatt | Klienten du forsøker å autentisere med mangler de nødvendige tilgangene |
| 415 | Ugyldig Content-Type | Server forventer en annen Content-Type enn det du har angitt |
| 429 | Rate limit | Forespørselen er stoppet grunnet for stor pågang på for kort tid fra samme maskin |
| 500 | Server feil | En uventet feil oppstod på API-serveren |