SlideShare uma empresa Scribd logo
1 de 51
DevConf - Agosto 2016
Autenticación
Autorización
vs
This is our vision
Building the foundation to Build a 3B Company by FY20
Agenda
Autenticación . ¿Qué es? - Métodos de Autenticación
Recursos . Públicos y Privados
Autorización . ¿Qué es? - Protocolo OAuth
Flujo de autorización . Client-Side - Server-Side
Crear una aplicación . Crear una app en Mercadolibre
Ejemplo en código. Server-Side
Preguntas
Autenticación
Autorización
Autenticación
Autenticación
Autenticación
Recursos
Recursos Privados
Recursos Públicos
vs
Recursos públicos
http://perfil.mercadolibre.com.co/DEVELOPERCONFERENCECOLOMBIA
https://api.mercadolibre.com/users/221069015
https://api.mercadolibre.com/users/221069015
https://api.mercadolibre.com/users/221069015
https://api.mercadolibre.com/users/221069015
Recursos privados
Recursos privados
https://api.mercadolibre.com/users/221069015?access_token=APP_USR...
Autorización
Protocolo OAuth
Protocolo OAuth
Protocolo OAuth
Protocolo OAuth
1.0a 2.0
Protocolo OAuth
Protocolo OAuth
Protocolo OAuth
Grant Types
● Authorization Code (server-side)
● Implicit (client-side)
● Password Credentials
● Client Credentials
Flujo de Autorización
Flujo de Autorización
Authorization CodeImplicit
Client Side Server Side
Flujo de AutorizaciónClient Side
Flujo de AutorizaciónServer Side
Yendo a la acción
Crear una aplicación
http://applications.mercadolibre.com
Crear una aplicación
http://applications.mercadolibre.com
Crear una aplicación
http://applications.mercadolibre.com
Crear una aplicación
SCOPE READ
curl -X GET
https://api.mercadolibre.com/users/126610658
?access_token=APP_USR...
Crear una aplicación
SCOPE WRITE
curl -X POST -H "Content-Type: application/json" -d'
{
"title": "Item De Testeo, Por Favor No Ofertar",
"buying_mode":"buy_it_now",
"listing_type_id":"bronze",
"condition":"new",
"description": "Lorem ipsum dolor sit amet, an est odio timeam quaerendum.",
"video_id": "YOUTUBE_ID_HERE",
"warranty": "12 months",
"pictures":[ {"source":"http://..."}, {"source":"http://..."}]
}'
https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN
Crear una aplicación
SCOPE OFFLINE_ACCESS
Developer Client
Crear una aplicación
ACCESS_TOKEN
APP_USR-79614-0110-b3e00dfcbf8bdb9e3f2__F_B__-181345005
Flujo de AutorizaciónServer Side
Ejemplo en Código
AuthorizationController.classMercadolibre Application
AuthorizationController.class
AuthorizationController.class
https://auth.mercadolibre.com.co/authorization?response_type=code&client_id=4
39461806559899&redirect_uri=https://myServer.com/authorization_listen
Flujo de AutorizaciónServer Side
Flujo de AutorizaciónServer Side
https://myServer.com/authorization_listen
TG-57a8967ee4b0cd959e27c4f8-
126610658
Flujo de AutorizaciónServer Side
https://myServer.com/authorization_liste
n
ACCESS_TOKEN
APP_USR-439461806559899-080810-34ffc63b6bc64ff89__B_L__-126610658
https://myServer.com/authorization_liste
n
REFRESH_TOKEN
TG-57a89684e4b05ed03e00c4d2-126610658
Flujo de AutorizaciónServer Side
Muchas
Gracias
Los espero en el espacio de networking para
seguir aprendiendo juntos.
Twitter
@melidevelopers
@leandrobertalot

Mais conteúdo relacionado

Mais procurados

Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
Jakub Kubrynski
 
Git workflows
Git workflowsGit workflows
Git workflows
Xpand IT
 

Mais procurados (20)

Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak
 
GitLab.pptx
GitLab.pptxGitLab.pptx
GitLab.pptx
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLab
 
Implementing security requirements for banking API system using Open Source ...
 Implementing security requirements for banking API system using Open Source ... Implementing security requirements for banking API system using Open Source ...
Implementing security requirements for banking API system using Open Source ...
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구
 
CSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, LinzCSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, Linz
 
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
 
Github
GithubGithub
Github
 
Building Flexible APIs with Spring HATEOAS
Building Flexible APIs with Spring HATEOASBuilding Flexible APIs with Spring HATEOAS
Building Flexible APIs with Spring HATEOAS
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
BDD with CucumberJS and WebdriverIO
BDD with CucumberJS and WebdriverIOBDD with CucumberJS and WebdriverIO
BDD with CucumberJS and WebdriverIO
 
Git workflows
Git workflowsGit workflows
Git workflows
 
Github Case Study By Amil Ali
Github Case Study By Amil AliGithub Case Study By Amil Ali
Github Case Study By Amil Ali
 
Joget Workflow v4 Training - Module 9 - Hash Variable
Joget Workflow v4 Training - Module 9 - Hash VariableJoget Workflow v4 Training - Module 9 - Hash Variable
Joget Workflow v4 Training - Module 9 - Hash Variable
 
Akka Actor presentation
Akka Actor presentationAkka Actor presentation
Akka Actor presentation
 
Running Spring Boot Applications as GraalVM Native Images
Running Spring Boot Applications as GraalVM Native ImagesRunning Spring Boot Applications as GraalVM Native Images
Running Spring Boot Applications as GraalVM Native Images
 
GitHub Presentation
GitHub PresentationGitHub Presentation
GitHub Presentation
 

Semelhante a Autenticación vs. Autorización - ¿Cómo trabajar con el protocolo OAuth?

Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.
Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.
Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.
melidevelopers
 
Daniel rabinovich php conference
Daniel rabinovich   php conferenceDaniel rabinovich   php conference
Daniel rabinovich php conference
Daniel Rabinovich
 
Autorización - Leandro Bertalot
Autorización - Leandro BertalotAutorización - Leandro Bertalot
Autorización - Leandro Bertalot
fsolari
 
Autenticación y Autorización - MeliDevConf BsAs.
Autenticación y Autorización - MeliDevConf BsAs.Autenticación y Autorización - MeliDevConf BsAs.
Autenticación y Autorización - MeliDevConf BsAs.
melidevelopers
 
Darío Simonassi - API OVERVIEW 2014
Darío Simonassi - API OVERVIEW 2014Darío Simonassi - API OVERVIEW 2014
Darío Simonassi - API OVERVIEW 2014
fsolari
 

Semelhante a Autenticación vs. Autorización - ¿Cómo trabajar con el protocolo OAuth? (20)

Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.
Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.
Autenticación vs Autorización -¿Cómo trabajar con el protocolo OAUTH?.
 
La importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsLa importancia de las APIs en los chatbots
La importancia de las APIs en los chatbots
 
Foro innovacion beeva 28 01-2014 -open business and the business of APIs
Foro innovacion beeva 28 01-2014 -open business and the business of APIsForo innovacion beeva 28 01-2014 -open business and the business of APIs
Foro innovacion beeva 28 01-2014 -open business and the business of APIs
 
Daniel rabinovich php conference
Daniel rabinovich   php conferenceDaniel rabinovich   php conference
Daniel rabinovich php conference
 
Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOA
 
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
 
Api rest client en Android
Api rest client en AndroidApi rest client en Android
Api rest client en Android
 
Autorización - Leandro Bertalot
Autorización - Leandro BertalotAutorización - Leandro Bertalot
Autorización - Leandro Bertalot
 
Soalatam apim v1.0
Soalatam apim v1.0Soalatam apim v1.0
Soalatam apim v1.0
 
Rebotlution
RebotlutionRebotlution
Rebotlution
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
APIs Mercado Libre
APIs Mercado LibreAPIs Mercado Libre
APIs Mercado Libre
 
Api managers
Api managersApi managers
Api managers
 
Indexabilidad de PWA - Fernando Maciá y Ramón Saquete - Tendencias SEO 2018
 Indexabilidad de PWA - Fernando Maciá y Ramón Saquete - Tendencias SEO 2018 Indexabilidad de PWA - Fernando Maciá y Ramón Saquete - Tendencias SEO 2018
Indexabilidad de PWA - Fernando Maciá y Ramón Saquete - Tendencias SEO 2018
 
Autenticación y Autorización - MeliDevConf BsAs.
Autenticación y Autorización - MeliDevConf BsAs.Autenticación y Autorización - MeliDevConf BsAs.
Autenticación y Autorización - MeliDevConf BsAs.
 
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
 
Darío Simonassi - API OVERVIEW 2014
Darío Simonassi - API OVERVIEW 2014Darío Simonassi - API OVERVIEW 2014
Darío Simonassi - API OVERVIEW 2014
 
MercadoPago - Ariel Leiva
MercadoPago - Ariel LeivaMercadoPago - Ariel Leiva
MercadoPago - Ariel Leiva
 
API Management
API ManagementAPI Management
API Management
 
Borghello Open Id
Borghello Open IdBorghello Open Id
Borghello Open Id
 

Mais de melidevelopers

Aprendendo sobre o seu mercado
Aprendendo sobre o seu mercadoAprendendo sobre o seu mercado
Aprendendo sobre o seu mercado
melidevelopers
 

Mais de melidevelopers (20)

Mercado Envíos Ful
Mercado Envíos FulMercado Envíos Ful
Mercado Envíos Ful
 
Fernando Adrian Scasserra
Fernando Adrian ScasserraFernando Adrian Scasserra
Fernando Adrian Scasserra
 
Lucía Brizuela
Lucía BrizuelaLucía Brizuela
Lucía Brizuela
 
Victor Piñal
Victor PiñalVictor Piñal
Victor Piñal
 
Leandro Bertalot y Jair Vázquez
Leandro Bertalot y Jair VázquezLeandro Bertalot y Jair Vázquez
Leandro Bertalot y Jair Vázquez
 
Omar Galicia
Omar GaliciaOmar Galicia
Omar Galicia
 
Daniel Gándara
Daniel GándaraDaniel Gándara
Daniel Gándara
 
Mercado Pago para seller del on
Mercado Pago para seller del onMercado Pago para seller del on
Mercado Pago para seller del on
 
Mandaê
MandaêMandaê
Mandaê
 
Eu entrego
Eu entregoEu entrego
Eu entrego
 
Be Commerce
Be CommerceBe Commerce
Be Commerce
 
Bling!
Bling!Bling!
Bling!
 
Any Market
Any MarketAny Market
Any Market
 
Aprendendo sobre o seu mercado
Aprendendo sobre o seu mercadoAprendendo sobre o seu mercado
Aprendendo sobre o seu mercado
 
AWS
AWS AWS
AWS
 
Mercado Pago - SDK mobile
Mercado Pago - SDK mobile Mercado Pago - SDK mobile
Mercado Pago - SDK mobile
 
sensedia - Design Sprint
sensedia - Design Sprint sensedia - Design Sprint
sensedia - Design Sprint
 
VTEX
VTEX VTEX
VTEX
 
Mercado pago - além do e-commerce
Mercado pago - além do e-commerceMercado pago - além do e-commerce
Mercado pago - além do e-commerce
 
Facebook - Marketing
Facebook - MarketingFacebook - Marketing
Facebook - Marketing
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (11)

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

Autenticación vs. Autorización - ¿Cómo trabajar con el protocolo OAuth?

Notas do Editor

  1. Buenas tardes! ¿Como les va? - ¿Cómo fue ese Cofee break!? Espero que la cafeína haya activado esas mentes para lo que se viene durante el transcurso del día Conmigo vamos a ver Autorización y Autenticación Pero antes...
  2. Aquí la agenda de la charla de hoy.
  3. Ahora si procedamos a explicar autorización y Autenticación
  4. La autenticación es el acto o proceso para el establecimiento o confirmación de algo (o alguien) como real. La autenticación de un objeto puede significar (pensar) la confirmación de su procedencia, mientras que la autenticación de una persona a menudo consiste en verificar su identidad. Todo ello en función de uno o varios factores. Yendo hacia lo técnico Es el servicio que trata de asegurar que una comunicación sea auténtica, es decir, verificar que el origen de los datos es el correcto, quién los envió y cuándo fueron enviados y recibidos también sean correctos. Algunos métodos de autenticación son...
  5. Algunos métodos de autenticación son: Biométricas, por huellas dactilares, retina del ojo, etc. Tarjetas inteligentes que guardan información de los certificados de un usuario Métodos clásicos basados en contraseña Por ejemplo...
  6. Por ejemplo para ingresar a Mercadolibre nosotros nos autenticamos a través del login. Con un usuario y una contraseña. De esta manera autenticamos nuestra identidad dentro de Mercadolibre. Con eso cubrimos los conceptos básicos de Autenticación.
  7. Antes de comenzar con Autorización debemos conocer algunos conceptos relacionados con los recursos. Los recursos se clasifican en dos grandes grupos...
  8. Recursos Públicos y Recursos Privados
  9. Los recursos públicos son aquellos que como su nombre lo indica son accesibles por todos sin necesidad de una autenticación o validación previa. En el ejemplo consultamos mi perfil de Mercadolibre como comprador. La información que allí se muestra (Nombre de usuario, ubicación, puntos como comprador, calificación, y los últimos artículos que compre). Es pública. Cualquier persona que acceda a esa dirección va a ver lo mismo y no necesitamos de una validación para verlos
  10. Accediendo al recurso users de nuestra API (api.mercadolibre.com) y consultando en base al id de usuario. vemos la misma información en formato JSON más algún agregado. Allí nuevamente tenemos ...
  11. Accediendo al recurso users de nuestra API (api.mercadolibre.com) y consultando en base al id de usuario. vemos la misma información en formato JSON más algún agregado. Allí nuevamente tenemos ...
  12. Accediendo al recurso users de nuestra API (api.mercadolibre.com) y consultando en base al id de usuario. vemos la misma información en formato JSON más algún agregado. Allí nuevamente tenemos ...
  13. Accediendo al recurso users de nuestra API (api.mercadolibre.com) y consultando en base al id de usuario. vemos la misma información en formato JSON más algún agregado. Allí nuevamente tenemos ...
  14. Los recursos privados son aquellos que no todo el mundo deben ver. Número de documento, edad, estado civil para aquellos que están de trampa, etc. Son ejemplo de datos que siguiendo el ejemplo del usuario dentro de Mercadolibre no todo el mundo debería poder verlos.
  15. Por ejemplo. Autenticando mi identidad dentro de Mercadolibre a través del login e ingresando a Mi Cuenta puedo ver información privada Como por ejemplo Mi número de Documento, email personal, mi teléfono personal. Mis tarjetas de Crédito, etc. Como verán no todo el mundo debe acceder a esta información
  16. ¿Quién podría verlos entonces? Si estoy autenticado el dueño de esa información debería poder verlos por razones obvias O también aquellos que el dueño de esos recursos autoricen para poder verlos y porque no también permitirles trabajar con ellos en caso que sea necesario A través de la llamada a la API accediendo al recurso de users nuevamente vemos los datos privados La diferencia con la llamada anterior es que en esta ocasión enviamos un parámetro llamado access_token. Por ahora no se preocupen por este parámetro ya que lo explicaré más adelante. Quiero que por ahora se lleven el concepto que ese parámetro sirvió para autorizar a ver mi información privada al que efectuó la llamada al recurso. De esta manera introducimos el concepto de Autorización.
  17. La autorización es el proceso mediante el cual autorizamos a alguien o algo a acceder a recursos privados que de otra manera no podrían ser accedidos. Con acceder nos referimos a que dentro de la autorización vamos a tener que definir qué recursos y que operaciones se pueden realizar con ellos. No es lo mismo autorización para solo lectura, que lectura / escritura. ¿Cómo logramos la autorización?
  18. A través del protocolo OAuth.
  19. A través del protocolo OAuth. Partimos con la explicación de lo que NO es. OAuth no es una API o un Servicio. Es un estándar abierto para flujos simples de autorización. Se trata de un protocolo que trabaja sobre HTTP que permite la autorización segura de una API, aplicaciones Web, etc. OAuth nos brinda factores claves para trabajar de manera segura, el primero de ellos es confidencialidad el usuario no deberá revelar su clave en ningún momento, Integridad sólo podrán ver datos privados aquellas aplicaciones que tengan el permiso de hacerlo y por ultimo Disponibilidad ya que los datos siempre estarán disponibles en el momento que se necesiten. OAuth no es el encargado de realizar tareas de login y autenticación. Se encarga de verificar los permisos que tengan los usuarios sobre recursos.
  20. Recuerden entonces que OAuth es un protocolo de autorización.
  21. Hay dos versiones de OAuth: OAuth 1.0a y luego salió la versión OAuth 2.0 Estas especificaciones son completamente diferentes unas de otras y no pueden ser usadas juntas. Tampoco hay retrocompatibilidad entre ellas. ¿Cual es más popular? - Sin dudas OAuth 2.0 es el más usado. Entonces si me lo permiten a partir de ahora cuando hable de OAuth estaré hablando de OAuth 2.0
  22. ¿Quien usa OAuth? Instagram, Facebook, Twiter, GitHub, Google, Mercadolibre entre muchísimas empresas más.
  23. ¿Cómo funciona?
  24. Hay 4 modos de funcionamiento posibles. Se denominan Grant Types. Cada uno es para diferentes propósitos y se usa de una manera diferente en cada uno de ellos. Dependiendo del servicio que se está construyendo quizás necesites usar uno omás de estos Grant Types. Ellos son: The Authorization Code Grant Type The authorization code grant type Este tipo de autorización se utiliza cuando construimos aplicaciones web en modo servidor (server-side). Si queremos implementar el flujo de OAuth en un server-side con web frameworks como por ejemplo, Groovy on Rails, Ruby on Rails, Java, etc. Authorization code es la forma de hacerlo The Implicit Grant Type The implicit grant type está destinado a ser usado en aplicaciones web que trabajan del lado del cliente (client-side), (como JavaScript y Angular) que no necesitan tener un componente en modo servidor (server-side). O también cualquier aplicación mobile que usa un web browser mobile. Y los próximos 2 que a efectos de esta presentación no entraremos en mucho detalle pero esta bueno explicarlos brevemente. The Password Credentials Grant Type Password credentials grant type puede ser usado tanto para aplicaciones web como mobile. Simplifica el flujo de autorización solamente consultado nombre de usuario y contraseña. Es muy común usarlo en aplicaciones nativas como Android y IPhone o en aplicaciones web. La desventaja de este esquema es que solamente la web / mobile nativas puede usar esto. The Client Credentials Grant Type Client credentials grant type es usado para aplicaciones que necesitan realizar tareas no relacionadas con los usuarios. Actualizar metadatos, leer métricas (Cuantos usuarios se loguean en nuestro servicio), etc. Si estamos construyendo una aplicación que hagas procesos de background que no interactúan con un usuario en un web browser este es el grant type que debemos utilizar.
  25. Vamos a explicar como sería el flujo de Autorización para los dos primeros, es decir para aplicaciones client-side y para aplicaciones server-side
  26. Como mencionamos anteriormente hay dos flujos que se pueden implementar Implicit para aplicaciones que trabajan en el lado del cliente Authorization conde para aplicaciones que trabajan del lado del servidor
  27. El flujo en aplicaciones que trabajan del lado del cliente solamente lo vamos a explicar dejando en más detalle al flujo en modo servidor
  28. Vamos entonces con el flujo de autorización de aplicaciones que ejecutan código del lado del servidor.
  29. El access token que vemos en ambos flujos es el que utilizamos para acceder a los recursos
  30. Con todo lo que hemos visto vamos a ponerlo en práctica y hacer un flujo completo de Autorización en Mercadolibre
  31. El primer paso que necesitamos es crear una aplicación. Esta aplicación trabajará interactuando con la API de Mercadolibre y será aquella a la que los usuarios le van a dar permisos para poder trabajar en su nombre y acceder a sus recursos Públicos y Privados (Autorización). Para ello ingresamos a htttp://applications.mercadolibre.com. Seleccionamos el país en el cual deseamos que opere la aplicación
  32. En la pantalla principal encontraremos un botón para crear una nueva aplicación el que nos llevará a un formulario. En la primera parte de este deberemos ingresar un Nombre a nuestra aplicación lo suficientemente descriptivo para que los usuarios nos reconozcan, un nombre corto para identificarla rápidamente y una descripción de lo que se podrá hacer con la misma.
  33. Siguiendo con el formulario deberemos ingresar la URL donde trabajará mi aplicación. Por ejemplo si estoy desarrollando algo en mi computadora local, puedo utilizar https://localhost/mercadolibre Si estoy trabajando con JavaScripts deberé poner todas las URLs con las que trabajaré y por ultimo ingresar los Scopes de mi integración. ¿Qué son los scopes? ¿Recuerdan que en el flujo de autorización autorizamos a alguien o algo para que opere sobre nuestros recursos? Aquí definimos las acciones que van a poder hacer con ellos a través de los scopes
  34. El Scope Read comúnmente llamado de lectura, nos sirve para obtener la información privada que estemos autorizados a consultar. Por ejemplo a través de una llamada GET como vimos anteriormente en recursos privados obtenemos la información privada del usuario NLEGRESTI
  35. El Scope Wirte comúnmente llamado de Escritura. Nos permite insertar, modificar o eliminar elementos (A través de llamadas POST PUT Y DELETE respectivamente). Un usuario que autorice una aplicación con este SCOPE Puede publicar un ítem en nombre del mismos dentro de Mercadolibre.
  36. Por último el scope Offline Access nos permite seguir trabajando con las credenciales de un usuario sin que este deba brindarnos su autorización cada cierto periodo de tiempo. Es muy útil cuando debemos crear cron jobs para ejecutar acciones masivas como actualización de stock
  37. Una vez completado el formulario (lado izquierdo) obtendremos dos datos muy importantes, entre ellos App Id y Secret Key esenciales para nuestra integración. Lo utilizaremos para requerir la autorización del usuarios y así obtendremos un access_token (el que vimos anteriormente). Del lado derecho tenemos el mensaje que se muestra al usuario para que autorize la aplicación trabajar en su nombre Cuando el usuario autorice la aplicación se podrá obtener el access_token a través de los fjujos de autorización que vimos anteriormente.
  38. Lo veremos con un ejemplo en código