Partilhar via


Fluxo de entrada do aplicativo com a plataforma de identidade da Microsoft

Este tópico discute o fluxo básico de entrada para aplicativos da Web, desktop e móveis usando a plataforma de identidade da Microsoft. Consulte Fluxos de autenticação e cenários de aplicativos para saber mais sobre os cenários de entrada suportados pela plataforma de identidade da Microsoft.

Fluxo de entrada do aplicativo Web

Quando um usuário navega no navegador para um aplicativo Web, acontece o seguinte:

  • O aplicativo Web determina se o usuário está autenticado.
  • Se o usuário não estiver autenticado, o aplicativo Web delega à ID do Microsoft Entra para entrar no usuário. Esse login estará em conformidade com a política da organização, o que pode significar pedir ao usuário para inserir suas credenciais, usando autenticação multifator (às vezes referida como autenticação de dois fatores ou 2FA), ou não usando uma senha (por exemplo, usando o Windows Hello).
  • O usuário é solicitado a consentir o acesso que o aplicativo cliente precisa. É por isso que os aplicativos cliente precisam ser registrados com o Microsoft Entra ID, para que a plataforma de identidade da Microsoft possa fornecer tokens que representem o acesso com o qual o usuário consentiu.

Quando o usuário tiver autenticado com êxito:

  • A plataforma de identidade da Microsoft envia um token para o aplicativo Web.
  • É guardado um cookie, associado a um domínio do Microsoft Entra, que contém a identidade do utilizador no jar de cookies do navegador. Da próxima vez que um aplicativo usar o navegador para navegar até o ponto de extremidade de autorização da plataforma de identidade da Microsoft, o navegador apresentará o cookie para que o usuário não precise entrar novamente. Esta é também a forma como a SSO é alcançada. O cookie é produzido pelo Microsoft Entra ID e só pode ser entendido pelo Microsoft Entra ID.
  • Em seguida, o aplicativo Web valida o token. Se a validação for bem-sucedida, o aplicativo Web exibirá a página protegida e salvará um cookie de sessão no jar de cookies do navegador. Quando o usuário navega para outra página, o aplicativo Web sabe que o usuário está autenticado com base no cookie de sessão.

O diagrama de sequência a seguir resume essa interação:

web app authentication process

Como um aplicativo Web determina se o usuário está autenticado

Os desenvolvedores de aplicativos Web podem indicar se todas ou apenas algumas páginas exigem autenticação. Por exemplo, no ASP.NET/ASP.NET Core, isso é feito adicionando o [Authorize] atributo às ações do controlador.

Esse atributo faz com que ASP.NET verifique a presença de um cookie de sessão contendo a identidade do usuário. Se um cookie não estiver presente, ASP.NET redirecionará a autenticação para o provedor de identidade especificado. Se o provedor de identidade for o Microsoft Entra ID, o aplicativo Web redirecionará a autenticação para https://login.microsoftonline.como , que exibirá uma caixa de diálogo de entrada.

Como um aplicativo Web delega o login na plataforma de identidade da Microsoft e obtém um token

A autenticação do usuário acontece através do navegador. O protocolo OpenID usa mensagens de protocolo HTTP padrão.

  • O aplicativo Web envia um HTTP 302 (redirecionamento) para o navegador para usar a plataforma de identidade da Microsoft.
  • Quando o usuário é autenticado, a plataforma de identidade da Microsoft envia o token para o aplicativo Web usando um redirecionamento pelo navegador.
  • O redirecionamento é fornecido pelo aplicativo Web na forma de um URI de redirecionamento. Esse URI de redirecionamento é registrado com o objeto de aplicativo Microsoft Entra. Pode haver vários URIs de redirecionamento porque o aplicativo pode ser implantado em várias URLs. Portanto, o aplicativo Web também precisará especificar o URI de redirecionamento a ser usado.
  • O Microsoft Entra ID verifica se o URI de redirecionamento enviado pelo aplicativo Web é um dos URIs de redirecionamento registrados para o aplicativo.

Fluxo de início de sessão em aplicações móveis e de ambiente de trabalho

O fluxo descrito acima aplica-se, com ligeiras diferenças, a aplicações desktop e móveis.

Os aplicativos móveis e de desktop podem usar um controle da Web incorporado ou um navegador do sistema para autenticação. O diagrama a seguir mostra como um aplicativo de desktop ou móvel usa a Biblioteca de Autenticação da Microsoft (MSAL) para adquirir tokens de acesso e chamar APIs da Web.

Desktop app how it appears to be

A MSAL usa um navegador para obter tokens. Tal como acontece com as aplicações Web, a autenticação é delegada à plataforma de identidade da Microsoft.

Como o Microsoft Entra ID salva o mesmo cookie de identidade no navegador que para aplicativos Web, se o aplicativo nativo ou móvel usar o navegador do sistema, ele receberá imediatamente o SSO com o aplicativo Web correspondente.

Por padrão, o MSAL usa o navegador do sistema. A exceção são os aplicativos de área de trabalho do .NET Framework em que um controle incorporado é usado para fornecer uma experiência de usuário mais integrada.

Próximos passos

Para outros tópicos que abrangem noções básicas de autenticação e autorização:

  • Consulte Autenticação versus autorização para saber mais sobre os conceitos básicos de autenticação e autorização na plataforma de identidade da Microsoft.
  • Consulte Tokens de segurança para saber como os tokens de acesso, os tokens de atualização e os tokens de ID são usados na autenticação e autorização.
  • Consulte Modelo de aplicativo para saber mais sobre o processo de registro de seu aplicativo para que ele possa se integrar à plataforma de identidade da Microsoft.
  • Consulte Proteger aplicativos e APIs validando declarações para saber como usar com segurança declarações de token para lógica de autorização em seus aplicativos.

Para saber mais sobre o fluxo de entrada do aplicativo:

  • Consulte Fluxos de autenticação e cenários de aplicativos para saber mais sobre outros cenários de autenticação de usuários suportados pela plataforma de identidade da Microsoft.
  • Consulte Bibliotecas MSAL para saber mais sobre as bibliotecas da Microsoft que ajudam a desenvolver aplicativos que funcionam com Contas da Microsoft, contas do Microsoft Entra e usuários do Azure AD B2C, tudo em um único modelo de programação simplificado.