Autorización OAuth 2.0
OAuth 2.0 es un framework de autorización (RFC 6749) para conceder acceso a recursos protegidos. Permite que aplicaciones de terceros obtengan acceso a datos del usuario sin exponer las credenciales del usuario. En lugar de compartir contraseñas, los servicios proporcionan tokens.
Si tu proveedor emite tokens de acceso JWT, el decodificador JWT gratuito muestra lo que contiene un token, como sus scopes y su caducidad.
Contexto
Sección titulada «Contexto»Imagina que quieres usar una aplicación de terceros que necesita acceder a datos de tu cuenta de Google. No querrías proporcionar a esta aplicación de terceros tu nombre de usuario y contraseña de Google, ¿verdad? Aquí es donde entra OAuth. Te permite conceder a esta aplicación acceso a tus datos de Google sin compartir tus credenciales de Google.
Conceptos Básicos de OAuth 2.0
Sección titulada «Conceptos Básicos de OAuth 2.0»OAuth 2.0 se enfoca en la simplicidad para el desarrollador del cliente mientras proporciona flujos de autorización específicos para aplicaciones web, aplicaciones de escritorio, teléfonos móviles y dispositivos de sala de estar. Aquí hay un desglose simplificado:
-
Propietario del Recurso: El usuario que autoriza a una aplicación a acceder a su cuenta. El acceso de la aplicación a la cuenta del usuario está limitado al "alcance" de la autorización concedida (por ejemplo, lectura o escritura de un tipo específico de datos).
-
Cliente: La aplicación que quiere acceder a la cuenta del usuario. Antes de hacerlo, debe ser autorizada por el usuario y la autorización debe ser validada por la API.
-
Servidor de Recursos: El servidor que aloja las cuentas de usuario. Puede aceptar y responder a solicitudes de recursos protegidos usando tokens de acceso.
-
Servidor de Autorización: Este servidor verifica la identidad del usuario y luego emite tokens de acceso a la aplicación.
Flujos de OAuth 2.0
Sección titulada «Flujos de OAuth 2.0»Hay varios "flujos" o "tipos de concesión" para diferentes tipos de aplicaciones y casos de uso:
-
Authorization Code (para aplicaciones ejecutándose en un servidor web): Este es el flujo más común, especialmente para aplicaciones web. Implica redirigir al usuario al servicio, donde inicia sesión. Después del inicio de sesión, es redirigido de vuelta a la aplicación con un código de autorización, que la aplicación puede intercambiar por un token de acceso.
-
Implicit (obsoleto, para aplicaciones ejecutándose en un navegador): El token de acceso se devuelve de inmediato, sin el paso de intercambio de un código de autorización. Las recomendaciones de seguridad actuales (RFC 9700) desaconsejan este flujo; usa el flujo de código de autorización siempre que puedas.
-
Resource Owner Password Credentials (obsoleto): La aplicación envía el nombre de usuario y la contraseña del usuario directamente al servidor de autorización. Va en contra del propósito de OAuth (la aplicación ve la contraseña) y las recomendaciones de seguridad actuales (RFC 9700) indican no usarlo en sistemas nuevos.
-
Client Credentials: No interviene ningún usuario. El cliente se autentica por sí mismo para obtener un token, por ejemplo un servicio en segundo plano que llama a una API.
En lugar de usar las credenciales del usuario, OAuth 2.0 usa tokens. Hay dos tipos:
-
Token de Acceso: Permite a la aplicación hacer solicitudes de API en nombre del usuario. Normalmente tiene una vida útil corta.
-
Refresh Token: Opcional. Puede usarse para obtener un nuevo token de acceso cuando este ha expirado, de modo que el usuario no tenga que iniciar sesión de nuevo.
Seguridad
Sección titulada «Seguridad»OAuth 2.0 depende de TLS para proteger los tokens y las credenciales entre el cliente, el servidor de autorización y el servidor de recursos. Los tokens de acceso suelen ser bearer tokens: quien tiene uno puede usarlo. Las vidas útiles cortas y los scopes estrechos limitan el daño si uno se filtra, así que mantén los tokens fuera de los logs y las URL.
OAuth 2.0 en LoadFocus
Sección titulada «OAuth 2.0 en LoadFocus»Para hacer una prueba de carga de una API protegida con OAuth 2.0, abre Más opciones en el formulario de nueva prueba, haz clic en Autorización (se aplica a todas las peticiones), establece Tipo de autorización en OAuth 2.0 y elige el Grant Type que usa tu API: Authorization Code, Implicit, Password Credentials, Client Credentials o Refresh Token. Si no estás seguro de cuál es, lee ¿Qué es un tipo de concesión?. Cada tipo de concesión tiene su propia guía, por ejemplo Client Credentials y Authorization Code.
