Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aviso
Este conteúdo é destinado à versão mais antiga do Azure AD v1.0. Use a plataforma de identidade da Microsoft para obter novos projetos.
Os SPAs (aplicativos de página única) normalmente são estruturados como uma camada de apresentação javaScript (front-end) executada no navegador e um back-end da API Web que é executado em um servidor e implementa a lógica de negócios do aplicativo. Para saber mais sobre a concessão de autorização implícita e ajudá-lo a decidir se é ideal para seu cenário de aplicativo, consulte Noções básicas sobre o fluxo de concessão implícita OAuth2 no Azure Active Directory.
Nesse cenário, quando o usuário faz login, o front-end em JavaScript usa Biblioteca de Autenticação do Active Directory para JavaScript (ADAL.JS) e a concessão de autorização implícita para obter um token de identificação (id_token) do Azure AD. O token é armazenado em cache e o cliente o anexa à solicitação como o token de portador ao fazer chamadas para seu back-end da API Web, que é protegido usando o middleware OWIN.
Diagrama
Fluxo de protocolo
- O usuário navega até o aplicativo Web.
- O aplicativo retorna o front-end do JavaScript (camada de apresentação) para o navegador.
- O usuário inicia a entrada, por exemplo, clicando em um link de entrada. O navegador envia uma solicitação HTTP GET para o endpoint de autorização do Azure AD para solicitar um token de ID. Essa solicitação inclui a ID do aplicativo e a URL de resposta nos parâmetros de consulta.
- O Azure AD valida a URL de Resposta como comparada à URL de Resposta registrada que foi configurada no portal do Azure.
- O usuário faz login na página de login.
- Se a autenticação for bem-sucedida, o Azure AD criará um token de ID e o retornará como um fragmento de URL (#) para a URL de Resposta do aplicativo. Para um aplicativo de produção, essa URL de Resposta deve ser HTTPS. O token retornado inclui declarações sobre o usuário e o Azure AD que são exigidas pelo aplicativo para validar o token.
- O código do cliente JavaScript em execução no navegador extrai o token da resposta a ser usada na proteção de chamadas para o back-end da API Web do aplicativo.
- O navegador chama o back-end da API Web do aplicativo com o token de identificação no cabeçalho da autorização. O serviço de autenticação do Azure AD emite um token de ID que pode ser usado como um token de portador se o recurso for o mesmo que a ID do cliente (nesse caso, isso é verdadeiro, pois a API Web é o próprio back-end do aplicativo).
Exemplos de código
Consulte os exemplos de código para cenários de aplicativo de página única. Certifique-se de voltar sempre, pois novos exemplos são adicionados frequentemente.
Registro de aplicativo
- Locatário único – se você estiver criando um aplicativo apenas para sua organização, ele deverá ser registrado no diretório da sua empresa usando o portal do Azure.
- Multilocatário – se você estiver criando um aplicativo que possa ser usado por usuários fora da sua organização, ele deverá ser registrado no diretório da sua empresa, mas também deverá ser registrado no diretório de cada organização que usará o aplicativo. Para disponibilizar seu aplicativo em seu diretório, você pode incluir um processo de inscrição para seus clientes que permite que eles consentam com seu aplicativo. Quando eles se inscreverem em seu aplicativo, eles serão apresentados com uma caixa de diálogo que mostra as permissões necessárias pelo aplicativo e, em seguida, a opção de consentimento. Dependendo das permissões necessárias, um administrador da outra organização pode ser obrigado a dar consentimento. Quando o usuário ou administrador consente, o aplicativo é registrado em seu diretório.
Depois de registrar o aplicativo, ele deve ser configurado para usar o protocolo de concessão implícita OAuth 2.0. Por padrão, esse protocolo está desabilitado para aplicativos. Para habilitar o protocolo de concessão implícita OAuth2 para seu aplicativo, edite o manifesto do aplicativo no portal do Azure e defina o valor "oauth2AllowImplicitFlow" como true. Para obter mais informações, veja Manifesto do aplicativo.
Expiração do token
Usar ADAL.js ajuda com:
- Atualizando um token expirado
- Solicitando um token de acesso para chamar um recurso de API Web
Após uma autenticação bem-sucedida, o Azure AD grava um cookie no navegador do usuário para estabelecer uma sessão. Observe que a sessão existe entre o usuário e o Azure AD (não entre o usuário e o aplicativo Web). Quando um token expira, ADAL.js usa essa sessão para obter silenciosamente outro token. ADAL.js usa um iFrame oculto para enviar e receber a solicitação usando o protocolo de concessão implícita OAuth. ADAL.js também pode usar esse mesmo mecanismo para obter silenciosamente tokens de acesso para outros recursos da API Web que o aplicativo chama, desde que esses recursos ofereçam suporte ao CORS (compartilhamento de recursos entre origens), sejam registrados no diretório do usuário e qualquer consentimento necessário tenha sido dado pelo usuário durante a entrada.