Konfigurationsfil för Microsoft-autentiseringsbibliotek för Android
Android Microsoft Authentication Library (MSAL) levereras med en JSON-standardkonfigurationsfil som du anpassar för att definiera beteendet för din offentliga klientapp för saker som standardutfärdare, vilka myndigheter du ska använda och så vidare.
Den här artikeln hjälper dig att förstå de olika inställningarna i konfigurationsfilen och hur du anger den konfigurationsfil som ska användas i din MSAL-baserade app.
Konfigurationsinställningar
Allmänna inställningar
Property | Datatyp | Obligatoriskt | Kommentar |
---|---|---|---|
client_id |
String | Ja | Appens klient-ID från sidan Programregistrering |
redirect_uri |
String | Ja | Appens omdirigerings-URI från sidan Programregistrering |
broker_redirect_uri_registered |
Booleskt | Nej | Möjliga värden: true , false |
authorities |
Lista<över utfärdare> | Nej | Listan över myndigheter som din app behöver |
authorization_user_agent |
AuthorizationAgent (uppräkning) | Nej | Möjliga värden: WEBVIEW , BROWSER |
http |
HttpConfiguration | Nej | Konfigurera HttpUrlConnection connect_timeout och read_timeout |
logging |
LoggningKonfiguration | Nej | Anger loggningsinformationsnivån. Valfria konfigurationer är: pii_enabled , som tar ett booleskt värde och log_level , som tar ERROR , WARNING , INFO eller VERBOSE . |
client_id
Det klient-ID eller app-ID som skapades när du registrerade ditt program.
redirect_uri
Omdirigerings-URI:n som du registrerade när du registrerade ditt program. Om omdirigerings-URI:n är till en koordinatorapp läser du Omdirigerings-URI för offentliga klientappar för att säkerställa att du använder rätt omdirigerings-URI-format för din koordinatorapp.
broker_redirect_uri_registered
Om du vill använda asynkron broker_redirect_uri_registered
autentisering måste egenskapen vara inställd på true
. I ett scenario med asynkron autentisering validerar programmet din omdirigerings-URI och utlöser ett undantag när det startar om programmet inte har rätt format för att kommunicera med koordinatorn enligt beskrivningen i Omdirigerings-URI för offentliga klientappar.
Myndigheterna
Listan över myndigheter som är kända och betrodda av dig. Förutom de myndigheter som anges här frågar MSAL även Microsoft för att få en lista över moln och myndigheter som är kända för Microsoft. I den här listan med myndigheter anger du typen av utfärdare och eventuella ytterligare valfria parametrar som "audience"
, som bör anpassas till målgruppen för din app baserat på appens registrering. Följande är en exempellista över myndigheter:
// 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"
}
}
Mappa Microsoft Entra-utfärdare och målgrupp till Microsofts identitetsplattform slutpunkter
Typ | Målgrupp | Klientorganisations-ID | Authority_Url | Resulterande slutpunkt | Kommentar |
---|---|---|---|---|---|
Microsoft Entra ID | AzureADandPersonalMicrosoftAccount | https://login.microsoftonline.com/common |
common är ett klientalias för var kontot finns. Till exempel en specifik Microsoft Entra-klientorganisation eller Microsoft-kontosystemet. |
||
Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Endast konton som finns i contoso.com kan hämta en token. Alla verifierade domäner eller klientorganisations-GUID kan användas som klientorganisations-ID. | |
Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
Endast Microsoft Entra-konton kan användas med den här slutpunkten. Microsoft-konton kan vara medlemmar i organisationer. Om du vill hämta en token med hjälp av ett Microsoft-konto för en resurs i en organisation anger du den organisationsklient som du vill använda token från. | ||
Microsoft Entra ID | PersonalMicrosoftAccount | https://login.microsoftonline.com/consumers |
Endast Microsoft-konton kan använda den här slutpunkten. | ||
B2C | Se Resulterande slutpunkt | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Endast konton som finns i contoso.onmicrosoft.com klientorganisation kan hämta en token. I det här exemplet är B2C-principen en del av url-sökvägen till utfärdaren. |
Kommentar
Det går inte att aktivera och inaktivera utfärdarvalidering i MSAL.
Myndigheterna är antingen kända för dig som utvecklare enligt konfigurationen eller microsoft via metadata.
Om MSAL tar emot en begäran om en token till en okänd utfärdare resulterar en MsalClientException
av typen UnknownAuthority
.
Asynkron autentisering fungerar inte för Azure AD B2C.
Egenskaper för utfärdare
Property | Datatyp | Obligatoriskt | Kommentar |
---|---|---|---|
type |
String | Ja | Speglar målgruppen eller kontotypen dina appmål. Möjliga värden: AAD , B2C |
audience |
Objekt | Nej | Gäller endast när type=AAD . Anger identiteten som appen riktar in sig på. Använda värdet från din appregistrering |
authority_url |
String | Ja | Krävs endast när type=B2C . Valfritt för type=AAD . Anger utfärdarens URL eller princip som appen ska använda |
default |
boolean | Ja | En enda "default":true krävs när en eller flera myndigheter anges. |
Målgruppsegenskaper
Property | Datatyp | Obligatoriskt | Kommentar |
---|---|---|---|
type |
String | Ja | Anger vilken målgrupp appen vill rikta in sig på. Möjliga värden: AzureADandPersonalMicrosoftAccount , PersonalMicrosoftAccount , AzureADMultipleOrgs , AzureADMyOrg |
tenant_id |
String | Ja | Krävs endast när "type":"AzureADMyOrg" . Valfritt för andra type värden. Detta kan vara en klientdomän som contoso.com , eller ett klient-ID, till exempel aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Anger om du vill använda en inbäddad webbvy eller standardwebbläsaren på enheten när du loggar in på ett konto eller auktoriserar åtkomst till en resurs.
Möjliga värden:
WEBVIEW
: Använd den inbäddade webbvyn.BROWSER
: Använder standardwebbläsaren på enheten.
multiple_clouds_supported
För klienter som stöder flera nationella moln anger du true
. Microsofts identitetsplattform omdirigeras sedan automatiskt till rätt nationellt moln under inlösen av auktorisering och token. Du kan fastställa det nationella molnet för det inloggade kontot genom att undersöka den utfärdare som är associerad med AuthenticationResult
. Observera att AuthenticationResult
inte anger den nationella molnspecifika slutpunktsadressen för resursen som du begär en token för.
broker_redirect_uri_registered
Ett booleskt värde som anger om du använder en Omdirigerings-URI som är kompatibel med Microsoft Identity Broker. Ange till false
om du inte vill använda asynkron meddelandekö i din app.
Om du använder Microsoft Entra-utfärdaren med Målgrupp inställd på "MicrosoftPersonalAccount"
används inte asynkron meddelandekö.
http
Konfigurera globala inställningar för HTTP-timeouter, till exempel:
Property | Datatyp | Obligatoriskt | Kommentar |
---|---|---|---|
connect_timeout |
heltal | Nej | Tid i millisekunder |
read_timeout |
heltal | Nej | Tid i millisekunder |
logging
Följande globala inställningar gäller för loggning:
Property | Datatyp | Obligatoriskt | Kommentar |
---|---|---|---|
pii_enabled |
boolean | Nej | Om personuppgifter ska skickas |
log_level |
sträng | Nej | Vilka loggmeddelanden som ska matas ut. Loggnivåerna som stöds är ERROR ,WARNING ,INFO och VERBOSE . |
logcat_enabled |
boolean | Nej | Om loggkatt ska matas ut utöver loggningsgränssnittet |
account_mode
Anger hur många konton som kan användas i din app åt gången. Möjliga värden är:
MULTIPLE
(Standard)SINGLE
Om du skapar ett PublicClientApplication
kontoläge som inte matchar den här inställningen resulterar det i ett undantag.
Mer information om skillnaderna mellan enskilda och flera konton finns i Appar för enskilda och flera konton.
browser_safelist
En lista över tillåtna webbläsare som är kompatibla med MSAL. Dessa webbläsare hanterar korrekt omdirigeringar till anpassade avsikter. Du kan lägga till i den här listan. Standardinställningen anges i standardkonfigurationen som visas nedan. ``
Msal-standardkonfigurationsfilen
Standardkonfigurationen för MSAL som levereras med MSAL visas nedan. Du kan se den senaste versionen på GitHub.
Den här konfigurationen kompletteras med värden som du anger. De värden som du anger åsidosätter standardvärdena.
{
"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": [
"aB1cD2eF3gH4iJ5kL6-mN7oP8qR=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "45"
},
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"cD2eF3gH4iJ5kL6mN7-oP8qR9sT=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"eF3gH4iJ5kL6mN7oP8-qR9sT0uV=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"gH4iJ5kL6mN7oP8qR9-sT0uV1wX=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "57"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"iJ5kL6mN7oP8qR9sT0-uV1wX2yZ=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "4.0"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"kL6mN7oP8qR9sT0uV1-wX2yZ3aB=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.cloudmosa.puffinFree",
"browser_signature_hashes": [
"mN7oP8qR9sT0uV1wX2-yZ3aB4dE="
],
"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": [
"RMVoXgjjgyjjmbj4578fcbkyyQ=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.focus",
"browser_signature_hashes": [
"L72dT...q0oYA=="
],
"browser_use_customTab" : false
}
]
}
Exempel på grundläggande konfiguration
I följande exempel visas en grundläggande konfiguration som anger klient-ID, omdirigerings-URI, om en asynkron omdirigering registreras och en lista över myndigheter.
{
"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
}
]
}
Så här använder du en konfigurationsfil
Skapa en konfigurationsfil. Vi rekommenderar att du skapar din anpassade konfigurationsfil i
res/raw/auth_config.json
. Men du kan placera den var du vill.Tala om för MSAL var du ska leta efter din konfiguration när du skapar
PublicClientApplication
. Till exempel://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);