Partilhar via


Tutorial: Preparar seu aplicativo Android (Kotlin) para autenticação

Este é o segundo tutorial da série de tutoriais que demonstra como adicionar a Biblioteca de Autenticação da Microsoft (MSAL) para Android ao seu aplicativo Android (Kotlin). O MSAL permite que os aplicativos Android autentiquem usuários com o Microsoft Entra.

Neste tutorial, você:

  • Adicione dependências MSAL.
  • Adicionar configuração.

Pré-requisitos

Adicionar dependências MSAL

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 aplicativo e build.gradle 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, os repositórios são definidos para as dependências do build.gradle projeto. Ele inclui uma URL de repositório Maven para a com.microsoft.device.display:display-mask biblioteca 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 File>Sync Project with Gradle Files.

Adicionar configuração

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

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

  1. No painel de projetos do Android Studio, navegue até app\src\main\res.

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

  3. Em app\src\main\res\raw, crie um novo arquivo JSON chamado auth_config_ciam_auth.json.

  4. auth_config_ciam_auth.json No arquivo, adicione as seguintes configurações MSAL:

    {
      "client_id" : "Enter_the_Application_Id_Here",
      "authorization_user_agent" : "DEFAULT",
      "redirect_uri" : "Enter_the_Redirect_Uri_Here",
      "account_mode" : "SINGLE",
      "authorities" : [
        {
          "type": "CIAM",
          "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/"
        }
      ]
    }
    

    O arquivo de configuração JSON especifica várias configurações para um aplicativo Android. Inclui o ID do cliente, o agente de usuário de autorização, o URI de redirecionamento e o modo de conta. Além disso, define uma autoridade para autenticação, especificando o tipo e a URL da autoridade.

    Substitua os seguintes espaços reservados pelos valores de locatário obtidos no centro de administração do Microsoft Entra:

    • Enter_the_Application_Id_Heree substitua-o pelo ID do aplicativo (cliente) do aplicativo que você registrou anteriormente.
    • Enter_the_Redirect_Uri_Heree substitua-o pelo valor de redirect_uri no arquivo de configuração da Biblioteca de Autenticação da Microsoft (MSAL) que você baixou anteriormente quando adicionou a URL de redirecionamento da plataforma.
    • Enter_the_Tenant_Subdomain_Here e substitua-o pelo subdomínio Directory (locatário). Por exemplo, se o domínio principal do locatário for contoso.onmicrosoft.com, use contoso. Se não souber o subdomínio do inquilino, saiba como ler os detalhes do inquilino.
  5. Abra o arquivo /app/src/main/AndroidManifest.xml .

  6. No AndroidManifest.xml, adicione a seguinte especificação de dados a um filtro de intenção:

    <data
        android:host="ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE"
        android:path="/ENTER_YOUR_SIGNATURE_HASH_HERE"
        android:scheme="msauth" />
    

    Encontre o espaço reservado:

    • ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE e substitua-o pelo nome do pacote de projeto do seu Android.
    • ENTER_YOUR_SIGNATURE_HASH_HERE e substitua-o pelo Hash de Assinatura que você gerou anteriormente quando adicionou a URL de redirecionamento da plataforma.

Usar domínio de URL personalizado (opcional)

Use um domínio personalizado para marcar totalmente a URL de autenticação. Do ponto de vista do usuário, os usuários permanecem no seu domínio durante o processo de autenticação, em vez de serem redirecionados para ciamlogin.com nome de domínio.

Use as seguintes etapas para usar um domínio personalizado:

  1. Use as etapas em Habilitar domínios de URL personalizados para aplicativos em locatários externos para habilitar o domínio de URL personalizado para seu locatário externo.

  2. Abra auth_config_ciam_auth.json arquivo:

    1. Atualize o authority_url valor da propriedade para https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Substitua Enter_the_Custom_Domain_Here pelo seu domínio de URL personalizado e Enter_the_Tenant_ID_Here pelo seu ID de inquilino. Se não tiver o ID do inquilino, saiba como ler os detalhes do inquilino.
    2. Adicionar knownAuthorities propriedade com um valor [Enter_the_Custom_Domain_Here].

Depois de fazer as alterações no arquivo auth_config_ciam_auth.json, se o domínio de URL personalizado estiver login.contoso.com e o ID do locatário for aaaabbbb-0000-cccc-1111-dddd2222eeee, o arquivo deverá ser semelhante ao seguinte trecho:

{
    "client_id" : "Enter_the_Application_Id_Here",
    "authorization_user_agent" : "DEFAULT",
    "redirect_uri" : "Enter_the_Redirect_Uri_Here",
    "account_mode" : "SINGLE",
    "authorities" : [
    {
        "type": "CIAM",
        "authority_url": "https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "knownAuthorities": ["login.contoso.com"]
    }
    ]
}

Criar instância do SDK do MSAL

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

private suspend fun initClient(): ISingleAccountPublicClientApplication = withContext(Dispatchers.IO) {
    return@withContext PublicClientApplication.createSingleAccountPublicClientApplication(
        this@MainActivity,
        R.raw.auth_config_ciam_auth
    )
}

O código inicializa um aplicativo cliente público de conta única de forma assíncrona. Ele usa o arquivo de configuração de autenticação fornecido e é executado no dispatcher de E/S.

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

Próximos passos

Tutorial: Iniciar sessão de utilizadores na aplicação móvel Android (Kotlin)