Bienvenido al servidor OAuth

Este servidor implementa OAuth 2.0:

Introducción

Para usar este servidor OAuth, póngase en contacto con nosotros para solicitar una aplicación OAuth.

Proporcione una breve descripción de la aplicación que está creando, junto con los detalles a continuación. No se preocupe si no está seguro; podemos usar la descripción que proporcione para ayudarle.

  1. El tipo de cliente: ¿público o confidencial?
  2. El tipo de concesión: ¿autorización, credenciales de cliente o dispositivo?
  3. Las URI de redireccionamiento permitidas.
  4. Los recursos a los que desea acceder. Por favor, explore nuestra documentación de la API y nuestra API GraphQL.

Ejemplo (autorización)

1. Generar verificador y desafío de código PKCE

// 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. Solicitar autorización

Redirija al usuario a la siguiente URL:
https://auth.estec-kraken.energy/authorize/?
  client_id=YOUR_CLIENT_ID&
  response_type=code&
  redirect_uri=YOUR_REDIRECT_URI&
  code_challenge=CODE_CHALLENGE&
  code_challenge_method=S256
NUNCA incluya un secreto en esta URL, ya que es visible en la barra de direcciones del navegador.
En este paso, se le presenta al usuario la opción de aprobar o denegar el acceso. Si el usuario aprueba, el navegador redirige a YOUR_REDIRECT_URI e incluye el AUTH_CODE en los parámetros de consulta de la URL.

3. Intercambiar código de autorización por token de acceso

Su manejador en YOUR_REDIRECT_URI debe realizar la siguiente llamada:
POST https://auth.estec-kraken.energy/token/
Content-Type: application/x-www-form-urlencoded

client_id=YOUR_CLIENT_ID&
client_secret=CLIENT_SECRET& # omitir para clientes públicos
grant_type=authorization_code&
code=AUTH_CODE&
redirect_uri=YOUR_REDIRECT_URI&
code_verifier=YOUR_CODE_VERIFIER
Si tiene la intención de realizar esta llamada desde el frontend, la aplicación OAuth debe ser pública y el secreto debe omitirse de la solicitud.
Si tiene la intención de realizar esta llamada desde el backend, la aplicación OAuth debe ser confidencial y el secreto debe incluirse en la solicitud.

4. Acceder a un recurso protegido

GET https://api.estec-kraken.energy/resource/
Authorization: YOUR_ACCESS_TOKEN

Ejemplo (credenciales de cliente)

1. Intercambiar credenciales por un token de acceso

POST https://auth.estec-kraken.energy/token/
Authorization: Basic BASE64_ENCODED(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials

2. Acceder a un recurso protegido

GET https://api.estec-kraken.energy/resource/
Authorization: YOUR_ACCESS_TOKEN

Ejemplo (dispositivo)

1. Autorizar dispositivo

POST https://auth.estec-kraken.energy/device-authorization/
Content-Type: application/x-www-form-urlencoded

client_id=YOUR_CLIENT_ID

El dispositivo debe utilizar la respuesta para mostrar o comunicar el user_code y la verification_uri al usuario final. Los dispositivos con pantalla pueden mostrar esta información visualmente, mientras que los dispositivos sin pantalla pueden utilizar alternativas como audio o Bluetooth.

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

El usuario visita la verification_uri para autenticarse, introduce el user_code y autoriza el dispositivo.

2. Intercambiar código de dispositivo por token de acceso

Mientras el usuario autoriza, el dispositivo debe intentar periódicamente adquirir un token de acceso (a una tasa especificada por los segundos del interval):

POST https://auth.estec-kraken.energy/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. Acceder a un recurso protegido

GET https://api.estec-kraken.energy/resource/
Authorization: YOUR_ACCESS_TOKEN

Ejemplo (intercambio de tokens)

Se admiten las semánticas de delegación de RFC 8693. Esto significa que utilizará el token de credenciales de cliente tanto en el encabezado Authorization como en el actor_token, como se muestra a continuación.

1. Recupere un token de acceso para su aplicación de credenciales de cliente, tal como se describe en Ejemplo (credenciales de cliente).

2. Suponiendo que se ha emitido un EXTERNAL_IDP_USER_ACCESS_TOKEN por parte de su IdP externo, realice la llamada de intercambio de tokens:

POST https://auth.estec-kraken.energy/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. Acceder a un recurso protegido

GET https://api.estec-kraken.energy/resource/
Authorization: YOUR_ACCESS_TOKEN

Recursos