Share via


Aplicações de página única

Aviso

Este conteúdo destina-se ao ponto final Azure AD v1.0 mais antigo. Utilize o plataforma de identidades da Microsoft para novos projetos.

As aplicações de página única (SPAs) são normalmente estruturadas como uma camada de apresentação JavaScript (front-end) que é executada no browser e um back-end da API Web que é executado num servidor e implementa a lógica de negócio da aplicação. Para saber mais sobre a concessão de autorização implícita e ajudá-lo a decidir se é adequado para o seu cenário de aplicação, veja Compreender o fluxo de concessão implícita do OAuth2 no Azure Active Directory.

Neste cenário, quando o utilizador inicia sessão, o front-end javaScript utiliza 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 (id_token) do Azure AD. O token é colocado em cache e o cliente anexa-o ao pedido como token de portador ao efetuar chamadas para o respetivo back-end da API Web, que é protegido com o middleware OWIN.

Diagrama

Diagrama de aplicação de página única

Fluxo de protocolo

  1. O utilizador navega para a aplicação Web.
  2. A aplicação devolve o front-end javaScript (camada de apresentação) ao browser.
  3. O utilizador inicia o início de sessão, por exemplo, clicando numa ligação de início de sessão. O browser envia um GET para o ponto final de autorização Azure AD para pedir um token de ID. Este pedido inclui o ID da aplicação e o URL de resposta nos parâmetros de consulta.
  4. Azure AD valida o URL de Resposta relativamente ao URL de Resposta registado que foi configurado no portal do Azure.
  5. O utilizador inicia sessão na página de início de sessão.
  6. Se a autenticação for bem-sucedida, Azure AD cria um token de ID e devolve-o como um fragmento de URL (#) ao URL de Resposta da aplicação. Para uma aplicação de produção, este URL de Resposta deve ser HTTPS. O token devolvido inclui afirmações sobre o utilizador e Azure AD que são necessárias pela aplicação para validar o token.
  7. O código de cliente JavaScript em execução no browser extrai o token da resposta a utilizar na proteção de chamadas para o back-end da API Web da aplicação.
  8. O browser chama o back-end da API Web da aplicação com o token de ID no cabeçalho de autorização. O serviço de autenticação Azure AD emite um token de ID que pode ser utilizado como token de portador se o recurso for o mesmo que o ID do cliente (neste caso, isto é verdade porque a API Web é o próprio back-end da aplicação).

Exemplos de código

Veja os exemplos de código para cenários de aplicação de página única. Certifique-se de que volta frequentemente à medida que são adicionados novos exemplos com frequência.

Registo de aplicações

  • Inquilino único – se estiver a criar uma aplicação apenas para a sua organização, esta tem de estar registada no diretório da sua empresa através do portal do Azure.
  • Multi-inquilino – se estiver a criar uma aplicação que pode ser utilizada por utilizadores fora da sua organização, esta tem de estar registada no diretório da sua empresa, mas também tem de estar registada no diretório de cada organização que irá utilizar a aplicação. Para disponibilizar a sua aplicação no respetivo diretório, pode incluir um processo de inscrição para os seus clientes que lhes permita dar consentimento à sua aplicação. Quando se inscrevem na sua aplicação, ser-lhes-á apresentada uma caixa de diálogo que mostra as permissões necessárias para a aplicação 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 utilizador ou administrador consente, a aplicação é registada no respetivo diretório.

Depois de registar a aplicação, tem de ser configurada para utilizar o protocolo de concessão implícita OAuth 2.0. Por predefinição, este protocolo está desativado para aplicações. Para ativar o protocolo de concessão implícita OAuth2 para a sua aplicação, edite o respetivo manifesto de aplicação a partir do portal do Azure e defina o valor "oauth2AllowImplicitFlow" como verdadeiro. Para obter mais informações, veja Manifesto da aplicação.

Expiração do token

A utilização de ADAL.js ajuda com:

  • Atualizar um token expirado
  • Pedir um token de acesso para chamar um recurso da API Web

Após uma autenticação bem-sucedida, Azure AD escreve um cookie no browser do utilizador para estabelecer uma sessão. Tenha em atenção que a sessão existe entre o utilizador e o Azure AD (não entre o utilizador e a aplicação Web). Quando um token expira, ADAL.js utiliza esta sessão para obter automaticamente outro token. ADAL.js utiliza um iFrame oculto para enviar e receber o pedido com o protocolo de concessão implícita OAuth. ADAL.js também pode utilizar este mesmo mecanismo para obter automaticamente tokens de acesso para outros recursos da API Web que a aplicação chama, desde que estes recursos suportem a partilha de recursos entre origens (CORS), estejam registados no diretório do utilizador e qualquer consentimento necessário tenha sido dado pelo utilizador durante o início de sessão.

Passos seguintes