Konfigurationsfil för Microsoft Authentication Library 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 vilken konfigurationsfil som ska användas i din MSAL-baserade app.

Konfigurationsinställningar

Allmänna inställningar

Egenskap Datatyp Obligatorisk Kommentarer
client_id Sträng Ja Appens klient-ID från sidan Programregistrering
redirect_uri Sträng Ja Appens omdirigerings-URI från sidan Programregistrering
broker_redirect_uri_registered Boolesk No Möjliga värden: true, false
authorities Listutfärdar<> No Listan över myndigheter som din app behöver
authorization_user_agent AuthorizationAgent (uppräkning) No Möjliga värden: DEFAULT, BROWSER, WEBVIEW
http HttpConfiguration No Konfigurera HttpUrlConnectionconnect_timeout och read_timeout
logging LoggningKonfiguration No 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 se till 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 anges till true. Om programmet i ett asynkron autentiseringsscenario inte har rätt format för att kommunicera med den asynkrona meddelandekön enligt beskrivningen i Omdirigerings-URI för offentliga klientappar validerar programmet din omdirigerings-URI och utlöser ett undantag när den startar.

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 microsoft känner till. I den här listan över 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 AAD-utfärdare & till Slutpunkter för Microsofts identitetsplattform

Typ Målgrupp Klient-ID:t Authority_Url Resulterande slutpunkt Kommentarer
AAD AzureADandPersonalMicrosoftAccount https://login.microsoftonline.com/common common är ett klientalias för var kontot finns. Till exempel en specifik Azure Active Directory-klientorganisation eller Microsoft-kontosystemet.
AAD 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 klientorganisationens GUID, kan användas som klientorganisations-ID.
AAD AzureADMultipleOrgs https://login.microsoftonline.com/organizations Endast Azure Active Directory-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 organisationsklientorganisation som du vill ha token från.
AAD 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 för utfärdaren.

Anteckning

Det går inte att aktivera och inaktivera utfärdarvalidering i MSAL. Myndigheter är antingen kända för dig som utvecklare enligt konfigurationen eller kända av 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

Egenskap Datatyp Obligatorisk Kommentarer
type Sträng Ja Speglar målgruppen eller kontotypen som appens mål. Möjliga värden: AAD, B2C
audience Objekt No Gäller endast när type=AAD. Anger den identitet som din app riktar sig mot. Använd värdet från din appregistrering
authority_url Sträng 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

Egenskap Datatyp Obligatorisk Kommentarer
type Sträng Ja Anger vilken målgrupp appen vill rikta in sig på. Möjliga värden: AzureADandPersonalMicrosoftAccount, PersonalMicrosoftAccount, AzureADMultipleOrgs, AzureADMyOrg
tenant_id Sträng 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 klientorganisations-ID som 72f988bf-86f1-41af-91ab-2d7cd011db46)

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:

  • DEFAULT: Föredrar systemwebbläsaren. Använder den inbäddade webbvyn om en webbläsare inte är tillgänglig på enheten.
  • 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 auktorisering och tokeninlösen. 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 Microsoft Identity Broker-kompatibel omdirigerings-URI i asynkron meddelandekö. Ange till false om du inte vill använda asynkron meddelandekö i din app.

Om du använder AAD-utfärdaren med målgrupp "MicrosoftPersonalAccount"inställd på används inte asynkron meddelandekö.

http

Konfigurera globala inställningar för HTTP-timeouter, till exempel:

Egenskap Datatyp Obligatorisk Kommentarer
connect_timeout int No Tid i millisekunder
read_timeout int No Tid i millisekunder

logging

Följande globala inställningar gäller loggning:

Egenskap Datatyp Obligatorisk Kommentarer
pii_enabled boolean No Om personuppgifter ska skickas
log_level sträng No Vilka loggmeddelanden som ska matas ut. Loggnivåer som stöds är ERROR,WARNING,INFOoch VERBOSE.
logcat_enabled boolean No Om utdata ska skickas till loggkatten 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 omdirigeringar till anpassade avsikter korrekt. Du kan lägga till i den här listan. Standardinställningen anges i standardkonfigurationen som visas nedan. ``

Standardkonfigurationsfilen för MSAL

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 är registrerad och en lista över myndigheter.

{
  "client_id" : "4b0db8c2-9f26-4417-8bde-3f0e3656f8e0",
  "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. Exempel:

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