Willkommen auf dem OAuth-Server

Dieser Server implementiert OAuth 2.0:

Erste Schritte

Um diesen OAuth-Server zu nutzen, kontaktiere uns bitte, um einen OAuth-Antrag anzufordern.

Bitte gib eine kurze Beschreibung der Anwendung, die du erstellen möchtest, zusammen mit den unten stehenden Details an. Keine Sorge, wenn du dir unsicher bist - wir können die Beschreibung, die du uns gibst, zur Hilfe nehmen.

  1. Der Kundentyp: öffentlich oder vertraulich?
  2. Der Zuschusstyp: Autorisierung oder Client-Credentials?
  3. Die erlaubten Redirect URIs.
  4. Die Ressourcen, auf die du zugreifen möchtest. Bitte erkunde unsere API Dokumentation und unsere GraphQL API.

Beispiel (Berechtigung)

1. PKCE Code Verifier und Challenge generieren

// 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. Genehmigung beantragen

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

3. Autorisierungscode für Zugangstoken austauschen

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. Zugang zur geschützten Ressource

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Beispiel (Kundenanmeldeinformationen)

1. Zugangsdaten austauschen für ein Zugangs-Token

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

grant_type=client_credentials

2. Zugang zur geschützten Ressource

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Example (device)

1. Authorize device

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

client_id=YOUR_CLIENT_ID

The device should use the response to display or communicate the user_code and the verification_uri to the end user. Devices with screens can display this information visually, while devices without screens may use alternatives like audio or Bluetooth.

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

The user visits the verification_uri to authenticate, inputs the user_code and authorizes the device.

2. Exchange device code for access token

While the user is authorising, the device should periodically attempt to acquire an access token (at a rate specified by the interval seconds):

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. Zugang zur geschützten Ressource

GET /resource/
Authorization: YOUR_ACCESS_TOKEN

Ressourcen