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.
Android Biblioteca de autenticación de Microsoft (MSAL) se incluye con un archivo JSON de configuración predeterminado que personaliza para definir el comportamiento de la aplicación cliente pública para cosas como la autoridad predeterminada, que usarán las autoridades, etc.
Este artículo le ayudará a comprender las distintas opciones de configuración del archivo de configuración y a especificar el archivo de configuración que se va a usar en la aplicación basada en MSAL.
Parámetros de configuración
Configuración general
| Propiedad | Tipo de datos | Obligatorio | Notas |
|---|---|---|---|
client_id |
String | Sí | Identificador de cliente de la aplicación desde la página Registro de aplicaciones |
redirect_uri |
String | Sí | URI de redirección de la aplicación desde la página Registro de aplicaciones |
broker_redirect_uri_registered |
Booleano | No | Valores posibles: true, false |
authorities |
Entidad de lista<> | No | La lista de autoridades que necesita la aplicación |
authorization_user_agent |
AuthorizationAgent (enumeración) | No | Valores posibles: DEFAULT, BROWSER, WEBVIEW |
http |
HttpConfiguration | No | Configurar HttpUrlConnectionconnect_timeout y read_timeout |
logging |
LoggingConfiguration | No | Especifica el nivel de detalle de registro. Las configuraciones opcionales incluyen: pii_enabled, que toma un valor booleano y log_level, que toma ERROR, WARNING, INFOo VERBOSE. |
ID de cliente
Identificador de cliente o id. de aplicación que se creó al registrar la aplicación.
URI de redirección
El URI de redireccionamiento que registró al registrar la aplicación. Si el URI de redirección es a una aplicación de agente, consulte URI de redirección para las aplicaciones cliente públicas para asegurarse de que usa el formato de URI de redirección correcto para la aplicación de agente.
broker_redirect_uri_registered
Si desea usar la autenticación asincrónica, la broker_redirect_uri_registered propiedad debe establecerse trueen . En un escenario de autenticación asincrónica, si la aplicación no tiene el formato correcto para comunicarse con el agente, como se describe en URI de redirección para aplicaciones cliente públicas, la aplicación valida el URI de redirección y produce una excepción cuando se inicia.
authorities
Lista de autoridades conocidas y de confianza por usted. Además de las autoridades enumeradas aquí, MSAL también consulta Microsoft para obtener una lista de nubes y autoridades conocidas Microsoft. En esta lista de autoridades, especifique el tipo de autoridad y los parámetros opcionales adicionales, como "audience", que deben alinearse con el público de la aplicación en función del registro de la aplicación. A continuación se muestra una lista de ejemplos de autoridades:
// Example AzureAD and Personal Microsoft Account
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
},
"default": true // Indicates that this is the default to use if not provided as part of the acquireToken call
},
// Example AzureAD My Organization
{
"type": "AAD",
"audience": {
"type": "AzureADMyOrg",
"tenant_id": "contoso.com" // Provide your specific tenant ID here
}
},
// Example AzureAD Multiple Organizations
{
"type": "AAD",
"audience": {
"type": "AzureADMultipleOrgs"
}
},
//Example PersonalMicrosoftAccount
{
"type": "AAD",
"audience": {
"type": "PersonalMicrosoftAccount"
}
}
Asignar Microsoft Entra autoridad y audiencia a Plataforma de identidad de Microsoft puntos de conexión
| Tipo | Público | Id. de inquilino | Authority_Url | Punto de conexión resultante | Notas |
|---|---|---|---|---|---|
| Microsoft Entra ID | Azure AD y cuenta personal de Microsoft | https://login.microsoftonline.com/common |
common es un alias de inquilino para donde está la cuenta. Por ejemplo, un inquilino de Microsoft Entra específico o el sistema cuenta Microsoft. |
||
| Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Solo las cuentas presentes en contoso.com pueden adquirir un token. Cualquier dominio comprobado, o el GUID del inquilino, se puede usar como identificador de inquilino. | |
| Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Solo se pueden usar Microsoft Entra cuentas con este punto de conexión. Microsoft cuentas pueden ser miembros de organizaciones. Para adquirir un token mediante un cuenta Microsoft para un recurso de una organización, especifique el inquilino organizativo desde el que desea el token. | ||
| Microsoft Entra ID | Cuenta personal de Microsoft | https://login.microsoftonline.com/consumers |
Solo Microsoft cuentas pueden usar este punto de conexión. | ||
| B2C (Negocio a Consumidor) | Consulte Punto de conexión resultante. | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Solo las cuentas presentes en el inquilino de contoso.onmicrosoft.com pueden adquirir un token. En este ejemplo, la directiva B2C forma parte de la ruta de acceso de dirección URL de autoridad. |
Nota:
La validación de autoridad no se puede habilitar ni deshabilitar en MSAL.
Las autoridades se conocen como el desarrollador tal como se especifica a través de la configuración o se sabe que Microsoft a través de metadatos.
Si MSAL recibe una solicitud de un token a una autoridad desconocida, se genera un MsalClientException de tipo UnknownAuthority .
La autenticación asincrónica no funciona para Azure AD B2C.
Propiedades de autoridad
| Propiedad | Tipo de dato | Obligatorio | Notas |
|---|---|---|---|
type |
String | Sí | Refleja el público o el tipo de cuenta a los que se dirige la aplicación. Valores posibles: AAD, B2C |
audience |
Objeto | No | Solo se aplica cuando type=AAD. Especifica la identidad a la que se dirige la aplicación. Uso del valor del registro de la aplicación |
authority_url |
String | Sí | Solo se requiere cuando type=B2C. Opcional para type=AAD. Especifica la dirección URL o directiva de autoridad que debe usar la aplicación. |
default |
booleano | Sí | Se requiere una única "default":true cuando se especifica una o varias autoridades. |
Propiedades de audiencia
| Propiedad | Tipo de datos | Obligatorio | Notas |
|---|---|---|---|
type |
String | Sí | Especifica la audiencia a la que quiere dirigirse la aplicación. Valores posibles: AzureADandPersonalMicrosoftAccount, PersonalMicrosoftAccount, AzureADMultipleOrgs, AzureADMyOrg |
tenant_id |
String | Sí | Solo se requiere cuando "type":"AzureADMyOrg". Opcional para otros type valores. Puede ser un dominio de inquilino como contoso.com, o un identificador de inquilino, como aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Indica si se debe usar una vista web insertada o el explorador predeterminado en el dispositivo, al iniciar sesión en una cuenta o autorizar el acceso a un recurso.
Valores posibles:
-
DEFAULT: prefiere el explorador del sistema. Usa la vista web insertada si un explorador no está disponible en el dispositivo. -
WEBVIEW: use la vista web insertada. -
BROWSER: usa el explorador predeterminado en el dispositivo.
multiple_clouds_supported
Para los clientes que admiten varias nubes nacionales, especifique true. El Plataforma de identidad de Microsoft redirigirá automáticamente a la nube nacional correcta durante la autorización y el canje de tokens. Puede determinar la nube nacional de la cuenta de inicio de sesión examinando la autoridad asociada a AuthenticationResult. Tenga en cuenta que AuthenticationResult no proporciona la dirección del punto de conexión específico de la nube nacional del recurso para el que solicita un token.
broker_redirect_uri_registered
Valor booleano que indica si usa un URI de redirección de Microsoft Agente de identidad compatible con el agente en agente.
false Establézcalo en si no desea usar el agente dentro de la aplicación.
Si usa la entidad de Microsoft Entra con audiencia establecida "MicrosoftPersonalAccount"en , no se usará el agente.
HTTP
Configure las opciones globales para los tiempos de espera http, como:
| Propiedad | Tipo de dato | Obligatorio | Notas |
|---|---|---|---|
connect_timeout |
int | No | Tiempo en milisegundos |
read_timeout |
int | No | Tiempo en milisegundos |
logging
La siguiente configuración global es para el registro:
| Propiedad | Tipo de datos | Obligatorio | Notas |
|---|---|---|---|
pii_enabled |
booleano | No | Si se van a emitir datos personales |
log_level |
string | No | Qué mensajes de registro se van a generar. Los niveles de registro admitidos incluyen ERROR,WARNINGINFO, y VERBOSE. |
logcat_enabled |
booleano | No | Indica si se va a generar el registro de cat además de la interfaz de registro. |
account_mode
Especifica cuántas cuentas se pueden usar dentro de la aplicación a la vez. Los valores posibles son:
-
MULTIPLE(Valor predeterminado) SINGLE
La construcción de un PublicClientApplication objeto mediante un modo de cuenta que no coincide con esta configuración producirá una excepción.
Para obtener más información sobre las diferencias entre una y varias cuentas, consulte Aplicaciones únicas y varias cuentas.
browser_safelist
Lista de permitidos de exploradores compatibles con MSAL. Estos exploradores controlan correctamente las redirecciones a intenciones personalizadas. Puede agregar a esta lista. El valor predeterminado se proporciona en la configuración predeterminada que se muestra a continuación. ``
El archivo de configuración predeterminado de MSAL
A continuación se muestra la configuración predeterminada de MSAL que se incluye con MSAL. Puede ver la versión más reciente en GitHub.
Esta configuración se complementa con los valores que proporcione. Los valores proporcionados invalidan los valores predeterminados.
{
"authorities": [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
},
"default": true
}
],
"authorization_user_agent": "DEFAULT",
"multiple_clouds_supported": false,
"broker_redirect_uri_registered": false,
"http": {
"connect_timeout": 10000,
"read_timeout": 30000
},
"logging": {
"pii_enabled": false,
"log_level": "WARNING",
"logcat_enabled": false
},
"shared_device_mode_supported": false,
"account_mode": "MULTIPLE",
"browser_safelist": [
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"7fmdu...2NDJg=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "45"
},
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"7fmdu...2NDJg=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"2gCe6...idpVQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"2gCe6...idpVQ=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "57"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"ABi2f...4O1Xgg=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "4.0"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"ABi2f...O1Xgg=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.cloudmosa.puffinFree",
"browser_signature_hashes": [
"1WqG8...Mn8Ag=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.duckduckgo.mobile.android",
"browser_signature_hashes": [
"S5Av4...jAi4Q=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.explore.web.browser",
"browser_signature_hashes": [
"BzDzB...YHCag=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.ksmobile.cb",
"browser_signature_hashes": [
"lFDYx...7nouw=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.microsoft.emmx",
"browser_signature_hashes": [
"Ivy-R...A6fVQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.opera.browser",
"browser_signature_hashes": [
"FIJ3I...jWJWw=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.opera.mini.native",
"browser_signature_hashes": [
"TOTyH...mmUYQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "mobi.mgeek.TunnyBrowser",
"browser_signature_hashes": [
"RMVoX...bkyyQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.focus",
"browser_signature_hashes": [
"L72dT...q0oYA=="
],
"browser_use_customTab" : false
}
]
}
Configuración básica de ejemplo
En el ejemplo siguiente se muestra una configuración básica que especifica el identificador de cliente, el URI de redirección, si se registra un redireccionamiento de agente y una lista de autoridades.
{
"client_id" : "00001111-aaaa-2222-bbbb-3333cccc4444",
"redirect_uri" : "msauth://com.microsoft.identity.client.sample.local/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",
"broker_redirect_uri_registered": true,
"authorities" : [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
}
"default": true
}
]
}
Cómo usar un archivo de configuración
Cree un archivo de configuración. Se recomienda crear el archivo de configuración personalizado en
res/raw/auth_config.json. Pero puedes ponerlo en cualquier lugar que quieras.Indique a MSAL dónde buscar la configuración al construir .
PublicClientApplicationPor ejemplo://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);