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

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

  • 1.
    Globalcode – Open4education ModernApps e o novo panorama de identidade e autenticação Jorge Rua @jtressino Solution Architect
  • 2.
    Globalcode – Open4education Objetivos Entendero 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çõesModernas Cenários de Autenticação Arquitetura de Autenticação
  • 4.
    Globalcode – Open4education Princípiosde Desenho Aplicações Modernas Cloud Enabled Responsive UI Secure Cross-Device Scalable Data Intensive
  • 5.
    Globalcode – Open4education AplicaçõesModernas 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.
  • 7.
    Globalcode – Open4education Browserpara 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ário2 App Nativa para Web API
  • 9.
    Globalcode – Open4education WebAPI 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 WebAPI 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ário2.1 Passado algum tempo o Access Token expira...
  • 12.
    Globalcode – Open4education WebAPI 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.
  • 14.
    Globalcode – Open4education WebApp 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 WebAPI 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 WebAPI 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ário4 Server App para Web API
  • 18.
    Globalcode – Open4education WebAPI 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
  • 19.
  • 20.
    Globalcode – Open4education Componentesda 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ípiosde Arquitetura Utilizar protocolos standard Bibliotecas cross-plataforma Server Client Gerenciamento de Identidade
  • 22.
    Globalcode – Open4education Frameworks WindowsIdentity Foundation Active Directory Authentication Library OWIN
  • 23.
    Globalcode – Open4education Protocolos ComponenteProtocolo 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
  • 24.