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
- Android Studio
- Si aún no lo ha hecho, siga las instrucciones de Tutorial: Registrar y configurar la aplicación móvil Android (Kotlin) y registrar una aplicación en el inquilino externo.
- Un proyecto de Android. Si no tiene un proyecto de Android, créelo.
Agregue dependencias de MSAL
Para agregar dependencias de MSAL en el proyecto de Android, siga estos pasos:
Abra el proyecto en Android Studio o cree un nuevo proyecto.
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 bibliotecacom.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.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:
En el panel del proyecto de Android Studio, vaya a app\src\main\res.
Haga clic con el botón derecho en res y seleccione New>Directory. Escribe
raw
como el nombre del nuevo directorio y selecciona Aceptar.En app\src\main\res\raw, cree un nuevo archivo JSON llamado
auth_config_ciam_auth.json
.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 escontoso.onmicrosoft.com
, usecontoso
. Si no conoce el subdominio del inquilino, aprenda a leer los detalles del inquilino.
Abra el archivo /app/src/main/AndroidManifest.xml.
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:
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.
Abra el archivo auth_config_ciam_auth.json:
- Actualice el valor de la propiedad
authority_url
a https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. ReemplaceEnter_the_Custom_Domain_Here
por la dirección URL de dominio personalizado yEnter_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. - Agregue la propiedad
knownAuthorities
con un valor [Escriba_aquí_el_dominio_personalizado].
- Actualice el valor de la propiedad
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)