SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
SSO mobile
3 simples opciones
@EguiMariano
About me...
Mariano Germán Egui
Trabajo como desarrollador web
Me gustan las buenas prácticas
Me preocupa la seguridad de la aplicación
Participó de meetups y conferencias relacionadas a
desarrollo e Infraestructura
Soy 100% amateur, programo en muchos lenguajes y me
mande hacer el elefante de PHP
Twitter: @EguiMariano
egui.mariano@gmail.com
@EguiMariano
@EguiMariano
Objetivo
Lograr abrir una aplicación, autenticarse y desde esta abrir otra sin necesidad de
volver a introducir usuario y contraseña; Manteniendo los estándares de OAuth2.
@EguiMariano
Nuestras
opciones:
- Compartir los datos de
autenticación.
- Usando deep linking.
- Abriendo directamente la otra
aplicación con un codigo
autorizado.
@EguiMariano
Compartiendo los
datos de autenticación.
@EguiMariano
Tanto la App1 como App2 almacenan
los datos de autenticación en el mismo
lugar o de forma compartida. De esta
manera se logra que todas las Apps
instaladas en el mobile mantengan la
sesión, pero en el caso de querer salir
cerrará la sesión de todas a la vez.
Es realmente práctico pero inseguro
❖ Experiencia de usuario:
➢ Buena;
La aplicación no requiere negociar token.
❖ Al intentar salir de una aplicación:
➢ Sale de todas las aplicacione a la vez.
❖ Seguridad del usuario:
➢ Vulnerable;
Al compartir la información de access_token
y refresh_token otras aplicaciones pueden
tener acceso.
❖ Seguridad al salir de una aplicación:
➢ Sale de todas las aplicacione a la vez.
➢ No puede manejar las sesiones de las APPs
por separado.
OAuth2: Mantiene los estándares del RFC pero no distingue el cliente, ambas
aplicaciones son las mismas para el servidor OAuth
@EguiMariano
Usando deep linking.
@EguiMariano
La App1 y la App2 almacenan los datos
de autenticación de forma privada. Al
abrir la App2 se inicia el flujo deep
linking solicitando acceso a App1 por
URL con un codigo, su client_id y su
redirect_uri. Una vez autorizado este
obtiene un ‘código’ válido donde utilizara
el flujo de grant_type:authorization_code
para poder acceder.
Familiar y brinda opciones al usuario
❖ Experiencia de usuario:
➢ Regular;
El usuario debe seleccionar si desea abrir la
URL con el navegador o la aplicación
instalada.
➢ Debe cerrar la sesión en cada una de las
aplicaciones del mobile.
❖ Al intentar salir de una aplicación:
➢ Sale sin cerrar sesion de otra.
❖ Seguridad del usuario:
➢ Alta;
Cada aplicacion maneja su almacenamiento
de datos, y su propias credenciales de
cliente.
❖ Seguridad al salir de una aplicación:
➢ Solo cierra la session de sí misma.
OAuth2: Mantiene los estándares del RFC.
@EguiMariano
Abriendo directamente
la otra aplicación con
un codigo autorizado.
@EguiMariano
Si desde la App1 queremos abrir la
App2 previamente negociamos un
codigo válido para autorizacion. Por
protocolos mobile lanzamos la App2 con
el código como parámetro para que este
obtenga su access_token por un request
de tipo ‘grant_type:authorization_code’.
Es práctico, seguro y simple para el usuario
❖ Experiencia de usuario:
➢ Buena;
La otra aplicación negocia el token sin
interacción del usuario.
➢ Debe cerrar la sesión en cada una de las
aplicaciones del mobile.
❖ Al intentar salir de una aplicación:
➢ Sale sin cerrar sesion de otra.
❖ Seguridad del usuario:
➢ Alto;
Cada aplicacion maneja su almacenamiento
de datos, y su propias credenciales de
cliente.
❖ Seguridad al salir de una aplicación:
➢ Solo cierra la session de sí misma.
OAuth2: Mantiene los estándares del RFC, sin confirmación del usuario.
@EguiMariano
¿Como funciona el
grant type
authorization_code?
@EguiMariano
El proceso de autorización por código
En principio se solicita la aceptación del usuario autenticado en el navegador/mobile
a una url GET, al aceptarla se hace request POST con los parámetros:
1. response_type: code
2. client_id
3. redirect_uri
4. code
Esto nos devuelve un nuevo código que usaremos para el authorization_code
@EguiMariano
Haciendo POST con el nuevo código y los siguientes parámetros
1. response_type: authorization_code
2. client_id
3. client_secret
4. redirect_uri
5. code
Obtengo el access_token y refresh_token, que usare de ahora en mas.
@EguiMariano
A mas bajo nivel
El parámetro ‘code’ se encodea desde el primer request como ID de referencia en la
autorización, su valor no es fuerte, por lo que podemos ignorarlo o sacarle provecho para
realizar validaciones internas.
El ‘request_uri’ se utiliza a nivel web para indicar a donde enviar el código y facilitar la
redirección al usuario, pero a bajo nivel se utiliza como dato adicional para identificar y validar
el cliente, por ese motivo es requerido en el grant type: authorization_code.
La validez del código de autorización es parametrizable, pero no debe durar mucho más que la
transacción misma, ejemplo 1 minuto.
Una vez autorizada la nueva aplicación en el futuro deberá gestionar su ‘access_token’ con el
‘refresh_token’ y no con el ‘code’.
@EguiMariano
En el tercer caso de SSO en apps mobile
Dijimos que respetamos el RFC, pero no solicitamos la aprobación del usuario con el
‘response_type: code’; Esto es porque siendo aplicaciones de la misma familia
podemos saltearnos la aceptación del usuario y gestionando el ‘code’ para OAuth
Server desde nuestra sesión conociendo en la App1 el client_id y redirect_uri de la
App2.
App1:
Realiza el request response_type: code para obtener un código autorizado
Luego abre la App2 con el code generado
App2:
Realiza el request grant_type: authorization_code para obtener el access_token
@EguiMariano
¿Preguntas?
@EguiMariano

Más contenido relacionado

Destacado

Virtual Reality Presentation at #HybridLive
Virtual Reality Presentation at #HybridLiveVirtual Reality Presentation at #HybridLive
Virtual Reality Presentation at #HybridLiveCharles Palmer
 
Creo il mio profilo nel modo più efficace
Creo il mio profilo nel modo più efficaceCreo il mio profilo nel modo più efficace
Creo il mio profilo nel modo più efficaceLinkedIn Italia
 
Shading devices by richa malik
Shading devices by richa malikShading devices by richa malik
Shading devices by richa malikRicha Malik
 
Kicking off Asana
Kicking off AsanaKicking off Asana
Kicking off AsanaAsana
 
The Asana Culture Code
The Asana Culture CodeThe Asana Culture Code
The Asana Culture CodeAsana
 
Yoga Presentation
Yoga PresentationYoga Presentation
Yoga Presentationvishalyogi
 

Destacado (6)

Virtual Reality Presentation at #HybridLive
Virtual Reality Presentation at #HybridLiveVirtual Reality Presentation at #HybridLive
Virtual Reality Presentation at #HybridLive
 
Creo il mio profilo nel modo più efficace
Creo il mio profilo nel modo più efficaceCreo il mio profilo nel modo più efficace
Creo il mio profilo nel modo più efficace
 
Shading devices by richa malik
Shading devices by richa malikShading devices by richa malik
Shading devices by richa malik
 
Kicking off Asana
Kicking off AsanaKicking off Asana
Kicking off Asana
 
The Asana Culture Code
The Asana Culture CodeThe Asana Culture Code
The Asana Culture Code
 
Yoga Presentation
Yoga PresentationYoga Presentation
Yoga Presentation
 

Similar a SSO mobile 3 opciones

Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Miguel Ángel Sánchez Chordi
 
APEX Office Hours - Two Factor Authentication
APEX Office Hours - Two Factor AuthenticationAPEX Office Hours - Two Factor Authentication
APEX Office Hours - Two Factor Authenticationjoelorta2
 
Presentación sso con cas
Presentación sso con casPresentación sso con cas
Presentación sso con casEnrique Toledo
 
Graphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftwareGraphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftwareamaulini
 
2. Certificados Y Firmas Digitales
2. Certificados Y Firmas Digitales2. Certificados Y Firmas Digitales
2. Certificados Y Firmas DigitalesCANDIDO RUIZ
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI Informática
 
G-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráficaG-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráficamauromaulinir
 
Proyecto GPS Corrector 1.docx
Proyecto GPS Corrector 1.docxProyecto GPS Corrector 1.docx
Proyecto GPS Corrector 1.docxssuserf11c8d1
 
Seguridad para aplicaciones web java con json web tokens (jwt) 2020
Seguridad para aplicaciones web java con json web tokens (jwt)  2020Seguridad para aplicaciones web java con json web tokens (jwt)  2020
Seguridad para aplicaciones web java con json web tokens (jwt) 2020Eudris Cabrera
 
Sitios blindados de SharePoint
Sitios blindados de SharePointSitios blindados de SharePoint
Sitios blindados de SharePointwww.encamina.com
 
Tema 12 Y 13
Tema 12 Y 13Tema 12 Y 13
Tema 12 Y 131juan
 
Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013
Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013
Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013Cinthia Soca
 
Evidencia final ciencias jordfan
Evidencia final ciencias jordfanEvidencia final ciencias jordfan
Evidencia final ciencias jordfanJordan Eduardo Vr
 
Tema 12 Y 13
Tema 12 Y 13Tema 12 Y 13
Tema 12 Y 131juan
 
Presentacion-Oauth
Presentacion-OauthPresentacion-Oauth
Presentacion-OauthKevin Medina
 
3. certificados y pki
3. certificados y pki3. certificados y pki
3. certificados y pki1 2d
 
Trabajo de computacion 1
Trabajo de computacion 1Trabajo de computacion 1
Trabajo de computacion 1Celso Ojeda
 

Similar a SSO mobile 3 opciones (20)

Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
 
APEX Office Hours - Two Factor Authentication
APEX Office Hours - Two Factor AuthenticationAPEX Office Hours - Two Factor Authentication
APEX Office Hours - Two Factor Authentication
 
Presentación sso con cas
Presentación sso con casPresentación sso con cas
Presentación sso con cas
 
Graphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftwareGraphic otp generator ultra light 3.2.2_sharpmindsoftware
Graphic otp generator ultra light 3.2.2_sharpmindsoftware
 
2. Certificados Y Firmas Digitales
2. Certificados Y Firmas Digitales2. Certificados Y Firmas Digitales
2. Certificados Y Firmas Digitales
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIs
 
30.gam introduction sp
30.gam introduction sp30.gam introduction sp
30.gam introduction sp
 
G-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráficaG-OTP - Generador de clave perecedera gráfica
G-OTP - Generador de clave perecedera gráfica
 
Proyecto GPS Corrector 1.docx
Proyecto GPS Corrector 1.docxProyecto GPS Corrector 1.docx
Proyecto GPS Corrector 1.docx
 
Seguridad para aplicaciones web java con json web tokens (jwt) 2020
Seguridad para aplicaciones web java con json web tokens (jwt)  2020Seguridad para aplicaciones web java con json web tokens (jwt)  2020
Seguridad para aplicaciones web java con json web tokens (jwt) 2020
 
Meetup TCMS OAuth2
Meetup TCMS OAuth2Meetup TCMS OAuth2
Meetup TCMS OAuth2
 
Sitios blindados de SharePoint
Sitios blindados de SharePointSitios blindados de SharePoint
Sitios blindados de SharePoint
 
Tema 12 Y 13
Tema 12 Y 13Tema 12 Y 13
Tema 12 Y 13
 
Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013
Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013
Seguridad en aplicaciones web por Diego Rostagnol de Hexa GUG agosto 2013
 
la verdad sobre la biometría
la verdad sobre la biometríala verdad sobre la biometría
la verdad sobre la biometría
 
Evidencia final ciencias jordfan
Evidencia final ciencias jordfanEvidencia final ciencias jordfan
Evidencia final ciencias jordfan
 
Tema 12 Y 13
Tema 12 Y 13Tema 12 Y 13
Tema 12 Y 13
 
Presentacion-Oauth
Presentacion-OauthPresentacion-Oauth
Presentacion-Oauth
 
3. certificados y pki
3. certificados y pki3. certificados y pki
3. certificados y pki
 
Trabajo de computacion 1
Trabajo de computacion 1Trabajo de computacion 1
Trabajo de computacion 1
 

Último

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
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.pptxAlan779941
 
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.pdfvladimiroflores1
 
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.FlorenciaCattelani
 
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 UninoveFagnerLisboa3
 
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 JUNITMaricarmen Sánchez Ruiz
 
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 eyvanamcerpam
 
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 estossgonzalezp1
 
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...JohnRamos830530
 
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.pptxMiguelAtencio10
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
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
 
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.
 
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
 
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
 
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
 
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...
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

SSO mobile 3 opciones

  • 1. SSO mobile 3 simples opciones @EguiMariano
  • 2. About me... Mariano Germán Egui Trabajo como desarrollador web Me gustan las buenas prácticas Me preocupa la seguridad de la aplicación Participó de meetups y conferencias relacionadas a desarrollo e Infraestructura Soy 100% amateur, programo en muchos lenguajes y me mande hacer el elefante de PHP Twitter: @EguiMariano egui.mariano@gmail.com @EguiMariano
  • 4. Objetivo Lograr abrir una aplicación, autenticarse y desde esta abrir otra sin necesidad de volver a introducir usuario y contraseña; Manteniendo los estándares de OAuth2. @EguiMariano
  • 5. Nuestras opciones: - Compartir los datos de autenticación. - Usando deep linking. - Abriendo directamente la otra aplicación con un codigo autorizado. @EguiMariano
  • 6. Compartiendo los datos de autenticación. @EguiMariano Tanto la App1 como App2 almacenan los datos de autenticación en el mismo lugar o de forma compartida. De esta manera se logra que todas las Apps instaladas en el mobile mantengan la sesión, pero en el caso de querer salir cerrará la sesión de todas a la vez.
  • 7. Es realmente práctico pero inseguro ❖ Experiencia de usuario: ➢ Buena; La aplicación no requiere negociar token. ❖ Al intentar salir de una aplicación: ➢ Sale de todas las aplicacione a la vez. ❖ Seguridad del usuario: ➢ Vulnerable; Al compartir la información de access_token y refresh_token otras aplicaciones pueden tener acceso. ❖ Seguridad al salir de una aplicación: ➢ Sale de todas las aplicacione a la vez. ➢ No puede manejar las sesiones de las APPs por separado. OAuth2: Mantiene los estándares del RFC pero no distingue el cliente, ambas aplicaciones son las mismas para el servidor OAuth @EguiMariano
  • 8. Usando deep linking. @EguiMariano La App1 y la App2 almacenan los datos de autenticación de forma privada. Al abrir la App2 se inicia el flujo deep linking solicitando acceso a App1 por URL con un codigo, su client_id y su redirect_uri. Una vez autorizado este obtiene un ‘código’ válido donde utilizara el flujo de grant_type:authorization_code para poder acceder.
  • 9. Familiar y brinda opciones al usuario ❖ Experiencia de usuario: ➢ Regular; El usuario debe seleccionar si desea abrir la URL con el navegador o la aplicación instalada. ➢ Debe cerrar la sesión en cada una de las aplicaciones del mobile. ❖ Al intentar salir de una aplicación: ➢ Sale sin cerrar sesion de otra. ❖ Seguridad del usuario: ➢ Alta; Cada aplicacion maneja su almacenamiento de datos, y su propias credenciales de cliente. ❖ Seguridad al salir de una aplicación: ➢ Solo cierra la session de sí misma. OAuth2: Mantiene los estándares del RFC. @EguiMariano
  • 10. Abriendo directamente la otra aplicación con un codigo autorizado. @EguiMariano Si desde la App1 queremos abrir la App2 previamente negociamos un codigo válido para autorizacion. Por protocolos mobile lanzamos la App2 con el código como parámetro para que este obtenga su access_token por un request de tipo ‘grant_type:authorization_code’.
  • 11. Es práctico, seguro y simple para el usuario ❖ Experiencia de usuario: ➢ Buena; La otra aplicación negocia el token sin interacción del usuario. ➢ Debe cerrar la sesión en cada una de las aplicaciones del mobile. ❖ Al intentar salir de una aplicación: ➢ Sale sin cerrar sesion de otra. ❖ Seguridad del usuario: ➢ Alto; Cada aplicacion maneja su almacenamiento de datos, y su propias credenciales de cliente. ❖ Seguridad al salir de una aplicación: ➢ Solo cierra la session de sí misma. OAuth2: Mantiene los estándares del RFC, sin confirmación del usuario. @EguiMariano
  • 12. ¿Como funciona el grant type authorization_code? @EguiMariano
  • 13. El proceso de autorización por código En principio se solicita la aceptación del usuario autenticado en el navegador/mobile a una url GET, al aceptarla se hace request POST con los parámetros: 1. response_type: code 2. client_id 3. redirect_uri 4. code Esto nos devuelve un nuevo código que usaremos para el authorization_code @EguiMariano
  • 14. Haciendo POST con el nuevo código y los siguientes parámetros 1. response_type: authorization_code 2. client_id 3. client_secret 4. redirect_uri 5. code Obtengo el access_token y refresh_token, que usare de ahora en mas. @EguiMariano
  • 15.
  • 16. A mas bajo nivel El parámetro ‘code’ se encodea desde el primer request como ID de referencia en la autorización, su valor no es fuerte, por lo que podemos ignorarlo o sacarle provecho para realizar validaciones internas. El ‘request_uri’ se utiliza a nivel web para indicar a donde enviar el código y facilitar la redirección al usuario, pero a bajo nivel se utiliza como dato adicional para identificar y validar el cliente, por ese motivo es requerido en el grant type: authorization_code. La validez del código de autorización es parametrizable, pero no debe durar mucho más que la transacción misma, ejemplo 1 minuto. Una vez autorizada la nueva aplicación en el futuro deberá gestionar su ‘access_token’ con el ‘refresh_token’ y no con el ‘code’. @EguiMariano
  • 17. En el tercer caso de SSO en apps mobile Dijimos que respetamos el RFC, pero no solicitamos la aprobación del usuario con el ‘response_type: code’; Esto es porque siendo aplicaciones de la misma familia podemos saltearnos la aceptación del usuario y gestionando el ‘code’ para OAuth Server desde nuestra sesión conociendo en la App1 el client_id y redirect_uri de la App2. App1: Realiza el request response_type: code para obtener un código autorizado Luego abre la App2 con el code generado App2: Realiza el request grant_type: authorization_code para obtener el access_token @EguiMariano