Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Advertência
Este conteúdo destina-se ao ponto de extremidade do Azure AD v1.0 mais antigo. Utilize a plataforma de identidade da Microsoft para novos projetos.
Os aplicativos de página única (SPAs) geralmente são estruturados como uma camada de apresentação JavaScript (front-end) que é executada no navegador e um back-end de API da 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 ela é adequada para seu cenário de aplicativo, consulte Noções básicas sobre o fluxo de concessão implícita OAuth2 no Azure Ative Directory.
Nesse cenário, quando o usuário inicia sessão, o front-end JavaScript usa a 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 ID 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 de 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 JavaScript (camada de apresentação) para o navegador.
- O utilizador inicia o início de sessão, por exemplo, clicando numa ligação de início de sessão. O navegador envia um pedido GET para o endpoint de autorização do Azure AD para solicitar um token de ID. Essa solicitação inclui o ID do aplicativo e a URL de resposta nos parâmetros de consulta.
- O Azure AD valida a URL de Resposta em relação à URL de Resposta registrada que foi configurada no portal do Azure.
- O utilizador faz login na página de início de sessão.
- 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 para proteger chamadas para o back end da API web da aplicação.
- O navegador chama o back-end da API Web do aplicativo com o token de ID no cabeçalho de 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 verificar com frequência à medida que novas amostras são adicionadas com frequência.
Registo na aplicação
- 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 pode ser usado por usuários fora da sua organização, ele deve ser registrado no diretório da sua empresa, mas também deve ser registrado no diretório de cada organização que usará o aplicativo. Para disponibilizar seu aplicativo no diretório deles, você pode incluir um processo de inscrição para seus clientes que permita que eles consintam com seu aplicativo. Quando eles se inscreverem no seu aplicativo, eles receberão uma caixa de diálogo que mostra as permissões que o aplicativo requer 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 é 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 saber mais, veja Manifesto do aplicativo.
Expiração do token
O uso do ADAL.js ajuda com:
- Atualizando um token expirado
- Solicitando um token de acesso para chamar um recurso de API da 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 de API da Web que o aplicativo chama, desde que esses recursos ofereçam suporte ao compartilhamento de recursos entre origens (CORS), estejam registrados no diretório do usuário e qualquer consentimento necessário tenha sido dado pelo usuário durante o login.