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 Kitaplık, kullanıcı oturum açma için kimlik belirteçleri isteyebilir. Kitaplık, korumalı web API'leri için erişim belirteçleri isteyebilir. Genel önizleme
Java MSAL4J msal4j Kitaplık, kullanıcı oturum açma için kimlik belirteçleri isteyebilir. Kitaplık, korumalı web API'leri için erişim belirteçleri isteyebilir. GA
macOS (Swift/Obj-C) iOS ve macOS için MSAL MSAL Öğretici Kitaplık, kullanıcı oturum açma için kimlik belirteçleri isteyebilir. Kitaplık, korumalı web API'leri için erişim belirteçleri isteyebilir. GA
UWP MSAL.NET Microsoft.Identity.Client Öğretici Kitaplık, kullanıcı oturum açma için kimlik belirteçleri isteyebilir. Kitaplık, korumalı web API'leri için erişim belirteçleri isteyebilir. GA
WPF MSAL.NET Microsoft.Identity.Client Öğretici Kitaplık, kullanıcı oturum açma için kimlik belirteçleri isteyebilir. Kitaplık, korumalı web API'leri için erişim belirteçleri isteyebilir. 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 IPublicClientApplicationoluşturmanız ve işlemeniz gerekir.

IPublicClientApplication

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 PublicClientApplicationBuilderkullanı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 PublicClientApplicationOptionsPublicClientApplicationOptions 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.