SlideShare uma empresa Scribd logo
#GlobalAzure
ASP.NET Identity – De dentro das
Trincheiras
José Roberto Araújo
Patrocinadores
www.jrobertoaraujo.net
www.facebook.com/joserobertoaraujo
1. Um pouco de História
2. Visão Geral do Identity
■ Versão 1.0
■ Tipos de Storages suportados
■ Versão 2.1
■ O que são Claims?
3. Visão Geral das Classes ASP.NET Identity
4. Autenticação com 2 fatores (Two Factor Authentication)
5. Recomendações de segurança
6. DEMOS
Agenda
■ Novembro de 2005
■ Surgia o ASP.NET Membership (odiado por muitos, adorado por poucos :D)
■ Existia somente suporte ao SQL Server ou SQL Server Express (Extremamente limitado seu poder de armazenamento)
■ Maio de 2012
■ Primaiera versão que foi disponibilizada via NuGet
■ Começou um movimento de universalização de Providers, suportando:
■ SQL CE, Armazenamento no Azure
■ Agosto de 2012
■ Chegada do SimpleMembership possibilitando a utilização do Code-First (Isso é LINDO!!!)
■ Pode ser utilizado tanto em WebPages quanto em aplicações ASP.NET MVC
■ Outubro de 2013
■ Chegada da primeira versão do ASP.NET Identity
■ Várias mudanças de paradigmas, conceitos e formas implementação
■ Março de 2014
■ Liberada a versão 2 do ASP.NET Identity
■ Vários recursos implementados: Two Factor, Account Lockout, Confirmation, Reset, etc.
■ Fevereiro de 2015
■ Lançamento da versão 2.2
■ Em breve no AspNet 5
■ Identity 3.0
Um pouco de história 
■ A versão 1.0
■ Teve seu lançamento com o Asp.Net MVC 5
■ Customização de informações do usuário usando Code-First
■ Passou a possibilitar testes unitários
■ Utiliza Role Provider
■ Começou a ser inserido o conceito de Claims
■ Integração com Redes sociais
■ Integração com AD: On-Premise, Azure AD, Office365
■ Integração com OWIN
■ ASP.NET Identity está isponível via Nuget desde o Visual Studio 2013
■ ASP.NET Identity só pode ser usado em aplicações com versão do .NET
framework 4.5
■ Suporta: Oauth/OpenID, SSO (Single-Sign-On)
Visão Geral do Identity
■ Tipos de Storages que podem ser utilizados
■ Azure Table Storage
■ DocumentDB
■ MongoDB
■ RavenDB
■ Nhibernate
■ Redis
■ MySQL
Visão Geral do Identity
■ Separação em níveis de responsabilidades na versão 2.1:
■Managers
■ Alto nível de acesso
■ Executa operações para criar usuário
■ Fala com Stores por meio de Interface
■ Altamente plugável
■Storages
■ Fala com a camada de dados
■ Armazena: User, Role, Claims
Visão Geral do Identity
ASP.NET Applications
Managers
Stores
Data Access Layer
Data Source
Ex.: SQL Server, MySQL, Azure Table Storage,
DocumentDB
Ex.: UserStore, RoleStore
Ex.: UserManager,
RoleManager
■ O que são Claims?
■Identity utiliza o recurso de Claims para ser mais extensível
■Utilizando Claims, o usuário pode:
■Vir de qualquer fonte: Facebook, Google+, Twitter, Linkedin
■ASP.NET Identity tendo suporte por meio de algum Provider de Autenticação, sua aplicação
vai poder armazenar informações do usuário externo.
■Seja de fontes externas ou não, utilizando Claims sua aplicação pode
armazenar mais informações do usuário sem fazer Hits no banco de dados.
■Claims trabalha com conceito de dicionário, ou seja, Key/Value:
■“UserName”: “José Roberto Araújo”
■“RoleName”: “Administrador”
■“Birthday”: “26/11/1981”
Visão Geral do Identity
■ Novidades da versão 2.1
■Autenticação em 2 fatores (Two Factor Authentication)
■SMS
■Email
■Bloqueio temporário da conta (Account Lockout)
■Confirmação da Conta (Account Confirmation)
■Security Stamp (log-off de qualquer disponsitivo)
■Chave Primária extensível para a classe User e Role
■Possibilidade de extensão da classe de validação de senha
■Enhanced Password Validator
Visão Geral do Identity
■ IdentityUser – Implementa a interface IUser
■ EmailService/SmsService – São notificadores para o modo de autenticação
de 2 fatores.
■ UserManager – API para criar User, Claims e informações de autenticação
utilizando a classe UserStore
■ RoleManager – API para criar as roles utilizando a classe RoleStore
■ UserStore – camada que fala com o banco de dados, armazenando User,
User Roles, User Claims
■ RoleStore – camada que fala com o banco de dados, armazenando
as Roles.
■ SigninManager – API utilizada para realizar o trabalho de
autenticação (Single ou Two Factor)
Classes ASP.NET Identity
■ Mecanismo utilizado para aumentar a segurança de acesso as
aplicações
■ Precisa de pelo menos 1 provider para viabilizar o funcionamento do
mecanismo
■ Assim que o usuário logar na aplicação, será solicitado a autenticação
usando o segundo fator
■ A cada novo login é verificado o segundo fator.
Autenticação com 2 fatores (Two Factor Authentication)
■ SEMPRE, SEMPRE utilize SSL em suas aplicações. NUNCA viva sem
esse recurso.
■ Garanta que sua política de senha seja forte o suficiente.
■ Não permita que o seu login possa sofrer várias tentativas de acesso e
não realizar nenhum bloqueio
■ Utilize o token Xsrf garantindo a segurança do envio dos dados em
seu request
■ No ASP.NET MVC use o atributo: ValidateAntiForgeryToken
Recomendações de Segurança
■ Aplicação ASP.NET MVC usando Individual Identity
■Confirmação da conta via Email
■Account Confirmation
■Customizando dados do usuário Identity
■Bloqueio da conta
■Account Lockout
■Two Factor Authentication
■SMS
■Email
■Login Externo usando External Provider
■Facebook
■Claims vs Roles
■Utilizando custom provider com DocumentDB
■Plus... 
DEMO
■ http://www.asp.net/identity
■https://github.com/aspnet/identity
■https://aspnetidentity.codeplex.com/
■http://azure.microsoft.com/en-us/services/documentdb/
■http://channel9.msdn.com/Series/Customizing-ASPNET-Authentication-with-
Identity
■https://github.com/tracker086/DocumentDB.AspNet.Identity
■http://www.nuget.org/packages/DocumentDB.AspNet.Identity/1.0.6-beta
Referências
www.jrobertoaraujo.net
www.facebook.com/joserobertoaraujo
Asp net identity - De dentro das trincheiras

Mais conteúdo relacionado

Mais procurados

Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
Ryan Padilha
 
Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com Meteor
Weverton Gomes
 
Meteor - TechParty 2015
Meteor - TechParty 2015Meteor - TechParty 2015
Meteor - TechParty 2015
Rodrigo Krummenauer do Nascimento
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Fabrício Lopes Sanchez
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
Renato Groff
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
Rodrigo Cândido da Silva
 
LightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicaçõesLightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicações
Igor Abade
 
Netshoes - API Gateway
Netshoes - API GatewayNetshoes - API Gateway
Netshoes - API Gateway
Marcos Barbero
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
Fabrício Lopes Sanchez
 
Novidades do ASP.NET MVC 4
Novidades do ASP.NET MVC 4Novidades do ASP.NET MVC 4
Novidades do ASP.NET MVC 4
Waldyr Felix
 
Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro Serviços
Fernando Ike
 
Começando com meteor
Começando com meteorComeçando com meteor
Começando com meteor
Flávio Junior
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
Miguel Vilaca
 
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSWorkshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Rodrigo Cândido da Silva
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
Rodrigo Cândido da Silva
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
Aluisio Junior
 
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
Rodrigo Cândido da Silva
 
Entity Framework 7
Entity Framework 7Entity Framework 7
Entity Framework 7
Ricardo Peres
 
Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019
Gabriel Rodrigues Couto
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e Suportes
Edgar Silva
 

Mais procurados (20)

Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com Meteor
 
Meteor - TechParty 2015
Meteor - TechParty 2015Meteor - TechParty 2015
Meteor - TechParty 2015
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
LightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicaçõesLightSwitch - O futuro do desenvolvimento rápido de aplicações
LightSwitch - O futuro do desenvolvimento rápido de aplicações
 
Netshoes - API Gateway
Netshoes - API GatewayNetshoes - API Gateway
Netshoes - API Gateway
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Novidades do ASP.NET MVC 4
Novidades do ASP.NET MVC 4Novidades do ASP.NET MVC 4
Novidades do ASP.NET MVC 4
 
Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro Serviços
 
Começando com meteor
Começando com meteorComeçando com meteor
Começando com meteor
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSWorkshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
 
Entity Framework 7
Entity Framework 7Entity Framework 7
Entity Framework 7
 
Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e Suportes
 

Destaque

Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
José Roberto Araújo
 
Arquitetura agnóstica aplicada asp net6 + nodejs e redis
Arquitetura agnóstica aplicada   asp net6 + nodejs e redisArquitetura agnóstica aplicada   asp net6 + nodejs e redis
Arquitetura agnóstica aplicada asp net6 + nodejs e redis
José Roberto Araújo
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
José Roberto Araújo
 
Web moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJSWeb moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJS
José Roberto Araújo
 
DDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de ValorDDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de Valor
José Roberto Araújo
 
Serverles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDBServerles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDB
José Roberto Araújo
 
ASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NETASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NET
Eduardo Pires
 

Destaque (7)

Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Arquitetura agnóstica aplicada asp net6 + nodejs e redis
Arquitetura agnóstica aplicada   asp net6 + nodejs e redisArquitetura agnóstica aplicada   asp net6 + nodejs e redis
Arquitetura agnóstica aplicada asp net6 + nodejs e redis
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
Web moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJSWeb moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJS
 
DDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de ValorDDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de Valor
 
Serverles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDBServerles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDB
 
ASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NETASP.NET Identity - O Novo componente de Membership do ASP.NET
ASP.NET Identity - O Novo componente de Membership do ASP.NET
 

Semelhante a Asp net identity - De dentro das trincheiras

Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Alisson Solitto
 
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de VulnerabilidadesMetasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
Igor Moura
 
Apresentação Drupal como LMS
Apresentação Drupal como LMSApresentação Drupal como LMS
Apresentação Drupal como LMS
Frederico Schillings Ferrer
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
André Luiz Forchesatto
 
OpenAM - Fast SSO
OpenAM - Fast SSOOpenAM - Fast SSO
OpenAM - Fast SSO
Yros
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2
Rodrigo Cândido da Silva
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
Rodrigo Cândido da Silva
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
Michael Cardoso
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
Targettrust
 
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Tchelinux
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
Magno Logan
 
Como manter o WordPress seguro
Como manter o WordPress seguroComo manter o WordPress seguro
Como manter o WordPress seguro
Rudá Almeida
 
Melhores Práticas no Uso da Nuvem AWS
Melhores Práticas no Uso da Nuvem AWSMelhores Práticas no Uso da Nuvem AWS
Melhores Práticas no Uso da Nuvem AWS
Amazon Web Services LATAM
 
Html5 pt - Offline Apps
Html5 pt - Offline AppsHtml5 pt - Offline Apps
Html5 pt - Offline Apps
Byclosure
 
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
GUTS-RS
 
JAVAle - Open-IdentityStack
JAVAle - Open-IdentityStackJAVAle - Open-IdentityStack
JAVAle - Open-IdentityStack
Marcondes Maçaneiro
 
Apresentação sobre Drupal
Apresentação sobre DrupalApresentação sobre Drupal
Apresentação sobre Drupal
Webdrop
 
Aula 05 - Java Script Básico
Aula 05 -  Java Script BásicoAula 05 -  Java Script Básico
Aula 05 - Java Script Básico
Fabio Moura Pereira
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
Mateus Malaquias
 

Semelhante a Asp net identity - De dentro das trincheiras (20)

Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de VulnerabilidadesMetasploit Framework: Software Livre para PoC de Vulnerabilidades
Metasploit Framework: Software Livre para PoC de Vulnerabilidades
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Apresentação Drupal como LMS
Apresentação Drupal como LMSApresentação Drupal como LMS
Apresentação Drupal como LMS
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 
OpenAM - Fast SSO
OpenAM - Fast SSOOpenAM - Fast SSO
OpenAM - Fast SSO
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
 
ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
 
Como manter o WordPress seguro
Como manter o WordPress seguroComo manter o WordPress seguro
Como manter o WordPress seguro
 
Melhores Práticas no Uso da Nuvem AWS
Melhores Práticas no Uso da Nuvem AWSMelhores Práticas no Uso da Nuvem AWS
Melhores Práticas no Uso da Nuvem AWS
 
Html5 pt - Offline Apps
Html5 pt - Offline AppsHtml5 pt - Offline Apps
Html5 pt - Offline Apps
 
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
 
JAVAle - Open-IdentityStack
JAVAle - Open-IdentityStackJAVAle - Open-IdentityStack
JAVAle - Open-IdentityStack
 
Apresentação sobre Drupal
Apresentação sobre DrupalApresentação sobre Drupal
Apresentação sobre Drupal
 
Aula 05 - Java Script Básico
Aula 05 -  Java Script BásicoAula 05 -  Java Script Básico
Aula 05 - Java Script Básico
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (8)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Asp net identity - De dentro das trincheiras

  • 1. #GlobalAzure ASP.NET Identity – De dentro das Trincheiras José Roberto Araújo
  • 4. 1. Um pouco de História 2. Visão Geral do Identity ■ Versão 1.0 ■ Tipos de Storages suportados ■ Versão 2.1 ■ O que são Claims? 3. Visão Geral das Classes ASP.NET Identity 4. Autenticação com 2 fatores (Two Factor Authentication) 5. Recomendações de segurança 6. DEMOS Agenda
  • 5. ■ Novembro de 2005 ■ Surgia o ASP.NET Membership (odiado por muitos, adorado por poucos :D) ■ Existia somente suporte ao SQL Server ou SQL Server Express (Extremamente limitado seu poder de armazenamento) ■ Maio de 2012 ■ Primaiera versão que foi disponibilizada via NuGet ■ Começou um movimento de universalização de Providers, suportando: ■ SQL CE, Armazenamento no Azure ■ Agosto de 2012 ■ Chegada do SimpleMembership possibilitando a utilização do Code-First (Isso é LINDO!!!) ■ Pode ser utilizado tanto em WebPages quanto em aplicações ASP.NET MVC ■ Outubro de 2013 ■ Chegada da primeira versão do ASP.NET Identity ■ Várias mudanças de paradigmas, conceitos e formas implementação ■ Março de 2014 ■ Liberada a versão 2 do ASP.NET Identity ■ Vários recursos implementados: Two Factor, Account Lockout, Confirmation, Reset, etc. ■ Fevereiro de 2015 ■ Lançamento da versão 2.2 ■ Em breve no AspNet 5 ■ Identity 3.0 Um pouco de história 
  • 6. ■ A versão 1.0 ■ Teve seu lançamento com o Asp.Net MVC 5 ■ Customização de informações do usuário usando Code-First ■ Passou a possibilitar testes unitários ■ Utiliza Role Provider ■ Começou a ser inserido o conceito de Claims ■ Integração com Redes sociais ■ Integração com AD: On-Premise, Azure AD, Office365 ■ Integração com OWIN ■ ASP.NET Identity está isponível via Nuget desde o Visual Studio 2013 ■ ASP.NET Identity só pode ser usado em aplicações com versão do .NET framework 4.5 ■ Suporta: Oauth/OpenID, SSO (Single-Sign-On) Visão Geral do Identity
  • 7. ■ Tipos de Storages que podem ser utilizados ■ Azure Table Storage ■ DocumentDB ■ MongoDB ■ RavenDB ■ Nhibernate ■ Redis ■ MySQL Visão Geral do Identity
  • 8. ■ Separação em níveis de responsabilidades na versão 2.1: ■Managers ■ Alto nível de acesso ■ Executa operações para criar usuário ■ Fala com Stores por meio de Interface ■ Altamente plugável ■Storages ■ Fala com a camada de dados ■ Armazena: User, Role, Claims Visão Geral do Identity ASP.NET Applications Managers Stores Data Access Layer Data Source Ex.: SQL Server, MySQL, Azure Table Storage, DocumentDB Ex.: UserStore, RoleStore Ex.: UserManager, RoleManager
  • 9. ■ O que são Claims? ■Identity utiliza o recurso de Claims para ser mais extensível ■Utilizando Claims, o usuário pode: ■Vir de qualquer fonte: Facebook, Google+, Twitter, Linkedin ■ASP.NET Identity tendo suporte por meio de algum Provider de Autenticação, sua aplicação vai poder armazenar informações do usuário externo. ■Seja de fontes externas ou não, utilizando Claims sua aplicação pode armazenar mais informações do usuário sem fazer Hits no banco de dados. ■Claims trabalha com conceito de dicionário, ou seja, Key/Value: ■“UserName”: “José Roberto Araújo” ■“RoleName”: “Administrador” ■“Birthday”: “26/11/1981” Visão Geral do Identity
  • 10. ■ Novidades da versão 2.1 ■Autenticação em 2 fatores (Two Factor Authentication) ■SMS ■Email ■Bloqueio temporário da conta (Account Lockout) ■Confirmação da Conta (Account Confirmation) ■Security Stamp (log-off de qualquer disponsitivo) ■Chave Primária extensível para a classe User e Role ■Possibilidade de extensão da classe de validação de senha ■Enhanced Password Validator Visão Geral do Identity
  • 11. ■ IdentityUser – Implementa a interface IUser ■ EmailService/SmsService – São notificadores para o modo de autenticação de 2 fatores. ■ UserManager – API para criar User, Claims e informações de autenticação utilizando a classe UserStore ■ RoleManager – API para criar as roles utilizando a classe RoleStore ■ UserStore – camada que fala com o banco de dados, armazenando User, User Roles, User Claims ■ RoleStore – camada que fala com o banco de dados, armazenando as Roles. ■ SigninManager – API utilizada para realizar o trabalho de autenticação (Single ou Two Factor) Classes ASP.NET Identity
  • 12. ■ Mecanismo utilizado para aumentar a segurança de acesso as aplicações ■ Precisa de pelo menos 1 provider para viabilizar o funcionamento do mecanismo ■ Assim que o usuário logar na aplicação, será solicitado a autenticação usando o segundo fator ■ A cada novo login é verificado o segundo fator. Autenticação com 2 fatores (Two Factor Authentication)
  • 13. ■ SEMPRE, SEMPRE utilize SSL em suas aplicações. NUNCA viva sem esse recurso. ■ Garanta que sua política de senha seja forte o suficiente. ■ Não permita que o seu login possa sofrer várias tentativas de acesso e não realizar nenhum bloqueio ■ Utilize o token Xsrf garantindo a segurança do envio dos dados em seu request ■ No ASP.NET MVC use o atributo: ValidateAntiForgeryToken Recomendações de Segurança
  • 14. ■ Aplicação ASP.NET MVC usando Individual Identity ■Confirmação da conta via Email ■Account Confirmation ■Customizando dados do usuário Identity ■Bloqueio da conta ■Account Lockout ■Two Factor Authentication ■SMS ■Email ■Login Externo usando External Provider ■Facebook ■Claims vs Roles ■Utilizando custom provider com DocumentDB ■Plus...  DEMO