Desktopová aplikace, která volá webová rozhraní API: Konfigurace kódu
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 | Project on GitHub |
Balíček | Dostání z těchto možností |
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 | — | ![]() |
![]() |
Verze Public Preview |
Java | MSAL4J | msal4j | — | ![]() |
![]() |
GA |
macOS (Swift/Obj-C) | MSAL pro iOS a macOS | MSAL | Kurz | ![]() |
![]() |
GA |
UWP | MSAL.NET | Microsoft.Identity.Client | Kurz | ![]() |
![]() |
GA |
WPF | MSAL.NET | Microsoft.Identity.Client | Kurz | ![]() |
![]() |
GA |
1 Univerzá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
.
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 .WithRedirectUri
používat interaktivní ověřování nebo tok kódu zařízení, jak je vidět dříve, použijte modifikátor.
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:
- Seznam všech modifikátorů dostupných v
PublicClientApplicationBuilder
referenční dokumentaci PublicClientApplicationBuilder. - Popis všech možností vystavených v
PublicClientApplicationOptions
tématu PublicClientApplicationOptions najdete v referenční dokumentaci.
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 malý kód ke čtení pomocí souboru . Architektura konfigurace poskytovaná technologií 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.