Android Microsoft Authentication Library konfigurációs fájl

Az Android Microsoft Authentication Library (MSAL) egy alapértelmezett konfigurációs JSON-fájllal rendelkezik, amelyet testre szabva határozza meg a nyilvános ügyfélalkalmazás viselkedését olyan dolgok esetében, mint például az alapértelmezett szolgáltató, a használni kívánt hatóságok stb.

Ez a cikk segít megérteni a konfigurációs fájl különböző beállításait, valamint azt, hogy miként adhatja meg az MSAL-alapú alkalmazásban használni kívánt konfigurációs fájlt.

Konfigurációs beállítások

Általános beállítások

Tulajdonság Adattípus Kötelező Jegyzetek
client_id Sztring Igen Az alkalmazás ügyfél-azonosítója az alkalmazásregisztrációs oldalról
redirect_uri Sztring Igen Az alkalmazás átirányítási URI-ja az alkalmazásregisztrációs oldalról
broker_redirect_uri_registered Logikai Nem Lehetséges értékek: true, false
authorities Listaszolgáltató<> Nem Az alkalmazás által igényelt hatóságok listája
authorization_user_agent AuthorizationAgent (enumerálás) Nem Lehetséges értékek: WEBVIEW, BROWSER
http HttpConfiguration Nem Konfigurálás HttpUrlConnectionconnect_timeout és read_timeout
logging LoggingConfiguration Nem Megadja a naplózás részletességi szintjét. Az opcionális konfigurációk a következők: pii_enabled, amely logikai értéket vesz fel, és log_level, amely , ERRORWARNINGINFOvagy VERBOSE.

ügyfél azonosítója

Az alkalmazás regisztrálásakor létrehozott ügyfél- vagy alkalmazásazonosító.

redirect_uri

Az alkalmazás regisztrálásakor regisztrált átirányítási URI. Ha az átirányítási URI egy közvetítőalkalmazásra vonatkozik, tekintse meg a nyilvános ügyfélalkalmazások átirányítási URI-ját, hogy biztosan a megfelelő átirányítási URI-formátumot használja-e a közvetítőalkalmazáshoz.

broker_redirect_uri_registered

Ha közvetítőalapú hitelesítést szeretne használni, a tulajdonságot truea broker_redirect_uri_registered következőre kell állítani: . Közvetítőalapú hitelesítési forgatókönyv esetén, ha az alkalmazás nem a megfelelő formátumban beszél a közvetítővel a nyilvános ügyfélalkalmazások átirányítási URI-jában leírtak szerint, az alkalmazás ellenőrzi az átirányítási URI-t, és kivételt vet ki az indításkor.

Hatóságok

Az Ön által ismert és megbízható hatóságok listája. Az itt felsorolt hatóságok mellett az MSAL a Microsofttól is lekérdezi a Microsoft által ismert felhők és hatóságok listáját. A hatóságok listájában adja meg a szolgáltató típusát és az olyan további választható paramétereket, mint "audience"például az, amely az alkalmazás regisztrációja alapján igazodik az alkalmazás célközönségéhez. A következő egy példa a hatóságok listájára:

// 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"
    }
}

Microsoft Entra-szolgáltató és célközönség leképezése Microsoft Identitásplatform végpontokhoz

Típus Célközönség Bérlőazonosító Authority_Url Eredményként kapott végpont Jegyzetek
Microsoft Entra ID AzureADandPersonalMicrosoftAccount https://login.microsoftonline.com/common common a fiókhoz tartozó bérlői alias. Ilyen például egy adott Microsoft Entra-bérlő vagy a Microsoft-fiókrendszer.
Microsoft Entra ID AzureADMyOrg contoso.com https://login.microsoftonline.com/contoso.com Jogkivonatot csak az contoso.com rendelkező fiókok szerezhetnek be. Bármely ellenőrzött tartomány vagy a bérlői GUID használható bérlőazonosítóként.
Microsoft Entra ID AzureADMultipleOrgs https://login.microsoftonline.com/organizations Ezzel a végponttal csak Microsoft Entra-fiókok használhatók. A Microsoft-fiókok lehetnek szervezetek tagjai. Ha microsoftos fiókkal szeretne jogkivonatot beszerezni egy szervezet erőforrásához, adja meg azt a szervezeti bérlőt, amelyből a jogkivonatot használni szeretné.
Microsoft Entra ID PersonalMicrosoftAccount https://login.microsoftonline.com/consumers Ezt a végpontot csak Microsoft-fiókok használhatják.
B2C Lásd az eredményként kapott végpontot https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ Jogkivonatot csak a contoso.onmicrosoft.com bérlőben lévő fiókok szerezhetnek be. Ebben a példában a B2C-szabályzat a Szolgáltató URL-címének része.

Feljegyzés

A hitelesítés ellenőrzése nem engedélyezhető és tiltható le az MSAL-ben. A hatóságok vagy a konfiguráción keresztül megadott fejlesztőként, vagy metaadatokon keresztül ismertek a Microsoft számára. Ha az MSAL egy jogkivonatra vonatkozó kérést kap egy ismeretlen szolgáltatóhoz, MsalClientException a típus UnknownAuthority eredménye. A közvetített hitelesítés nem működik az Azure AD B2C-ben.

Szolgáltató tulajdonságai

Tulajdonság Adattípus Kötelező Jegyzetek
type Sztring Igen Tükrözi a célközönséget vagy a fiókot, és beírja az alkalmazás céljait. Lehetséges értékek: AAD, B2C
audience Objektum Nem Csak akkor érvényes, ha type=AAD. Meghatározza az alkalmazás által célként megadott identitást. Az alkalmazásregisztráció értékének használata
authority_url Sztring Igen Csak akkor szükséges, ha type=B2C. Type=AADesetén nem kötelező. Megadja, hogy az alkalmazásnak mely szolgáltatói URL-címet vagy szabályzatot kell használnia
default Logikai Igen Egy vagy több hatóság megadása esetén egyetlenre "default":true van szükség.

Célközönség tulajdonságai

Tulajdonság Adattípus Kötelező Jegyzetek
type Sztring Igen Meghatározza, hogy az alkalmazás mely célközönséget szeretné megcélozza. Lehetséges értékek: AzureADandPersonalMicrosoftAccount, PersonalMicrosoftAccount, , AzureADMultipleOrgsAzureADMyOrg
tenant_id Sztring Igen Csak akkor szükséges, ha "type":"AzureADMyOrg". Más type értékek esetén nem kötelező. Ez lehet bérlői tartomány, például contoso.com, vagy bérlőazonosító, például 00001111-aaaa-2222-bbbb-3333cccc4444

authorization_user_agent

Azt jelzi, hogy beágyazott webnézetet vagy alapértelmezett böngészőt használjon-e az eszközön, amikor bejelentkezik egy fiókba, vagy engedélyezi az erőforráshoz való hozzáférést.

Lehetséges értékek:

  • WEBVIEW: Használja a beágyazott webes nézetet.
  • BROWSER: Az eszköz alapértelmezett böngészőjét használja.

multiple_clouds_supported

Több országos felhőt támogató ügyfelek esetén adja meg a .true A Microsoft Identitásplatform ezután automatikusan átirányítja a megfelelő nemzeti felhőbe az engedélyezés és a jogkivonat beváltása során. A bejelentkezett fiók nemzeti felhőjének meghatározásához vizsgálja meg a hozzá társított hatóságot AuthenticationResult. Vegye figyelembe, hogy a AuthenticationResult szolgáltatás nem adja meg annak az erőforrásnak az országos felhőspecifikus végpontcímét, amelyhez jogkivonatot kér.

broker_redirect_uri_registered

Logikai érték, amely jelzi, hogy microsoft identity broker kompatibilis közvetítőn belüli átirányítási URI-t használ-e. Állítsa be, false ha nem szeretné használni a közvetítőt az alkalmazásban.

Ha a Microsoft Entra Authorityt használja a Célközönség beállítással "MicrosoftPersonalAccount", a közvetítő nem lesz használva.

http

A HTTP-időtúllépések globális beállításainak konfigurálása, például:

Tulajdonság Adattípus Kötelező Jegyzetek
connect_timeout egész Nem Idő ezredmásodpercben
read_timeout egész Nem Idő ezredmásodpercben

naplózás

A naplózáshoz a következő globális beállítások tartoznak:

Tulajdonság Adattípus Kötelező Jegyzetek
pii_enabled Logikai Nem Személyes adatok kibocsátása
log_level húr Nem Mely naplóüzenetek lesznek kimenetben. A támogatott naplószintek a következők: ERROR,WARNING,INFO és VERBOSE.
logcat_enabled Logikai Nem A naplómacska kimenete a naplózási felület mellett

account_mode

Megadja, hogy egyszerre hány fiók használható az alkalmazásban. A lehetséges értékek a következők:

  • MULTIPLE (Alapértelmezett)
  • SINGLE

Ha olyan fiókmódot PublicClientApplication hoz létre, amely nem felel meg ennek a beállításnak, kivételt eredményez.

Az egy és több fiók közötti különbségekről további információt az Egy- és többfiókos alkalmazások című témakörben talál.

browser_safelist

Az MSAL-kompatibilis böngészők engedélyezési listája. Ezek a böngészők megfelelően kezelik az egyéni szándékokra irányuló átirányításokat. Felveheti ezt a listát. Az alapértelmezett beállítás az alábbi alapértelmezett konfigurációban van megadva. ``

Az alapértelmezett MSAL-konfigurációs fájl

Az MSAL-t tartalmazó alapértelmezett MSAL-konfiguráció alább látható. A GitHubon láthatja a legújabb verziót.

Ezt a konfigurációt az Ön által megadott értékek egészítik ki. A megadott értékek felülbírálják az alapértelmezett értékeket.

{
  "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élda alapkonfigurációra

Az alábbi példa egy alapkonfigurációt mutat be, amely meghatározza az ügyfélazonosítót, az átirányítási URI-t, a közvetítői átirányítás regisztrálva van-e, valamint a hatóságok listáját.

{
  "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
    }
  ]
}

Konfigurációs fájl használata

  1. Konfigurációs fájl létrehozása. Javasoljuk, hogy hozza létre az egyéni konfigurációs fájlt a következőben res/raw/auth_config.json: . De bárhová helyezheted, ahol csak akarod.

  2. Adja meg az MSAL-nek, hogy hol keresse meg a konfigurációt a PublicClientApplicationkonfigurálás során. Példa:

    //On Worker Thread
    IMultipleAccountPublicClientApplication sampleApp = null; 
    sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);