Partilhar via


Tutorial: Configurar um aplicativo Android para entrar usuários usando a plataforma de identidade da Microsoft

Aplica-se a: círculo verde com um símbolo de marca de verificação branco. Inquilinos do Workforce círculo verde com um símbolo de marca de verificação branco. Inquilinos externos (saber mais)

Neste tutorial, você sabe como adicionar a Biblioteca de Autenticação da Microsoft (MSAL) para Android ao seu aplicativo Android. O MSAL permite que os aplicativos Android autentiquem usuários com o Microsoft Entra.

Neste tutorial, você vai:

  • Adicionar dependência MSAL
  • Adicionar configuração
  • Criar instância do SDK do MSAL

Pré-requisitos

  • Um membro da força de trabalho. Você pode usar o seu diretório padrão ou configurar um novo inquilino.
  • Registre um novo aplicativo no centro de administração do Microsoft Entra, configurado para Contas somente neste diretório organizacional. Consulte Registar uma candidatura para obter mais detalhes. Registre os seguintes valores na página Visão geral do aplicativo para uso posterior:
    • ID da aplicação (cliente)
    • ID do diretório (inquilino)
  • Um projeto Android. Se você não tiver um projeto Android, crie-o.

Adicionar um URI de redirecionamento

Você deve configurar URIs de redirecionamento específicos no registro do aplicativo para garantir a compatibilidade com o exemplo de código baixado. Esses URIs são essenciais para redirecionar os usuários de volta ao aplicativo depois que eles entrarem com êxito.

  1. Em Gerir, selecione Autenticação>Adicionar uma plataforma>Android.

  2. Insira o nome do pacote do seu projeto com base no tipo de exemplo que você baixou acima.

    • Exemplo Java - com.azuresamples.msalandroidapp
    • Amostra de Kotlin - com.azuresamples.msalandroidkotlinapp
  3. Na seção Assinatura de hash do painel Configurar a sua app Android, selecione a opção Gerar uma Assinatura de hash de desenvolvimento e copie o comando KeyTool para a linha de comando.

    • KeyTool.exe é instalado como parte do Java Development Kit (JDK). Você também deve instalar a ferramenta OpenSSL para executar o comando KeyTool. Para obter mais informações, consulte a documentação do Android sobre como gerar uma chave para obter mais informações.
  4. Introduza o Hash de assinatura gerado pelo KeyTool.

  5. Selecione Configurar e salvar a Configuração do MSAL que aparece no painel de configuração do Android para que você possa inseri-la quando configurar seu aplicativo mais tarde.

  6. Selecione Concluído.

Adicione a dependência MSAL e as bibliotecas relevantes ao seu projeto

Para adicionar dependências MSAL em seu projeto Android, execute estas etapas:

  1. Abra seu projeto no Android Studio ou crie um novo projeto.

  2. Abra o build.gradle do aplicativo e adicione as seguintes dependências:

    allprojects {
    repositories {
        //Needed for com.microsoft.device.display:display-mask library
        maven {
            url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
            name 'Duo-SDK-Feed'
        }
        mavenCentral()
        google()
        }
    }
    //...
    
    dependencies { 
        implementation 'com.microsoft.identity.client:msal:5.+'
        //...
    }
    

    Na configuração build.gradle, os repositórios são definidos para dependências do projeto. Inclui a URL de repositório Maven para a biblioteca com.microsoft.device.display:display-mask do Azure DevOps. Além disso, utiliza repositórios do Maven Central e do Google. A seção dependências especifica a implementação do MSAL versão 5 e potencialmente outras dependências.

  3. No Android Studio, selecione Ficheiro>Sincronizar Projeto com Ficheiros Gradle.

Adicionar configuração

Você passa os identificadores de locatário necessários, como a ID do aplicativo (cliente), para o SDK do MSAL através de uma configuração JSON.

Use estas etapas para criar o arquivo de configuração:

  1. No painel de projeto do Android Studio, vá até app\src\main\res.

  2. Clique com o botão direito do mouse res e escolha New>Directory. Digite raw como o novo nome do diretório e selecione OK.

  3. Em aplicação>src>main>res>raw, crie um novo ficheiro JSON chamado auth_config_single_account.json e cole a Configuração MSAL que você salvou anteriormente.

    Abaixo do URI de redirecionamento, cole:

      "account_mode" : "SINGLE",
    

    Seu arquivo de configuração deve ser semelhante a este exemplo:

    {
      "client_id": "00001111-aaaa-bbbb-3333-cccc4444",
      "authorization_user_agent": "WEBVIEW",
      "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D",
      "broker_redirect_uri_registered": true,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    

    Como este tutorial demonstra apenas como configurar um aplicativo no modo de Conta Única, consulte modo de conta única versus múltipla e como configurar seu aplicativo para obter mais informações

  4. Recomendamos o uso de 'WEBVIEW'. Caso você queira configurar "authorization_user_agent" como "NAVEGADOR" em seu aplicativo, você precisa fazer as seguintes atualizações. a) Atualize auth_config_single_account.json com "authorization_user_agent": "Browser". b) Atualizar AndroidManifest.xml. Na app, vá para app>src>principal>AndroidManifest.xml, adicione a atividade BrowserTabActivity como filho do elemento <application>. Esta entrada permite que o Microsoft Entra ID retorne ao seu aplicativo depois de concluir a autenticação.

    <!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in-->
    <activity
        android:name="com.microsoft.identity.client.BrowserTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="msauth"
                android:host="Enter_the_Package_Name"
                android:path="/Enter_the_Signature_Hash" />
        </intent-filter>
    </activity>
    
    • Use o Nome do pacote para substituir android:host=. valor. Deve parecer com.azuresamples.msalandroidapp.
    • Use o Hash de Assinatura para substituir o valor android:path=. Certifique-se de que há um / principal no início do seu Hash de Assinatura. Deve parecer /aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.

    Também pode encontrar esses valores na página de autenticação do registo da sua aplicação.

Criar instância do SDK do MSAL

Para inicializar a instância do SDK do MSAL, use o seguinte código:

PublicClientApplication.createSingleAccountPublicClientApplication(
    getContext(),
    R.raw.auth_config_single_account,
    new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
        @Override
        public void onCreated(ISingleAccountPublicClientApplication application) {
            // Initialize the single account application instance
            mSingleAccountApp = application;
            loadAccount();
        }

        @Override
        public void onError(MsalException exception) {
            // Handle any errors that occur during initialization
            displayError(exception);
        }
    }
);

Esse código cria um aplicativo cliente público de conta única usando o arquivo de configuração auth_config_single_account.json. Quando o aplicativo é criado com êxito, ele atribui a instância ao mSingleAccountApp e chama o método loadAccount(). Se ocorrer um erro durante a criação, ele manipulará o erro chamando o método displayError(exception).

Certifique-se de incluir as instruções de importação. O Android Studio deve incluir automaticamente as instruções de importação para si.

Próximos passos