Compartilhar via


Configurar a autenticação em um aplicativo Android de exemplo usando o Azure AD B2C

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.

Este artigo usa um aplicativo Android de exemplo (Kotlin e Java) para ilustrar como adicionar a autenticação do Azure AD B2C (Azure Active Directory B2C) aos seus aplicativos móveis.

Visão geral

O OIDC (OpenID Connect) é um protocolo de autenticação criado com base no OAuth 2.0. Você pode usar o OIDC para conectar os usuários com segurança a um aplicativo. Este exemplo de aplicativo móvel usa a MSAL (Biblioteca de Autenticação da Microsoft) com o fluxo PKCE do código de autorização OIDC. A MSAL é uma biblioteca fornecida pela Microsoft que simplifica a adição de suporte de autenticação e autorização a aplicativos móveis.

O fluxo de entrada envolve as seguintes etapas:

  1. Os usuários abrem o aplicativo e selecionam entrar.
  2. O aplicativo abre o navegador do sistema do dispositivo móvel e inicia uma solicitação de autenticação para o Azure AD B2C.
  3. Os usuários se inscrevem ou entram, redefinem a senha ou entram com uma conta social.
  4. Depois que os usuários entrarem com êxito, o Azure AD B2C retornará um código de autorização para o aplicativo.
  5. O aplicativo executa as seguintes ações:
    1. Ele troca o código de autorização por um token de ID, token de acesso e token de atualização.
    2. Ele lê as declarações do token da ID.
    3. Ele armazena os tokens em um cache na memória para uso posterior.

Visão geral do registro do aplicativo

Para permitir que seu aplicativo entre com o Azure AD B2C e chame uma API Web, registre dois aplicativos no diretório do Azure AD B2C.

  • O registro de aplicativo móvel permite que seu aplicativo entre com o Azure AD B2C. Durante o registro do aplicativo, especifique o URI de redirecionamento. O URI de redirecionamento é o ponto de extremidade para o qual os usuários são redirecionados pelo Azure AD B2C depois de se autenticarem via Azure AD B2C. O processo de registro do aplicativo gera uma ID do aplicativo, também conhecida como ID do cliente, que identifica exclusivamente seu aplicativo móvel (por exemplo, ID do aplicativo: 1).

  • O registro da API Web permite que seu aplicativo chame uma API Web protegida. O registro expõe as permissões da API Web (escopos). O processo de registro do aplicativo gera uma ID do aplicativo, que identifica exclusivamente sua API Web (por exemplo, ID do aplicativo: 2). Conceda ao aplicativo móvel (ID do aplicativo: 1) permissões para os escopos da API Web (ID do aplicativo: 2).

O registro de aplicativos e a arquitetura do aplicativo são ilustrados nos seguintes diagramas:

Diagrama do aplicativo móvel com registros de chamadas da API Web e tokens.

Chamar uma API Web

Após a autenticação, os usuários interagem com o aplicativo, que invoca uma API Web protegida. A API Web usa a autenticação de token de portador. O token de portador é o token de acesso que o aplicativo obteve do Azure AD B2C. O aplicativo passa o token no cabeçalho de autorização da solicitação HTTPS.

Authorization: Bearer <access token>

Se o escopo do token de acesso não corresponder aos escopos da API Web, a biblioteca de autenticação obterá um novo token de acesso com os escopos corretos.

O fluxo de saída

O fluxo de saída envolve as seguintes etapas:

  1. No aplicativo, os usuários sairão.
  2. O aplicativo limpa seus objetos de sessão e a biblioteca de autenticação limpa seu cache de tokens.
  3. O aplicativo leva os usuários para o ponto de extremidade de saída do Azure AD B2C para encerrar a sessão do Azure AD B2C.
  4. Os usuários são redirecionados de volta para o aplicativo.

Pré-requisitos

Um computador que esteja executando:

Etapa 1: configurar o fluxo de usuário

Quando os usuários tentam entrar, o aplicativo inicia uma solicitação de autenticação para o ponto de extremidade de autorização por meio de um fluxo de usuário. O fluxo de usuários define e controla a experiência do usuário. Quando o fluxo é concluído, o Azure AD B2C gera um token e redireciona o usuário de volta para o aplicativo.

Se você ainda não fez isso, crie um fluxo de usuário ou uma política personalizada. Repita as etapas para criar três fluxos de usuário separados, da seguinte forma:

  • Um fluxo de usuário combinado de entrada e inscrição, como susi. Esse fluxo de usuário também dá suporte à experiência Esqueceu sua senha.
  • Um fluxo de usuário de edição de perfil, como edit_profile.
  • Um fluxo de usuário de Redefinição de senha, como reset_password.

O Azure AD B2C acrescenta B2C_1_ ao início do nome do fluxo de usuário. Por exemplo, susi se tornará B2C_1_susi.

Etapa 2: Registrar aplicativos móveis

Crie o aplicativo móvel e o registro de aplicativo de API Web e especifique os escopos da API Web.

Etapa 2.1: Registrar o aplicativo de API Web

Para criar o registro do aplicativo da API Web (ID do Aplicativo: 2), siga estas etapas:

  1. Entre no portal do Azure.

  2. Verifique se você está usando o diretório que contenha seu locatário do Azure AD B2C. Selecione o ícone Diretórios + assinaturas na barra de ferramentas do portal.

  3. Na página Configurações do portal | Diretórios + assinaturas, encontre o diretório Azure Active Directory B2C na lista Nome do diretório e selecione Alternar.

  4. No portal do Azure, pesquise e selecione Azure AD B2C.

  5. Escolha Registros de aplicativo e Novo registro.

  6. Insira um Nome para o aplicativo, (por exemplo, my-api1). Deixe os valores padrão para URI de redirecionamento e tipos de conta com suporte.

  7. Selecione Registrar.

  8. Depois que o registro do aplicativo for concluído, selecione Visão Geral.

  9. Registre o valor da ID do aplicativo (cliente) para uso posterior, quando você configurar o aplicativo Web.

    A captura de tela demonstra como obter uma ID de aplicativo da API Web.

Etapa 2.2: Configurar escopos de aplicativo de API Web

  1. Selecione o aplicativo my-api1 que você criou (ID do Aplicativo: 2) para abrir a página de Visão Geral do aplicativo.

  2. Em Gerenciar, selecione Expor uma API.

  3. Ao lado de URI do ID do Aplicativo, selecione o link Definir. Substitua o valor padrão (identificador exclusivo, GUID) por um nome exclusivo (por exemplo, tasks-api) e selecione Salvar.

    Quando o aplicativo Web solicita um token de acesso à API Web, ele deve adicionar esse URI como prefixo para cada escopo que você definir para a API.

  4. Em Escopos definidos por esta API, selecione Adicionar um escopo.

  5. Para criar um escopo que define o acesso de leitura à API:

    1. Para Nome do escopo, insira tasks.read.
    2. Para Nome de exibição de consentimento do administrador, insira Acesso de leitura à API de tarefas.
    3. Para Descrição do consentimento do administrador, insira Permitir acesso de leitura à API de tarefas.
  6. Selecione Adicionar escopo.

  7. Selecione Adicionar escopo e adicione um escopo que define o acesso de gravação à API:

    1. Para Nome do escopo, insira tasks.write.
    2. Para Nome de exibição de consentimento do administrador, insira Acesso de gravação à API de tarefas.
    3. Para Descrição do consentimento do administrador, insira Permitir acesso de gravação à API de tarefas.
  8. Selecione Adicionar escopo.

Etapa 2.3: Registrar o aplicativo móvel

Para criar o registro de aplicativo móvel, faça o seguinte:

  1. Entre no portal do Azure.

  2. Escolha Registros de aplicativo e Novo registro.

  3. Em Nome, insira um nome para o aplicativo (por exemplo, android-app1).

  4. Em Tipos de conta com suporte, selecione Contas em qualquer provedor de identidade ou diretório organizacional (para autenticar usuários com fluxos dos usuários) .

  5. Em URI de Redirecionamento, selecione Cliente público/nativo (móvel &desktop) e, na caixa URL, insira uma das seguintes URIs:

    • Para o exemplo kotlin: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • Para o exemplo java: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. Selecione Registrar.

  7. Depois que o registro do aplicativo for concluído, selecione Visão Geral.

  8. Registre a ID do aplicativo (cliente) para uso posterior, quando você configurar o aplicativo móvel.

    Captura de tela realçando a ID do aplicativo Android

Etapa 2.4: Conceder permissões de aplicativo móvel para a API Web

Para conceder permissões ao aplicativo (ID do Aplicativo: 1), siga estas etapas:

  1. Selecione Registros de aplicativo e, em seguida, selecione o aplicativo que você criou (ID do Aplicativo: 1).

  2. Em Gerenciar, selecione Permissões de API.

  3. Em Permissões Configuradas, selecione Adicionar uma permissão.

  4. Selecione a guia Minhas APIs.

  5. Selecione a API (ID do Aplicativo: 2) que deverá conceder acesso ao aplicativo Web. Por exemplo, insira my-api1.

  6. Em Permissão, expanda tarefas e, em seguida, selecione os escopos definidos anteriormente (por exemplo, tasks.read e tasks.write).

  7. Selecione Adicionar Permissões.

  8. Selecione Fornecer consentimento do administrador para <nome do seu locatário>.

  9. Selecione Sim.

  10. Selecione Atualizar e, em seguida, verifique se Concedido para... aparece em Status para ambos os escopos.

  11. Na lista Permissões configuradas, selecione o escopo e, em seguida, copie o nome completo do escopo.

    Captura de tela do painel de permissões configuradas, mostrando que as permissões do acesso de leitura foram concedidas.

Etapa 3: Obter o exemplo de aplicativo móvel Android

Siga um destes procedimentos:

  • Baixe um destes exemplos:

    Extraia o arquivo .zip de amostra para sua pasta de trabalho.

  • Clone o aplicativo móvel Android de exemplo do GitHub.

    git clone https://github.com/Azure-Samples/ms-identity-android-kotlin
    

Etapa 4: Configurar a API Web de exemplo

Este exemplo adquire um token de acesso com os escopos relevantes que o aplicativo móvel pode usar para uma API Web. Para chamar uma API Web do código, faça o seguinte:

  1. Use uma API Web existente ou crie uma nova. Para obter mais informações, consulte Habilitar a autenticação em sua própria API Web usando o Azure AD B2C.
  2. Altere o código de exemplo para chamar uma API Web.

Etapa 5: Configurar o aplicativo móvel de exemplo

Abra o projeto de exemplo com o Android Studio ou outro editor de código e, em seguida, abra o arquivo deauth_config_b2c.json/app/src/main/res/raw/ .

O arquivo de configuraçãoauth_config_b2c.json contém informações sobre o provedor de identidade do Azure AD B2C. O aplicativo móvel usa essas informações para estabelecer uma relação de confiança com o Azure AD B2C, fazer login e logout dos usuários, adquirir tokens e validá-los.

Atualize as seguintes propriedades de configurações de aplicativo:

Chave Valor
client_id A ID do aplicativo móvel da etapa 2.3.
redirect_uri O URI de redirecionamento de aplicativo móvel da etapa 2.3.
autoridades A autoridade é uma URL que indica um diretório do qual a MSAL pode solicitar tokens. Use o seguinte formato: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy>. Substitua <your-tenant-name> pelo nome do locatário do Azure AD B2C. Em seguida, substitua <your-sign-in-sign-up-policy> pelos fluxos de usuário ou pela política personalizada que você criou na etapa 1.

Abra a B2CConfiguration classe e atualize os seguintes membros da classe:

Chave Valor
Políticas A lista de fluxos de usuário ou políticas personalizadas que você criou na etapa 1.
azureAdB2CHostName A primeira parte do nome do locatário do Azure Active Directory B2C (por exemplo, https://contoso.b2clogin.com).
nomeDoInquilino O nome de locatário completo do locatário do Azure Active Directory B2C (por exemplo, contoso.onmicrosoft.com).
Escopos Os escopos da API Web que você criou na etapa 2.4.

Etapa 6: Executar e testar o aplicativo móvel

  1. Compile e execute o projeto.

  2. No canto superior esquerdo, selecione o ícone de hambúrguer (também chamado de ícone de menu recolhido), conforme mostrado aqui:

    Captura de tela realçando o ícone de hambúrguer ou menu recolhido.

  3. No painel esquerdo, selecione Modo B2C.

    Captura de tela realçando o comando

  4. Selecione Executar Fluxo de Usuário.

    Captura de tela realçando o botão

  5. Inscreva-se ou entre com sua conta local ou social do Azure AD B2C.

  6. Após a autenticação bem-sucedida, você verá seu nome de exibição no painel de modo B2C .

    Captura de tela mostrando uma autenticação bem-sucedida, com o usuário conectado e a política exibidas.

Próximas etapas

Saiba como: