Konfigurationsfil för Android Microsofts autentiseringsbibliotek

Android Microsofts autentiseringsbibliotek (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 Noteringar
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 Boolean No Möjliga värden: true, false
authorities Lista<över utfärdare> 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.

klient-ID

Det klient-ID eller app-ID som skapades när du registrerade ditt program.

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

authorities

Listan över myndigheter som är kända och betrodda av dig. Förutom de myndigheter som anges här frågar MSAL också Microsoft för att få en lista över moln och myndigheter som är kända för att 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

Type Målgrupp Hyresgästens ID Authority_Url Resulterande slutpunkt Noteringar
Microsoft Entra ID Azure AD och personligt Microsoft-konto https://login.microsoftonline.com/common common är ett klientalias för var kontot finns. Till exempel en specifik Microsoft Entra klientorganisation eller det Microsoft-konto systemet.
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 en Microsoft-konto för en resurs i en organisation anger du den organisationsklient som du vill ha token från.
Microsoft Entra ID Personligt Microsoft-konto https://login.microsoftonline.com/consumers Endast Microsoft konton kan använda den här slutpunkten.
B2C (Företag till Konsument) 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.

Note

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 kända för att 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 Noteringar
type String Ja Speglar målgruppen eller kontotypen dina appmål. Möjliga värden: AAD, B2C
audience Object No 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 Noteringar
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 aaaabbbb-0000-cccc-1111-dddd2222eeee

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 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 Microsoft identitetskoordinatorkompatibel omdirigerings-URI i asynkron meddelandekö. Ange till false om du inte vill använda asynkron meddelandekö i din app.

Om du använder Microsoft Entra utfärdare med målgrupp inställd "MicrosoftPersonalAccount"på används inte asynkron meddelandekö.

http

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

Property Datatyp Obligatoriskt Noteringar
connect_timeout int No Tid i millisekunder
read_timeout int No Tid i millisekunder

logging

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

Property Datatyp Obligatoriskt Noteringar
pii_enabled Boolean No Om personuppgifter ska skickas
log_level string No Vilka loggmeddelanden som ska matas ut. Loggnivåerna som stöds är ERROR,WARNING,INFOoch VERBOSE.
logcat_enabled Boolean No 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": [
        "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
    }
  ]
}

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. Ett exempel:

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