Asegura tus
aplicaciones .NET
Core con Auth0
Xamarin Cali – Agosto 2018
¡Hola!
Soy Manuel Zapata
◎ Desarrollador y arquitecto de
software.
◎ Bloggero.
◎ Aspirante a YouTuber.
◎ Co-organizador de Xamarin Cali.
◎ Me pueden encontrar en
https://manuelzapata.co.
2
https://manuelzapata.co
¿Quién ha
desarrollado un
módulo de seguridad
en una aplicación?
3
https://manuelzapata.co
Desarrollar formularios.
4
https://manuelzapata.co
Proteger el acceso a
las vistas.
5
https://manuelzapata.co
Permitir gestión de
usuarios y roles.
6
https://manuelzapata.co
Controlar acceso a
recursos en el backend
7
https://manuelzapata.co
Ahora, ¿cuáles son los
verdaderos retos?
8
https://manuelzapata.co
Implementar
autenticación de
múltiples factores
9
https://manuelzapata.co
10
https://manuelzapata.co
Implementar proveedores
de identidad
11
https://manuelzapata.co
12
https://manuelzapata.co
13
Proveedores de identidad sociales
https://manuelzapata.co
14
Proveedores de identidad empresarial
https://manuelzapata.co
Custodiar información
de autenticación
15
https://manuelzapata.co
16
¿Recuerdan lo que pasó con el censo 2018 de la registraduría?
https://manuelzapata.co
¿Por qué siempre
estamos reescribiendo
la rueda?
17
https://manuelzapata.co
La seguridad del sistema
no hace parte de las
reglas de negocio
18
https://manuelzapata.co
Tampoco hace parte de
los requerimientos
funcionales
19
https://manuelzapata.co
La seguridad del sistema
es una pieza de
infraestructura.
20
https://manuelzapata.co
Más no añade valor por
si sola.
21
https://manuelzapata.co
Lo correcto es enfocarse
en lo que añade valor.
22
https://manuelzapata.co
Y dejarle a alguien más el
manejo de la seguridad.
23
https://manuelzapata.co
Usemos plataformas de
identidad como servicio
24
https://manuelzapata.co
25
Amazon Cognito Azure Active Directory
https://manuelzapata.co
26
https://manuelzapata.co
¿En qué consiste el
demo?
27
https://manuelzapata.co
Desarrollar un ejemplo de
autenticación y
autorización usando Auth0
y ASP .NET Core Web API
28
https://manuelzapata.co
Paso # 1
Configurar el backend
29
https://manuelzapata.co
30
a. Crear controlador y
repositorios.
b. Crear clases que soportan
autorización.
c. Configurar autenticación y
autorización en Startup.cs.
https://manuelzapata.co
Paso # 2
Configurar Auth0
31
https://manuelzapata.co
32
a. Crear API.
b. Crear aplicación cliente.
c. Configurar extensión de
autorización.
https://manuelzapata.co
Paso # 3
Configurar cliente
33
https://manuelzapata.co
34
a. Instalar paquete auth0-js.
b. Redireccionar a Auth0.
c. Manejar respuesta de Auth0.
d. Enviar token en requests.
https://manuelzapata.co
Repositorio con ejemplo:
https://github.com/manuelzapata
/dotnet-core-auth0
35
https://manuelzapata.co
Recursos
◎ Introduction to Identity on ASP.NET Core.
◎ Claim-based authorization in ASP.NET Core.
◎ ASP.NET Core Web API v2.0: Authorization.
◎ React: Login.
36
https://manuelzapata.co
¡Mil gracias!
37

Asegura tus aplicaciones .NET Core con Auth0

Notas del editor

  • #5 A nivel de interfaz. Login. Registro. Cambio de contraseña. Olvido de contraseña.
  • #6 A nivel de interfaz. Autorización para acceder a vistas.
  • #7 Funciones administrativas Gestión de usuarios. Gestión de roles.
  • #8 Controlar acceso del usuario a recursos. Proteger endpoints.
  • #9 Hasta ahí lo estándar.
  • #10 A nivel de interfaz. Login. Registro. Cambio de contraseña. Olvido de contraseña.
  • #11 El objetivo es presentar al menos dos pruebas de tu identidad: Una primera evidencia (por ejemplo, un password), y luego una segunda (al menos): Algo que tu sabes (un PIN, una pregunta personal). Algo que tienes (una tarjeta, un token). Algo que es parte de ti (la huella digital). Diagrama tomado de https://www.nist.gov/itl/tig/back-basics-multi-factor-authentication
  • #13 Página de login con distintos proveedores de identidad.
  • #14 Implicaciones Obtener datos. Relacionar usuario en sistema externo con usuario local. Su implementación depende del contexto de la aplicación.
  • #15 Similar a los anteriores, excepto que son de uso corporativo.
  • #17 Imagen tomada de http://julip.co/2018/01/contrasena-censo/
  • #19 ¿Qué son las reglas de negocio? Las reglas de negocio existen haya o no haya sistema.
  • #20 La seguridad del sistema tampoco forma parte de los requisitos funcionales.
  • #21 La seguridad es necesaria para que el sistema opere de manera confiable.
  • #22 La seguridad es necesaria para que el sistema opere de manera confiable.
  • #24 Dígale a su compañero de al lado: hermano, deje de reinventar la rueda
  • #26 Algunas alternativas para plataformas de identidad.
  • #27 Sin embargo, hoy vamos a hablar de Auth0.
  • #31 Sin embargo, hoy vamos a hablar de Auth0.
  • #33 Sin embargo, hoy vamos a hablar de Auth0.
  • #35 Sin embargo, hoy vamos a hablar de Auth0.