Bindeleddet i det digitale sundhedsvæsen

Søgning

Kom godt i gang med OAuth 2.0

Hvad er OAuth

OAuth er en international standard, der anvendes til sikker adgangskontrol mellem brugere og digitale tjenester. Den giver mulighed for at give adgang til beskyttede data – uden at dele adgangskoder med den tjeneste, der skal bruge adgangen.

I stedet benyttes midlertidige adgangstokens, som kan knyttes til specifikke brugere eller systemer. Det giver bedre sikkerhed og kontrol, over hvem der har adgang. Og adgange kan nemt lukkes, udvides, og fornys.

Vil du vide mere om Oauth generelt. Besøg oauth.net/2/ (engelsk)

Oauth og VDX

VDX har tidligere anvendt STS (Security Token Service) til håndtering af identitet og adgang. Fra og med udgangen af 2025 anvendes i stedet OAuth 2.0 – den mest udbredte version af OAuth-standarden.

Det betyder:

  • Nye tilslutninger kan ikke længere oprettes med STS
  • Eksisterende tilslutninger overføres løbende til OAuth
  • Fra 31. december 2026 vil alle STS-certifikater blive lukket
  • Adgang til VDX vil herefter udelukkende kunne ske via OAuth

Autentificeringsflows

VDX understøtter to såkaldte OAuth Grant Types (autentificeringsflows), afhængigt af typen af system, der skal tilgå VDX:

1.     Autentificering med Client Credentials (maskine til maskine)

Bruges til system-til-system-kommunikation, hvor der ikke er en bruger involveret.

Typiske brugsscenarier:

  • Integration mellem backend-systemer
  • Automatisk synkronisering eller dataudveksling

Krav:

  • Sikker opbevaring af clientId og clientSecret på serveren

En forklaring af flowet i VDX-kontekst kommer senere, men den grundlæggende forståelse kan findes her:  /oauth.net/2/grant-types/client-credentials/ (engelsk)

2.     Autentificering med PKCE (Proof Key for Code Exchange)

Bruges af klienter, som ikke har en backend – og derfor ikke sikkert kan gemme en clientSecret.

Typiske brugsscenarier:

  • Single Page Applications (SPA’er)
  • Native mobilapps

En forklaring af flowet i VDX-kontekst kommer senere, men den grundlæggende forståelse kan findes her:  oauth.net/2/pkce/ (engelsk)

Tokenhåndtering via KeyCloak

I VDX bruges Keycloak som authentication manager. Keycloak anvendes som authentication manager.

Det er denne service, der udsteder tokens, som anvendes ved kald til VDX API’er.

  • AccessToken er gyldigt i 5 minutter
  • RefreshToken er gyldigt i 3 måneder, men kan forlænges op til 1 år, hvis det anvendes mindst én gang hver tredje måned

.NET (C#) testprojekt

Et eksempelprojekt i .NET (C#) er tilgængeligt og kan bruges som inspiration til integration med VDX

Projektet findes på GitHub: github.com/medcomdk/vdx_api_oauth2_connection_example

Projektet indeholder bl.a.:

  • Eksempel på kald til Video-API for at hente møder fra seneste måned
  • En service, der sørger for automatisk fornyelse af accessToken, så det ikke skal hentes på ny ved hvert API-kald

Bemærk: Hvis der ikke findes møder i perioden, returneres et tomt svar

Ansøg om OAuth-adgang til VDX

for at få adgang til VDX via OAuth, skal der indsendes en ansøgning.

Vejledning og ansøgningsformular: OAuth-adgang til VDX API

Når ansøgningen er godkendt, udstedes følgende:

  • clientId
  • clientSecret

Disse oplysninger skal indsættes i appsettings.json i det relevante projekt.

De findes også i VDX Management under:

Organisation → API-nøgler

Brug for hjælp?

MedCom tilbyder teknisk support til både nye og eksisterende tilslutninger i forbindelse med implementering af OAuth.

Kontakt MedCom på vdx@medcom.dk ved:

  • Fejl eller tekniske udfordringer med autentificeringsflows
  • Spørgsmål om opsætning af adgang
  • Behov for sparring i forbindelse med migrering fra STS til OAuth