Ir al contenido

Tipo de concesión Client Credentials en OAuth 2.0

El Tipo de Concesión Client Credentials está diseñado específicamente para aplicaciones que necesitan acceder a recursos no asociados con un usuario particular. En este escenario, el cliente actúa como el propietario del recurso. Este tipo de concesión es más apropiado para sistemas backend donde la aplicación interactúa con un servicio sin ningún contexto de usuario.

Tipo de Concesión Client Credentials en LoadFocus

En una prueba de carga, establece Tipo de autorización en OAuth 2.0 y Grant Type en Client Credentials. El formulario tiene estos campos:

  • Token Name: una etiqueta para ti. No se envía al servidor.
  • Access Token URL: el endpoint de token del proveedor.
  • Client ID, Client Secret: las credenciales de tu cliente registrado.
  • Scope: los permisos que se solicitan, si tu proveedor los usa.
  • Audience: solo hace falta con los proveedores que la piden (no forma parte del RFC 6749).

Antes de que empiece la prueba, LoadFocus envía una solicitud POST por HTTPS a la Access Token URL, con los campos anteriores como cuerpo JSON, y lee access_token de la respuesta JSON. El RFC 6749 describe un cuerpo codificado como formulario, así que si tu proveedor rechaza la solicitud, comprueba si su endpoint de token acepta JSON.

  • El cliente envía una solicitud al servidor de autorización. Esta solicitud generalmente incluye el client_id y client_secret del cliente para autenticarse.
  • Después de autenticar exitosamente al cliente, el servidor de autorización emite un token de acceso. El cliente puede entonces usar este token para solicitar recursos del servidor de recursos.
  • Comienza registrando tu aplicación con el proveedor OAuth 2.0. Después del registro, deberías recibir un client_id y client_secret.
  • Tu aplicación necesita enviar una solicitud POST al endpoint de token del servidor de autorización. Esta solicitud debe incluir el parámetro grant_type establecido en "client_credentials", y el client_id y client_secret. Es crucial enviar esta solicitud de forma segura, usando HTTPS.
  • El servidor de autorización responderá con un token de acceso una vez que verifique tu aplicación. Maneja este token de forma segura dentro de tu aplicación.
  • Con el token de acceso en mano, tu aplicación puede enviar solicitudes autorizadas al servidor de recursos para acceder a los recursos permitidos.
  • Sin Interacción del Usuario: Este tipo de concesión no involucra autenticación del usuario final, haciéndolo adecuado para interacciones de servidor a servidor.

  • Seguridad: Dado que las credenciales de la aplicación (client_id y client_secret) son esenciales para obtener el token, es imperativo mantenerlas seguras. Cualquier fallo de seguridad podría llevar a acceso no autorizado.

  • Alcance Limitado: Los tokens adquiridos a través de este flujo deben tener un alcance limitado, otorgando solo los permisos necesarios para que la aplicación funcione.

El Tipo de Concesión Client Credentials proporciona una forma eficiente para que las aplicaciones se comuniquen con un servicio sin intervención del usuario. Es la opción habitual para situaciones donde una aplicación necesita operar en su propio nombre, no en nombre de un usuario. Sin embargo, los desarrolladores deben ser cautelosos y asegurar la seguridad de las credenciales de la aplicación para prevenir posibles riesgos de seguridad.