Herramientas de usuario

Herramientas del sitio


informatica:programacion:api

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:api [2022/04/16 12:27] – [OAuth] tempwininformatica:programacion:api [2022/04/16 13:09] (actual) – [OAuth] tempwin
Línea 11: Línea 11:
 Acceso limitado a ciertos recursos mediante autorización. 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.+OAuth viene de **Open Authorization**, es decir, dar a "otros" autorización para acceder de forma **limitada** a ciertos recursos.
  
 En resumen: En resumen:
Línea 38: Línea 38:
   - El Resource Server envía los recursos solicitados por el cliente y a los que tiene autorización.   - El Resource Server envía los recursos solicitados por el cliente y a los que tiene autorización.
  
-Tipos de autorizaciones (//authorization grant types):+<code> 
 +     +--------+                               +---------------+ 
 +            |--(A)- Authorization Request ->  Resource    | 
 +            |                                   Owner     | 
 +            |<-(B)-- Authorization Grant ---|               | 
 +            |                               +---------------+ 
 +            | 
 +            |                               +---------------+ 
 +            |--(C)-- Authorization Grant -->| Authorization | 
 +     | Client |                                   Server    | 
 +            |<-(D)----- Access Token -------|               | 
 +            |                               +---------------+ 
 +            | 
 +            |                               +---------------+ 
 +            |--(E)----- Access Token ------>   Resource   | 
 +            |                                   Server    | 
 +            |<-(F)--- Protected Resource ---|               | 
 +     +--------+                               +---------------+ 
 +</code> 
 + 
 +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.   * **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.
Línea 44: Línea 64:
   * **Resource Owner**: permisos totales sobre los recursos.   * **Resource Owner**: permisos totales sobre los recursos.
   * **Client credencials**: nunca se le pregunta al propietario del recursos por permiso.   * **Client credencials**: nunca se le pregunta al propietario del recursos por permiso.
 +
 +El más utilizado es el de **Authorization Code**.
 +
 +Un **token de acceso** (//access token//) se usa para poder acceder a un recurso protegido.
 +
 +El **refresh token** es lo que se utiliza para conseguir un nuevo token de acceso. Se utiliza cuando el token de acceso tiene un tiempo de vida limitado.
 +
 +=== Authorization Code Grant ===
 +
 +Antes de comenzar el flujo del protocolo, el cliente debe haber conseguir del Authentication Server un **Client ID**.
 +
 +El cliente / aplicación hace una petición HTTP al //endpoint// de su interés, envía su ID y autenticación al Authorization Server para obtener el código de autorización.
 +
 +El cliente envía el código de autorización al Authorization Server y este le devuelve el **access token**.
 +
 +=== Registro de clientes ===
 +
 +El cliente hace una solicitud HTTP al Authorization Server y este le devuelve:
 +
 +  * Client ID
 +  * Client Secret (cuando el tipo de cliente es confidencial)
 ===== APIs públicas ===== ===== APIs públicas =====
  
   * [[https://github.com/public-apis/public-apis|Colección de APIs públicas]] (GitHub)   * [[https://github.com/public-apis/public-apis|Colección de APIs públicas]] (GitHub)
informatica/programacion/api.1650104830.txt.gz · Última modificación: por tempwin