Preguntas más frecuentes sobre MSAL Android

Problemas con la URI de redirección

MSAL está configurado para usar la autenticación mediante agente de forma predeterminada. Para que esto funcione, debe construir un URI de redirección mediante las claves de firma asociadas a la aplicación. A continuación, el URI de redireccionamiento debe incluirse tanto en el archivo de configuración de la aplicación como en el manifiesto de Android. Desafortunadamente, se necesita una codificación diferente para cada una. Vamos a realizar un tutorial rápido:

  1. Lo primero que debe hacer es localizar las claves de firma de su aplicación. Normalmente, las claves de depuración están en tu carpeta personal, dentro de una carpeta oculta llamada ".android", en un almacén de claves de Java llamado debug.keystore. Azure Portal proporciona comandos útiles para generar la firma de la aplicación de la siguiente manera:
  • MacOS:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
  • Windows:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

ADVERTENCIA: Redirigir la entrada/salida entre comandos es conveniente; sin embargo, puede ocultar errores. Si no se encuentra el archivo de almacén de claves, por ejemplo, el mensaje de error se canalizará a openssl y el comando completo seguirá produciendo un resultado similar al esperado. En caso de duda, ejecute el primer comando por separado para comprobar que funciona.

ADVERTENCIA: Se le pedirá que proporcione la contraseña para el almacén de claves. La contraseña del almacén de claves de depuración es simplemente "android". Si no se le ha pedido una contraseña, hay una buena posibilidad de ejecutar las partes del comando anterior por separado para asegurarse de que se encontró el archivo de almacén de claves.

ADVERTENCIA: Si el archivo de almacén de claves está en una ubicación diferente, debe reemplazar %HOMEPATH%\.android\debug.keystore (Windows) o ~/.android/debug.keystore (MacOS) por la ruta de acceso al archivo de almacén de claves.

  1. Una vez que tenga la firma codificada en base64. Puede usarlo para configurar un filtro de intención para la aplicación para que los exploradores puedan devolver correctamente códigos de autorización a la aplicación. Para que su filtro de intención sea único en un dispositivo, se incluyen un esquema personalizado msauth y el nombre de su paquete, además de la firma de su aplicación. Este es un ejemplo:
//NOTE: the slash before your signature value added to the path attribute
//This uses the base64 encoded signature produced above.
<data android:scheme="msauth"
                    android:host="com.microsoft.identity.client.sample.local"
                    android:path="/1wIqXSqBj7w+h11ZifsnqwgyKrY="/>
  1. El archivo de configuración msal requiere algo un poco diferente. Requiere que el valor de firma esté codificado en dirección URL además de haber sido codificado en base64. Este es un ejemplo:
//NOTE that the signature part of the uri has been url encoded.  In this example.  The "+" character and the "=" character are affected.
"redirect_uri" : "msauth://com.microsoft.identity.client.sample.local/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",

Ver la configuración del URI de redireccionamiento de la aplicación ensamblada

Para ayudarle a crear (o solucionar problemas) del registro de la aplicación, hemos agregado una función auxiliar a PublicClientApplication, para ayudarle a configurar y diagnosticar problemas con el URI de redireccionamiento, así como redirigir Activity.

A partir de MSAL 2.0.0, puede invocar el siguiente método para generar la configuración sugerida de la aplicación.

// From any Activity in your app, call this static method
PublicClientApplication.showExpectedMsalRedirectUriInfo(MyActivity.this);

Información del URI de redirección de MSAL