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 | — | Publiczna wersja zapoznawcza | ||
Java | MSAL4J | msal4j | — | Ogólna dostępność | ||
macOS (Swift/Obj-C) | Biblioteka MSAL dla systemów iOS i macOS | BIBLIOTEKA MSAL | Samouczek | Ogólna dostępność | ||
Platforma UWP | MSAL.NET | Microsoft.Identity.Client | Samouczek | Ogólna dostępność | ||
WPF | MSAL.NET | Microsoft.Identity.Client | Samouczek | 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
.
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:
- Aby uzyskać listę wszystkich modyfikatorów dostępnych w
PublicClientApplicationBuilder
witrynie , zobacz dokumentację referencyjną PublicClientApplicationBuilder. - Opis wszystkich opcji uwidocznionych w programie można znaleźć w
PublicClientApplicationOptions
temacie PublicClientApplicationOptions w dokumentacji referencyjnej.
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.