Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Android Identity a ověřování Microsoftu (MSAL) 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í
| Property | Datový typ | Povinné | 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: DEFAULT, BROWSER, WEBVIEW |
http |
HttpConfiguration | No | Konfigurace a konfigurace HttpUrlConnectionconnect_timeoutread_timeout |
logging |
Konfigurace protokolování | 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, INFOnebo VERBOSE. |
id klienta
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 truehodnotu . 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.
authorities
Seznam známých a důvěryhodných autorit. Kromě zde uvedených autorit msAL také dotazuje Microsoft získat seznam cloudů a autorit známých pro Microsoft. 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í Microsoft Entra autority a cílové skupiny na koncové body Microsoft identity platform
| Typ | Cílová skupina | Identifikátor nájemce | 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í Microsoft Entra tenant nebo účet Microsoft systém. |
||
| 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 je možné použít pouze Microsoft Entra účty. Microsoft účty můžou být členy organizací. Pokud chcete získat token pomocí účet Microsoft pro prostředek v organizaci, zadejte tenanta organizace, ze kterého chcete token získat. | ||
| Microsoft Entra ID | Osobní účet Microsoft | https://login.microsoftonline.com/consumers |
Tento koncový bod můžou používat jenom Microsoft účty. | ||
| 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. |
Note
V knihovně MSAL nelze povolit a zakázat ověření autority.
Autority se vám buď označují jako vývojáři, jak je specifikováno prostřednictvím konfigurace, nebo jsou známé Microsoft 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
| Property | Datový typ | Povinné | 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
| Property | Datový typ | Povinné | 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.comaaaabbbb-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:
-
DEFAULT: Preferuje systémový prohlížeč. Použije vložené webové zobrazení, pokud v zařízení není dostupný prohlížeč. -
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. Microsoft identity platform 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, která označuje, jestli používáte identifikátor URI přesměrování Microsoft zprostředkovatele identity kompatibilního s zprostředkovatelem. 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:
| Property | Datový typ | Povinné | 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:
| Property | Datový typ | Povinné | Notes |
|---|---|---|---|
pii_enabled |
Boolean | No | Zda se mají generovat osobní údaje |
log_level |
řetězec | No | Který protokoluje zprávy k výstupu. Mezi podporované úrovně protokolů patří ERROR,INFOWARNING 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 najdete v GitHub.
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": [
"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
}
]
}
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.jsonsouboru . 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);