Web API'lerini çağıran masaüstü uygulaması: Kod yapılandırması
Uygulamanızı oluşturduğunuza göre, kodu uygulamanın koordinatlarıyla yapılandırmayı öğreneceksiniz.
Masaüstü uygulamalarını destekleyen Microsoft kitaplıkları
Aşağıdaki Microsoft kitaplıkları masaüstü uygulamalarını destekler:
Dil / çerçeve | Proje açık GitHub |
Paket | Alma birini seçin |
Oturum açma kullanıcıları | Web API'lerine erişme | Genel kullanıma açık (GA) veya Genel önizleme1 |
---|---|---|---|---|---|---|
Electron | MSAL Node.js | msal-node | — | Genel önizleme | ||
Java | MSAL4J | msal4j | — | GA | ||
macOS (Swift/Obj-C) | iOS ve macOS için MSAL | MSAL | Öğretici | GA | ||
UWP | MSAL.NET | Microsoft.Identity.Client | Öğretici | GA | ||
WPF | MSAL.NET | Microsoft.Identity.Client | Öğretici | GA |
1 Çevrimiçi Hizmetler için Evrensel Lisans Koşulları, Genel önizlemedeki kitaplıklar için geçerlidir.
Genel istemci uygulaması
Kod açısından bakıldığında masaüstü uygulamaları genel istemci uygulamalarıdır. Yapılandırma, etkileşimli kimlik doğrulaması kullanıp kullanmamanıza bağlı olarak biraz farklı olacaktır.
MSAL.NET IPublicClientApplication
oluşturmanız ve işlemeniz gerekir.
Yalnızca koda göre
Aşağıdaki kod bir genel istemci uygulamasının örneğini oluşturur ve Microsoft Azure genel bulutundaki kullanıcıları bir iş veya okul hesabı ya da kişisel bir Microsoft hesabıyla oturum açar.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Daha önce görüldüğü gibi etkileşimli kimlik doğrulaması veya cihaz kodu akışı kullanmayı planlıyorsanız değiştiriciyi .WithRedirectUri
kullanın.
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.Build();
Yapılandırma dosyalarını kullanma
Aşağıdaki kod, program aracılığıyla doldurulabilen veya bir yapılandırma dosyasından okunabilen bir yapılandırma nesnesinden bir genel istemci uygulamasının örneğini oluşturur.
PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
.WithDefaultRedirectUri()
.Build();
Daha ayrıntılı yapılandırma
Bir dizi değiştirici ekleyerek uygulama derlemesini ayrıntılı bir şekilde inceleyebilirsiniz. Örneğin, uygulamanızın burada gösterilen ABD Kamu gibi ulusal bir bulutta çok kiracılı bir uygulama olmasını istiyorsanız şunları yazabilirsiniz:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.WithAadAuthority(AzureCloudInstance.AzureUsGovernment,
AadAuthorityAudience.AzureAdMultipleOrgs)
.Build();
MSAL.NET ayrıca Active Directory Federasyon Hizmetleri (AD FS) 2019 için bir değiştirici içerir:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAdfsAuthority("https://consoso.com/adfs")
.Build();
Son olarak, bir Azure Active Directory (Azure AD) B2C kiracısı için belirteç almak istiyorsanız, kiracınızı aşağıdaki kod parçacığında gösterildiği gibi belirtin:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
.Build();
Daha fazla bilgi edinin
MSAL.NET masaüstü uygulamasını yapılandırma hakkında daha fazla bilgi edinmek için:
- üzerinde
PublicClientApplicationBuilder
kullanılabilen tüm değiştiricilerin listesi için PublicClientApplicationBuilder başvuru belgelerine bakın. - içinde kullanıma sunulan tüm seçeneklerin açıklaması için, başvuru belgelerindeki
PublicClientApplicationOptions
PublicClientApplicationOptions bölümüne bakın.
Yapılandırma seçenekleriyle tam örnek
Aşağıdaki appsettings.json
yapılandırma dosyasına sahip bir .NET konsol uygulaması düşünün:
{
"Authentication": {
"AzureCloudInstance": "AzurePublic",
"AadAuthorityAudience": "AzureAdMultipleOrgs",
"ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"
},
"WebAPI": {
"MicrosoftGraphBaseEndpoint": "https://graph.microsoft.com"
}
}
kullanarak bu dosyada okumak için çok az kodunuz var. NET tarafından sağlanan yapılandırma çerçevesi:
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;
}
}
Şimdi uygulamanızı oluşturmak için aşağıdaki kodu yazın:
SampleConfiguration config = SampleConfiguration.ReadFromJsonFile("appsettings.json");
var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(config.PublicClientApplicationOptions)
.WithDefaultRedirectUri()
.Build();
yöntemine .Build()
yapılan çağrıdan önce, daha önce görüldüğü gibi yöntemlere .WithXXX
yapılan çağrılarla yapılandırmanızı geçersiz kılabilirsiniz.
Sonraki adımlar
Bu senaryoda , masaüstü uygulaması için belirteç alma adlı sonraki makaleye geçin.