Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
İş gücü kiracıları (daha fazla bilgi edinin)
Bu makale, kodu uygulamanın koordinatlarıyla yapılandırmanıza yardımcı olacak yönergeler içerir.
Önkoşullar
-
Microsoft Entra yönetim merkezine, yalnızca bu kuruluş dizinindeki Hesaplar için yapılandırılmış yeni bir uygulama kaydedin. Daha fazla bilgi için Bir uygulamayı kaydetme bölümüne bakın. Daha sonra kullanmak üzere uygulamaya Genel Bakış sayfasından aşağıdaki değerleri kaydedin:
- Uygulama (istemci) kimliği
- Dizin (kullanıcı) kimliği
Platform yeniden yönlendirme URI'si ekleyin
Uygulama kaydınıza uygulama türünüzü belirtmek için şu adımları izleyin:
- Yönet'in altında Kimlik Doğrulaması>Platform> ekleMobil ve masaüstü uygulamaları'yı seçin
- Kullandığınız kimlik doğrulama yöntemine bağlı olarak aşağıdaki seçeneklerden birini belirleyin:
- Katıştırılmış tarayıcıları kullanan uygulamalar için tam değeri kullanın:
https://login.microsoftonline.com/common/oauth2/nativeclient - Sistem tarayıcılarını kullanan uygulamalar için tam değeri kullanın:
http://localhost - macOS için Objective-C veya Swift uygulamaları:
msauth.<your.app.bundle.id>://auth. - Node.js Electron uygulamaları:
msal{Your_Application/Client_Id}://auth
- Katıştırılmış tarayıcıları kullanan uygulamalar için tam değeri kullanın:
Uyarı
Web Authentication Manager (WAM) uygulamaları için MSAL'de yeniden yönlendirme URI'sine gerek yoktur.
Genel istemci akışını etkinleştirme
Cihaz kodu akışını, tümleşik Windows kimlik doğrulamasını ve daemon uygulamalarında kullanılan ve hiçbiri yeniden yönlendirme URI'sini gerektirmeyen bir istemci kimlik bilgisi akışı kullanarak gizli bir istemci uygulamasından kullanıcı adı ve parolayı ayırt etmek için, bunu genel istemci uygulaması olarak yapılandırın. Bu yapılandırmayı sağlamak için
Uygulamanızı genel istemci olarak tanımlamak için şu adımları izleyin:
Yönet'in altında Kimlik Doğrulama'yı seçin.
Gelişmiş ayarlar'ın altında Genel istemci akışlarına izin ver için Evet'i seçin.
Yaptığınız değişiklikleri kaydetmek için Kaydet'i seçin.
Masaüstü uygulamalarını destekleyen Microsoft kitaplıkları
Aşağıdaki Microsoft kitaplıkları masaüstü uygulamalarını destekler:
| Dil / çerçeve | Proje devam ediyor GitHub (İngilizce) |
Paket | Alma başladı |
Oturum açan kullanıcılar | Web API'lerine erişme | Genel kullanıma açık (GA) veya Genel önizleme1 |
|---|---|---|---|---|---|---|
| Elektron | MSAL Node.js | msal-node | — |
|
|
Genel önizleme |
| Java | MSAL4J | msal4j | — |
|
|
Georgia |
| macOS (Swift/Obj-C) | iOS ve macOS için MSAL | MSAL | Eğitim |
|
|
Georgia |
| Evrensel Windows Platformu (UWP) | MSAL.NET | Microsoft.Identity.Client | Eğitim |
|
|
Georgia |
| WPF (Windows Presentation Foundation) | MSAL.NET | Microsoft.Identity.Client | Eğitim |
|
|
Georgia |
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.
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"
}
}
.NET'in sağladığı yapılandırma çerçevesini kullanarak, bu dosyada okumak için çok az kodunuz var.
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.