Una Introducción a
OAuth 2 – Mitchell
Anicas
[Link]
Julio César Gonzales Alcalde
[Link]@[Link]
UPC – FIB – MEI – CC
02/03/2023
OAuth2
• Es un framework de autorización que
permite a las aplicaciones obtener acceso
limitado a cuentas de usuario en un servicio
HTTP.
• Delega la autenticación del usuario al
servicio que aloja la cuenta del mismo y
autoriza a las aplicaciones de terceros el
acceso a dicha cuenta de usuario.
• Proporciona flujos de autorización para
aplicaciones web y de escritorio; y
dispositivos móviles.
OAuth2 – Roles
• Propietario del Recurso
Usuario que da la autorización limitada o ilimitada a una aplicación, para
acceder a su cuenta.
• Cliente
Aplicación que desea acceder a la cuenta del usuario. Autorización debe ser
validada por la API.
• Servidor de Recursos
API que aloja las cuentas de usuario protegidas.
• Servidor de Autorización
API que verifica la identidad del usuario y luego genera tokens de acceso a la
aplicación.
OAuth2 – Flujo de Protocolo Abstracto
OAuth2 – Registro de Aplicación
• Antes del uso, se debe registrar la aplicación con el
servicio.
• Formulario de registro en la parte del “desarrollador”
o “API” del sitio web del servicio:
• Se proporciona la siguiente información:
• Nombre de la aplicación
• Sitio web de la aplicación
• Redirect URI o Callback URL
• Una vez registrada la aplicación, el servicio emitirá
“credenciales del cliente” en forma de un
identificador de cliente (ID - identifica la aplicación /
genera las URL de autorización) y un secreto de
cliente (para autenticar).
• Mantener la confidencialidad entre la app y la API.
OAuth2 – Obtención de la Autorización
• Código de Autorización
Aplicaciones del lado del servidor.
• Implícito
Aplicaciones móviles o web (se ejecutan el dispositivo del usuario).
• Credenciales de Contraseña
del Propietario del Recurso
Aplicaciones confiables, como aquellas pertenecientes al servicio.
• Credenciales del Cliente
Acceso API de aplicaciones.
OAuth2 – Flujo de Código de Autorización
OAuth2 – Flujo Implícito
OAuth2 – Flujo Credenciales Contraseña del
Propietario del Recurso
• El usuario proporciona sus credenciales de servicio (nombre de
usuario y contraseña) directamente a la aplicación y esta las
utiliza para obtener del servicio un token de acceso.
• Solo debe habilitarse en el servidor de autorización, si otros
flujos no son viables. Además, solo debe utilizarse si la
aplicación es confiable para el usuario.
• La solicitud POST puede ser similar a lo siguiente:
• [Link]
assword=PASSWORD&client_id=CLIENT_ID
OAuth2 – Flujo Credenciales de Cliente
• Proporciona a la aplicación una forma de acceder a su propia
cuenta de servicio.
• La aplicación solicita un token de acceso enviando sus
credenciales, su ID de cliente y su secreto de cliente, al
servidor de autorización.
• La solicitud POST puede ser similar a lo siguiente:
• [Link]
ID&client_secret=CLIENT_SECRET
OAuth2 – Ejemplo del Uso del Token
• Si la aplicación tiene un token de acceso,
puede utilizarlo para acceder a la cuenta del
usuario a través de la API, mientras el token
esté vigente.
• Hacer una solicitud desde el API, utilizando un
token de acceso que ha caducado, generará un
error de token inválido “Invalid Token Error”.
• Si cuando se emitió el token de acceso original
se incluyó un token de actualización, entonces
este puede ser usado para solicitar un token
de acceso nuevo desde el servidor de
autorización.
GRACIAS
How application
platforms have
matured