Alternativ för programkonfiguration

Om du vill autentisera och hämta token initierar du ett nytt offentligt eller konfidentiellt klientprogram i koden. Du kan ange flera konfigurationsalternativ när du initierar klientappen i Microsoft Authentication Library (MSAL). Dessa alternativ delas in i två grupper:

Utfärdare

Utfärdaren är en URL som anger en katalog som MSAL kan begära token från.

Vanliga myndigheter är:

Vanliga utfärdar-URL:er Användningsområde för
https://login.microsoftonline.com/<tenant>/ Logga endast in användare av en specifik organisation. I <tenant> URL:en finns klientorganisations-ID för Microsoft Entra-klientorganisationen (ett GUID) eller dess klientdomän.
https://login.microsoftonline.com/common/ Logga in användare med arbets- och skolkonton eller personliga Microsoft-konton.
https://login.microsoftonline.com/organizations/ Logga in användare med arbets- och skolkonton.
https://login.microsoftonline.com/consumers/ Logga endast in användare med personliga Microsoft-konton (MSA).

Den utfärdare som du anger i koden måste vara konsekvent med de kontotyper som stöds som du har angett för appen i Appregistreringar i Azure-portalen.

Utfärdaren kan vara:

  • En Microsoft Entra-molnutfärdare.
  • En Azure AD B2C-utfärdare. Se B2C-detaljer.
  • En Active Directory Federation Services (AD FS)-utfärdare (AD FS). Se AD FS-stöd.

Microsoft Entra-molnmyndigheter har två delar:

  • Identitetsproviderinstansen
  • Inloggningspubliken för appen

Instansen och målgruppen kan sammanfogas och anges som utfärdarens URL. Det här diagrammet visar hur utfärdarens URL består:

Hur utfärdar-URL:en är sammansatt

Molninstans

Instansen används för att ange om din app signerar användare från det offentliga Azure-molnet eller från nationella moln. Med hjälp av MSAL i koden kan du ange Azure-molninstansen med hjälp av en uppräkning eller genom att skicka URL:en till den nationella molninstansenInstance som medlem.

MSAL.NET utlöser ett explicit undantag om båda Instance och AzureCloudInstance anges.

Om du inte anger någon instans kommer din app att rikta in sig på den offentliga Azure-molninstansen (instansen av URL https://login.onmicrosoftonline.com).

Programpublik

Inloggningspubliken beror på företagets behov för din app:

  • Om du är en verksamhetsspecifik utvecklare (LOB) kommer du förmodligen att skapa ett program med en enda klientorganisation som endast kommer att användas i din organisation. I så fall anger du organisationen efter dess klientorganisations-ID (ID för din Microsoft Entra-instans) eller med ett domännamn som är associerat med Microsoft Entra-instansen.
  • Om du är en ISV kanske du vill logga in användare med deras arbets- och skolkonton i någon organisation eller i vissa organisationer (multitenantapp). Men du kanske också vill att användarna ska logga in med sina personliga Microsoft-konton.

Så här anger du målgruppen i din kod/konfiguration

Med hjälp av MSAL i koden anger du målgruppen med något av följande värden:

  • Målgruppsuppräkning för Microsoft Entra-utfärdare
  • Klientorganisations-ID:
    • Ett GUID (ID för din Microsoft Entra-instans) för program med en enda klientorganisation
    • Ett domännamn som är associerat med din Microsoft Entra-instans (även för program med en enda klientorganisation)
  • En av dessa platshållare som ett klient-ID i stället för Microsoft Entra-utfärdarens målgruppsuppräkning:
    • organizations för ett program med flera klientorganisationer
    • consumers för att logga in användare endast med sina personliga konton
    • common för att logga in användare med sina arbets- och skolkonton eller sina personliga Microsoft-konton

MSAL utlöser ett meningsfullt undantag om du anger både Microsoft Entra-utfärdarens målgrupp och klientorganisations-ID.

Vi rekommenderar att du anger en målgrupp, eftersom många klienter och de program som distribueras i dem har gästanvändare. Om ditt program har externa användare undviks slutpunkterna common för och organization bäst. Om du inte anger en målgrupp kommer din app att rikta in sig på Microsoft Entra-ID och personliga Microsoft-konton som målgrupp och fungerar som om common de angavs.

Effektiv målgrupp

Den effektiva målgruppen för ditt program är det minsta (om det finns en skärningspunkt) för den målgrupp som du anger i din app och målgruppen som anges i appregistreringen. I själva verket kan du med Appregistreringar-upplevelsen ange målgruppen (de kontotyper som stöds) för appen. Mer information finns i Snabbstart: registrera ett program med Microsoft Identity Platform.

För närvarande är det enda sättet att få en app att logga in användare med endast personliga Microsoft-konton att konfigurera båda dessa inställningar:

  • Ställ in appregistreringspubliken på Work and school accounts and personal accounts.
  • Ange målgruppen i din kod/konfiguration till AadAuthorityAudience.PersonalMicrosoftAccount (eller TenantID ="konsumenter").

Client ID

Klient-ID:t är det unika program-ID (klient)-ID som tilldelades din app av Microsoft Entra-ID när appen registrerades. Du hittar program-ID:t (klient) på sidan Översikt för programmet i Identity>Applications>Enterprise-program.

Omdirigerings-URI

Omdirigerings-URI:n är den URI som identitetsprovidern skickar tillbaka säkerhetstoken till.

Omdirigerings-URI för offentliga klientappar

Om du är en offentlig klientapputvecklare som använder MSAL:

  • Du vill använda .WithDefaultRedirectUri() i skrivbords- eller Universell Windows-plattform-program (UWP) (MSAL.NET 4.1+). Metoden .WithDefaultRedirectUri() anger den offentliga klientprogrammets omdirigerings-URI-egenskap till den rekommenderade standarddirigerings-URI:n för offentliga klientprogram.

    Plattform Omdirigerings-URI
    Skrivbordsapp (.NET Framework) https://login.microsoftonline.com/common/oauth2/nativeclient
    UWP värdet för WebAuthenticationBroker.GetCurrentApplicationCallbackUri(). Detta aktiverar enkel inloggning (SSO) med webbläsaren genom att ange värdet till resultatet av WebAuthenticationBroker.GetCurrentApplicationCallbackUri(), som du behöver registrera
    .NET https://localhost gör det möjligt för användaren att använda systemwebbläsaren för interaktiv autentisering eftersom .NET inte har något användargränssnitt för den inbäddade webbvyn för tillfället.
  • Du behöver inte lägga till en omdirigerings-URI om du skapar ett Xamarin Android- och iOS-program som inte stöder omdirigerings-URI:n för asynkron meddelandekö. Den är automatiskt inställd på msal{ClientId}://auth för Xamarin Android och iOS.

  • Konfigurera omdirigerings-URI:n i Appregistreringar:

    Omdirigerings-URI i Appregistreringar

Du kan åsidosätta omdirigerings-URI:n med hjälp RedirectUri av egenskapen (till exempel om du använder koordinatorer). Här följer några exempel på omdirigerings-URI:er för det scenariot:

  • RedirectUriOnAndroid = "msauth-5a434691-ccb2-4fd1-b97b-b64bcfbc03fc://com.microsoft.identity.client.sample";
  • RedirectUriOnIos = $"msauth. {Bundle.ID}://auth";

Mer information om iOS finns i Migrera iOS-program som använder Microsoft Authenticator från ADAL.NET till att MSAL.NET och utnyttja asynkron meddelandekö på iOS. Mer Information om Android finns i Asynkron autentisering i Android.

Omdirigerings-URI för konfidentiella klientappar

För webbappar är omdirigerings-URI (eller svars-URL) den URI som Microsoft Entra-ID använder för att skicka tillbaka token till programmet. URI:n kan vara URL:en för webbappen/webb-API:et om den konfidentiella appen är en av dem. Omdirigerings-URI:n måste registreras i appregistreringen. Registreringen är särskilt viktig när du distribuerar en app som du har testat lokalt. Sedan måste du lägga till svars-URL:en för den distribuerade appen i programregistreringsportalen.

För daemonappar behöver du inte ange en omdirigerings-URI.

Klienthemlighet

Det här alternativet anger klienthemligheten för den konfidentiella klientappen. Klienthemligheten (applösenordet) tillhandahålls av programregistreringsportalen eller tillhandahålls till Microsoft Entra-ID under appregistrering med PowerShell Microsoft Entra ID, PowerShell AzureRM eller Azure CLI.

Loggning

För att hjälpa till med felsökning och felsökning av autentiseringsfel tillhandahåller MSAL inbyggt loggningsstöd. Loggning i varje bibliotek beskrivs i följande artiklar:

Nästa steg

Lär dig mer om att instansiera klientprogram med hjälp av MSAL.NET och instansiera klientprogram med hjälp av MSAL.js.