Sdílet prostřednictvím


Desktopová aplikace, která volá webová rozhraní API: Konfigurace kódu

platí pro: zelený kruh s bílým symbolem zaškrtnutí. pracovní nájemci bílý kruh se šedým symbolem X. externí nájemci (další informace)

Teď, když jste vytvořili aplikaci, se dozvíte, jak nakonfigurovat kód pomocí souřadnic aplikace.

Knihovny Microsoftu podporující desktopové aplikace

Následující knihovny Microsoftu podporují desktopové aplikace:

Jazyk / architektura Projekt na
GitHub
Balíček Dostání
začal
Přihlášení uživatelů Přístup k webovým rozhraním API Obecná dostupnost (GA) nebo
Public Preview1
Electron MSAL Node.js msal-node Knihovna může požádat o tokeny ID pro přihlášení uživatele. Knihovna může požádat o přístupové tokeny pro chráněná webová rozhraní API. Veřejná ukázka
Java MSAL4J msal4j Knihovna může požádat o tokeny ID pro přihlášení uživatele. Knihovna může požádat o přístupové tokeny pro chráněná webová rozhraní API. GA
macOS (Swift/Obj-C) MSAL pro iOS a macOS MSAL Návod Knihovna může požádat o tokeny ID pro přihlášení uživatele. Knihovna může požádat o přístupové tokeny pro chráněná webová rozhraní API. GA
UWP MSAL.NET Microsoft.Identity.Client Návod Knihovna může požádat o tokeny ID pro přihlášení uživatele. Knihovna může požádat o přístupové tokeny pro chráněná webová rozhraní API. GA
WPF MSAL.NET Microsoft.Identity.Client Návod Knihovna může požádat o tokeny ID pro přihlášení uživatele. Knihovna může požádat o přístupové tokeny pro chráněná webová rozhraní API. GA

1Univerzální licenční podmínky pro online služby se vztahují na knihovny ve verzi Public Preview.

Veřejná klientská aplikace

Z pohledu kódu jsou desktopové aplikace veřejnými klientskými aplikacemi. Konfigurace se bude trochu lišit podle toho, jestli používáte interaktivní ověřování, nebo ne.

Budete muset vytvořit a manipulovat s MSAL.NET IPublicClientApplication.

IPublicClientApplication

Výhradně kódem

Následující kód vytvoří instanci veřejné klientské aplikace a přihlásí uživatele ve veřejném cloudu Microsoft Azure pomocí pracovního nebo školního účtu nebo osobního účtu Microsoft.

IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
    .Build();

Pokud máte v úmyslu používat interaktivní ověřování nebo tok kódu zařízení, jak bylo uvedeno výše, použijte modifikátor .WithRedirectUri.

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithDefaultRedirectUri()
        .Build();

Použití konfiguračních souborů

Následující kód vytvoří instanci veřejné klientské aplikace z objektu konfigurace, který lze vyplnit programově nebo číst z konfiguračního souboru.

PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
        .WithDefaultRedirectUri()
        .Build();

Složitější konfigurace

Sestavení aplikace můžete propracovat přidáním několika modifikátorů. Pokud například chcete, aby vaše aplikace byla víceklientskou aplikací v národním cloudu, jako je například zde zobrazená státní správa USA, můžete napsat:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithDefaultRedirectUri()
        .WithAadAuthority(AzureCloudInstance.AzureUsGovernment,
                         AadAuthorityAudience.AzureAdMultipleOrgs)
        .Build();

MSAL.NET obsahuje také modifikátor pro Active Directory Federation Services (AD FS) 2019:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithAdfsAuthority("https://consoso.com/adfs")
        .Build();

Pokud chcete získat tokeny pro tenanta Azure Active Directory (Azure AD) B2C, zadejte tenanta, jak je znázorněno v následujícím fragmentu kódu:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
        .Build();

Další informace

Další informace o tom, jak nakonfigurovat desktopovou aplikaci MSAL.NET:

Kompletní příklad s možnostmi konfigurace

Představte si konzolovou aplikaci .NET, která má následující appsettings.json konfigurační soubor:

{
  "Authentication": {
    "AzureCloudInstance": "AzurePublic",
    "AadAuthorityAudience": "AzureAdMultipleOrgs",
    "ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"
  },

  "WebAPI": {
    "MicrosoftGraphBaseEndpoint": "https://graph.microsoft.com"
  }
}

V tomto souboru máte málo kódu ke čtení pomocí konfiguračního frameworku poskytovaného .NET:

public class SampleConfiguration
{
 /// <summary>
 /// Authentication options
 /// </summary>
 public PublicClientApplicationOptions PublicClientApplicationOptions { get; set; }

 /// <summary>
 /// Base URL for Microsoft Graph (it varies depending on whether the application runs
 /// in Microsoft Azure public clouds or national or sovereign clouds)
 /// </summary>
 public string MicrosoftGraphBaseEndpoint { get; set; }

 /// <summary>
 /// Reads the configuration from a JSON file
 /// </summary>
 /// <param name="path">Path to the configuration json file</param>
 /// <returns>SampleConfiguration as read from the json file</returns>
 public static SampleConfiguration ReadFromJsonFile(string path)
 {
  // .NET configuration
  IConfigurationRoot Configuration;
  var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile(path);
  Configuration = builder.Build();

  // Read the auth and graph endpoint configuration
  SampleConfiguration config = new SampleConfiguration()
  {
   PublicClientApplicationOptions = new PublicClientApplicationOptions()
  };
  Configuration.Bind("Authentication", config.PublicClientApplicationOptions);
  config.MicrosoftGraphBaseEndpoint =
  Configuration.GetValue<string>("WebAPI:MicrosoftGraphBaseEndpoint");
  return config;
 }
}

Teď, když chcete vytvořit aplikaci, napište následující kód:

SampleConfiguration config = SampleConfiguration.ReadFromJsonFile("appsettings.json");
var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(config.PublicClientApplicationOptions)
           .WithDefaultRedirectUri()
           .Build();

Před voláním .Build() metody můžete přepsat konfiguraci voláním .WithXXX metod, jak jsme viděli dříve.

Další kroky

Přejděte k dalšímu článku v tomto scénáři a získejte token pro desktopovou aplikaci.