Skip to main content

Maskinporten

For å registrere en klient i Maskinporten har du tre muligheter:

  • Bruke Digdir sin selvbetjeningsløsning. Du søker om tilgang til selvbetjeningsløsningen via Pureservice.
  • Bruke Kubernetes-ressursen MaskinportenClient. Denne ressurstypen er tilgjengelig via Kubernetes-operatoren Digdirator, utviklet av NAV sitt plattformteam (NAIS).
  • Bruke Kubernetes-ressursen SecurityConfig, som er en Kartverket-tilpasset abstraksjon på toppen av Digdirator. Les mer om SecurityConfig i dokumentasjonen for Accesserator. Merk at SecurityConfig-ressursen kun støtter å konsumere scopes i Maskinporten, ikke å eksponere scopes.

En vil typisk velge å bruke SecurityConfig fremfor MaskinportenClient dersom en uansett skal bruke førstnevnte til annen funksjonalitet, som Token Exchange, token-uthenting eller validering med Texas, OPA eller annet.

🧪 Testmiljø for Maskinporten

Digdir tilbyr Maskinporten i et testmiljø, der du kan teste applikasjonen din med syntetiske organisasjoner. For å registrere en klient mot Maskinporten sitt testmiljø så kan du enten gjøre det i Digdir sin selvbetjeningsløsning i test eller opprette en MaskinportenClient-ressurs i dev-clustrene til SKIP, i.e. atgcp1-dev eller atkv3-dev.

🤖 Klientregistrering med MaskinportenClient

En MaskinportenClient er en CRD som lar brukere deklarativt opprette og vedlikeholde Maskinporten-klientregistreringer.

spec (object, required) – Spesifikasjon til MaskinportenClient

secretName (string, required) – Navnet på den resulterende Secret-ressursen som vil bli opprettet.

clientName (string, optional) – Navnet på klienten registrert hos DigDir. Vises under innlogging for brukerorienterte flyter, og er ellers en lesbar måte å skille mellom klienter i DigDirs selvbetjeningsportal.

scopes ([]object, optional) – Definerer hvilke scopes applikasjonen konsumerer og hvilke den eksponerer.
consumes ([]object, optional) – En liste med scopes din klient kan forespørre tilgang til.

name (string, required) – Scopene som applikasjonen konsumerer for å få tilgang til en ekstern organisasjons API.

exposes ([]object, optional) – En liste med scopes din applikasjon ønsker å eksponere til andre organisasjoner hvor tilgang er basert på organisasjonsnummer.

enabled (bool, required) – Hvis true, så er det konfigurerte scopet tilgjengelig for bruk og til å bli konsumert av organisasjoner som har fått godkjent tilgang.

name (string, påkrevd) – Det faktiske sub-scopet kombinert med product.

product (string, valgfritt) – Produktområde tilknyttet scopet. Dette vil inkluderes i resultatet: org:<product><name>.

atMaxAge (int, valgfritt) – Maksimal tillatt levetid for token i sekunder. Defaulter til 30 sekunder.

allowedIntegrations ([]string, valgfritt) – Liste over tillatte integrasjonstyper for dette eksponerte omfanget. Defaulter til maskinporten.

consumers ([]object, valgfritt) – Liste over eksterne konsumenter som har tilgang til å konsumere dette scopet og som kan forespørre access_token.

orgno – Det eksterne organisasjonsnummeret.

name – Beskrivende felt brukt utelukkende for oversikt.

accessibleForAll – Tillater alle organisasjoner å få tilgang til scopet.

delegationSource – Delegasjonskilde for scopet. Default er tomt, noe som betyr at ingen delegasjon er tillatt.

separator – Tegnet som skiller product og name i det endelige scopet. Resultatet blir da <prefix>:<product><separator><name>. Defaulter til : med mindre name inneholder /, i det tilfellet defaultes det til /.

visibility – Kontrollerer synligheten til scopet. Offentlige scopes er synlige for alle, mens private scopes kun er synlige for organisasjonen som eier scopet og organisasjoner som har fått tilgang som konsumenter. Defaulter til public. Tillatte verdier: private, public.

Følgende eksempel oppretter en klientintegrasjon mot Maskinporten og definerer scopet innsyn. Den setter HUSLØS HURTIG TIGER AS og KOSTBAR LEKKER APE AS som godkjente konsumenter av scopet. Når registrering er fullført vil Digdirator opprette Kubernetes-hemmeligheten maskinporten-secret i namespacet tilgangsstyring-main.

Klientregistrering mot Maskinporten med Digdirator
apiVersion: nais.io/v1
kind: MaskinportenClient
metadata:
name: test-client
namespace: tilgangsstyring-main
spec:
clientName: innsikt-secure-deltashare
scopes:
exposes:
- enabled: true
name: "innsyn"
product: "Produktområde"
consumers:
- name: HUSLØS HURTIG TIGER AS
orgno: "987654321"
- name: KOSTBAR LEKKER APE AS
orgno: "123456789"
secretName: maskinporten-secret
Hemmelighet opprettet av Digdirator etter fullført klientregistrering
apiVersion: v1
kind: Secret
metadata:
name: maskinporten-secret
namespace: tilgangsstyring-main
data:
MASKINPORTEN_CLIENT_ID: ++++++++
MASKINPORTEN_CLIENT_JWK: ++++++++
MASKINPORTEN_ISSUER: ++++++++
MASKINPORTEN_JWKS_URI: ++++++++
MASKINPORTEN_SCOPES: ++++++++
MASKINPORTEN_TOKEN_ENDPOINT: ++++++++
MASKINPORTEN_WELL_KNOWN_URL: ++++++++
type: Opaque