Konfigurační soubor Microsoft Authentication Library pro Android
Knihovna MSAL (Android Authentication Library) se dodává s výchozím konfiguračním souborem JSON, který si přizpůsobíte, abyste definovali chování vaší veřejné klientské aplikace pro věci, jako je výchozí autorita, které budete používat atd.
Tento článek vám pomůže pochopit různá nastavení v konfiguračním souboru a určit konfigurační soubor, který se má použít v aplikaci založené na MSAL.
Nastavení konfigurace
Obecné nastavení
Vlastnost | Datový typ | Požaduje se | Notes |
---|---|---|---|
client_id |
String | Ano | ID klienta vaší aplikace ze stránky registrace aplikace |
redirect_uri |
String | Ano | Identifikátor URI přesměrování vaší aplikace ze stránky registrace aplikace |
broker_redirect_uri_registered |
Logický | No | Možné hodnoty: true , false |
authorities |
List<Authority> | No | Seznam autorit, které vaše aplikace potřebuje |
authorization_user_agent |
AuthorizationAgent (výčet) | No | Možné hodnoty: WEBVIEW , BROWSER |
http |
HttpConfiguration | No | Konfigurace a konfigurace HttpUrlConnection connect_timeout read_timeout |
logging |
LoggingConfiguration | No | Určuje úroveň podrobností protokolování. Mezi volitelné konfigurace patří: pii_enabled , která přebírá logickou hodnotu, a log_level , která přebírá ERROR , WARNING , INFO nebo VERBOSE . |
client_id
ID klienta nebo ID aplikace, které jste vytvořili při registraci aplikace.
redirect_uri
Identifikátor URI přesměrování, který jste zaregistrovali při registraci aplikace. Pokud je identifikátor URI přesměrování na zprostředkující aplikaci, projděte si identifikátor URI přesměrování pro veřejné klientské aplikace a ujistěte se, že používáte správný formát identifikátoru URI přesměrování pro vaši zprostředkující aplikaci.
broker_redirect_uri_registered
Pokud chcete použít zprostředkované ověřování, broker_redirect_uri_registered
vlastnost musí být nastavena na true
hodnotu . Ve scénáři zprostředkovaného ověřování platí, že pokud aplikace není ve správném formátu pro komunikaci s zprostředkovatelem, jak je popsáno v identifikátoru URI přesměrování pro veřejné klientské aplikace, aplikace ověří identifikátor URI přesměrování a při spuštění vyvolá výjimku.
úřady
Seznam známých a důvěryhodných autorit. Kromě zde uvedených autorit msAL také dotazuje Microsoft, aby získal seznam cloudů a autorit známých microsoftem. V tomto seznamu autorit určete typ autority a všechny další volitelné parametry, například "audience"
, které by měly odpovídat cílové skupině vaší aplikace na základě registrace vaší aplikace. Následuje příklad seznamu citací:
// 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"
}
}
Mapování autority Microsoft Entra a cílové skupiny na koncové body platformy Microsoft Identity Platform
Typ | Cílová skupina | ID tenanta | Authority_Url | Výsledný koncový bod | Notes |
---|---|---|---|---|---|
Microsoft Entra ID | AzureADandPersonalMicrosoftAccount | https://login.microsoftonline.com/common |
common je alias tenanta pro místo, kde je účet. Například konkrétního tenanta Microsoft Entra nebo systému účtů Microsoft. |
||
Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Token můžou získat jenom účty, které jsou přítomné v contoso.com. Jako ID tenanta se může použít jakákoli ověřená doména nebo identifikátor GUID tenanta. | |
Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
S tímto koncovým bodem se dají používat jenom účty Microsoft Entra. Účty Microsoft můžou být členy organizací. Pokud chcete získat token pomocí účtu Microsoft pro prostředek v organizaci, zadejte tenanta organizace, ze kterého chcete token získat. | ||
Microsoft Entra ID | PersonalMicrosoftAccount | https://login.microsoftonline.com/consumers |
Tento koncový bod můžou používat jenom účty Microsoft. | ||
B2C | Zobrazit výsledný koncový bod | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Token můžou získat jenom účty, které jsou přítomné v tenantovi contoso.onmicrosoft.com. V tomto příkladu je zásada B2C součástí cesty URL autority. |
Poznámka:
V knihovně MSAL nelze povolit a zakázat ověření autority.
Autority jsou vám známy jako vývojáři, jak je uvedeno prostřednictvím konfigurace, nebo jsou známé Microsoftu prostřednictvím metadat.
Pokud msAL obdrží požadavek na token neznámé autoritě, MsalClientException
výsledky typu UnknownAuthority
.
Zprostředkované ověřování nefunguje pro Azure AD B2C.
Vlastnosti autority
Vlastnost | Datový typ | Požaduje se | Notes |
---|---|---|---|
type |
String | Ano | Zrcadlí cílovou skupinu nebo typ účtu, na který cílí vaše aplikace. Možné hodnoty: AAD , B2C |
audience |
Object | No | Platí pouze v případech, kdy type=AAD . Určuje identitu, na které vaše aplikace cílí. Použijte hodnotu z registrace aplikace. |
authority_url |
String | Ano | Povinné pouze v případě, že type=B2C . Volitelné pro typ=AAD . Určuje adresu URL autority nebo zásady, které má vaše aplikace používat. |
default |
boolean | Ano | Jeden "default":true je vyžadován, pokud je zadán jeden nebo více autorit. |
Vlastnosti cílové skupiny
Vlastnost | Datový typ | Požaduje se | Notes |
---|---|---|---|
type |
String | Ano | Určuje cílovou skupinu, na kterou chce vaše aplikace cílit. Možné hodnoty: AzureADandPersonalMicrosoftAccount , PersonalMicrosoftAccount , AzureADMultipleOrgs , AzureADMyOrg |
tenant_id |
String | Ano | Vyžaduje se pouze v případě, že "type":"AzureADMyOrg" . Volitelné pro jiné type hodnoty. Může to být doména tenanta, například nebo ID tenanta, například contoso.com aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Označuje, jestli se má použít vložené webové zobrazení nebo výchozí prohlížeč na zařízení při přihlašování k účtu nebo autorizaci přístupu k prostředku.
Možné hodnoty:
WEBVIEW
: Použijte vložené webové zobrazení.BROWSER
: Používá výchozí prohlížeč na zařízení.
multiple_clouds_supported
Pro klienty, kteří podporují více národních cloudů, zadejte true
. Platforma Microsoft Identity Platform se pak během autorizace a uplatnění tokenu automaticky přesměruje na správný národní cloud. Národní cloud přihlášeného účtu můžete určit prozkoumáním autority přidružené k AuthenticationResult
účtu . Všimněte si, že AuthenticationResult
neposkytuje adresu koncového bodu konkrétního národního cloudu prostředku, pro který si vyžádáte token.
broker_redirect_uri_registered
Logická hodnota označující, jestli používáte identifikátor URI přesměrování přesměrovávání microsoftu kompatibilní s zprostředkovatelem identit Microsoftu. Nastavte, false
pokud nechcete v aplikaci používat zprostředkovatele.
Pokud používáte autoritu Microsoft Entra s cílovou skupinou nastavenou na "MicrosoftPersonalAccount"
, zprostředkovatel se nepoužije.
http
Nakonfigurujte globální nastavení pro vypršení časového limitu HTTP, například:
Vlastnost | Datový typ | Požaduje se | Notes |
---|---|---|---|
connect_timeout |
int | No | Čas v milisekundách |
read_timeout |
int | No | Čas v milisekundách |
protokolování
Protokolování se používá v následujících globálních nastaveních:
Vlastnost | Datový typ | Požaduje se | Notes |
---|---|---|---|
pii_enabled |
boolean | No | Zda se mají generovat osobní údaje |
log_level |
string | No | Který protokoluje zprávy k výstupu. Mezi podporované úrovně protokolů patří ERROR ,INFO WARNING a VERBOSE . |
logcat_enabled |
boolean | No | Určuje, jestli se má výstup protokolovat kočku kromě rozhraní protokolování. |
account_mode
Určuje, kolik účtů se dá v aplikaci používat současně. Možné hodnoty:
MULTIPLE
(Výchozí)SINGLE
Vytvoření PublicClientApplication
pomocí režimu účtu, který neodpovídá tomuto nastavení, způsobí výjimku.
browser_safelist
Seznam povolených prohlížečů, které jsou kompatibilní s knihovnou MSAL. Tyto prohlížeče správně zpracovávají přesměrování na vlastní záměry. Do tohoto seznamu můžete přidat. Výchozí nastavení je uvedené ve výchozí konfiguraci uvedené níže. ``
Výchozí konfigurační soubor MSAL
Výchozí konfigurace MSAL, která je dodávána se službou MSAL, je uvedena níže. Nejnovější verzi můžete zobrazit na GitHubu.
Tato konfigurace je doplněna hodnotami, které zadáte. Zadané hodnoty přepíší výchozí hodnoty.
{
"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
}
]
}
Příklad základní konfigurace
Následující příklad ukazuje základní konfiguraci, která určuje ID klienta, identifikátor URI přesměrování, zda je zaregistrováno přesměrování zprostředkovatele, a seznam autorit.
{
"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
}
]
}
Jak používat konfigurační soubor
Vytvořte konfigurační soubor. Doporučujeme vytvořit vlastní konfigurační soubor v
res/raw/auth_config.json
souboru . Ale můžete to dát kamkoliv, co si přejete.Sdělte MSAL, kde hledat vaši konfiguraci při vytváření
PublicClientApplication
. Příklad://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);