Skip to main content

Autentisering

I NVDB (Nasjonal vegdatabank), er det meste av dataene åpent tilgjengelige og krever ingen autentisering. Imidlertid er det visse unntak:

Autentiseringskrav for Vegobjekttyper

  • Noen spesifikke vegobjekttyper krever autentisering. Disse er identifisert i datakatalogen med flagget sensitiv: true.
  • Eksempler på skjermede vegobjekttyper inkluderer: 871, 890, 892, 894, 895, 901, 903, og 905.

Autentiseringskrav for Egenskaper

  • Visse egenskaper krever også autentisering, markert i datakatalogen med sensitivitet: 1|2|3.
  • Tilgang til disse egenskapene blir gitt dersom brukeren har tilgang til den tilsvarende vegobjekttypen eller har tildelt en spesifikk rolle. For eksempel, rollen nva=0_sensitive_roleX der X representerer sensitivitetsnivået (1, 2, eller 3).

Tilgangsstyring

  • For å få tilgang til skjermede vegobjekttyper, må brukere tildeles tilgangsrettigheter. Dette gjøres gjennom systemet tilgangskontrolltjenesten til NVDB.
Påkrevd X-Client header

Det er påkrevd å sende med X-Client headeren i alle forespørsler mot NVDB API. Denne headeren skal inneholde en unik identifikator for applikasjonen som gjør forespørselen.

Hente token via landingsside

Den enkleste måten å få tilgang til et token er via landingssiden nvdbapiles.atlas.vegvesen.no:

  1. Logg inn ved å klikke på innloggingsknappen oppe i høyre hjørne
  2. For eksterne brukere: Innlogging skjer via ID-porten med to-faktor autentisering
  3. For ansatte: Innlogging skjer via Statens vegvesen sin innloggingsløsning
  4. Når du er logget inn, får du tilgang til en "Kopier token"-knapp som legger tokenet ditt i utklippstavlen
  5. Tokenet brukes i Authorization-headeren i dine API-forespørsler

Eksempel på bruk av token

curl --location 'https://nvdbapiles.atlas.vegvesen.no/vegobjekter/871' \
--header 'Authorization: Bearer <ditt-token-fra-utklippstavle>' \
--header 'X-Client: MinApplikasjon'

Bruk av token i Swagger

Du kan også bruke tokenet direkte i Swagger UI for å teste API-forespørsler:

  1. Gå til Swagger UI
  2. Klikk på Authorize-knappen (låseikonet) øverst på siden
  3. Skriv inn <ditt-token> i feltet og klikk Authorize
  4. Nå vil alle forespørsler du gjør via Swagger UI inkludere tokenet automatisk

Hente token for tjenestebrukere via API

Tjenestebrukere kan autentisere seg direkte via API-et ved å sende brukernavn og passord.

Autentisering

Mønster

POST /auth/api/v1/auth/autentiser

Eksempel

curl --location 'https://nvdbapiles.atlas.vegvesen.no/auth/api/v1/auth/autentiser' \
--header 'accept: application/json' \
--header 'X-Client: MinApplikasjon' \
--header 'Content-Type: application/json' \
--data '{
"brukernavn": "min-tjenestebruker",
"passord": "hemmeligpassord",
"brukertype": "TJENESTEBRUKER"
}'

Responsen inneholder id_token, access_token og refresh_token. Bruk id_token som Bearer-token i Authorization-headeren.

Fornye token

For å fornye et token sender du refresh_token fra den opprinnelige autentiseringen.

Mønster

POST /auth/api/v1/auth/refresh

Eksempel

curl --location 'https://nvdbapiles.atlas.vegvesen.no/auth/api/v1/auth/refresh' \
--header 'accept: application/json' \
--header 'X-Client: MinApplikasjon' \
--header 'Content-Type: application/json' \
--data '{
"refresh_token": "<din-refresh-token>",
"brukertype": "TJENESTEBRUKER"
}'