Android Microsoft Authentication Library-configuratiebestand

De Android Microsoft Authentication Library (MSAL) wordt geleverd met een standaardconfiguratie-JSON-bestand dat u aanpast om het gedrag van uw openbare client-app te definiëren voor zaken zoals de standaardinstantie, welke instanties u gaat gebruiken, enzovoort.

Dit artikel helpt u inzicht te krijgen in de verschillende instellingen in het configuratiebestand en hoe u het configuratiebestand opgeeft dat moet worden gebruikt in uw app gebaseerd op MSAL.

Configuratie-instellingen

Algemene instellingen

Eigenschappen Gegevenstype Vereist Opmerkingen
client_id String Ja De client-id van uw app op de Registratiepagina van de toepassing
redirect_uri String Ja De omleidings-URI van uw app vanaf de registratiepagina van de toepassing
broker_redirect_uri_registered Booleaans Nee Mogelijke waarden: true, false
authorities Lijst<Instantie> Nee De lijst met instanties die uw app nodig heeft
authorization_user_agent AuthorizationAgent (enum) Nee Mogelijke waarden: WEBVIEW, BROWSER
http HttpConfiguration Nee Configureren HttpUrlConnectionconnect_timeout en read_timeout
logging LoggingConfiguration Nee Hiermee geeft u het niveau van logboekregistratiedetails op. Optionele configuraties zijn: pii_enabled, waarmee een booleaanse waarde wordt gebruikt en log_level, die ERROR, WARNING, INFO of VERBOSE neemt.

client_id

De client-id of app-id die is gemaakt toen u uw toepassing registreerde.

redirect_uri

De omleidings-URI die u hebt geregistreerd toen u uw toepassing registreerde. Als de omleidings-URI naar een broker-app is, raadpleegt u omleidings-URI voor openbare client-apps om ervoor te zorgen dat u de juiste omleidings-URI-indeling voor uw broker-app gebruikt.

broker_redirect_uri_registered

Als u brokered verificatie wilt gebruiken, moet de eigenschap broker_redirect_uri_registered worden ingesteld op true. Als de toepassing in een brokered verificatiescenario niet de juiste indeling heeft om te communiceren met de broker, zoals beschreven in Omleidings-URI voor openbare client-apps, valideert de toepassing uw omleidings-URI en genereert het een uitzondering wanneer deze wordt gestart.

instanties

De lijst met instanties die door u bekend en vertrouwd zijn. Naast de hier vermelde instanties vraagt MSAL Microsoft ook om een lijst met clouds en instanties op te halen die bekend zijn bij Microsoft. Geef in deze lijst met instanties het type instantie en eventuele aanvullende optionele parameters op, zoals "audience", die moeten worden afgestemd op de doelgroep van uw app op basis van de registratie van uw app. Hier volgt een voorbeeld van een lijst met instanties:

// 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"
    }
}

Microsoft Entra-instantie en -doelgroep toewijzen aan Microsoft Identity Platform-eindpunten

Type Doelgroep Tenant-id Authority_Url Resulterend eindpunt Opmerkingen
Microsoft Entra ID AzureADandPersonalMicrosoftAccount https://login.microsoftonline.com/common common is een tenantalias voor waar het account zich bevindt. Zoals een specifieke Microsoft Entra-tenant of het Microsoft-accountsysteem.
Microsoft Entra ID AzureADMyOrg contoso.com https://login.microsoftonline.com/contoso.com Alleen accounts die aanwezig zijn in contoso.com kunnen een token verkrijgen. Elk geverifieerd domein of de tenant-GUID, kan worden gebruikt als de tenant-id.
Microsoft Entra ID AzureADMultipleOrgs https://login.microsoftonline.com/organizations Alleen Microsoft Entra-accounts kunnen met dit eindpunt worden gebruikt. Microsoft-accounts kunnen lid zijn van organisaties. Als u een token wilt verkrijgen met behulp van een Microsoft-account voor een resource in een organisatie, geeft u de tenant van de organisatie op waaruit u het token wilt gebruiken.
Microsoft Entra ID PersonalMicrosoftAccount https://login.microsoftonline.com/consumers Alleen Microsoft-accounts kunnen dit eindpunt gebruiken.
B2C Zie Resulterend eindpunt https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ Alleen accounts die aanwezig zijn in de contoso.onmicrosoft.com-tenant kunnen een token verkrijgen. In dit voorbeeld maakt het B2C-beleid deel uit van het URL-pad van de instantie.

Notitie

Instantievalidatie kan niet worden ingeschakeld en uitgeschakeld in MSAL. Instanties zijn bij u als ontwikkelaar zoals opgegeven via configuratie of bekend bij Microsoft via metagegevens. Als MSAL een aanvraag voor een token ontvangt bij een onbekende instantie, resulteert dit in een MsalClientException of type UnknownAuthority. Brokered verificatie werkt niet voor Azure AD B2C.

Instantie-eigenschappen

Eigenschappen Gegevenstype Vereist Opmerkingen
type String Ja Weerspiegelt de doelgroep of het accounttype uw app-doelen. Mogelijke waarden: AAD, B2C
audience Object Nee Alleen van toepassing wanneer type AAD is. Hiermee geeft u de identiteit op van uw app-doelen. De waarde van uw app-registratie gebruiken
authority_url String Ja Alleen vereist als type B2C is. Optioneel voor type=AAD. Hiermee geeft u de instantie-URL of het -beleid op dat uw app moet gebruiken
default boolean Ja Eén "default":true is vereist wanneer een of meer instanties worden opgegeven.

Doelgroepeigenschappen

Eigenschappen Gegevenstype Vereist Opmerkingen
type String Ja Hiermee geeft u de doelgroep op voor uw app. Mogelijke waarden: AzureADandPersonalMicrosoftAccount, PersonalMicrosoftAccount, AzureADMultipleOrgs, AzureADMyOrg
tenant_id String Ja Alleen vereist als "type":"AzureADMyOrg". Optioneel voor andere type-waarden. Dit kan een tenantdomein zijn, zoals contoso.comof een tenant-id, zoals 00001111-aaaa-2222-bbbb-3333cccc4444

authorization_user_agent

Hiermee wordt aangegeven of een ingesloten webweergave of de standaardbrowser op het apparaat moet worden gebruikt bij het aanmelden bij een account of het autoriseren van toegang tot een resource.

Mogelijke waarden:

  • WEBVIEW: gebruik de ingesloten webweergave.
  • BROWSER: gebruikt de standaardbrowser op het apparaat.

multiple_clouds_supported

Voor clients die ondersteuning bieden voor meerdere nationale clouds, geeft u true op. De Microsoft identity platform wordt vervolgens automatisch omgeleid naar de juiste nationale cloud tijdens autorisatie en het inwisselen van token. U kunt de nationale cloud van het aangemelde account bepalen door de instantie te onderzoeken die is gekoppeld aan de AuthenticationResult. Houd er rekening mee dat de AuthenticationResult niet het nationale cloud-specifieke eindpuntadres geeft van de resource waarvoor u een token aanvraagt.

broker_redirect_uri_registered

Een booleaanse waarde die aangeeft of u een met Microsoft Identity Broker compatibele omleidings-URI in de broker gebruikt. Stel in op false als u deze broker niet wilt gebruiken in uw app.

Als u de Microsoft Entra Authority gebruikt waarop doelgroep is ingesteld "MicrosoftPersonalAccount", wordt de broker niet gebruikt.

http

Algemene instellingen configureren voor HTTP-time-outs, zoals:

Eigenschappen Gegevenstype Vereist Opmerkingen
connect_timeout int Nee Tijd in milliseconden
read_timeout int Nee Tijd in milliseconden

logboekregistratie

De volgende algemene instellingen zijn voor logboekregistratie:

Eigenschappen Gegevenstype Vereist Opmerkingen
pii_enabled boolean Nee Of persoonsgegevens moeten worden verzonden
log_level tekenreeks Nee Welke logboekberichten moeten worden uitgevoerd. Ondersteunde logboekniveaus zijn onder andere ERROR,WARNINGINFO en VERBOSE.
logcat_enabled boolean Nee Of moet worden uitgevoerd naar logboekcatalogus naast de logboekregistratie-interface

account_mode

Hiermee geeft u op hoeveel accounts in uw app tegelijk kunnen worden gebruikt. Mogelijke waarden zijn:

  • MULTIPLE (standaard)
  • SINGLE

Als u een PublicClientApplication maakt met een accountmodus die niet overeenkomt met deze instelling, resulteert in een uitzondering.

Zie Apps voor één en meerdere accounts voor meer informatie over de verschillen tussen één en meerdere accounts.

browser_safelist

Een lijst met toegestane browsers die compatibel zijn met MSAL. Deze browsers verwerken correct omleidingen naar aangepaste intenties. U kunt gebruikers aan deze lijst toevoegen. De standaardinstelling wordt opgegeven in de standaardconfiguratie die hieronder wordt weergegeven. ``

Het standaard-MSAL-configuratiebestand

Hieronder ziet u de standaard-MSAL-configuratie die wordt geleverd met MSAL. U kunt de nieuwste versie op GitHub zien.

Deze configuratie wordt aangevuld met waarden die u opgeeft. De waarden die u opgeeft, overschrijven de standaardinstellingen.

{
  "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": [
        "7fmduHKTdHHrlMvldlEqAIlSfii1tl35bxj1OXN5Ve8c4lU6URVu4xtSHc3BVZxS6WWJnxMDhIfQN0N0K2NDJg=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "45"
    },
    {
      "browser_package_name": "com.android.chrome",
      "browser_signature_hashes": [
        "7fmduHKTdHHrlMvldlEqAIlSfii1tl35bxj1OXN5Ve8c4lU6URVu4xtSHc3BVZxS6WWJnxMDhIfQN0N0K2NDJg=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "org.mozilla.firefox",
      "browser_signature_hashes": [
        "2gCe6pR_AO_Q2Vu8Iep-4AsiKNnUHQxu0FaDHO_qa178GByKybdT_BuE8_dYk99G5Uvx_gdONXAOO2EaXidpVQ=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "org.mozilla.firefox",
      "browser_signature_hashes": [
        "2gCe6pR_AO_Q2Vu8Iep-4AsiKNnUHQxu0FaDHO_qa178GByKybdT_BuE8_dYk99G5Uvx_gdONXAOO2EaXidpVQ=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "57"
    },
    {
      "browser_package_name": "com.sec.android.app.sbrowser",
      "browser_signature_hashes": [
        "ABi2fbt8vkzj7SJ8aD5jc4xJFTDFntdkMrYXL3itsvqY1QIw-dZozdop5rgKNxjbrQAd5nntAGpgh9w84O1Xgg=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "4.0"
    },
    {
      "browser_package_name": "com.sec.android.app.sbrowser",
      "browser_signature_hashes": [
        "ABi2fbt8vkzj7SJ8aD5jc4xJFTDFntdkMrYXL3itsvqY1QIw-dZozdop5rgKNxjbrQAd5nntAGpgh9w84O1Xgg=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.cloudmosa.puffinFree",
      "browser_signature_hashes": [
        "1WqG8SoK2WvE4NTYgr2550TRhjhxT-7DWxu6C_o6GrOLK6xzG67Hq7GCGDjkAFRCOChlo2XUUglLRAYu3Mn8Ag=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.duckduckgo.mobile.android",
      "browser_signature_hashes": [
        "S5Av4cfEycCvIvKPpKGjyCuAE5gZ8y60-knFfGkAEIZWPr9lU5kA7iOAlSZxaJei08s0ruDvuEzFYlmH-jAi4Q=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.explore.web.browser",
      "browser_signature_hashes": [
        "BzDzBVSAwah8f_A0MYJCPOkt0eb7WcIEw6Udn7VLcizjoU3wxAzVisCm6bW7uTs4WpMfBEJYf0nDgzTYvYHCag=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.ksmobile.cb",
      "browser_signature_hashes": [
        "lFDYx1Rwc7_XUn4KlfQk2klXLufRyuGHLa3a7rNjqQMkMaxZueQfxukVTvA7yKKp3Md3XUeeDSWGIZcRy7nouw=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.microsoft.emmx",
      "browser_signature_hashes": [
        "Ivy-Rk6ztai_IudfbyUrSHugzRqAtHWslFvHT0PTvLMsEKLUIgv7ZZbVxygWy_M5mOPpfjZrd3vOx3t-cA6fVQ=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.opera.browser",
      "browser_signature_hashes": [
        "FIJ3IIeqB7V0qHpRNEpYNkhEGA_eJaf7ntca-Oa_6Feev3UkgnpguTNV31JdAmpEFPGNPo0RHqdlU0k-3jWJWw=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.opera.mini.native",
      "browser_signature_hashes": [
        "TOTyHs086iGIEdxrX_24aAewTZxV7Wbi6niS2ZrpPhLkjuZPAh1c3NQ_U4Lx1KdgyhQE4BiS36MIfP6LbmmUYQ=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "mobi.mgeek.TunnyBrowser",
      "browser_signature_hashes": [
        "RMVoXuK1sfJZuGZ8onG1yhMc-sKiAV2NiB_GZfdNlN8XJ78XEE2wPM6LnQiyltF25GkHiPN2iKQiGwaO2bkyyQ=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "org.mozilla.focus",
      "browser_signature_hashes": [
        "L72dT-stFqomSY7sYySrgBJ3VYKbipMZapmUXfTZNqOzN_dekT5wdBACJkpz0C6P0yx5EmZ5IciI93Q0hq0oYA=="
      ],
      "browser_use_customTab" : false
    }
  ]
}

Voorbeeld van basisconfiguratie

In het volgende voorbeeld ziet u een basisconfiguratie met de client-ID, de omleidings-URI, of een brokeromleiding is geregistreerd en een lijst met instanties.

{
  "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
    }
  ]
}

Een configuratiebestand gebruiken

  1. Maak een configuratiebestand. We raden u aan uw aangepaste configuratiebestand te maken in res/raw/auth_config.json. Maar u kunt het overal plaatsen waar u maar wilt.

  2. Vertel MSAL waar het naar uw configuratie moet zoeken wanneer u de PublicClientApplication maakt. Voorbeeld:

    //On Worker Thread
    IMultipleAccountPublicClientApplication sampleApp = null; 
    sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);