El documento describe diferentes escenarios y herramientas para la autenticación en aplicaciones web y nativas. Presenta cinco escenarios principales: 1) autenticación de usuarios locales en una aplicación web MVC, 2) autenticación con Azure Active Directory para SSO entre una aplicación web y API, 3) autenticación con ADAL para aplicaciones nativas y API, 4) autenticación con Identity Server como proveedor de identidad para SSO entre aplicaciones, y 5) autenticación con IdentityModel para aplicaciones nativas y API protegidas con JWT.
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