Aracılığıyla paylaş


Hızlı Başlangıç: Evrensel Windows Platformu uygulamasında kullanıcılarda oturum açma ve Microsoft Graph'ı çağırma

Bu hızlı başlangıçta, bir Evrensel Windows Platformu (UWP) uygulamasının kullanıcılarda nasıl oturum açabileceğini ve Microsoft Graph API'sini çağırmak için erişim belirteci alabileceğini gösteren bir kod örneği indirip çalıştıracaksınız.

Bkz. Örnek bir çizim için nasıl çalışır ?

Önkoşullar

Not

MSAL.NET 4.61.0 ve üzeri sürümler Evrensel Windows Platformu (UWP), Xamarin Android ve Xamarin iOS için destek sağlamaz. UWP uygulamalarınızı WINUI gibi modern çerçevelere geçirmenizi öneririz. Xamarin ve UWP için yaklaşan MSAL.NET Kullanımdan Kaldırılması Duyurusu'nda kullanımdan kaldırma hakkında daha fazla bilgi edinin.

Hızlı başlangıç uygulamanızı kaydetme ve indirme

Hızlı başlangıç uygulamanızı başlatmak için kullanabileceğiniz iki seçenek vardır:

1. Seçenek: Uygulamanızı otomatik olarak kaydedip yapılandırın ve ardından kod örneğinizi indirin

  1. Hızlı başlangıç deneyimi Uygulama kayıtları AMicrosoft Entra yönetim merkezine gidin.
  2. Uygulamanız için bir ad girin ve Kaydet'i seçin.
  3. Yeni uygulamanızı indirmek ve otomatik olarak yapılandırmak için yönergeleri izleyin.

2. Seçenek: Uygulamanızı ve kod örneğinizi el ile kaydetme ve yapılandırma

1. Adım: Uygulamanızı kaydetme

İpucu

Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.

Uygulamanızı kaydetmek ve uygulama kayıt bilgilerinizi çözümünüze eklemek için şu adımları izleyin:

  1. Microsoft Entra yönetim merkezinde oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden uygulamayı kaydetmek istediğiniz kiracıya geçmek için üst menüdeki Ayarlar simgesini kullanın.
  3. Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları Yeni kayıt'ı seçin.
  4. Uygulamanız için bir Ad girin, örneğin UWP-App-calling-MsGraph. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.
  5. Desteklenen hesap türleri bölümünde Herhangi bir kuruluş dizinindeki hesaplar ve kişisel Microsoft hesapları (ör. Skype, Xbox, Outlook.com) seçeneğini belirtin.
  6. Uygulamayı oluşturmak için Kaydet'i seçin ve daha sonraki bir adımda kullanmak üzere Uygulama (istemci) kimliğini kaydedin.
  7. Yönet'in altında Kimlik Doğrulama'yı seçin.
  8. Platform>ekle Mobil ve masaüstü uygulamaları'ı seçin.
  9. Yeniden yönlendirme URI'leri'nin altında öğesini seçinhttps://login.microsoftonline.com/common/oauth2/nativeclient.
  10. Yapılandır'yı seçin.

2. Adım: Projeyi indirme

UWP örnek uygulamasını indirme

İpucu

Windows'ta yol uzunluğu sınırlamalarından kaynaklanan hataları önlemek için, arşivi ayıklamanızı veya depoyu sürücünüzün köküne yakın bir dizine kopyalamanızı öneririz.

3. Adım: Projeyi yapılandırma

  1. .zip arşivini sürücünüzün köküne yakın bir yerel klasöre ayıklayın. Örneğin, C:\Azure-Samples içine.

  2. Projeyi Visual Studio'da açın. İstenirse Evrensel Windows Platformu geliştirme iş yükünü ve tek tek SDK bileşenlerini yükleyin.

  3. MainPage.Xaml.cs değişkeninin ClientId değerini daha önce kaydettiğiniz uygulamanın Uygulama (İstemci) Kimliği olarak değiştirin.

    private const string ClientId = "Enter_the_Application_Id_here";
    

    Uygulama (istemci) kimliğini Microsoft Entra yönetim merkezinde (Kimlik>Uygulamaları> Uygulama kayıtları>{Uygulama kaydınız}) uygulamanın Genel Bakış bölmesinde bulabilirsiniz.

  4. Paket için yeni bir otomatik olarak imzalanan test sertifikası oluşturun ve seçin:

    1. Çözüm Gezgini Package.appxmanifest dosyasına çift tıklayın.
    2. Paketle>Sertifika Seç'i seçin...>Oluştur....
    3. Bir parola girin ve Tamam'ı seçin. Native_UWP_V2_TemporaryKey.pfx adlı bir sertifika oluşturulur.
    4. Sertifika seç iletişim kutusunu kapatmak için Tamam'ı seçin ve Çözüm Gezgini'da Native_UWP_V2_TemporaryKey.pfx dosyasını gördüğünüzü doğrulayın.
    5. Çözüm Gezgini, Native_UWP_V2 projesine sağ tıklayın ve Özellikler'i seçin.
    6. İmzala'yı seçin ve ardından Tanımlayıcı ad anahtarı dosyası seçin açılan listesinde oluşturduğunuz .pfx dosyasını seçin.

4. Adım: Uygulamayı çalıştırma

Örnek uygulamayı yerel makinenizde çalıştırmak için:

  1. Visual Studio araç çubuğunda doğru platformu seçin (arm değil muhtemelen x64 veya x86). Hedef cihaz, Cihaz'dan Yerel Makine'ye değiştirilmelidir.

  2. Hata Ayıklama>Hata Ayıklamadan Başlat’ı seçin.

    Bunu yapmanız istenirse, uygulamayı başlatmak için önce Geliştirici Modu'nu etkinleştirmeniz ve ardından Hata Ayıklama Olmadan Yeniden Başlatmanız gerekebilir.

Uygulamanın penceresi görüntülendiğinde Microsoft Graph API'sini Ara düğmesini seçebilir, kimlik bilgilerinizi girebilir ve uygulama tarafından istenen izinleri onaylayabilirsiniz. Başarılı olursa uygulama, Microsoft Graph API'sine yapılan çağrıdan alınan bazı belirteç bilgilerini ve verileri görüntüler.

Örnek nasıl çalışır?

Bu hızlı başlangıç tarafından oluşturulan örnek uygulamanın nasıl çalıştığını gösteren diyagram.

MSAL.NET

MSAL (Microsoft.Identity.Client), kullanıcılarda oturum açmak ve güvenlik belirteçleri istemek için kullanılan kitaplıktır. Güvenlik belirteçleri, Microsoft kimlik platformu tarafından korunan bir API'ye erişmek için kullanılır. MSAL kitaplığını Visual Studio'nun Paket Yöneticisi Konsolu'nda aşağıdaki komutu çalıştırarak yükleyebilirsiniz:

Install-Package Microsoft.Identity.Client

MSAL başlatma

Şu kodu ekleyerek MSAL başvurusunu ekleyebilirsiniz:

using Microsoft.Identity.Client;

Ardından MSAL aşağıdaki kod kullanılarak başlatılır:

public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                                                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                                                    .Build();

değeriClientId, Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliğidir. Bu değeri Microsoft Entra yönetim merkezindeki uygulamanın Genel Bakış sayfasında bulabilirsiniz.

Belirteç isteme

MSAL,UWP uygulamasında belirteç almak için iki yönteme sahiptir: AcquireTokenInteractive ve AcquireTokenSilent.

Etkileşimli olarak kullanıcı belirteci alma

Bazı durumlarda, kullanıcıların kimlik bilgilerini doğrulamak veya onay vermek için bir açılır pencere aracılığıyla Microsoft kimlik platformu etkileşime zorlanması gerekir. Bazı Örnekler:

  • Kullanıcılar uygulamada ilk kez oturum açar
  • Parolanın süresi dolduğundan kullanıcıların kimlik bilgilerini yeniden girmesi gerektiğinde
  • Uygulamanız bir kaynağa erişim istediğinde, kullanıcının buna onay vermesi gerekir
  • İki öğeli kimlik doğrulama gerektiğinde
authResult = await PublicClientApp.AcquireTokenInteractive(scopes)
                      .ExecuteAsync();

scopes parametresi, Microsoft Graph veya { "api://<Application ID>/access_as_user" } özel web API'leri gibi { "user.read" } istenen kapsamları içerir.

Kullanıcı belirtecini sessizce alma

İlk AcquireTokenInteractive yöntemden AcquireTokenSilent sonra korumalı kaynaklara erişmek için belirteçleri almak için yöntemini kullanın. Bir kaynağa her erişmesi gerektiğinde kullanıcının kimlik bilgilerini doğrulamasını istemek istemezsiniz. Çoğu zaman, kullanıcı etkileşimi olmadan belirteç almaları ve yenilemeleri istersiniz

var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
  • scopesMicrosoft Graph veya { "api://<Application ID>/access_as_user" } özel web API'leri gibi { "user.read" } istenen kapsamları içerir.
  • firstAccount önbellekteki ilk kullanıcı hesabını belirtir (MSAL, tek bir uygulamada birden çok kullanıcıyı destekler).

Yardım ve destek

Yardıma ihtiyacınız varsa, bir sorunu bildirmek veya destek seçenekleriniz hakkında bilgi edinmek istiyorsanız bkz . Geliştiriciler için yardım ve destek.

Sonraki adımlar

Bu hızlı başlangıcın tam bir açıklamasının da içinde olduğu yeni özellikleri ve uygulamaları oluşturma hakkında eksiksiz adım adım kılavuz için Windows masaüstü öğreticisini deneyin.