Welcome to the OAuth server
This server implements OAuth 2.0:
Getting started
To use this OAuth server, please contact us to request an OAuth application.
Please provide a short description of the application you are creating, along with the details below. No worries if you are unsure - we can use the description you provide to help.
- The client type: public or confidential?
- The grant type: authorization, client-credentials or device?
- The allowed redirect URIs.
- The resources you would like to access. Please explore our API documentation, and our GraphQL API.
Example (authorization)
3. Exchange authorization code for 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
Example (client credentials)
1. Exchange credentials for an access token
POST /token/
Authorization: Basic BASE64_ENCODED(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
2. Access protected resource
GET /resource/
Authorization: YOUR_ACCESS_TOKEN
Example (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. Access protected resource
GET /resource/
Authorization: YOUR_ACCESS_TOKEN
Example (token exchange)
RFC 8693 delegation semantics are supported. This means that you will use the client credentials token in both the Authorization header and the actor_token, as shown below.
1. Retrieve an access token for your client credentials app, as described in Example (client credentials).
2. Assuming EXTERNAL_IDP_USER_ACCESS_TOKEN has been issued by your external IdP, perform the token exchange call:
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. Access protected resource
GET /resource/
Authorization: YOUR_ACCESS_TOKEN