Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L'Microsoft Authentication Library Android (MSAL) est fourni avec un fichier JSON de configuration par défaut que vous personnalisez pour définir le comportement de votre application cliente publique pour des éléments tels que l'autorité par défaut, les autorités que vous utiliserez, etc.
Cet article vous aidera à comprendre les différents paramètres du fichier de configuration et à spécifier le fichier de configuration à utiliser dans votre application MSAL.
Paramètres de configuration
Paramètres généraux
| Propriété | Type de données | Obligatoire | Remarques |
|---|---|---|---|
client_id |
String | Oui | ID client de votre application à partir de la page Inscription de l’application |
redirect_uri |
String | Oui | URI de redirection de votre application à partir de la page Inscription d’application |
broker_redirect_uri_registered |
Boolean | Non | Valeurs possibles : true, false |
authorities |
Autorité de liste<> | Non | Liste des autorités dont votre application a besoin |
authorization_user_agent |
AuthorizationAgent (énumération) | Non | Valeurs possibles : DEFAULT, , BROWSERWEBVIEW |
http |
HttpConfiguration | Non | Configurer HttpUrlConnectionconnect_timeout et read_timeout |
logging |
journalisationConfiguration | Non | Spécifie le niveau de détail de journalisation. Les configurations facultatives incluent : pii_enabled, qui prend une valeur booléenne et log_level, qui prend ERROR, WARNING, INFOou VERBOSE. |
client_id
ID client ou ID d’application créé lorsque vous avez inscrit votre application.
redirect_uri
URI de redirection que vous avez inscrit lorsque vous avez inscrit votre application. Si l’URI de redirection est vers une application broker, reportez-vous à l’URI de redirection pour les applications clientes publiques pour vous assurer que vous utilisez le format d’URI de redirection correct pour votre application broker.
broker_redirect_uri_registered
Si vous souhaitez utiliser l’authentification répartie, la broker_redirect_uri_registered propriété doit être définie sur true. Dans un scénario d’authentification répartie, si l’application n’est pas au format correct pour communiquer avec le répartiteur comme décrit dans l’URI de redirection pour les applications clientes publiques, l’application valide votre URI de redirection et lève une exception au démarrage.
authorities
Liste des autorités connues et approuvées par vous. En plus des autorités répertoriées ici, MSAL interroge également Microsoft pour obtenir la liste des clouds et des autorités connues pour Microsoft. Dans cette liste d’autorités, spécifiez le type de l’autorité et tous les paramètres facultatifs supplémentaires tels que "audience", qui doivent s’aligner sur l’audience de votre application en fonction de l’inscription de votre application. Voici un exemple de liste d’autorités :
// 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"
}
}
Mapper Microsoft Entra’autorité et l’audience aux points de terminaison Plateforme d'identités Microsoft
| Type | Public visé | ID du locataire | Authority_Url | Point de terminaison résultant | Remarques |
|---|---|---|---|---|---|
| Microsoft Entra ID (système d'identification de Microsoft) | Azure AD et compte Microsoft personnel | https://login.microsoftonline.com/common |
common est un alias de locataire pour lequel se trouve le compte. Par exemple, un locataire Microsoft Entra spécifique ou le système compte Microsoft. |
||
| Microsoft Entra ID (système d'identification de Microsoft) | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Seuls les comptes présents dans contoso.com peuvent acquérir un jeton. Tout domaine vérifié, ou GUID du locataire, peut être utilisé comme ID de locataire. | |
| Microsoft Entra ID (système d'identification de Microsoft) | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Seuls les comptes Microsoft Entra peuvent être utilisés avec ce point de terminaison. Microsoft comptes peuvent être membres d’organisations. Pour acquérir un jeton à l’aide d’un compte Microsoft pour une ressource dans une organisation, spécifiez le locataire de l’organisation à partir duquel vous souhaitez le jeton. | ||
| Microsoft Entra ID (système d'identification de Microsoft) | Compte Microsoft personnel | https://login.microsoftonline.com/consumers |
Seuls les comptes Microsoft peuvent utiliser ce point de terminaison. | ||
| Business to Consumer (B2C) | Voir le point de terminaison obtenu | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Seuls les comptes présents dans le locataire contoso.onmicrosoft.com peuvent acquérir un jeton. Dans cet exemple, la stratégie B2C fait partie du chemin d’URL de l’autorité. |
Note
La validation de l’autorité ne peut pas être activée et désactivée dans MSAL.
Les autorités sont connues pour vous en tant que développeur comme spécifié via la configuration ou connues pour Microsoft via des métadonnées.
Si MSAL reçoit une demande de jeton à une autorité inconnue, résultat d’un MsalClientException type UnknownAuthority .
L’authentification répartie ne fonctionne pas pour Azure AD B2C.
Propriétés de l’autorité
| Propriété | Type de données | Obligatoire | Remarques |
|---|---|---|---|
type |
String | Oui | Met en miroir l’audience ou le type de compte que votre application cible. Valeurs possibles : AAD, B2C |
audience |
Object | Non | S’applique uniquement lorsque type=AAD. Spécifie l’identité que votre application cible. Utiliser la valeur de votre inscription d’application |
authority_url |
String | Oui | Obligatoire uniquement lorsque type=B2C. Facultatif pour type=AAD. Spécifie l’URL ou la stratégie d’autorité que votre application doit utiliser |
default |
booléen | Oui | Un seul "default":true est requis quand une ou plusieurs autorités sont spécifiées. |
Propriétés de l’audience
| Propriété | Type de données | Obligatoire | Remarques |
|---|---|---|---|
type |
String | Oui | Spécifie l’audience que votre application souhaite cibler. Valeurs possibles : AzureADandPersonalMicrosoftAccount, , PersonalMicrosoftAccountAzureADMultipleOrgs,AzureADMyOrg |
tenant_id |
String | Oui | Obligatoire uniquement quand "type":"AzureADMyOrg". Facultatif pour d’autres type valeurs. Il peut s’agir d’un domaine de locataire tel que contoso.com, ou d’un ID de locataire tel que aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Indique s’il faut utiliser une vue web incorporée ou le navigateur par défaut sur l’appareil, lors de la connexion à un compte ou en autorisant l’accès à une ressource.
Valeurs possibles :
-
DEFAULT: préfère le navigateur système. Utilise la vue web incorporée si un navigateur n’est pas disponible sur l’appareil. -
WEBVIEW: utilisez la vue web incorporée. -
BROWSER: utilise le navigateur par défaut sur l’appareil.
multiple_clouds_supported
Pour les clients qui prennent en charge plusieurs clouds nationaux, spécifiez true. Le Plateforme d'identités Microsoft redirigera automatiquement vers le cloud national approprié pendant l’autorisation et l’échange de jetons. Vous pouvez déterminer le cloud national du compte connecté en examinant l’autorité associée au AuthenticationResult. Notez que le AuthenticationResult point de terminaison national spécifique au cloud ne fournit pas l’adresse de point de terminaison spécifique au cloud national de la ressource pour laquelle vous demandez un jeton.
broker_redirect_uri_registered
Valeur booléenne qui indique si vous utilisez un URI de redirection compatible avec identity broker Microsoft. Définissez la valeur false si vous ne souhaitez pas utiliser le répartiteur dans votre application.
Si vous utilisez l'autorité de Microsoft Entra avec audience définie "MicrosoftPersonalAccount"sur , le répartiteur ne sera pas utilisé.
http
Configurez les paramètres globaux pour les délais d’expiration HTTP, tels que :
| Propriété | Type de données | Obligatoire | Remarques |
|---|---|---|---|
connect_timeout |
int | Non | Temps en millisecondes |
read_timeout |
int | Non | Temps en millisecondes |
exploitation forestière
Les paramètres globaux suivants sont destinés à la journalisation :
| Propriété | Type de données | Obligatoire | Remarques |
|---|---|---|---|
pii_enabled |
booléen | Non | Indique s’il faut émettre des données personnelles |
log_level |
ficelle | Non | Les messages de journalisation à générer. Les niveaux de journal pris en charge incluent ERROR,WARNINGINFO et VERBOSE. |
logcat_enabled |
booléen | Non | Indique s’il faut générer un journal de cat en plus de l’interface de journalisation |
account_mode
Spécifie le nombre de comptes pouvant être utilisés dans votre application à la fois. Les valeurs possibles sont les suivantes :
-
MULTIPLE(valeur par défaut) SINGLE
La construction d’un PublicClientApplication mode compte qui ne correspond pas à ce paramètre entraîne une exception.
Pour plus d’informations sur les différences entre les comptes uniques et multiples, consultez Applications mono-comptes et plusieurs comptes.
browser_safelist
Liste verte des navigateurs compatibles avec MSAL. Ces navigateurs gèrent correctement les redirections vers des intentions personnalisées. Vous pouvez ajouter à cette liste. La valeur par défaut est fournie dans la configuration par défaut indiquée ci-dessous. ``
Fichier de configuration MSAL par défaut
La configuration MSAL par défaut fournie avec MSAL est indiquée ci-dessous. Vous pouvez voir la dernière version sur GitHub.
Cette configuration est complétée par les valeurs que vous fournissez. Les valeurs que vous fournissez remplacent les valeurs par défaut.
{
"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
}
]
}
Exemple de configuration de base
L’exemple suivant illustre une configuration de base qui spécifie l’ID client, l’URI de redirection, si une redirection broker est inscrite et une liste d’autorités.
{
"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
}
]
}
Comment utiliser un fichier de configuration
Créez un fichier de configuration. Nous vous recommandons de créer votre fichier de configuration personnalisé dans
res/raw/auth_config.json. Mais vous pouvez le mettre n’importe où que vous le souhaitez.Indiquez à MSAL où rechercher votre configuration lorsque vous construisez le
PublicClientApplication. Par exemple://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);