SlideShare a Scribd company logo
1 of 19
Download to read offline
Autenticación en
aplicaciones web y nativas
Escenarios y herramientas
Hugo Biarge
Development Advisor at Plain Concepts
hbiarge@plainconcepts.com
@hbiarge
Authentication is hard!
Web MVC
No API
Usuarios locales
Escenario 1
Asp.Net Identity
• Usuarios locales
• Contraseña guardada como hash
• Cookies
• Soporte de proveedores externos de identidad
• Sociales
• Corporativos
• Soporte de 2FA
• TOPT: https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?tabs=visual-studio%2Caspnetcore2x
Proveedores externos de identidad
• Oficiales:
• Facebook
• Twitter
• Google
• Microsoft account
• aspnet-contrib
• Linkedid
• Instagram
• Reddit
• …
https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/tree/dev/src
Web MVC + API
API protegida por JWT
Usuarios corporativos
Escenario 2
Azure Active Directory
• Single Sign On
• Soporta
• WS-Federation
• OAuth2
• OpenId.Connect (v2.0 endpoints)
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oidc
OpenId.Connect Discovery document
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
Configuración
• Mvc
• Api
¿Qué es un token JWT (Json Web Token)?
• Estandar para representar claims de forma segura entre dos aplicaciones
(RFC7519)
JSON Web Token (JWT) is a compact, URL-safe means of representing
claims to be transferred between two parties. The claims in a JWT
are encoded as a JSON object that is used as the payload of a JSON
Web Signature (JWS) structure or as the plaintext of a JSON Web
Encryption (JWE) structure, enabling the claims to be digitally
signed or integrity protected with a Message Authentication Code
(MAC) and/or encrypted.
https://jwt.io/
App nativa + API
API protegida por JWT
Usuarios corporativos
Escenario 3
Active Directory Authentication Library
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-libraries
• Múltiples plataformas
• .NET Client, Windows Store, UWP, Xamarin iOS and Android
• .NET Client, Windows Store, Windows Phone 8.1
• JavaScript
• iOS, macOS
• Android
• Node.js
• Java
• Python
Web MVC + API
API protegida por JWT
Federation Gateway (Identity Server)
Escenario 4
Identity Server
• Proveedor de identidad certificado basado en OpenId.Connect
• Soporte de usuarios locales
• Soporte de proveedores de identidad externos
• Google, AAD, etc…
• Single Sign On
• Open source
• Miembro de la DotNet Foundation
https://github.com/IdentityServer/IdentityServer4
https://github.com/IdentityServer/IdentityServer4.Samples
Configuración
• Mvc
• Api
¿Qué es un Federation Gateway?
• Única fuente de verdad respecto a la
autenticación para todas nuestras
aplicaciones
• Apps conocen 1 solo punto de autenticación
(IdentityServer)
• En IdentityServer se configura cómo cada
aplicación (client) identifica al usuario
• BD local, Windows, proveedores externos,
certificados, …
• Una vez identificado el usuario Sigle Sign On
(cookie)
Proveedores
externos de
identidad
Aplicaciones
corporativas
Identity Server
App nativa + API
API protegida por JWT
Federation Gateway (Identity Server)
Escenario 5
IdentityModel
• IdentityModel2 https://github.com/IdentityModel/IdentityModel2
• Librería de ayuda (.NET standard) para identidad basada en claims, OAuth 2.0
y OpenID Connect.
• IdentityModel.OidcClient2 https://github.com/IdentityModel/IdentityModel.OidcClient2
• Librería certificada para autenticación mediante OpenId.Connect para
aplicaciones nativas (móvi y escritorio)
• IBrowser
• Implementaciones para distintas pataformas
https://github.com/IdentityModel/IdentityModel.OidcClient.Samples
¿Preguntas?

More Related Content

Similar to Autenticación en aplicaciones .Net web y nativas

azure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlosazure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarloscarlos_eduardo_84
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresGermán Küber
 
Sitios blindados de SharePoint
Sitios blindados de SharePointSitios blindados de SharePoint
Sitios blindados de SharePointwww.encamina.com
 
Introducción a la gestión de contenidos web con Liferay Portal 6.1.x
Introducción a la gestión de contenidos web con Liferay Portal 6.1.xIntroducción a la gestión de contenidos web con Liferay Portal 6.1.x
Introducción a la gestión de contenidos web con Liferay Portal 6.1.xRoger CARHUATOCTO
 
Visual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesVisual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesNicolas Milcoff
 
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 DeportivosAdrian Alonso Vega
 
Usando Azure para habilitar APIs
Usando Azure para habilitar APIsUsando Azure para habilitar APIs
Usando Azure para habilitar APIsOscar Gensollen
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasSoftware Guru
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...OpenExpoES
 
Curso SharePoint 2013 overview
Curso SharePoint 2013 overviewCurso SharePoint 2013 overview
Curso SharePoint 2013 overviewVladimir Medina
 
HTML5 en Acción
HTML5 en AcciónHTML5 en Acción
HTML5 en Accióndrarock
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014Adrian Diaz Cervera
 
Futuro de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointFuturo de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointHaaron Gonzalez
 
Colombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxColombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxLuis Beltran
 
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoSeguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoRené Olivo
 

Similar to Autenticación en aplicaciones .Net web y nativas (20)

azure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlosazure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlos
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para Desarrolaldores
 
Sitios blindados de SharePoint
Sitios blindados de SharePointSitios blindados de SharePoint
Sitios blindados de SharePoint
 
Web cryptography
Web cryptographyWeb cryptography
Web cryptography
 
Introducción a la gestión de contenidos web con Liferay Portal 6.1.x
Introducción a la gestión de contenidos web con Liferay Portal 6.1.xIntroducción a la gestión de contenidos web con Liferay Portal 6.1.x
Introducción a la gestión de contenidos web con Liferay Portal 6.1.x
 
Visual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesVisual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operaciones
 
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
 
Usando Azure para habilitar APIs
Usando Azure para habilitar APIsUsando Azure para habilitar APIs
Usando Azure para habilitar APIs
 
REST - deSymfony2012
REST - deSymfony2012REST - deSymfony2012
REST - deSymfony2012
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativas
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
 
Curso SharePoint 2013 overview
Curso SharePoint 2013 overviewCurso SharePoint 2013 overview
Curso SharePoint 2013 overview
 
HTML5 en Acción
HTML5 en AcciónHTML5 en Acción
HTML5 en Acción
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Framework
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 
Windows azuremobileservices
Windows azuremobileservicesWindows azuremobileservices
Windows azuremobileservices
 
Futuro de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointFuturo de Desarrollo en SharePoint
Futuro de Desarrollo en SharePoint
 
Colombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxColombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptx
 
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoSeguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio Electrónico
 

Recently uploaded

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
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
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
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
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
 
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
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 

Recently uploaded (11)

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...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
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.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
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
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

Autenticación en aplicaciones .Net web y nativas

  • 1. Autenticación en aplicaciones web y nativas Escenarios y herramientas
  • 2. Hugo Biarge Development Advisor at Plain Concepts hbiarge@plainconcepts.com @hbiarge
  • 4. Web MVC No API Usuarios locales Escenario 1
  • 5. Asp.Net Identity • Usuarios locales • Contraseña guardada como hash • Cookies • Soporte de proveedores externos de identidad • Sociales • Corporativos • Soporte de 2FA • TOPT: https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?tabs=visual-studio%2Caspnetcore2x
  • 6. Proveedores externos de identidad • Oficiales: • Facebook • Twitter • Google • Microsoft account • aspnet-contrib • Linkedid • Instagram • Reddit • … https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/tree/dev/src
  • 7. Web MVC + API API protegida por JWT Usuarios corporativos Escenario 2
  • 8. Azure Active Directory • Single Sign On • Soporta • WS-Federation • OAuth2 • OpenId.Connect (v2.0 endpoints) https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oidc OpenId.Connect Discovery document https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
  • 10. ¿Qué es un token JWT (Json Web Token)? • Estandar para representar claims de forma segura entre dos aplicaciones (RFC7519) JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted. https://jwt.io/
  • 11. App nativa + API API protegida por JWT Usuarios corporativos Escenario 3
  • 12. Active Directory Authentication Library https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-libraries • Múltiples plataformas • .NET Client, Windows Store, UWP, Xamarin iOS and Android • .NET Client, Windows Store, Windows Phone 8.1 • JavaScript • iOS, macOS • Android • Node.js • Java • Python
  • 13. Web MVC + API API protegida por JWT Federation Gateway (Identity Server) Escenario 4
  • 14. Identity Server • Proveedor de identidad certificado basado en OpenId.Connect • Soporte de usuarios locales • Soporte de proveedores de identidad externos • Google, AAD, etc… • Single Sign On • Open source • Miembro de la DotNet Foundation https://github.com/IdentityServer/IdentityServer4 https://github.com/IdentityServer/IdentityServer4.Samples
  • 16. ¿Qué es un Federation Gateway? • Única fuente de verdad respecto a la autenticación para todas nuestras aplicaciones • Apps conocen 1 solo punto de autenticación (IdentityServer) • En IdentityServer se configura cómo cada aplicación (client) identifica al usuario • BD local, Windows, proveedores externos, certificados, … • Una vez identificado el usuario Sigle Sign On (cookie) Proveedores externos de identidad Aplicaciones corporativas Identity Server
  • 17. App nativa + API API protegida por JWT Federation Gateway (Identity Server) Escenario 5
  • 18. IdentityModel • IdentityModel2 https://github.com/IdentityModel/IdentityModel2 • Librería de ayuda (.NET standard) para identidad basada en claims, OAuth 2.0 y OpenID Connect. • IdentityModel.OidcClient2 https://github.com/IdentityModel/IdentityModel.OidcClient2 • Librería certificada para autenticación mediante OpenId.Connect para aplicaciones nativas (móvi y escritorio) • IBrowser • Implementaciones para distintas pataformas https://github.com/IdentityModel/IdentityModel.OidcClient.Samples