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 HttpUrlConnectionconnect_timeoutread_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, INFOnebo 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 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.

Orgány

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.com00001111-aaaa-2222-bbbb-3333cccc4444

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,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.

Další informace orozdílch

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": [
        "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
    }
  ]
}

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

  1. 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.

  2. 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);