Compartir vía


Tutorial: prepare su aplicación Android (Kotlin) para la autenticación

Este es el segundo tutorial de la serie de tutoriales que demuestra cómo agregar Microsoft Authentication Library (MSAL) para Android a su aplicación Android (Kotlin). MSAL permite a las aplicaciones Android autenticar a los usuarios con Microsoft Entra.

En este tutorial, hará lo siguiente:

  • Agregue dependencias de MSAL.
  • Agregar configuración.

Requisitos previos

Agregue dependencias de MSAL

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. Abra el build.gradle de su aplicación y agregue 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 configuración build.gradle, se definen repositorios para las dependencias del proyecto. Incluye una URL de repositorio Maven para la biblioteca com.microsoft.device.display:display-mask 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 File>Sync Project with Gradle Files.

Adición de configuración

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

Use 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 seleccione New>Directory. 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_ciam_auth.json.

  4. En el archivo auth_config_ciam_auth.json, agregue las siguientes configuraciones de 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/"
        }
      ]
    }
    

    El archivo de configuración JSON especifica varias opciones de configuración para una aplicación Android. Incluye el id. del cliente, el agente de usuario de autorización, el URI de redirección y el modo de cuenta. Además, define una entidad para la autenticación, especificando el tipo y la dirección URL de autoridad.

    Reemplace los siguientes marcadores de posición por los valores de inquilino que obtuvo del Centro de administración Microsoft Entra:

    • Enter_the_Application_Id_Here y reemplácelo por el identificador de aplicación (cliente) de la aplicación que registró anteriormente.
    • Enter_the_Redirect_Uri_Here y reemplácelo por el valor de redirect_uri en el archivo de configuración de la Biblioteca de autenticación de Microsoft (MSAL) que descargó anteriormente al agregar la URL de redireccionamiento de la plataforma.
    • Enter_the_Tenant_Subdomain_Here y reemplácelo por el subdominio del directorio (inquilino). Por ejemplo, si el dominio principal del inquilino es contoso.onmicrosoft.com, use contoso. Si no conoce el subdominio del inquilino, aprenda a leer los detalles del inquilino.
  5. Abra el archivo /app/src/main/AndroidManifest.xml.

  6. En AndroidManifest.xml, agregue la siguiente especificación de datos a un filtro de intención:

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

    Busque el marcador de posición:

    • ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE y reemplácelo por el nombre del paquete de proyecto de Android.
    • ENTER_YOUR_SIGNATURE_HASH_HERE y reemplácelo por el hash de firma que generó anteriormente al agregar la dirección URL de redirección de la plataforma.

Uso del dominio de dirección URL personalizado (opcional)

Use un dominio personalizado para personalizar completamente la dirección URL de autenticación. Desde el punto de vista del usuario, este permanece en el dominio durante el proceso de autenticación, en lugar de que se le redirija al nombre de dominio ciamlogin.com.

Siga estos pasos para usar un dominio personalizado:

  1. Siga los pasos descritos en Habilitación de dominios de dirección URL personalizados para aplicaciones en inquilinos externos a fin de habilitar la dirección URL de dominio personalizada para el inquilino externo.

  2. Abra el archivo auth_config_ciam_auth.json:

    1. Actualice el valor de la propiedad authority_url a https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Reemplace Enter_the_Custom_Domain_Here por la dirección URL de dominio personalizado y Enter_the_Tenant_ID_Here por el id. del inquilino. Si no tiene el identificador del inquilino, obtenga información sobre cómo leer los detalles del inquilino.
    2. Agregue la propiedad knownAuthorities con un valor [Escriba_aquí_el_dominio_personalizado].

Después de realizar los cambios en el archivo auth_config_ciam_auth.json, si el dominio de dirección URL personalizado es login.contoso.com y el id. de inquilino es aaaabbbb-0000-cccc-1111-dddd2222eeee, el archivo debe tener un aspecto similar al siguiente fragmento de código:

{
    "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"]
    }
    ]
}

Cree una instancia del SDK de MSAL

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

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

El código inicializa una sola aplicación cliente pública de cuenta de forma asincrónica. Usa el archivo de configuración de autenticación proporcionado y se ejecuta en el distribuidor de E/S.

Asegúrese de incluir las instrucciones import. Android Studio debe incluir automáticamente las instrucciones import.

Pasos siguientes

Tutorial: inicio de sesión de usuarios en la aplicación móvil Android (Kotlin)