OAuth 2.0 es un protocolo abierto que nos brinda autorización y delegación para nuestras APIs HTTP. En esta sesión daremos un repaso al estado del arte de la seguridad en las APIs HTTP. A continuación pasaremos a entender que es este protocolo y como funciona. Daremos un repaso a todos sus flujos: Authorization Code, Implicit, Client Credentials, ROPC, PKCE… y veremos ejemplos en directo para acabar de tener un imagen completa de todo lo que nos ofrece y que nos servirá para cuando empecemos a trabajar con servidores de identidad OIDC.
23. OAuth2 – Implicit
Consideraciones:
■ Los access tokens están expuestos al Resource
Owner.
■ Los access tokens son accesibles a través de
JavaScript.
28. OAuth2 – Client Credentials
Client Credentials != API Keys / Basic Authentication
• Las credenciales no se envían en cada petición.
• AccessTokens.
• Limitar el tiempo de acceso al recurso.
44. Proof Key for Code Exchange (PKCE) A.K.A
Pixie
Native Client
Authorization Server
Authorization Request: Include code_challenge
Authorization Code
Token Request: Include code_verifier
AccessToken
Store code_challenge
Compare code_verifier and
code_challenge
OAuth es un protocolo de autorización, o mejor todavía, un protocolo de delegación.
OAuth no usa contraseñas, en lugar de estas usa lo que se conoce como tokens de authorización. Esto nos permite que una aplicación pueda interactuar con otra en nuestro nombre sin tener que darle nuestra password y limitando el acceso (Dando consentimiento) que tiene a nuestra información a través de lo que se conoce como “scopes” o permisos.