Share via


Autenticar aplicativos e usuários com o Microsoft Entra ID

Uma função principal do Microsoft Entra ID para aplicativos é a autenticação, o processo no qual os usuários declaram sua identidade com um identificador pessoal, como um nome de usuário ou endereço de email. A prova da identidade é fornecida. A prova pode ser uma senha, um artefato de autenticação multifator, uma biometria ou um consentimento sem senha.

Este artigo descreve como os aplicativos usam o Microsoft Entra ID para autenticar usuários e aplicativos. É o terceiro de uma série de artigos sobre como os Desenvolvedores Independentes de Software (ISV) podem criar e otimizar seus aplicativos para o Microsoft Entra ID. Nesta série, você pode aprender mais sobre estes tópicos:

Solicitar tokens

Os aplicativos solicitam um token do Microsoft Entra ID. Depois que os aplicativos recebem o token, eles podem usar as informações contidas nesse token para identificar o usuário. Quando você cria no Microsoft Entra ID, os usuários podem autenticar muitos aplicativos com uma única conta registrada do Microsoft Entra ID (SSO). O método de autenticação SSO permite que os usuários façam login em vários sistemas de software independentes usando um conjunto de credenciais.

Os protocolos que os desenvolvedores podem usar para solicitar um token do Microsoft Entra ID usam um navegador para conectar o usuário ao site do Microsoft Entra ID. Esse site permite que o usuário tenha uma conversa privada usando o Microsoft Entra ID. Um aplicativo não é um participante dessa conversa privada. Os aplicativos iniciam o site do Microsoft Entra ID, onde o usuário inicia o processo de autenticação. Após a conclusão do processo de autenticação, o Microsoft Entra ID redireciona o usuário de volta para o aplicativo, com ou sem um token.

É importante que os usuários raramente precisem passar pelo processo de autenticação. Quanto mais frequentemente os usuários precisarem fazer isso, mais suscetíveis ficarão a explorações como ataques de phishing.

Reduza os prompts de entrada

O SSO pode reduzir ou eliminar os prompts de entrada. Os desenvolvedores desempenham um papel fundamental na redução e eliminação dos prompts de entrada. Todos os aplicativos devem compartilhar o navegador que acessa o site do Microsoft Entra ID, no qual os usuários realizam o processo de autenticação. Se o seu aplicativo for um aplicativo de página única (SPA) baseado em navegador ou um aplicativo Web, não serão necessárias etapas de desenvolvedor. Todos os aplicativos no navegador compartilham o navegador. Para aplicativos nativos que são executados em desktops e dispositivos móveis, os desenvolvedores devem reduzir ou eliminar proativamente os prompts de entrada.

O melhor método para reduzir ou eliminar os prompts de entrada é usar as Bibliotecas de Autenticação da Microsoft (MSAL), ou uma biblioteca criada com base na MSAL, e autenticação de agentes. Este método minimiza os prompts de entrada e proporciona a experiência mais fluida possível. Se não for possível criar com base na MSAL, seu aplicativo deverá usar o navegador do sistema para minimizar os prompts de login.

Para aplicativos executados em iOS ou Android, os provedores de plataformas móveis possuem algumas funcionalidades que tornam essa experiência mais integrada. O Google fornece diretrizes para aplicativos Android com Guias Personalizadas do Chrome. A Apple tem diretrizes para Autenticar um usuário por meio de um serviço Web em aplicativos iOS. Evite usar WebViews inseridos, pois eles podem não permitir o compartilhamento entre aplicativos ou com o navegador do sistema.

Os dois protocolos para autenticação do usuário são Security Assertion Markup Language 2.0 (SAML) e OpenID Connect (OIDC). O Microsoft Entra ID dá suporte total a aplicativos que usam ambos os protocolos, de modo que os desenvolvedores podem escolher um deles com base em seus requisitos.

Estas referências detalham o suporte à Microsoft Entra ID SAML.

Existem algumas limitações no suporte a Microsoft Entra ID SAML. Especificamente, não é possível migrar aplicativos que exigem esses recursos de protocolo: suporte para o padrão WS-Trust ActAs e resolução de artefatos SAML.

Embora o Microsoft Entra ID dê suporte total à SAML para aplicativos criados com base no protocolo SAML, a plataforma de identidade da Microsoft não fornece bibliotecas ou outras ferramentas de desenvolvimento para o desenvolvimento de aplicativos com SAML. Para o desenvolvimento de novos aplicativos, recomendamos o uso do OpenID Connect (OIDC) para autenticação.

O Microsoft Entra ID dá suporte total ao OpenID Connect. A Microsoft fornece as bibliotecas MSAL, Microsoft Identity Web e SDK do Azure para facilitar o desenvolvimento de aplicativos OIDC. O OpenID Connect (OIDC) na plataforma de identidade da Microsoft detalha o suporte ao Microsoft Entra ID OIDC. A MSAL dá suporte automaticamente ao OIDC. A MSAL sempre solicita um token de ID OIDC com cada solicitação de token, incluindo solicitações de autorização para um aplicativo acessar um recurso.

Tempo de vida do Token

A MSAL armazena em cache os tokens de ID e os tokens de acesso com base no tempo de expiração do token de acesso. Como o Microsoft Entra ID define de forma diferente o tempo de vida dos tokens de ID e de acesso, você pode receber um token de ID expirado de um cache da MSAL expirado enquanto o token de acesso ainda estiver dentro do tempo de vida válido.

A MSAL não renova automaticamente os tokens de ID. A MSAL renova os tokens de acesso no momento ou próximo do fim da vida útil do token de acesso, quando uma aplicação solicita o token. Nesse momento, a MSAL solicita um novo token de ID. Para implementar o OIDC, use a declaração exp (expirar) no token de ID para agendar uma solicitação de token de ID usando o sinalizador ForceRefresh na MSAL.

Quando não for possível criar na MSAL ou em uma biblioteca criada na MSAL, você poderá usar o padrão OpenID Connect para autenticar o usuário atual. Algumas funcionalidades em aplicativos nativos podem não ser possíveis sem o uso da MSAL, como garantir que o aplicativo nativo esteja sendo executado em um dispositivo gerenciado. Examine Aumentar a resiliência da autenticação e da autorização nos aplicativos clientes que você desenvolve para obter diretrizes quando não estiver criando na MSAL.

O Microsoft Entra ID implementa um ponto de extremidade UserInfo como parte do suporte aos padrões OIDC do Microsoft Entra ID com um caminho específico do Microsoft Graph (https://graph.microsoft.com/oidc/userinfo). Não é possível adicionar ou personalizar as informações que o ponto de extremidade UserInfo retorna. Como as informações no token de ID são um superconjunto das informações retornadas pela chamada do ponto de extremidade UserInfo, recomendamos usar o token de ID em vez de chamar o ponto de extremidade UserInfo.

Autenticar usuários

Os aplicativos interagem com os locatários do Microsoft Entra ID para autenticar usuários. Para autenticar um usuário, um aplicativo direciona um navegador para https://login.microsoftonline.com/{tenant}/v2.0, em que {tenant} é a ID ou o domínio do locatário. No entanto, recomendamos que os ISVs usem o Microsoft Entra ID para criar aplicativos multilocatários que possam dar suporte à mais ampla gama de clientes. Para um aplicativo multilocatário, um aplicativo pode não saber de qual locatário um usuário é até que ele se autentique, portanto, não é possível usar um ponto de extremidade de locatário específico.

Para habilitar aplicativos multilocatário, o Microsoft Entra ID fornece dois pontos de extremidade OIDC/OAuth 2.0 independentes do locatário:

  • https://login.microsoftonline.com/common/v2.0 permite que os usuários autentiquem um aplicativo quando forem de qualquer locatário do Microsoft Entra ID ou tiverem uma Conta Microsoft de consumidor de sites como outlook.com, skype.com, xbox.com, live.com ou Hotmail.com.
  • O https://login.microsoftonline.com/organizations/v2.0 permite que os usuários autentiquem um aplicativo quando são de qualquer locatário do Microsoft Entra ID.

Esses pontos de extremidade permitem que qualquer usuário de qualquer locatário do Microsoft Entra ID autentique seu aplicativo. Se quiser permitir apenas usuários de locatários específicos, implemente a lógica para permitir que apenas os usuários desses locatários acessem seu aplicativo. A implementação normal é filtrar os usuários com base na declaração iss (emissor) ou tid (ID do locatário) no token para uma lista de permissões de locatários que você mantém.

Os locatários do Microsoft Entra ID dão suporte a usuários que podem ser membros regulares do locatário ou que podem ser usuários convidados do locatário. Por padrão, há recursos limitados para usuários convidados em um locatário. Por exemplo, os usuários convidados não podem ver o perfil completo de outros usuários no locatário. Os usuários convidados, às vezes chamados de usuários Business to Business (B2B), permitem que diferentes organizações colaborem com ferramentas e serviços protegidos pelo Microsoft Entra ID. Um exemplo de cenário é convidar um usuário de fora da sua organização para acessar um arquivo do SharePoint no seu locatário. Normalmente, um usuário B2B usa seu endereço de email como userid. No entanto, eles podem usar esse mesmo endereço como o userid no seu locatário principal. Por padrão, o Microsoft Entra ID inscreve o usuário em seu locatário doméstico quando ele insere seu userid.

Para conectar um usuário como um usuário B2B, um aplicativo deve usar o ponto de extremidade específico do locatário no qual o usuário é um convidado. Embora seja possível para um usuário especificar um locatário que deseja acessar quando um aplicativo usa o ponto de extremidade https://login.microsoftonline.com/organizations/v2.0, os usuários podem achar esse recurso difícil de descobrir.

Próximas etapas