Udostępnij za pośrednictwem


Aplikacja klasyczna, która wywołuje internetowe interfejsy API: konfiguracja kodu

Po utworzeniu aplikacji dowiesz się, jak skonfigurować kod ze współrzędnymi aplikacji.

Biblioteki firmy Microsoft obsługujące aplikacje klasyczne

Następujące biblioteki firmy Microsoft obsługują aplikacje klasyczne:

Język/struktura Projekt w dniu
GitHub
Pakiet Coraz
pracę
Logowanie użytkowników Dostęp do interfejsów API sieci Web Ogólnie dostępne (ogólna dostępność) lub
Publiczna wersja zapoznawcza1
Electron MSAL Node.js msal-node Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. Publiczna wersja zapoznawcza
Java MSAL4J msal4j Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. Ogólna dostępność
macOS (Swift/Obj-C) Biblioteka MSAL dla systemów iOS i macOS BIBLIOTEKA MSAL Samouczek Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. Ogólna dostępność
Platforma UWP MSAL.NET Microsoft.Identity.Client Samouczek Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. Ogólna dostępność
WPF MSAL.NET Microsoft.Identity.Client Samouczek Biblioteka może żądać tokenów identyfikatorów logowania użytkownika. Biblioteka może żądać tokenów dostępu dla chronionych internetowych interfejsów API. Ogólna dostępność

1 Uniwersalne postanowienia licencyjne dotyczące usług online mają zastosowanie do bibliotek w publicznej wersji zapoznawczej.

Publiczna aplikacja kliencka

Z punktu widzenia kodu aplikacje klasyczne to publiczne aplikacje klienckie. Konfiguracja będzie nieco inna w zależności od tego, czy używasz uwierzytelniania interakcyjnego, czy nie.

Musisz skompilować i manipulować MSAL.NET IPublicClientApplication.

IPublicClientApplication

Wyłącznie według kodu

Poniższy kod tworzy wystąpienie publicznej aplikacji klienckiej i loguje użytkowników w chmurze publicznej platformy Microsoft Azure przy użyciu konta służbowego lub osobistego konta Microsoft.

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

Jeśli zamierzasz używać uwierzytelniania interakcyjnego lub przepływu kodu urządzenia, jak pokazano wcześniej, użyj .WithRedirectUri modyfikatora.

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

Korzystanie z plików konfiguracji

Poniższy kod tworzy wystąpienie publicznej aplikacji klienckiej z obiektu konfiguracji, który można wypełnić programowo lub odczytać z pliku konfiguracji.

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

Bardziej rozbudowana konfiguracja

Kompilowanie aplikacji można utworzyć, dodając szereg modyfikatorów. Jeśli na przykład aplikacja ma być aplikacją wielodostępną w chmurze krajowej, taką jak pokazano tutaj dla instytucji rządowych USA, możesz napisać:

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

MSAL.NET zawiera również modyfikator usług Active Directory Federation Services 2019:

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

Jeśli na koniec chcesz uzyskać tokeny dla dzierżawy usługi Azure Active Directory (Azure AD) B2C, określ dzierżawę, jak pokazano w poniższym fragmencie kodu:

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

Dowiedz się więcej

Aby dowiedzieć się więcej na temat konfigurowania aplikacji klasycznej MSAL.NET:

Kompletny przykład z opcjami konfiguracji

Wyobraź sobie aplikację konsolową platformy .NET, która ma następujący appsettings.json plik konfiguracji:

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

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

W tym pliku jest mało kodu do odczytania przy użyciu elementu . Platforma konfiguracji zapewniana przez platformę 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;
 }
}

Teraz, aby utworzyć aplikację, napisz następujący kod:

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

Przed wywołaniem .Build() metody można zastąpić konfigurację wywołaniami .WithXXX metod, jak pokazano wcześniej.

Następne kroki

Przejdź do następnego artykułu w tym scenariuszu Uzyskaj token dla aplikacji klasycznej.