modern apps e o novo panorama de identidade e autenticação
DESCRIPTION
Apresentação sobre o novo panorama de autenticação das Modern Apps realizada no TDC 2014 - Trilha de Arquitetura .NET.TRANSCRIPT
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
SecureCross-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 1Browser para Web App
Globalcode – Open4education
Browser para Web AppWS-Fed e SAML 2.0
BrowserWeb Application
Directory Tenant
Navega para o site
Redireciona ao diretório para Sign In
Sign InSAML 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 2App Nativa para Web API
Globalcode – Open4education
Web API
App Nativa para Web APIOAuth 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 APIOAuth 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.1Passado algum tempo o Access Token expira...
Globalcode – Open4education
Web API
App Nativa para Web APIOAuth 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 3Web App para Web API
Globalcode – Open4education
Web App para Web APIDois casos...
Web app utiliza a própria identidadeCená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 APIApp 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 AppClient 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 APIUser + 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 AppClient 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 4Server App para Web API
Globalcode – Open4education
Web API
Web App para Web APIApp 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çãoDiretório para Autenticação
Windows Azure Active Directory
Active Directory
Azure DirSync
Rede CorporativaNuvem
Federation Service
IaaS
SaaS
Internoou
Externo
Globalcode – Open4education
Princípios de Arquitetura
Utilizar protocolos standard
Bibliotecas cross-plataformaServer
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&AJorge Rua