Driftrock OAuth2 API Credenciales de cliente

Cómo conectarse a la API OAuth2 de Driftrock

Nuestra API admite la concesión de credenciales de cliente OAuth 2.0, tal y como se especifica en el RFC 6749, sección 4.4, para solicitar tokens de acceso JWT que se utilizarán para llamar a nuestra API.

Los puntos finales utilizados para intercambiar credenciales de cliente por tokens de acceso son los siguientes:

  • Entorno de puesta en escena: https://api-staging.driftrock.com/oauth2/token
  • Entorno de producción: https://external-apis.driftrock.com/oauth2/token

Al ponerlo en práctica, tenga en cuenta lo siguiente:

  • Utilice Authorization: Basic <encoded credentials> para autenticarse con credenciales del cliente y el grant_type=credenciales_cliente al solicitar un token de acceso
  • Utilice Authorization: Bearer <access_token> al realizar llamadas a nuestra API.

Ejemplos

Solicitud de token de acceso

POST /oauth2/token HTTP/1.1
Host: server.example.com
Autorización: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded

grant_type=credenciales_cliente


Respuesta satisfactoria

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
     
{
    "access_token": "eyJhbGciOiJIUzI1NiIs...",
    "token_type": "Bearer",
    "expires_in": 3600
}

Error de respuesta

HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache

{
 "error": "invalid_grant",
 "error_description": "Invalid credentials"
}

Uso del token de acceso JWT con nuestra API

Una vez obtenido el token de acceso JWT, puede utilizarlo para autenticar las solicitudes de API a cualquier /v2 punto final:

POST /v2/evento
Autorización: Portador eyJhbGciOiJIUzI1NiIs...


Consideraciones de seguridad

  • Transmita siempre las credenciales y tokens del cliente a través de HTTPS
  • Almacene los secretos del cliente de forma segura y nunca los exponga públicamente, como en la implementación front-end o las aplicaciones móviles.

Buenas prácticas

  • Utilice credenciales de cliente OAuth 2.0 para todas las nuevas integraciones.
  • Considerar la migración de las integraciones existentes de claves API a OAuth 2.0
  • Aplicar correctamente la caducidad de los tokens y la solicitud de nuevos tokens.

Esquema básico de autorización

Tal y como se describe en el RFC 7617, el esquema Basic requiere la siguiente codificación de las credenciales del cliente:

Authorization: Basic <credential donde <credentials> es la codificación Base64 de ID de cliente y secreto de cliente unidos por dos puntos:

Ejemplo de JavaScript:

function encodeCredentials(clientId, clientSecret) {
	return 'Basic ' + btoa(unescape(encodeURIComponent(clientId + ':' + clientSecret)))
}

async function getAccessToken(clientId, clientSecret) {
	let response = await fetch('https://example.com/path', {
		method:'GET', 
		headers: {'Authorization': encodeCredentials(clientId, clientSecret)}
	});
	let data = await response.json();
	return data.access_token;
}

// Get the JWT token
await getAccessToken("https://external-apis.driftrock.com/oauth2/token", "your client ID", "your client secret")