SlideShare uma empresa Scribd logo
1 de 24
Globalcode – Open4education
Modern Apps e o novo panorama de
identidade e autenticação
Jorge Rua
@jtressino
Solution Architect
Globalcode – Open4education
Objetivos
Entender o novo contexto de autenticação
introduzido pelas Aplicações Modernas
Descrever os novos componentes de arquitetura,
novos métodos de autenticação e os cenários de
autenticação
Recomendação de novos frameworks para
implementação
Globalcode – Open4education
Agenda
Aplicações Modernas
Cenários de Autenticação
Arquitetura de Autenticação
Globalcode – Open4education
Princípios de Desenho
Aplicações Modernas
Cloud
Enabled Responsive UI
Secure Cross-Device Scalable
Data Intensive
Globalcode – Open4education
Aplicações Modernas
Browser
Web Application
Web API
Native App
Server App
WS-Fed, SAML 2.0,
OpenID Connect
oAuth 2.0
oAuth 2.0
oAuth 2.0
Globalcode – Open4education
Cenário 1
Browser para Web App
Globalcode – Open4education
Browser para Web App
WS-Fed e SAML 2.0
Browser Web Application
Directory Tenant
Navega para o site
Redireciona ao diretório
para Sign In
Sign In
SAML Token para
Redirect URL
HTTP Post SAML Token
Set Session
Windows
Identity
Foundation
OWIN Auth
WebApp Service Principal
• App ID URI
• Redirect URL
Globalcode – Open4education
Cenário 2
App Nativa para Web API
Globalcode – Open4education
Web API
App Nativa para Web API
OAuth 2.0
Directory Tenant
Requisita o
Auth Code
Sign In
Native App
• Client ID
• Redirect URI
Native App
Client ID, Redirect
Uri, Resource Id
Web API SP
• App ID URI
• Client ID (Resource
ID)
Auth Endpoint Token Endpoint
Auth Code
Redirect URI
Globalcode – Open4education
Web API
App Nativa para Web API
OAuth 2.0
Directory Tenant
Resgata o Auth Code
Retorna Access Token e Refresh Token
Windows
Identity
Foundation
JWT
Handler
Native App
• Client ID
• Redirect URI
Native App
Auth Code, Client ID, Redirect
URI, Resource ID
ADAL
Web API SP
• App ID URI
• Client ID (Resource
ID)
Auth Endpoint Token Endpoint
Acessa API com o Access Token no AuthZ Header
Globalcode – Open4education
Cenário 2.1
Passado algum tempo o
Access Token expira...
Globalcode – Open4education
Web API
App Nativa para Web API
OAuth 2.0
Directory Tenant
Acessa API (Access
Token no AuthZ
Header)
Requisita novo Access Token (Client ID,
Refresh Token, Resource ID)
Windows
Identity
Foundation
JWT
Handler
Native App
• Client ID
• Redirect URI
Native App
ADAL
Web API SP
• App ID URI
• Client ID (Resource
ID)
Auth Endpoint Token Endpoint
Acessa API com o Access Token no AuthZ Header
Access Token
expirado
Retorna Access Token e Refresh Token
Globalcode – Open4education
Cenário 3
Web App para Web API
Globalcode – Open4education
Web App para Web API
Dois casos...
Web app utiliza a própria identidade
Cenário “app identity”
OAuth 2.0 client credentials grant
Web app utiliza a identidade do usuário
autenticado
Cenário “app + user identity”
OAuth 2.0 auth code and confidential client
Globalcode – Open4education
Web API
Web App para Web API
App Identity
Directory Tenant
Solicita Token
Web App SP
• Client ID
• Redirect URI
• Credential
Web API SP
• App ID URI
• Client ID (Resource
ID)
Auth Endpoint Token Endpoint
Autenticado na Web App
Client ID,
Credencial,
Resource ID
Web Application
Retorna
Token
Acessa API com o Access Token no AuthZ Header
WIF
Browser
JWT
WIF JWT
ADAL
Globalcode – Open4education
Web API
Web App para Web API
User + App Identity
Directory Tenant
Solicita Auth Code
Web App SP
• Client ID
• Redirect URI
• Credential
Web API SP
• App ID URI
• Client ID (Resource
ID)
Auth Endpoint Token Endpoint
Autenticado na Web App
Client ID,
Resource ID
Web Application
WIF
Browser
JWT
WIF JWT
ADAL
Retorna Auth
Code
Solicita Token
Retorna
Token
Acessa API com o Access Token no AuthZ Header
Consenso
Globalcode – Open4education
Cenário 4
Server App para Web API
Globalcode – Open4education
Web API
Web App para Web API
App Identity
Directory Tenant
Server App SP
• Client ID
• Credential
Web API SP
• App ID URI
• Client ID (Resource
ID)
Auth Endpoint Token Endpoint
WIF JWT
Server App
Requisita Access Token
Client ID, Credencial, Resource ID
Retorna Access Token
Acessa API com o Access Token no AuthZ Header
ADAL
Globalcode – Open4education
Resumo Final
Globalcode – Open4education
Componentes da Solução
Diretório para Autenticação
Windows Azure
Active Directory Active Directory
Azure DirSync
Rede CorporativaNuvem
Federation
Service
IaaSSaaS
Interno
ou
Externo
Globalcode – Open4education
Princípios de Arquitetura
Utilizar protocolos standard
Bibliotecas cross-plataforma
Server
Client
Gerenciamento de Identidade
Globalcode – Open4education
Frameworks
Windows Identity Foundation
Active Directory Authentication Library
OWIN
Globalcode – Open4education
Protocolos
Componente Protocolo AD FS Azure AD
Web App WS-Federation AD FS 2.0+ Disponível
SAML 2.0 AD FS 2.0+ Disponível
OpenID Connect Não Disponível Preview
Web App para
Web API
OAuth 2.0 auth code + confidential
client
Não Disponível Disponível
OAuth 2.0 client credential Não Disponível Disponível
Native App Oauth 2.0 auth code + public client AD FS 3.0 Disponível
Server App OAuth 2.0 client credential Não Disponível Disponível
Azure AD: http://msdn.microsoft.com/en-us/library/azure/dn151124.aspx
Globalcode – Open4education
Q&A
Jorge Rua

Mais conteúdo relacionado

Semelhante a Modern Apps e o novo panorama de identidade e autenticação

Introdução a plataforma de aplicativos Redu
Introdução a plataforma de aplicativos ReduIntrodução a plataforma de aplicativos Redu
Introdução a plataforma de aplicativos ReduGuilherme
 
Backend para dispositivos moveis
Backend para dispositivos moveisBackend para dispositivos moveis
Backend para dispositivos moveisThales Lima
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APIWaldyr Felix
 
#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2Luiz Avila
 
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2tdc-globalcode
 
Introdução - Graph API
Introdução  - Graph APIIntrodução  - Graph API
Introdução - Graph APIWilson Govindji
 
ASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureWaldyr Felix
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3Alex Miranda
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs RESTGuilherme
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
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 OAuth2Rodrigo Cândido da Silva
 
CakePHP - Social Login com Linkedin
CakePHP - Social Login com LinkedinCakePHP - Social Login com Linkedin
CakePHP - Social Login com LinkedinLuís Fred
 
Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3
Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3
Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3Johnny Salazar Reidel
 
Aula07 android conectividade
Aula07 android conectividadeAula07 android conectividade
Aula07 android conectividadeRoberson Alves
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMAlisson Solitto
 
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11   desenvolvimento de um app ao vivo - pablo morettiAudit¢rio 11   desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo morettifsolari
 

Semelhante a Modern Apps e o novo panorama de identidade e autenticação (20)

Introdução a plataforma de aplicativos Redu
Introdução a plataforma de aplicativos ReduIntrodução a plataforma de aplicativos Redu
Introdução a plataforma de aplicativos Redu
 
Backend para dispositivos moveis
Backend para dispositivos moveisBackend para dispositivos moveis
Backend para dispositivos moveis
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2
 
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
 
Introdução - Graph API
Introdução  - Graph APIIntrodução  - Graph API
Introdução - Graph API
 
ASP.NET Web API no Windows Azure
ASP.NET Web API no Windows AzureASP.NET Web API no Windows Azure
ASP.NET Web API no Windows Azure
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs REST
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
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
 
CakePHP - Social Login com Linkedin
CakePHP - Social Login com LinkedinCakePHP - Social Login com Linkedin
CakePHP - Social Login com Linkedin
 
Spring social
Spring socialSpring social
Spring social
 
Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3
Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3
Palestra Joomla Day Brasil 2014 - Extensão de Webservice para Joomla 3
 
Aula07 android conectividade
Aula07 android conectividadeAula07 android conectividade
Aula07 android conectividade
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
Open ID Connect
Open ID Connect Open ID Connect
Open ID Connect
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11   desenvolvimento de um app ao vivo - pablo morettiAudit¢rio 11   desenvolvimento de um app ao vivo - pablo moretti
Audit¢rio 11 desenvolvimento de um app ao vivo - pablo moretti
 

Modern Apps e o novo panorama de identidade e autenticação

  • 1. Globalcode – Open4education Modern Apps e o novo panorama de identidade e autenticação Jorge Rua @jtressino Solution Architect
  • 2. Globalcode – Open4education Objetivos Entender o novo contexto de autenticação introduzido pelas Aplicações Modernas Descrever os novos componentes de arquitetura, novos métodos de autenticação e os cenários de autenticação Recomendação de novos frameworks para implementação
  • 3. Globalcode – Open4education Agenda Aplicações Modernas Cenários de Autenticação Arquitetura de Autenticação
  • 4. Globalcode – Open4education Princípios de Desenho Aplicações Modernas Cloud Enabled Responsive UI Secure Cross-Device Scalable Data Intensive
  • 5. Globalcode – Open4education Aplicações Modernas Browser Web Application Web API Native App Server App WS-Fed, SAML 2.0, OpenID Connect oAuth 2.0 oAuth 2.0 oAuth 2.0
  • 6. Globalcode – Open4education Cenário 1 Browser para Web App
  • 7. Globalcode – Open4education Browser para Web App WS-Fed e SAML 2.0 Browser Web Application Directory Tenant Navega para o site Redireciona ao diretório para Sign In Sign In SAML Token para Redirect URL HTTP Post SAML Token Set Session Windows Identity Foundation OWIN Auth WebApp Service Principal • App ID URI • Redirect URL
  • 8. Globalcode – Open4education Cenário 2 App Nativa para Web API
  • 9. Globalcode – Open4education Web API App Nativa para Web API OAuth 2.0 Directory Tenant Requisita o Auth Code Sign In Native App • Client ID • Redirect URI Native App Client ID, Redirect Uri, Resource Id Web API SP • App ID URI • Client ID (Resource ID) Auth Endpoint Token Endpoint Auth Code Redirect URI
  • 10. Globalcode – Open4education Web API App Nativa para Web API OAuth 2.0 Directory Tenant Resgata o Auth Code Retorna Access Token e Refresh Token Windows Identity Foundation JWT Handler Native App • Client ID • Redirect URI Native App Auth Code, Client ID, Redirect URI, Resource ID ADAL Web API SP • App ID URI • Client ID (Resource ID) Auth Endpoint Token Endpoint Acessa API com o Access Token no AuthZ Header
  • 11. Globalcode – Open4education Cenário 2.1 Passado algum tempo o Access Token expira...
  • 12. Globalcode – Open4education Web API App Nativa para Web API OAuth 2.0 Directory Tenant Acessa API (Access Token no AuthZ Header) Requisita novo Access Token (Client ID, Refresh Token, Resource ID) Windows Identity Foundation JWT Handler Native App • Client ID • Redirect URI Native App ADAL Web API SP • App ID URI • Client ID (Resource ID) Auth Endpoint Token Endpoint Acessa API com o Access Token no AuthZ Header Access Token expirado Retorna Access Token e Refresh Token
  • 13. Globalcode – Open4education Cenário 3 Web App para Web API
  • 14. Globalcode – Open4education Web App para Web API Dois casos... Web app utiliza a própria identidade Cenário “app identity” OAuth 2.0 client credentials grant Web app utiliza a identidade do usuário autenticado Cenário “app + user identity” OAuth 2.0 auth code and confidential client
  • 15. Globalcode – Open4education Web API Web App para Web API App Identity Directory Tenant Solicita Token Web App SP • Client ID • Redirect URI • Credential Web API SP • App ID URI • Client ID (Resource ID) Auth Endpoint Token Endpoint Autenticado na Web App Client ID, Credencial, Resource ID Web Application Retorna Token Acessa API com o Access Token no AuthZ Header WIF Browser JWT WIF JWT ADAL
  • 16. Globalcode – Open4education Web API Web App para Web API User + App Identity Directory Tenant Solicita Auth Code Web App SP • Client ID • Redirect URI • Credential Web API SP • App ID URI • Client ID (Resource ID) Auth Endpoint Token Endpoint Autenticado na Web App Client ID, Resource ID Web Application WIF Browser JWT WIF JWT ADAL Retorna Auth Code Solicita Token Retorna Token Acessa API com o Access Token no AuthZ Header Consenso
  • 17. Globalcode – Open4education Cenário 4 Server App para Web API
  • 18. Globalcode – Open4education Web API Web App para Web API App Identity Directory Tenant Server App SP • Client ID • Credential Web API SP • App ID URI • Client ID (Resource ID) Auth Endpoint Token Endpoint WIF JWT Server App Requisita Access Token Client ID, Credencial, Resource ID Retorna Access Token Acessa API com o Access Token no AuthZ Header ADAL
  • 20. Globalcode – Open4education Componentes da Solução Diretório para Autenticação Windows Azure Active Directory Active Directory Azure DirSync Rede CorporativaNuvem Federation Service IaaSSaaS Interno ou Externo
  • 21. Globalcode – Open4education Princípios de Arquitetura Utilizar protocolos standard Bibliotecas cross-plataforma Server Client Gerenciamento de Identidade
  • 22. Globalcode – Open4education Frameworks Windows Identity Foundation Active Directory Authentication Library OWIN
  • 23. Globalcode – Open4education Protocolos Componente Protocolo AD FS Azure AD Web App WS-Federation AD FS 2.0+ Disponível SAML 2.0 AD FS 2.0+ Disponível OpenID Connect Não Disponível Preview Web App para Web API OAuth 2.0 auth code + confidential client Não Disponível Disponível OAuth 2.0 client credential Não Disponível Disponível Native App Oauth 2.0 auth code + public client AD FS 3.0 Disponível Server App OAuth 2.0 client credential Não Disponível Disponível Azure AD: http://msdn.microsoft.com/en-us/library/azure/dn151124.aspx