Velkommen til OAuth-serveren

Denne server implementerer OAuth 2.0:

Kom godt i gang

For at bruge denne OAuth-server, bedes du kontakte os for at anmode om en OAuth-applikation.

Angiv venligst en kort beskrivelse af den applikation, du opretter, sammen med nedenstående oplysninger. Bare rolig, hvis du er i tvivl - vi kan bruge den beskrivelse, du giver, til at hjælpe.

  1. klienttypen: offentlig eller fortrolig?
  2. Tildelingstypen: godkendelse, klient legitimationsoplysninger eller enhed?
  3. De tilladte omdirigerings-URI'er.
  4. De ressourcer, du ønsker at tilgå. Udforsk venligst vores API-dokumentation og vores GraphQL API.

Eksempel (autorisation)

1. Generer PKCE-kodeverifikator og -udfordring

// Generate a code verifier (random string)
const codeVerifier = crypto.randomUUID().replace(/-/g, '');

// Create a code challenge (SHA-256 hash of verifier)
const encoder = new TextEncoder();
const data = encoder.encode(codeVerifier);
const digest = await crypto.subtle.digest('SHA-256', data);
const codeChallenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');

2. Anmod om autorisation

GET /authorize/?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&code_challenge=CODE_CHALLENGE&code_challenge_method=S256

3. Udskift autorisationskode med access token

POST /token/
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=AUTH_CODE&redirect_uri=YOUR_REDIRECT_URI&client_id=YOUR_CLIENT_ID&code_verifier=YOUR_CODE_VERIFIER

4. Tilgå beskyttet data

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Eksempel (klient legitimationsoplysninger)

1. Udveksl legitimationsoplysninger for et access token

POST /token/
Authorization: Basic BASE64_ENCODED(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials

2. Tilgå beskyttet data

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Eksempel (enhed)

1. Godkend enhed

POST /device-authorization/
Content-Type: application/x-www-form-urlencoded

client_id=YOUR_CLIENT_ID

Enheden skal bruge svaret til at vise eller kommunikere user_code og verification_uri til slutbrugeren. Enheder med skærme kan vise disse oplysninger visuelt, mens enheder uden skærme kan bruge alternativer som lyd eller Bluetooth.

         +-----------------------------------------------+
         |                                               |
         |  Using a browser on another device, visit:    |
         |  https://auth.example.com/device              |
         |                                               |
         |  And enter the code:                          |
         |  ETE39050                                     |
         |                                               |
         +-----------------------------------------------+

Brugeren besøger verification_uri for at godkende, indtaster user_code og autoriserer enheden.

2. Udveksl enhedskode for adgangstoken

Mens brugeren autoriserer, skal enheden med jævne mellemrum forsøge at erhverve en adgangstoken (med en hastighed angivet af intervallet sekunderne):

POST /token/
Content-Type: application/x-www-form-urlencoded

client_id=YOUR_CLIENT_ID&device_code=DEVICE_CODE&grant_type=urn:ietf:params:oauth:grant-type:device_code

3. Tilgå beskyttet data

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Eksempel (token-udveksling)

RFC 8693 delegeringssemantik er understøttet. Dette betyder, at du vil bruge klient-legitimationsoplysningernes token i både Authorization-headeren og actor_token, som vist nedenfor.

1. Hent et adgangstoken til din klient-legitimationsapp, som beskrevet i Eksempel (klient legitimationsoplysninger).

2. Hvis vi antager, at EXTERNAL_IDP_USER_ACCESS_TOKEN er blevet udstedt af din eksterne IdP, skal du foretage token-udvekslingskaldet:

POST /token
Authorization: YOUR_CLIENT_CREDENTIALS_ACCESS_TOKEN
Content-Type: application/x-www-form-urlencoded

grant_type="urn:ietf:params:oauth:grant-type:token-exchange"&
actor_token_type="urn:ietf:params:oauth:token-type:access_token"&
actor_token=YOUR_CLIENT_CREDENTIALS_ACCESS_TOKEN&
subject_token_type="urn:ietf:params:oauth:token-type:access_token"&
subject_token=EXTERNAL_IDP_USER_ACCESS_TOKEN

3. Tilgå beskyttet data

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Ressourcer