Skip to content
IRC-CodingIRC-Coding
AutenticaciónAutorizaciónAPI KeysOAuth2JWTRBAC

Autenticación y Autorización en APIs: Guía Completa

Aprende autenticación y autorización en APIs: diferencias, OAuth2, JWT, API Keys, RBAC y mejores prácticas de seguridad.

S

schutzgeist

6 min read
Autenticación y Autorización en APIs: Guía Completa

API Autenticación y Autorización

La autenticación verifica la identidad de un cliente, mientras que la autorización decide qué acciones puede realizar después.

Descripción compacta

La autenticación y autorización en APIs son dos mecanismos de seguridad fundamentales. La autenticación verifica quién accede a la API mediante API keys, tokens OAuth2 o certificados. La autorización determina qué recursos y acciones puede usar un usuario autenticado, normalmente basándose en roles, permisos o atributos. Una buena arquitectura de seguridad separa claramente ambos conceptos, implementa autenticación robusta y valida los permisos en cada endpoint. El hecho de que un cliente esté autenticado no significa que pueda ver o modificar todos los datos. La implementación correcta de autenticación y autorización protege contra robo de datos, acceso no autorizado y manipulación.

Componentes principales

Autenticación

La autenticación es el proceso que verifica la identidad de un usuario o cliente. Responde a la pregunta: ¿quién eres? Los métodos comunes incluyen contraseñas, API keys, tokens OAuth2, certificados de cliente y factores biométricos. En APIs, la autenticación se suele realizar a través de encabezados o tokens.

Autorización

La autorización es el proceso que decide qué está permitido después de una autenticación exitosa. Responde a la pregunta: ¿qué puedes hacer? La autorización se basa en roles, derechos, propiedad de recursos o atributos. Un usuario puede estar autenticado pero tener solo acceso de lectura a ciertos datos.

API Keys

Las API keys son cadenas secretas simples que el cliente envía en cada solicitud. Son fáciles de implementar pero menos seguras que los procedimientos basados en tokens. Las API keys funcionan bien para interfaces internas o públicas con riesgo bajo, pero deben transmitirse sobre TLS y renovarse regularmente.

OAuth2

OAuth2 es un marco de autorización que permite a los clientes acceder a recursos en nombre de un usuario sin revelar la contraseña. Define varios flujos como Authorization Code, Client Credentials, Implicit y Device Code. OAuth2 se utiliza en APIs web y móviles modernas.

OpenID Connect

OpenID Connect es una capa de autenticación basada en OAuth2. Permite verificar la identidad de un usuario y proporciona un ID Token con información como nombre y correo electrónico. OpenID Connect se usa para Single Sign-On y autenticación basada en usuarios.

JSON Web Tokens

Los JSON Web Tokens, abreviados como JWT, son tokens compactos y autosuficientes que contienen claims. Constan de encabezado, payload y firma. Los JWT se utilizan frecuentemente para autenticación y autorización en APIs, pero deben firmarse y validarse correctamente.

RBAC

RBAC significa Role-Based Access Control. Los permisos se asignan a roles y los usuarios reciben uno o varios roles. Un administrador puede hacer de todo, un editor solo puede modificar contenido y un visualizador solo puede leer. RBAC es fácil de entender y muy usado.

ABAC

ABAC significa Attribute-Based Access Control. Los permisos se derivan de atributos del usuario, el recurso y el entorno. Por ejemplo, un usuario puede editar un archivo solo si es el propietario y es un día laborable entre las 9 y las 17 horas. ABAC es más flexible que RBAC pero también más complejo.

Autenticación multifactor

La autenticación multifactor requiere múltiples pruebas independientes de identidad, como contraseña y código de un solo uso. En APIs, MFA se implementa a menudo a través de pasos de verificación adicionales o tokens hardware, especialmente para operaciones sensibles.

Principio de mínimo privilegio

El principio de mínimo privilegio establece que los usuarios y clientes deben recibir solo los permisos mínimos necesarios para su tarea. Menos permisos reducen el riesgo de fugas de datos y acciones no autorizadas. Los permisos deben revisarse y ajustarse regularmente.

Ejemplo práctico

Un sistema de gestión de documentos ofrece diferentes endpoints para diferentes roles. La autenticación se realiza mediante un Bearer Token en el encabezado Authorization.

GET /api/v1/documents
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

El servidor valida el token y determina el rol del usuario:

  • Un Viewer recibe solo acceso de lectura.
  • Un Editor puede crear y modificar documentos.
  • Un Administrator puede eliminar documentos y gestionar usuarios.

Ejemplo de un endpoint con RBAC:

DELETE /api/v1/documents/123
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Un Editor recibe 403 Forbidden porque no tiene permiso para eliminar. Un Administrator recibe 204 No Content. La autenticación y autorización se validan por separado: primero el token, luego el permiso.

FAQ: API Autenticación y Autorización

1. ¿Cuál es la diferencia entre autenticación y autorización?

La autenticación verifica la identidad de un usuario o cliente. La autorización decide qué acciones o recursos puede usar un usuario autenticado.

2. ¿Qué es una API Key?

Una API Key es una clave secreta que el cliente envía en las solicitudes para identificarse. Las API Keys son simples pero menos seguras que los procedimientos de tokens modernos.

3. ¿Qué es OAuth2?

OAuth2 es un marco de autorización que permite a los clientes acceder a recursos en nombre de un usuario sin conocer su contraseña. Soporta diferentes flujos para distintos casos de uso.

4. ¿Qué es OpenID Connect?

OpenID Connect es una capa de autenticación sobre OAuth2. Proporciona un ID Token con información de identidad y se usa para Single Sign-On y autenticación basada en usuarios.

5. ¿Qué es un JWT?

JWT significa JSON Web Token. Es un formato de token compacto con encabezado, payload y firma. Los JWT contienen claims como identidad y fecha de expiración y se usan frecuentemente para acceso a APIs.

6. ¿Qué es RBAC?

RBAC significa Role-Based Access Control. Los permisos se asignan a roles y los usuarios reciben uno o varios roles. RBAC es simple y adecuado para muchas aplicaciones estándar.

7. ¿Qué es ABAC?

ABAC significa Attribute-Based Access Control. Los permisos se derivan de atributos del usuario, recurso y entorno. ABAC es más flexible pero también más complejo que RBAC.

8. ¿Qué significa mínimo privilegio?

Mínimo privilegio significa que los usuarios y clientes deben recibir solo los permisos mínimos necesarios para su tarea. Esto reduce el daño potencial si se compromete la cuenta.

9. ¿Se deben usar API Keys en APIs públicas?

Las API Keys pueden usarse en APIs públicas con riesgo bajo, por ejemplo para rate limiting o identificación simple. Para datos sensibles o acceso de escritura, se deben usar procedimientos más seguros como OAuth2 o JWT.

10. ¿Qué es un Bearer Token?

Un Bearer Token es un token que el cliente envía en el encabezado Authorization. Quien posea el token se considera autorizado. Los Bearer Tokens deben protegerse y ser de corta duración.

11. ¿Qué es autenticación multifactor?

La autenticación multifactor requiere múltiples pruebas independientes de identidad, como contraseña y código de un solo uso. Aumenta significativamente la seguridad, especialmente para operaciones sensibles.

12. ¿Cuál es la diferencia entre OAuth2 Scopes y RBAC?

Los Scopes definen a qué recursos o acciones puede acceder un cliente, a menudo en el contexto de un token. RBAC asigna permisos a través de roles dentro de una aplicación. Ambos pueden combinarse.

13. ¿Por qué la autorización no debe ocurrir solo en el cliente?

Los clientes pueden manipularse. La autorización siempre debe aplicarse del lado del servidor, ya que es el único lugar de confianza. Las validaciones en frontend son solo para mejorar la experiencia del usuario.

14. ¿Qué es Token-Refresh?

Token-Refresh es el proceso de obtener un nuevo Access Token usando un Refresh Token. Los Access Tokens permanecen de corta duración, mientras que los Refresh Tokens permiten una sesión más larga sin reingreso de contraseña.

15. ¿Cuáles son errores típicos en seguridad de API?

Los errores típicos son transmisión sin encriptar, tokens de larga duración, validación de tokens faltante, validaciones de permisos solo en cliente, claves codificadas y auditoría insuficiente.

Continuamos en la ruta de aprendizaje de APIs

El siguiente artículo en la ruta de aprendizaje de APIs cubre REST API Seguridad: Autenticación, Autorización y Medidas de Protección — protección integral de REST APIs con OAuth, JWT, RBAC, CORS y Rate Limiting.

Referencias

  1. https://datatracker.ietf.org/doc/html/rfc6749
  2. https://openid.net/connect/
  3. https://datatracker.ietf.org/doc/html/rfc7519

Libros recomendados sobre seguridad de APIs

Si quieres profundizar en autenticación de APIs, autorización y seguridad de APIs, te recomendamos los siguientes libros:

Keine Bücher für Kategorie "security" gefunden.

Volver al blog
Share:

Entradas relacionadas