Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Dzierżawcy pracowników (dowiedz się więcej)
Ten artykuł zawiera instrukcje ułatwiające skonfigurowanie kodu ze współrzędnymi aplikacji.
Wymagania wstępne
- Zarejestruj nową aplikację w centrum administracyjnym usługi Microsoft Entra, skonfigurowaną tylko dla kont w tym katalogu organizacyjnym. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji . Zapisz następujące wartości na stronie Przegląd aplikacji do późniejszego użycia:
- Identyfikator aplikacji (klienta)
- Identyfikator katalogu (klienta)
Dodaj identyfikator URI przekierowania platformy
Aby określić typ aplikacji do rejestracji aplikacji, wykonaj następujące kroki:
- W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie>Dodaj platformę>Aplikacje mobilne i klasyczne
- W zależności od używanej metody uwierzytelniania wybierz jedną z następujących opcji:
- W przypadku aplikacji korzystających z przeglądarek osadzonych użyj dokładnej wartości:
https://login.microsoftonline.com/common/oauth2/nativeclient - W przypadku aplikacji korzystających z przeglądarek systemowych użyj dokładnej wartości:
http://localhost - Objective-C lub aplikacje Swift dla systemu macOS:
msauth.<your.app.bundle.id>://auth. - aplikacje Node.js Electron:
msal{Your_Application/Client_Id}://auth
- W przypadku aplikacji korzystających z przeglądarek osadzonych użyj dokładnej wartości:
Uwaga / Notatka
W przypadku aplikacji Menedżera uwierzytelniania sieci Web (WAM) w usłudze MSAL nie jest wymagany identyfikator URI przekierowania.
Włącz publiczny przepływ klienta
Aby odróżnić przepływ kodu urządzenia, zintegrowane uwierzytelnianie systemu Windows oraz nazwę użytkownika i hasło z poufnej aplikacji klienckiej przy użyciu przepływu poświadczeń klienta używanego w aplikacjach demona, z których żaden nie wymaga identyfikatora URI przekierowania, skonfiguruj go jako publiczną aplikację kliencką. Aby osiągnąć tę konfigurację
Aby zidentyfikować aplikację jako klienta publicznego, wykonaj następujące kroki:
W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
W Ustawieniach Zaawansowanych dla opcji Zezwalaj na przepływy klientów publicznych wybierz opcję Tak.
Wybierz Zapisz, aby zapisać zmiany.
Biblioteki firmy Microsoft obsługujące aplikacje desktopowe
Następujące biblioteki firmy Microsoft obsługują aplikacje klasyczne:
| Język/struktura | Projekt dotyczący GitHub |
Pakiet | Uzyskiwanie rozpoczęto |
Logowanie użytkowników | Dostęp do interfejsów API sieci Web | Ogólnie dostępne (ogólna dostępność) lub Publiczna wersja zapoznawcza1 |
|---|---|---|---|---|---|---|
| Elektron | Node.jsBIBLIOTEKI MSAL | msal-node | — |
|
|
Publiczna wersja zapoznawcza |
| Java | MSAL4J | msal4j | — |
|
|
ogólna dostępność |
| macOS (Swift/Obj-C) | MSAL dla iOS i macOS | 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ść |
1Uniwersalne postanowienia licencyjne dotyczące usług online mają zastosowanie do bibliotek w publicznej wersji zapoznawczej.
Publiczna aplikacja kliencka
Z punktu widzenia kodu aplikacje desktopowe 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ć za pomocą programu lub odczytać z pliku konfiguracji.
PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
.WithDefaultRedirectUri()
.Build();
Bardziej rozbudowana konfiguracja
Można rozbudować proces tworzenia aplikacji, 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, zobacz dokumentację referencyjną PublicClientApplicationBuilder. - Opis wszystkich opcji uwidocznionych w
PublicClientApplicationOptionsznajdziesz w 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, korzystając z dostarczonego przez .NET frameworka konfiguracyjnego.
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 desktopowej.