Configuratiebestand voor Microsoft Authentication Library voor Android
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 autoriteiten 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 MSAL-app.
Configuratie-instellingen
Algemene instellingen
Eigenschap | Gegevenstype | Vereist | Notities |
---|---|---|---|
client_id |
Tekenreeks | Ja | De client-id van uw app op de pagina Toepassingsregistratie |
redirect_uri |
Tekenreeks | Ja | De omleidings-URI van uw app vanaf de registratiepagina van de toepassing |
broker_redirect_uri_registered |
Booleaans | No | Mogelijke waarden: true , false |
authorities |
ListAuthority<> | No | De lijst met instanties die uw app nodig heeft |
authorization_user_agent |
AuthorizationAgent (enum) | No | Mogelijke waarden: DEFAULT , BROWSER WEBVIEW |
http |
HttpConfiguration | No | Configureren HttpUrlConnection connect_timeout en read_timeout |
logging |
LoggingConfiguration | No | Hiermee geeft u het detailniveau van logboekregistratie op. Optionele configuraties zijn onder andere: pii_enabled , waarmee een Booleaanse waarde wordt gebruikt, en log_level , die ERROR neemt , WARNING , INFO of VERBOSE . |
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 gebruikt voor uw broker-app.
broker_redirect_uri_registered
Als u brokered verificatie wilt gebruiken, moet de broker_redirect_uri_registered
eigenschap worden ingesteld op true
. Als de toepassing in een brokered-verificatiescenario niet de juiste indeling heeft om met de broker te praten, zoals beschreven in omleidings-URI voor openbare client-apps, valideert de toepassing uw omleidings-URI en genereert een uitzondering wanneer deze wordt gestart.
Autoriteiten
De lijst met autoriteiten die door u bekend en vertrouwd zijn. Naast de hier vermelde autoriteiten vraagt MSAL ook Microsoft om een lijst met clouds en autoriteiten te krijgen die bekend zijn bij Microsoft. Geef in deze lijst met autoriteiten het type autoriteit en eventuele aanvullende optionele parameters op, zoals "audience"
, die moeten worden afgestemd op het publiek van uw app op basis van de registratie van uw app. Hier volgt een voorbeeld van een lijst met autoriteiten:
// 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"
}
}
Doelgroep AAD toewijzen & aan Microsoft identity platform eindpunten
Type | Doelgroep | Tenant-id | Authority_Url | Resulterend eindpunt | Notities |
---|---|---|---|---|---|
AAD | AzureADandPersonalMicrosoftAccount | https://login.microsoftonline.com/common |
common is een tenantalias voor waar het account zich bevindt. Zoals een specifieke Azure Active Directory tenant of het Microsoft-accountsysteem. |
||
AAD | 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. | |
AAD | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Alleen Azure Active Directory accounts kunnen worden gebruikt met dit eindpunt. 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. | ||
AAD | PersonalMicrosoftAccount | https://login.microsoftonline.com/consumers |
Alleen Microsoft-accounts kunnen dit eindpunt gebruiken. | ||
B2C | Resultaateindpunt weergeven | 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
Autorisatie kan niet worden ingeschakeld en uitgeschakeld in MSAL.
De autoriteiten zijn u bekend als de ontwikkelaar zoals opgegeven via configuratie of bekend bij Microsoft via metagegevens.
Als MSAL een aanvraag voor een token ontvangt bij een onbekende instantie, een MsalClientException
typeresultaten UnknownAuthority
.
Brokered-verificatie werkt niet voor Azure AD B2C.
Eigenschappen van de instantie
Eigenschap | Gegevenstype | Vereist | Notities |
---|---|---|---|
type |
Tekenreeks | Ja | Hiermee wordt de doelgroep of het accounttype van uw app-doelen gespiegeld. Mogelijke waarden: AAD , B2C |
audience |
Object | No | Alleen van toepassing wanneer type=AAD . Hiermee geeft u de identiteit op die uw app-doelen heeft. De waarde van uw app-registratie gebruiken |
authority_url |
Tekenreeks | Ja | Alleen vereist wanneer type=B2C . Hiermee geeft u de INSTANTIE-URL of het beleid op dat uw app moet gebruiken |
default |
booleaans | Ja | Er is één vereiste "default":true wanneer een of meer autoriteiten worden opgegeven. |
Eigenschappen van doelgroep
Eigenschap | Gegevenstype | Vereist | Notities |
---|---|---|---|
type |
Tekenreeks | Ja | Hiermee geeft u de doelgroep op die uw app wil richten. Mogelijke waarden: AzureADandPersonalMicrosoftAccount , PersonalMicrosoftAccount , AzureADMultipleOrgs AzureADMyOrg |
tenant_id |
Tekenreeks | Ja | Alleen vereist wanneer "type":"AzureADMyOrg" . Optioneel voor andere type waarden. Dit kan een tenantdomein zijn, zoals contoso.com , of een tenant-id zoals 72f988bf-86f1-41af-91ab-2d7cd011db46 ) |
authorization_user_agent
Hiermee wordt aangegeven of u een ingesloten webweergave of de standaardbrowser op het apparaat wilt gebruiken bij het aanmelden bij een account of het autoriseren van toegang tot een resource.
Mogelijke waarden:
DEFAULT
: Geeft de voorkeur aan de systeembrowser. Gebruikt de ingesloten webweergave als een browser niet beschikbaar is op het apparaat.WEBVIEW
: Gebruik de ingesloten webweergave.BROWSER
: gebruikt de standaardbrowser op het apparaat.
multiple_clouds_supported
Geef voor clients die ondersteuning bieden voor meerdere nationale clouds true
op. De Microsoft identity platform wordt vervolgens automatisch omgeleid naar de juiste nationale cloud tijdens de autorisatie en het inwisselen van tokens. 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 het AuthenticationResult
nationale cloudspecifieke eindpuntadres van de resource waarvoor u een token aanvraagt, niet wordt opgegeven.
broker_redirect_uri_registered
Een Booleaanse waarde die aangeeft of u een Microsoft Identity Broker-compatibele omleidings-URI gebruikt. Ingesteld op false
als u de broker niet in uw app wilt gebruiken.
Als u de AAD Authority gebruikt waarop doelgroep is ingesteld"MicrosoftPersonalAccount"
, wordt de broker niet gebruikt.
http
Globale instellingen configureren voor HTTP-time-outs, zoals:
Eigenschap | Gegevenstype | Vereist | Notities |
---|---|---|---|
connect_timeout |
int | No | Tijd in milliseconden |
read_timeout |
int | No | Tijd in milliseconden |
logboekregistratie
De volgende algemene instellingen zijn bedoeld voor logboekregistratie:
Eigenschap | Gegevenstype | Vereist | Notities |
---|---|---|---|
pii_enabled |
booleaans | No | Of persoonlijke gegevens moeten worden verzonden |
log_level |
tekenreeks | No | Welke logboekberichten moeten worden uitgevoerd. Ondersteunde logboekniveaus zijn onder andere ERROR ,WARNING INFO en VERBOSE . |
logcat_enabled |
booleaans | No | Of de uitvoer moet worden uitgevoerd om cat naast de logboekregistratieinterface te registreren |
account_mode
Hiermee geeft u op hoeveel accounts in uw app tegelijk kunnen worden gebruikt. De mogelijke waarden zijn:
MULTIPLE
(Standaard)SINGLE
Als u een PublicClientApplication
accountmodus maakt die niet overeenkomt met deze instelling, resulteert dit in een uitzondering.
Zie Apps voor één en meerdere accounts voor meer informatie over de verschillen tussen één en meerdere accounts.
browser_safelist
Een acceptatielijst met browsers die compatibel zijn met MSAL. Deze browsers verwerken omleidingen naar aangepaste intenties correct. U kunt toevoegen aan deze lijst. De standaardwaarde 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 ziet de nieuwste versie op GitHub.
Deze configuratie wordt aangevuld met waarden die u opgeeft. De waarden die u opgeeft, overschrijven de standaardwaarden.
{
"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 waarmee de client-id, omleidings-URI wordt opgegeven, of een brokeromleiding is geregistreerd en een lijst met autoriteiten.
{
"client_id" : "4b0db8c2-9f26-4417-8bde-3f0e3656f8e0",
"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
Maak een configuratiebestand. U wordt aangeraden uw aangepaste configuratiebestand te maken in
res/raw/auth_config.json
. Maar je kunt het overal plaatsen waar je wilt.Laat MSAL weten waar u naar uw configuratie moet zoeken wanneer u de
PublicClientApplication
configuratie maakt. Bijvoorbeeld://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);