SlideShare a Scribd company logo
1 of 21
24.01.2017
.NET Core
24.01.2017
Seguridad en
MVC Core
SOFTWARE DEVELOPMENT ENGINEER
Hugo Biarge
#NETCore2017 3
@hbiarge
hbiarge@plainconcepts.com
Agenda
1.Escenarios de autenticación.
Middlewares.
2.Políticas de autorización
4
Modelo de Middlewares
#NETCore2017 5
Middlewares de autenticación
#NETCore2017 6
Coordinación
AuthenticationManager
• Coordina los diferentes middlewares de autenticación configurados
• Accesible a través de nuevo HttpContext
Atentos a AutomaticChallenge
• Debe haber uno configurado, pero sólo uno!
Demo
características
7
Middlewares habituales
#NETCore2017 8
Cookies
• El más habitual para aplicaciones web tradicionales
Proveedores sociales
• Twitter, Facebook, Microsoft Id, …
OpenId.Connect
• Autenticación + autorización delegada
JWT
• Apis Http
Cookies con usuarios locales
#NETCore2017 9
Proveedores sociales opcionales
Asp.Net Identity
• Integrado en las plantillas
• Separa funcionalidad de persistencia (fácilmente adaptable a esquemas legacy)
Funcionalidades avanzadas
• Confirmación de cuenta
• Autenticación de doble factor
• External providers (por ejemplo, proveedores sociales)
Demo Asp.Net
Identity
10
Cookies con usuarios externos
#NETCore2017 11
Azure Active Directory
• Combinación de varios middlewares
• OpenId.Connect recomendado si el proveedor lo soporta
• Cookies para persistir claims externos en cookie local
Todavía no tenemos soporte para WSFederation
• Prevista para Asp.Net Core 2.0 (2T 2017)
Demo
OpenId.Connect
12
Tokens para Apis Http
#NETCore2017 13
Con usuarios locales o externos
JWT Middleware
• Necesitamos un proveedor de identidad (STS, IdP, OP)
• Azure Active Directory para usuarios externos
• Identity Server 4 para usuarios locales
Diferentes flujos según el tipo de aplicación
Convivencia cookies y tokens
#NETCore2017 14
En el mismo proyecto web
ActiveAuthenticationSchemes
• AutomaticAuthenticate debe ser false en todos los middlewares
// In Authorize attribute
[Authorize(ActiveAuthenticationSchemes = "Bearer")]
// In Startup ConfigureServices
options.AddPolicy("WebApi", policy =>
{
policy.AuthenticationSchemes.Add("Bearer");
policy.RequireAuthenticatedUser();
});
Autorización basada en políticas
#NETCore2017 15
Mecanismo de autorización por defecto
Permite clara separación de la lógica de autorización del negocio
// In Startup ConfigureServices
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAdministration", policy =>
{
policy.RequireRole("Administration");
policy.RequireClaim("Management");
policy.RequireClaim("OneOfMany", "a", "b");
});
});
// Discouraged
[Authorize(Roles = "Administrator")]
// Better
[Authorize(Policy = "Administrator")]
// Best
[Authorize(Policies.Sales)]
Políticas como código
#NETCore2017 16
Definimos requerimientos
• IAuthorizationRequirement
Que son validados por uno o más handlers
• AuthorizationHandler<IAuthorizationRequirement>
Autorización imperativa
#NETCore2017 17
En controladores y/o vistas
IAuthorizationService
• Puede ser inyectado en cualquier controlador (o servicio) o incluso vistas
public async Task<IActionResult> Index()
{
if (await _authorizationService.AuthorizeAsync(User, Policies.Over21))
{
// User is authorized here.
}
else
{
return new ChallengeResult();
}
}
Autorización basada en recursos
#NETCore2017 18
AuthorizationHandler<Requirement, Resource>
• Añadir el estado de un determinado modelo a la lógica de autorización
public class ProductAuthorizationHandler
: AuthorizationHandler<OperationAuthorizationRequirement, Product>
{
protected override Task HandleRequirementAsync(
AuthorizationHandlerContext context,
OperationAuthorizationRequirement requirement,
Product resource)
{
// Logic to validate requirement
}
}
Demo
autorización
19
@plainconcepts
¡GRACIAS!
@hbiarge
www.plainconcepts.com
MADRID
Paseo de la Castellana 163, 10º
28046 Madrid. España
T. (+34) 91 5346 836
BILBAO
Nervión 3 , 6º
48001 Bilbao. España
T. (+34) 94 6008 168
BARCELONA
Av. Josep Tarradellas 10, 6º 1ª
08029 Barcelona. España
T. (+34) 93 3607 114
SEVILLA
Avenida de la innovación s/n
Edificio Renta Sevilla, 3º A
41020 Sevilla. España
DUBAI
Dubai Internet City. Building 1
73030 Dubai. EAU
T. (+971) 4 551 6653
LONDON
Impact Hub Kings Cross
24B York Way, N1 9AB
London. UK
SEATTLE
1511, Third Ave
Seattle WA 98101. USA
T. (+1) 206 708 1285

More Related Content

What's hot

Extendiendo SharePoint Online con el nuevo modelo de apps
Extendiendo SharePoint Online con el nuevo modelo de appsExtendiendo SharePoint Online con el nuevo modelo de apps
Extendiendo SharePoint Online con el nuevo modelo de apps
Fabian Imaz
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
yanez1814
 

What's hot (20)

ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Mvc4 Intro
Mvc4 IntroMvc4 Intro
Mvc4 Intro
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 
Iniciación Con CakePHP
Iniciación Con CakePHPIniciación Con CakePHP
Iniciación Con CakePHP
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6
 
ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1
 
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_unoWeb matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
 
Mvc
MvcMvc
Mvc
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4
 
Extendiendo SharePoint Online con el nuevo modelo de apps
Extendiendo SharePoint Online con el nuevo modelo de appsExtendiendo SharePoint Online con el nuevo modelo de apps
Extendiendo SharePoint Online con el nuevo modelo de apps
 
Perfiles en maven
Perfiles en mavenPerfiles en maven
Perfiles en maven
 
Cross-premises: integrando redes e infraestructura con Microsoft Azure
Cross-premises: integrando redes e infraestructura con Microsoft AzureCross-premises: integrando redes e infraestructura con Microsoft Azure
Cross-premises: integrando redes e infraestructura con Microsoft Azure
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Filtrado de recursos en Maven
Filtrado de recursos en MavenFiltrado de recursos en Maven
Filtrado de recursos en Maven
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
 

Viewers also liked

Windows Intune: Sistemas bajo control, sin ápice de dolor.
Windows Intune: Sistemas bajo control, sin ápice de dolor.Windows Intune: Sistemas bajo control, sin ápice de dolor.
Windows Intune: Sistemas bajo control, sin ápice de dolor.
Plain Concepts
 
DevOps: Continuous Delivery and Windows Azure
DevOps: Continuous Delivery and Windows AzureDevOps: Continuous Delivery and Windows Azure
DevOps: Continuous Delivery and Windows Azure
Plain Concepts
 

Viewers also liked (18)

Net core path by Ibon Landa
Net core path by Ibon LandaNet core path by Ibon Landa
Net core path by Ibon Landa
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard Tomàs
 
Push notifications
Push notificationsPush notifications
Push notifications
 
Entity Framework Core by Unai Zorrilla
Entity Framework Core by Unai ZorrillaEntity Framework Core by Unai Zorrilla
Entity Framework Core by Unai Zorrilla
 
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloRealtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
 
Analitics: Monitoriza tus aplicaciones móviles
Analitics: Monitoriza tus aplicaciones móvilesAnalitics: Monitoriza tus aplicaciones móviles
Analitics: Monitoriza tus aplicaciones móviles
 
Testing Xamarin Test Cloud
Testing Xamarin Test CloudTesting Xamarin Test Cloud
Testing Xamarin Test Cloud
 
Diseña tus aplicaciones multiplataforma
Diseña tus aplicaciones multiplataformaDiseña tus aplicaciones multiplataforma
Diseña tus aplicaciones multiplataforma
 
Microsoft Intune y Gestión de Identidad Corporativa
Microsoft Intune y Gestión de Identidad Corporativa Microsoft Intune y Gestión de Identidad Corporativa
Microsoft Intune y Gestión de Identidad Corporativa
 
Single Sign On e IdPs: Active Directory Federation Services (ADFS)
Single Sign On e IdPs: Active Directory Federation Services (ADFS)Single Sign On e IdPs: Active Directory Federation Services (ADFS)
Single Sign On e IdPs: Active Directory Federation Services (ADFS)
 
La nueva Intranet es Office 365
La nueva Intranet es Office 365La nueva Intranet es Office 365
La nueva Intranet es Office 365
 
Identidad híbrida con Azure Active Directory
Identidad híbrida con Azure Active DirectoryIdentidad híbrida con Azure Active Directory
Identidad híbrida con Azure Active Directory
 
Identidad: los misterios del metaverso con Forefront Identity Manager
Identidad: los misterios del metaverso con Forefront Identity ManagerIdentidad: los misterios del metaverso con Forefront Identity Manager
Identidad: los misterios del metaverso con Forefront Identity Manager
 
Windows Intune: Sistemas bajo control, sin ápice de dolor.
Windows Intune: Sistemas bajo control, sin ápice de dolor.Windows Intune: Sistemas bajo control, sin ápice de dolor.
Windows Intune: Sistemas bajo control, sin ápice de dolor.
 
HTML Tour - Aplicaciones móviles multiplataforma
HTML Tour - Aplicaciones móviles multiplataformaHTML Tour - Aplicaciones móviles multiplataforma
HTML Tour - Aplicaciones móviles multiplataforma
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
DevOps: Continuous Delivery and Windows Azure
DevOps: Continuous Delivery and Windows AzureDevOps: Continuous Delivery and Windows Azure
DevOps: Continuous Delivery and Windows Azure
 
Seguridad y protección en Office 365
 Seguridad y protección en Office 365 Seguridad y protección en Office 365
Seguridad y protección en Office 365
 

Similar to Security in MVC Core by Hugo Biarge

0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xus0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xus
GeneXus
 
Web 2.0 ajax con SharePoint
Web 2.0 ajax con SharePointWeb 2.0 ajax con SharePoint
Web 2.0 ajax con SharePoint
goreorti
 
Control de acceso al sistema operativo
Control de acceso al sistema operativoControl de acceso al sistema operativo
Control de acceso al sistema operativo
Galindo Urzagaste
 

Similar to Security in MVC Core by Hugo Biarge (20)

Semana 1 sistematizacion v1Preguntas.pptx
Semana 1 sistematizacion v1Preguntas.pptxSemana 1 sistematizacion v1Preguntas.pptx
Semana 1 sistematizacion v1Preguntas.pptx
 
La Identidad Digital Unica En La Empresa, ¿Utopia o Realidad?
La Identidad Digital Unica En La Empresa, ¿Utopia o Realidad?La Identidad Digital Unica En La Empresa, ¿Utopia o Realidad?
La Identidad Digital Unica En La Empresa, ¿Utopia o Realidad?
 
Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5
 
0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xus0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xus
 
GAM GeneXus Access Manager
GAM GeneXus Access ManagerGAM GeneXus Access Manager
GAM GeneXus Access Manager
 
SharePoint en Azure - Global Azure Bootcamp Mexico 2015
SharePoint en Azure - Global Azure Bootcamp Mexico 2015SharePoint en Azure - Global Azure Bootcamp Mexico 2015
SharePoint en Azure - Global Azure Bootcamp Mexico 2015
 
Angularjs
AngularjsAngularjs
Angularjs
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
Enterprise Library 5
Enterprise Library 5Enterprise Library 5
Enterprise Library 5
 
Web 2.0 ajax con SharePoint
Web 2.0 ajax con SharePointWeb 2.0 ajax con SharePoint
Web 2.0 ajax con SharePoint
 
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
 
Azure + PowerShell
Azure + PowerShellAzure + PowerShell
Azure + PowerShell
 
Memorias 3era gug cali colombia
Memorias 3era gug cali colombiaMemorias 3era gug cali colombia
Memorias 3era gug cali colombia
 
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
 
Tema 7
Tema 7Tema 7
Tema 7
 
GFI - Seguridad en tus APIs
GFI - Seguridad en tus APIsGFI - Seguridad en tus APIs
GFI - Seguridad en tus APIs
 
Control de acceso al sistema operativo
Control de acceso al sistema operativoControl de acceso al sistema operativo
Control de acceso al sistema operativo
 
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
 
Seguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHPSeguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHP
 
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
SEMANA IT 2013 - Distribucion de aplicaciones con System Center Configuration...
 

More from Plain Concepts

DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native ScriptDotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
Plain Concepts
 
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - IntroductionEl camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
Plain Concepts
 
El camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AIEl camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AI
Plain Concepts
 

More from Plain Concepts (20)

R y Python con Power BI, la ciencia y el análisis de datos, juntos
R y Python con Power BI, la ciencia y el análisis de datos, juntosR y Python con Power BI, la ciencia y el análisis de datos, juntos
R y Python con Power BI, la ciencia y el análisis de datos, juntos
 
Video kills the radio star: e-mail is crap and needed disruption
 Video kills the radio star: e-mail is crap and needed disruption Video kills the radio star: e-mail is crap and needed disruption
Video kills the radio star: e-mail is crap and needed disruption
 
Cómo redefinir tu organización con IA
Cómo redefinir tu organización con IACómo redefinir tu organización con IA
Cómo redefinir tu organización con IA
 
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelinesDx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
 
¿Qué es real? Cuando la IA intenta engañar al ojo humano
¿Qué es real? Cuando la IA intenta engañar al ojo humano¿Qué es real? Cuando la IA intenta engañar al ojo humano
¿Qué es real? Cuando la IA intenta engañar al ojo humano
 
Inteligencia artificial para detectar el cáncer de mama
Inteligencia artificial para  detectar el cáncer de mamaInteligencia artificial para  detectar el cáncer de mama
Inteligencia artificial para detectar el cáncer de mama
 
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
 
Cognitive Services en acción
Cognitive Services en acciónCognitive Services en acción
Cognitive Services en acción
 
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
 
What if AI was your daughter?
What if AI was your daughter?What if AI was your daughter?
What if AI was your daughter?
 
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
 
Revolucionando la experiencia de cliente con Big Data e IA
Revolucionando la experiencia de cliente con Big Data e IARevolucionando la experiencia de cliente con Big Data e IA
Revolucionando la experiencia de cliente con Big Data e IA
 
IA Score en InfoJobs
IA Score en InfoJobsIA Score en InfoJobs
IA Score en InfoJobs
 
Recuperación de información para solicitantes de empleo
Recuperación de información para solicitantes de empleoRecuperación de información para solicitantes de empleo
Recuperación de información para solicitantes de empleo
 
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
La nueva revolución Industrial: Inteligencia Artificial & IoT EdgeLa nueva revolución Industrial: Inteligencia Artificial & IoT Edge
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
 
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native ScriptDotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
 
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
 
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
 
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - IntroductionEl camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
 
El camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AIEl camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AI
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Recently uploaded (12)

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
 
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
 
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
 
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
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.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
 
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...
 
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.
 
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
 

Security in MVC Core by Hugo Biarge

  • 3. SOFTWARE DEVELOPMENT ENGINEER Hugo Biarge #NETCore2017 3 @hbiarge hbiarge@plainconcepts.com
  • 6. Middlewares de autenticación #NETCore2017 6 Coordinación AuthenticationManager • Coordina los diferentes middlewares de autenticación configurados • Accesible a través de nuevo HttpContext Atentos a AutomaticChallenge • Debe haber uno configurado, pero sólo uno!
  • 8. Middlewares habituales #NETCore2017 8 Cookies • El más habitual para aplicaciones web tradicionales Proveedores sociales • Twitter, Facebook, Microsoft Id, … OpenId.Connect • Autenticación + autorización delegada JWT • Apis Http
  • 9. Cookies con usuarios locales #NETCore2017 9 Proveedores sociales opcionales Asp.Net Identity • Integrado en las plantillas • Separa funcionalidad de persistencia (fácilmente adaptable a esquemas legacy) Funcionalidades avanzadas • Confirmación de cuenta • Autenticación de doble factor • External providers (por ejemplo, proveedores sociales)
  • 11. Cookies con usuarios externos #NETCore2017 11 Azure Active Directory • Combinación de varios middlewares • OpenId.Connect recomendado si el proveedor lo soporta • Cookies para persistir claims externos en cookie local Todavía no tenemos soporte para WSFederation • Prevista para Asp.Net Core 2.0 (2T 2017)
  • 13. Tokens para Apis Http #NETCore2017 13 Con usuarios locales o externos JWT Middleware • Necesitamos un proveedor de identidad (STS, IdP, OP) • Azure Active Directory para usuarios externos • Identity Server 4 para usuarios locales Diferentes flujos según el tipo de aplicación
  • 14. Convivencia cookies y tokens #NETCore2017 14 En el mismo proyecto web ActiveAuthenticationSchemes • AutomaticAuthenticate debe ser false en todos los middlewares // In Authorize attribute [Authorize(ActiveAuthenticationSchemes = "Bearer")] // In Startup ConfigureServices options.AddPolicy("WebApi", policy => { policy.AuthenticationSchemes.Add("Bearer"); policy.RequireAuthenticatedUser(); });
  • 15. Autorización basada en políticas #NETCore2017 15 Mecanismo de autorización por defecto Permite clara separación de la lógica de autorización del negocio // In Startup ConfigureServices services.AddAuthorization(options => { options.AddPolicy("RequireAdministration", policy => { policy.RequireRole("Administration"); policy.RequireClaim("Management"); policy.RequireClaim("OneOfMany", "a", "b"); }); }); // Discouraged [Authorize(Roles = "Administrator")] // Better [Authorize(Policy = "Administrator")] // Best [Authorize(Policies.Sales)]
  • 16. Políticas como código #NETCore2017 16 Definimos requerimientos • IAuthorizationRequirement Que son validados por uno o más handlers • AuthorizationHandler<IAuthorizationRequirement>
  • 17. Autorización imperativa #NETCore2017 17 En controladores y/o vistas IAuthorizationService • Puede ser inyectado en cualquier controlador (o servicio) o incluso vistas public async Task<IActionResult> Index() { if (await _authorizationService.AuthorizeAsync(User, Policies.Over21)) { // User is authorized here. } else { return new ChallengeResult(); } }
  • 18. Autorización basada en recursos #NETCore2017 18 AuthorizationHandler<Requirement, Resource> • Añadir el estado de un determinado modelo a la lógica de autorización public class ProductAuthorizationHandler : AuthorizationHandler<OperationAuthorizationRequirement, Product> { protected override Task HandleRequirementAsync( AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement, Product resource) { // Logic to validate requirement } }
  • 21. www.plainconcepts.com MADRID Paseo de la Castellana 163, 10º 28046 Madrid. España T. (+34) 91 5346 836 BILBAO Nervión 3 , 6º 48001 Bilbao. España T. (+34) 94 6008 168 BARCELONA Av. Josep Tarradellas 10, 6º 1ª 08029 Barcelona. España T. (+34) 93 3607 114 SEVILLA Avenida de la innovación s/n Edificio Renta Sevilla, 3º A 41020 Sevilla. España DUBAI Dubai Internet City. Building 1 73030 Dubai. EAU T. (+971) 4 551 6653 LONDON Impact Hub Kings Cross 24B York Way, N1 9AB London. UK SEATTLE 1511, Third Ave Seattle WA 98101. USA T. (+1) 206 708 1285