SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Introducción al Protocolo OAuth 2.0
Securizando Servicios Web
Ejemplos prácticos de uso
Álvaro Alonso
2
3
OAuth 2.0
4
Agenda
¡  Introducción al protocolo
¡  Roles
¡  Arquitectura OAuth 2.0
¡  Grant-types
¡  Hello OAuth
¡  Google Accounts
¡  FIWARE Account
¡  Securizando backends
5
Introducción al protocolo
¡  Permitir a las aplicaciones el acceso a recursos protegidos
¡  Sin compartir credenciales
¡  Las aplicaciones utilizan access tokens
¡  Creadas por los proveedores Oauth
¡  Permiten el acceso a los recursos
¡  Especificación diseñada para el uso con HTTP
¡  Especificación
¡  http://oauth.net/2/
¡  http://tools.ietf.org/html/rfc6749
6
Introducción al protocolo
¡  Resource Owner
¡  Entidad capaz de permitir el acceso a los recursos protegidos
¡  e.g. usuario final
¡  Resource Server
¡  Servidor que aloja los recursos protegidos
¡  Client
¡  Aplicación que solicita los recursos protegidos en nombre del
Resource Owner
¡  Authorization Server
¡  El servidor que provee access tokens al cliente
Roles
7
Arquitectura OAuth 2.0 Authorization Code Grant
8
Client
myservice.com
Resource Owner
Auth Server
Resource owner
Arquitectura OAuth 2.0 Implicit Grant
9
Client
myservice.com
Resource Owner
Auth Server
Resource owner
Arquitectura OAuth 2.0
Resource Owner Password
Credentials Grant
10
Client
myservice.com
Resource Owner
Auth Server
Resource owner
Arquitectura OAuth 2.0 Client Credentials Grant
11
Client
myservice.com
Resource Owner
Auth Server
Hello OAuth
¡  Documentación Google Developers
¡  https://developers.google.com/identity/protocols/OAuth2
¡  Librerías OAuth 2.0
¡  http://oauth.net/2/
¡  Ejemplo básico Node.js
¡  https://github.com/aalonsog/oauth2-master
¡  Google OAuth 2.0 Playground
¡  https://developers.google.com/oauthplayground/
Google Accounts
12
Hello OAuth Quién es quién
13
Hello OAuth Web server applications
14
Hello OAuth Web server applications
15
Authorization Code Grant
Hello OAuth Installed applications
16
Hello OAuth Installed applications
17
Authorization Code Grant
Hello OAuth Client-side (JavaScript) applications
18
Hello OAuth Client-side (JavaScript) applications
19
Implicit Grant
Hello OAuth
1.  Tener una cuenta en Google Accounts
o  Si usas Gmail ya tienes una!
2.  Crear un nuevo proyecto en Developers Console
o  https://console.developers.google.com/project
3.  Obtener credenciales de OAuth 2.0
o  Dependiendo del tipo de Grant Type
o  Configurar pantalla de autorización
4.  Configurar nuestra librería de OAuth 2.0
Pasos
20
Hello OAuth Demo
21
Pero…
22
Client
myservice.com
Resource Owner
Auth Server
Resource owner
¡  Open initiative to create a technologic ecosystem
¡  APIs for smart applications
¡  Public and royalty-free
¡  Open source reference
¡  FIWARE Lab
¡  Non-commercial sandbox for experimentation
¡  Open data published by cities
¡  Distributed among several regions
¡  FIWARE Ops
¡  Set of tools for deployment and operation
¡  UPM takes part in four Chapters
¡  ‪Sustainability Support Tools‬
¡  Security
¡  Cloud Hosting
¡  Applications/Services and Data Delivery
23
24
25
Account
FIWARE Account Login
26
Signin with
FIWARE Account Generic Enablers
27
FIWARE Account Otros backends
28
Introducción al Protocolo OAuth 2.0
Securizando Servicios Web
Ejemplos prácticos de uso
Álvaro Alonso

Más contenido relacionado

Similar a Introducción al Protocolo OAuth 2.0

Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02
Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02
Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02
YAK2067
 
Filtrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidFiltrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y Squid
Jorge Medina
 
Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)
Diego Vasco
 
Identidad en la Red y portabilidad de datos personales
Identidad en la Red y portabilidad de datos personalesIdentidad en la Red y portabilidad de datos personales
Identidad en la Red y portabilidad de datos personales
sgua
 

Similar a Introducción al Protocolo OAuth 2.0 (20)

OAuth and OpenID
OAuth and OpenIDOAuth and OpenID
OAuth and OpenID
 
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los serviciosWSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIs
 
Single Sign On Salesforce Developer Group
Single Sign On Salesforce Developer GroupSingle Sign On Salesforce Developer Group
Single Sign On Salesforce Developer Group
 
Desarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos DeportivosDesarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos Deportivos
 
Hack Like a Pro With Custom VPS - Taller Navaja Negra 2019
Hack Like a Pro With Custom VPS - Taller Navaja Negra 2019Hack Like a Pro With Custom VPS - Taller Navaja Negra 2019
Hack Like a Pro With Custom VPS - Taller Navaja Negra 2019
 
Borghello Open Id
Borghello Open IdBorghello Open Id
Borghello Open Id
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02
Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02
Filtradocontenidowebcongnulinuxysquid 110414191512-phpapp02
 
Implement Identity Server with .NET
Implement Identity Server with .NETImplement Identity Server with .NET
Implement Identity Server with .NET
 
Autenticación en aplicaciones .Net web y nativas
Autenticación en aplicaciones .Net web y nativasAutenticación en aplicaciones .Net web y nativas
Autenticación en aplicaciones .Net web y nativas
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
 
Cifrado de flujos de vídeo en HTML5
Cifrado de flujos de vídeo en HTML5Cifrado de flujos de vídeo en HTML5
Cifrado de flujos de vídeo en HTML5
 
Certificados digitales
Certificados digitalesCertificados digitales
Certificados digitales
 
Atix30
Atix30Atix30
Atix30
 
Filtrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidFiltrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y Squid
 
Hack like a pro with custom VPS - Najava Negra 2019
Hack like a pro with custom VPS - Najava Negra 2019Hack like a pro with custom VPS - Najava Negra 2019
Hack like a pro with custom VPS - Najava Negra 2019
 
Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)
 
Identidad en la Red y portabilidad de datos personales
Identidad en la Red y portabilidad de datos personalesIdentidad en la Red y portabilidad de datos personales
Identidad en la Red y portabilidad de datos personales
 
Portales y portlets web
Portales y portlets webPortales y portlets web
Portales y portlets web
 

Más de Álvaro Alonso González

Más de Álvaro Alonso González (20)

Adding identity management and access control to your app
Adding identity management and access control to your appAdding identity management and access control to your app
Adding identity management and access control to your app
 
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREKeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
 
Curso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzadosCurso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzados
 
Curso AngularJS - 6. formularios
Curso AngularJS - 6. formulariosCurso AngularJS - 6. formularios
Curso AngularJS - 6. formularios
 
Curso AngularJS - 5. rutas
Curso AngularJS - 5. rutasCurso AngularJS - 5. rutas
Curso AngularJS - 5. rutas
 
Curso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y serviciosCurso AngularJS - 4. filtros y servicios
Curso AngularJS - 4. filtros y servicios
 
Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladores
 
Curso AngularJS - 1. introducción
Curso AngularJS - 1. introducciónCurso AngularJS - 1. introducción
Curso AngularJS - 1. introducción
 
Curso AngularJS - 2. conceptos básicos
Curso AngularJS - 2. conceptos básicosCurso AngularJS - 2. conceptos básicos
Curso AngularJS - 2. conceptos básicos
 
Lesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portalLesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portal
 
Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure
 
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
 
Keyrock - Lesson 1. Introduction
Keyrock - Lesson 1. IntroductionKeyrock - Lesson 1. Introduction
Keyrock - Lesson 1. Introduction
 
Cloud Portal - Lesson 5. Advanced tasks
Cloud Portal - Lesson 5. Advanced tasksCloud Portal - Lesson 5. Advanced tasks
Cloud Portal - Lesson 5. Advanced tasks
 
Cloud Portal - Lesson 4. Managing Storage
Cloud Portal - Lesson 4. Managing StorageCloud Portal - Lesson 4. Managing Storage
Cloud Portal - Lesson 4. Managing Storage
 
Cloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal OverviewCloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal Overview
 
Cloud Portal - Lesson 1. Introduction
Cloud Portal - Lesson 1. IntroductionCloud Portal - Lesson 1. Introduction
Cloud Portal - Lesson 1. Introduction
 
Cloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an InstanceCloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an Instance
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 
Adding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationAdding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your Application
 

Último

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 

Último (20)

libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Trazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptxTrazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptx
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramiento
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfFUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.ppt
 

Introducción al Protocolo OAuth 2.0

  • 1. Introducción al Protocolo OAuth 2.0 Securizando Servicios Web Ejemplos prácticos de uso Álvaro Alonso
  • 2. 2
  • 3. 3
  • 5. Agenda ¡  Introducción al protocolo ¡  Roles ¡  Arquitectura OAuth 2.0 ¡  Grant-types ¡  Hello OAuth ¡  Google Accounts ¡  FIWARE Account ¡  Securizando backends 5
  • 6. Introducción al protocolo ¡  Permitir a las aplicaciones el acceso a recursos protegidos ¡  Sin compartir credenciales ¡  Las aplicaciones utilizan access tokens ¡  Creadas por los proveedores Oauth ¡  Permiten el acceso a los recursos ¡  Especificación diseñada para el uso con HTTP ¡  Especificación ¡  http://oauth.net/2/ ¡  http://tools.ietf.org/html/rfc6749 6
  • 7. Introducción al protocolo ¡  Resource Owner ¡  Entidad capaz de permitir el acceso a los recursos protegidos ¡  e.g. usuario final ¡  Resource Server ¡  Servidor que aloja los recursos protegidos ¡  Client ¡  Aplicación que solicita los recursos protegidos en nombre del Resource Owner ¡  Authorization Server ¡  El servidor que provee access tokens al cliente Roles 7
  • 8. Arquitectura OAuth 2.0 Authorization Code Grant 8 Client myservice.com Resource Owner Auth Server Resource owner
  • 9. Arquitectura OAuth 2.0 Implicit Grant 9 Client myservice.com Resource Owner Auth Server Resource owner
  • 10. Arquitectura OAuth 2.0 Resource Owner Password Credentials Grant 10 Client myservice.com Resource Owner Auth Server Resource owner
  • 11. Arquitectura OAuth 2.0 Client Credentials Grant 11 Client myservice.com Resource Owner Auth Server
  • 12. Hello OAuth ¡  Documentación Google Developers ¡  https://developers.google.com/identity/protocols/OAuth2 ¡  Librerías OAuth 2.0 ¡  http://oauth.net/2/ ¡  Ejemplo básico Node.js ¡  https://github.com/aalonsog/oauth2-master ¡  Google OAuth 2.0 Playground ¡  https://developers.google.com/oauthplayground/ Google Accounts 12
  • 13. Hello OAuth Quién es quién 13
  • 14. Hello OAuth Web server applications 14
  • 15. Hello OAuth Web server applications 15 Authorization Code Grant
  • 16. Hello OAuth Installed applications 16
  • 17. Hello OAuth Installed applications 17 Authorization Code Grant
  • 18. Hello OAuth Client-side (JavaScript) applications 18
  • 19. Hello OAuth Client-side (JavaScript) applications 19 Implicit Grant
  • 20. Hello OAuth 1.  Tener una cuenta en Google Accounts o  Si usas Gmail ya tienes una! 2.  Crear un nuevo proyecto en Developers Console o  https://console.developers.google.com/project 3.  Obtener credenciales de OAuth 2.0 o  Dependiendo del tipo de Grant Type o  Configurar pantalla de autorización 4.  Configurar nuestra librería de OAuth 2.0 Pasos 20
  • 23. ¡  Open initiative to create a technologic ecosystem ¡  APIs for smart applications ¡  Public and royalty-free ¡  Open source reference ¡  FIWARE Lab ¡  Non-commercial sandbox for experimentation ¡  Open data published by cities ¡  Distributed among several regions ¡  FIWARE Ops ¡  Set of tools for deployment and operation ¡  UPM takes part in four Chapters ¡  ‪Sustainability Support Tools‬ ¡  Security ¡  Cloud Hosting ¡  Applications/Services and Data Delivery 23
  • 24. 24
  • 27. FIWARE Account Generic Enablers 27
  • 28. FIWARE Account Otros backends 28
  • 29. Introducción al Protocolo OAuth 2.0 Securizando Servicios Web Ejemplos prácticos de uso Álvaro Alonso