¡Esta es una revisión vieja del documento!
Tabla de Contenidos
API
Interfaz de programación de aplicaciones (Application Programming Interface). Es un conjunto de rutinas que provee acceso a funciones de un determinado software. Son utilizadas por los programadores para construir sus aplicaciones sin necesidad de volver a programar funciones ya hechas por otros, reutilizando código que se sabe que está probado y que funciona correctamente.
Acceso
OAuth
La especificación de OAuth 2.0 se puede encontrar en el RFC 6749
Acceso limitado a ciertos recursos mediante autorización.
OAuth viene de Other Authorization, es decir, dar a “otros” autorización para acceder de forma limitada a ciertos recursos.
En resumen:
- OAuth permite acceso a terceros/otros (clientes o aplicaciones)
- Provee acceso limitado (autorizado)
- Acceso a un servicio web (vía HTTP)
- OAuth 1.0 está obsoleto
Dado que hay riesgo en dar credenciales a terceros, OAuth emplea un token de acceso. Este token es el usado para obtener acceso a los recursos protegidos.
Roles:
- Resource Owner: propietario del recurso al que se quiere acceder.
- Resource Server: provee los recursos
- Cliente / Aplicación (third party): quien accede a los recursos
- Authorization Server: provee el token de acceso al cliente/aplicación para acceder a los recursos.
Flujo del protocolo OAuth:
- El cliente hace una petición de autorización al Resource Owner
- El Resource Owner responde con una permiso de acceso (Authorization Grant) al cliente indicándole que tiene autorización para acceder a los recursos.
- El cliente envía el permiso obtenido al Authorization Server que es responsable de proteger los recursos del Resource Owner
- El Authorization Server envía al cliente el token de acceso.
- El cliente usa el token de acceso con el Resource Server para obtener los recursos protegidos.
- El Resource Server envía los recursos solicitados por el cliente y a los que tiene autorización.
Tipos de autorizaciones (authorization grant types):
- Authorization code: el cliente pide autorización al propietario del recursos a través del Authorization Server. El propietario del recursos tiene que acceder al Authorization Server para darle permisos.
- Implicit: los recursos de solicitan a través de un programa.
- Resource Owner: permisos totales sobre los recursos.
- Client credencials: nunca se le pregunta al propietario del recursos por permiso.
El más utilizado es el de Authorization Code.
APIs públicas
- Colección de APIs públicas (GitHub)
