Byna guideMed ReAI

Maskinporten for systemleverandører

Maskinporten lar et system autentisere en virksomhet mot offentlige API-er som har valgt å støtte Maskinporten.

Praktisk leverandørguideKontroller alltid gjeldende dokumenter

Maskinporten er en løsning for maskin-til-maskin-autentisering mellom virksomheter og offentlige API-er. Den brukes når et system skal opptre på vegne av en organisasjon uten at en person logger inn for hvert kall.

Maskinporten gir ikke automatisk tilgang til alle offentlige data. API-tilbyderen må ha opprettet et scope, og virksomheten må ha rett til å bruke det.

Grunnflyten

Maskinporten bygger på OAuth 2.0 og private_key_jwt:

  1. Systemleverandøren eller kunden registrerer en OAuth-klient.
  2. Klienten knyttes til en privat nøkkel eller et virksomhetssertifikat.
  3. Systemet signerer en kortlivet JWT-assertion.
  4. Assertion sendes til Maskinportens token-endepunkt med ønskede scopes.
  5. Maskinporten utsteder et kortlivet access token.
  6. Tokenet sendes som bearer-token til API-et.
  7. API-et validerer signatur, utsteder, mottaker, tid, scope og virksomhetsidentitet.

Den private nøkkelen skal ikke sendes til Maskinporten eller legges i kildekode. Den brukes lokalt til signering og bør lagres i en hemmelighets- eller nøkkeltjeneste.

Direkte tilgang og delegering

Noen API-er gir tilgang direkte til virksomheten tokenet identifiserer. Andre støtter delegering gjennom Altinn. Da kan et system opptre med rettigheter en kunde har gitt, uten å dele kundens innloggingsopplysninger.

Hvis handlingene skal knyttes til en konkret systembruker med delegerte fullmakter, kan Altinn systembruker være riktig modell.

Trenger Doffin Maskinporten?

Ikke nødvendigvis. Doffin har et eget Notices API og egen tilgangsmodell. Det finnes ikke grunnlag for å behandle Maskinporten som generell autentisering til Doffin. Følg alltid Doffins gjeldende API-dokumentasjon.

En anskaffelsesplattform kan likevel trenge Maskinporten for andre integrasjoner, for eksempel Altinn-tjenester eller offentlige data-API-er som krever Maskinporten-scope. Hver integrasjon må kartlegges separat.

Sikker implementasjon

  • Bruk separate klienter og nøkler for test og produksjon.
  • Be om færrest mulige scopes.
  • Cache token bare frem til kort før utløp.
  • Roter nøkler uten nedetid og dokumenter nødprosedyre.
  • Ikke logg assertions, access tokens eller private nøkler.
  • Valider at API-ets forventede virksomhet samsvarer med tokenet.
  • Logg hvilket scope og hvilken organisasjon som ble brukt, uten å lagre hemmeligheten.

Kundeoppsett i en SaaS-plattform

Bestem tidlig om hver kunde skal eie sin OAuth-klient, eller om plattformleverandøren bruker én klient med delegering. Kundeeid klient gir tydelig eierskap, men mer onboarding. Leverandøreid klient kan gi enklere drift, men krever en gjennomarbeidet delegerings- og isolasjonsmodell.

Lag en veiviser som verifiserer organisasjonsnummer, scopes, delegering og et ufarlig testkall. Vis konkret hva kunden gir tilgang til og hvordan tilgangen kan trekkes tilbake.

Les offentlige API-er og integrasjonsarkitektur .

Offisiell kilde

Se Digdirs guide for API-konsumenter i Maskinporten . Følg gjeldende krav til klient, nøkkel, token og scope ved implementasjon.