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 HttpUrlConnectionconnect_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, INFOeller 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 00001111-aaaa-2222-bbbb-3333cccc4444

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

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

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

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