Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: inquilinos de personal
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.
En Administrar, seleccione Autenticación>Agregar una plataforma>Android.
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
- Ejemplo de Java:
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.
- KeyTool. exe se instala como parte de Java Development Kit (JDK). También debe instalar la herramienta OpenSSL para ejecutar el comando KeyTool. Para obtener más información, consulta la Documentación de Android sobre la generación de una clave para obtener más información.
Escriba el hash de firma generado por KeyTool.
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.
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:
Abra el proyecto en Android Studio o cree un nuevo proyecto.
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 lacom.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.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:
En el panel del proyecto de Android Studio, vaya a app\src\main\res.
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.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
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.
- Use el nombre del paquete para reemplazar el valor
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.