Compartir a través de


Tutorial: Configuración de una aplicación Android para iniciar sesión de usuarios mediante la plataforma de identidad de Microsoft

Se aplica a:Círculo verde con un símbolo de marca de verificación blanca. inquilinos de personal Círculo verde con un símbolo de marca de verificación blanca. inquilinos externos (más información)

En este tutorial, aprenderá a agregar la Biblioteca de autenticación de Microsoft (MSAL) para Android a la aplicación Android. MSAL permite a las aplicaciones Android autenticar a los usuarios con Microsoft Entra.

En este tutorial, aprenderás lo siguiente;

  • Agregar dependencia de MSAL
  • Agregar configuración
  • Creación de una instancia del SDK de MSAL

Prerrequisitos

  • Un inquilino trabajador Puede usar su Directorio Predeterminado o configurar un nuevo tenant.
  • Registre una nueva aplicación en el Centro de administración de Microsoft Entra, configurada solo para Cuentas en este directorio organizativo. Consulte Registro de una aplicación para obtener más detalles. Registre los valores siguientes en la página Información general de la aplicación para su uso posterior:
    • Id. de aplicación (cliente)
    • Id. de directorio (inquilino)
  • Un proyecto de Android. Si no tiene un proyecto de Android, créelo.

Incorporación de un URI de redirección

Debe configurar URI de redirección específicos en el registro de la aplicación para garantizar la compatibilidad con el ejemplo de código descargado. Estos URI son esenciales para redirigir a los usuarios a la aplicación después de iniciar sesión correctamente.

  1. En Administrar, seleccione Autenticación>Agregar una plataforma>Android.

  2. Escriba el nombre del paquete del proyecto en función del tipo de ejemplo que descargó anteriormente.

    • Ejemplo de Java: com.azuresamples.msalandroidapp
    • Ejemplo de Kotlin: com.azuresamples.msalandroidkotlinapp
  3. En la sección Hash de firma del panel Configurar tu aplicación Android, selecciona Generar un hash de firma de desarrollo y copia el comando KeyTool a tu línea de comandos.

  4. Escriba el hash de firma generado por KeyTool.

  5. Selecciona Configurar y guarda la configuración de MSAL que aparece en el panel Configuración de Android para que puedas especificarla cuando configures la aplicación más tarde.

  6. Seleccione Listo.

Adición de dependencias de MSAL y bibliotecas pertinentes al proyecto

Para agregar dependencias de MSAL en el proyecto de Android, siga estos pasos:

  1. Abra el proyecto en Android Studio o cree un nuevo proyecto.

  2. Abre su aplicación build.gradle y añade las siguientes dependencias:

    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.+'
        //...
    }
    

    En la build.gradle configuración, los repositorios se definen para las dependencias del proyecto. Incluye una dirección URL del repositorio de Maven para la com.microsoft.device.display:display-mask biblioteca de Azure DevOps. Además, utiliza repositorios de Maven Central y Google. La sección dependencias especifica la implementación de la versión 5 de MSAL y potencialmente otras dependencias.

  3. En Android Studio, seleccione Archivo>Sincronizar proyecto con archivos Gradle.

Agregar configuración

Pase los identificadores de inquilino necesarios, como el identificador de aplicación (cliente) al SDK de MSAL a través de una configuración de JSON.

Siga estos pasos para crear el archivo de configuración:

  1. En el panel del proyecto de Android Studio, vaya a app\src\main\res.

  2. Haga clic con el botón derecho en res y elija New>Directory (Nuevo > Directorio). Escribe raw como el nombre del nuevo directorio y selecciona Aceptar.

  3. En app>src>main>res>raw, cree un nuevo archivo JSON llamado auth_config_single_account.json y pegue la configuración de MSAL que guardó anteriormente.

    Debajo del identificador URI de redirección, pegue:

      "account_mode" : "SINGLE",
    

    El archivo de configuración debe ser similar a este ejemplo:

    {
      "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 solo muestra cómo configurar una aplicación en el modo de cuenta única, consulta el modo de cuenta única o múltiple y la configurar tu aplicación para obtener más información

  4. Se recomienda usar "WEBVIEW". En caso de que desee configurar "authorization_user_agent" como "BROWSER" en la aplicación, debe realizar las siguientes actualizaciones. a) Actualice auth_config_single_account.json con "authorization_user_agent": "Navegador". b) Actualizar AndroidManifest.xml. En la aplicación, vaya a app>src>main>AndroidManifest.xml, agregue la BrowserTabActivity actividad como hijo del <application> elemento. Esta entrada permite a Microsoft Entra ID volver a llamar a la aplicación una vez completada la autenticación:

    <!--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 el nombre del paquete para reemplazar el valor android:host=.. Debería ser parecido a este: com.azuresamples.msalandroidapp.
    • Use el hash de firma para reemplazar el valor android:path=. Asegúrate de que haya un / inicial al comienzo del hash de firma. Debería ser parecido a este: /aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.

    También puedes encontrar estos valores en la hoja de Autenticación del registro de la aplicación.

Creación de una instancia del SDK de MSAL

Para inicializar la instancia del SDK de MSAL, use el código siguiente:

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);
        }
    }
);

Este código crea una aplicación cliente pública de cuenta única mediante el archivo de configuración auth_config_single_account.json. Cuando la aplicación se crea correctamente, asigna la instancia a mSingleAccountApp y llama al loadAccount() método . Si se produce un error durante la creación, controla el error llamando al método displayError(exception).

Asegúrate de incluir las declaraciones de importación. Android Studio debe incluir automáticamente las instrucciones de importación.

Pasos siguientes