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
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
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
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
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
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
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