Hızlı Başlangıç: Microsoft kimlik platformu tarafından korunan bir ASP.NET web API'sini çağırma

Aşağıdaki hızlı başlangıçta, kaynaklarına erişimi yalnızca yetkili hesaplarla kısıtlayarak ASP.NET web API'sinin nasıl korunduğunu gösteren bir kod örneği kullanılmaktadır. Örnek, herhangi bir Microsoft Entra kuruluşundaki kişisel Microsoft hesaplarının ve hesaplarının yetkisini destekler.

Makalede ayrıca web API'sine erişmek için erişim belirteci isteme işleminin nasıl yapıldığını gösteren bir Windows Presentation Foundation (WPF) uygulaması da kullanılır.

Önkoşullar

Örneği kopyalama veya indirme

Kod örneği iki yolla elde edilebilir:

  • Kabuğunuzdan veya komut satırından kopyalayın:

    git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
    
  • Zip dosyası olarak indirin.

İ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.

Web API'sini kaydetme (TodoListService)

İpucu

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

Web API'nizi Azure portalındaki Uygulama kayıtları kaydedin.

  1. Microsoft Entra yönetim merkezinde en az Bulut Uygulaması Yönetici istrator olarak 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ı ve Yeni kayıt'ı seçin.

  4. Uygulamanız için bir Ad girin, örneğin AppModelv2-NativeClient-DotNet-TodoListService. Uygulamanızın kullanıcıları bu adı görebilir ve daha sonra değiştirebilirsiniz.

  5. Desteklenen hesap türleri için herhangi bir kuruluş dizinindeki Hesaplar'ı seçin.

  6. Uygulamayı kaydetmek için Kaydet'i seçin.

  7. Uygulamaya Genel Bakış sayfasında Uygulama (istemci) kimliği değerini bulun ve daha sonra kullanmak üzere kaydedin. Bu proje için Visual Studio yapılandırma dosyasını (todoListService ClientId\appsettings.json dosyasında) yapılandırmak için buna ihtiyacınız olacaktır.

  8. Yönet'in altında API'yi>kullanıma sunma Kapsam ekle'yi seçin. Kaydet ve devam et'i seçip aşağıdaki bilgileri girerek önerilen Uygulama Kimliği URI'sini (api://{clientId}) kabul edin:

    1. Kapsam adı olarak girinaccess_as_user.
    2. Kim onaylayabilir? için Yönetici ve kullanıcılar seçeneğinin belirlendiğinden emin olun.
    3. Yönetici onay görünen adı kutusuna girinAccess TodoListService as a user.
    4. Yönetici onay açıklaması kutusuna girinAccesses the TodoListService web API as a user.
    5. Kullanıcı onayı görünen adı kutusuna girinAccess TodoListService as a user.
    6. Kullanıcı onayı açıklaması kutusuna girinAccesses the TodoListService web API as a user.
    7. Durum için Etkin'i koruyun.
  9. Kapsam ekle'yi seçin.

Hizmet projesini yapılandırma

Hizmet projesini kayıtlı web API'sine uyacak şekilde yapılandırın.

  1. Çözümü Visual Studio'da açın ve ardından TodoListService projesinin kökü altındaki appsettings.json dosyasını açın.

  2. değeriniEnter_the_Application_Id_here, hem Uygulama kayıtları portalında hem de özelliklerinde kaydettiğiniz uygulamadan İstemci Kimliği (Uygulama Kimliği) değeriyle ClientIDAudience değiştirin.

Yeni kapsamı app.config dosyasına ekleme

Yeni kapsamı TodoListClient app.config dosyasına eklemek için şu adımları izleyin:

  1. TodoListClient proje kök klasöründe app.config dosyasını açın.

  2. TodoListService projeniz için kaydettiğiniz uygulamadan Uygulama Kimliğini parametresine TodoListServiceScope yapıştırın ve dizenin {Enter the Application ID of your TodoListService from the app registration portal} yerini alın.

Not

Uygulama Kimliği'nin şu biçimi kullandığından emin olun: api://{TodoListService-Application-ID}/access_as_user (burada {TodoListService-Application-ID} TodoListService uygulamanızın Uygulama Kimliğini temsil eden GUID'dir).

Web uygulamasını kaydetme (TodoListClient)

TodoListClient uygulamanızı Azure portalındaki Uygulama kayıtları kaydedin ve ardından TodoListClient projesindeki kodu yapılandırın. İstemci ve sunucu aynı uygulama olarak kabul edilirse, 2. adımda kaydedilen uygulamayı yeniden kullanabilirsiniz. Kullanıcıların kişisel bir Microsoft hesabıyla oturum açmasını istiyorsanız aynı uygulamayı kullanın.

Uygulamayı kaydetme

TodoListClient uygulamasını kaydetmek için şu adımları izleyin:

  1. Microsoft Entra yönetim merkezinde en az Bulut Uygulaması Yönetici istrator olarak oturum açın.

  2. Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları ve Yeni kayıt'ı seçin.

  3. Yeni kayıt öğesini seçin.

  4. Uygulamayı kaydet sayfası açıldığında, uygulamanızın kayıt bilgilerini girin:

    1. Ad bölümünde, uygulamanın kullanıcılarına görüntülenecek anlamlı bir uygulama adı girin (örneğin, NativeClient-DotNet-TodoListClient).
    2. Desteklenen hesap türleri için herhangi bir kuruluş dizinindeki Hesaplar'ı seçin.
    3. Uygulamayı kaydetmek için Kaydet'i seçin.

    Not

    TodoListClient proje app.config dosyasında varsayılan değeri ida:Tenant olarak commonayarlanır. Olası değerler:

    • common: bir iş veya okul hesabı ya da kişisel bir Microsoft hesabı kullanarak oturum açabilirsiniz (önceki adımda herhangi bir kuruluş dizininde Hesaplar'ı seçtiğiniz için).
    • organizations: İş veya okul hesabı kullanarak oturum açabilirsiniz.
    • consumers: Yalnızca bir Microsoft kişisel hesabı kullanarak oturum açabilirsiniz.
  5. Uygulamaya Genel Bakış sayfasında Kimlik Doğrulaması'nı seçin ve ardından platform eklemek için şu adımları tamamlayın:

    1. Platform yapılandırmaları'nın altında Platform ekle düğmesini seçin.
    2. Mobil ve masaüstü uygulamaları için Mobil ve masaüstü uygulamaları'yı seçin.
    3. Yeniden yönlendirme URI'leri için https://login.microsoftonline.com/common/oauth2/nativeclient onay kutusunu seçin.
    4. Yapılandır'yı seçin.
  6. API izinleri'ne tıklayın ve izin eklemek için şu adımları tamamlayın:

    1. İzin ekleyin düğmesini seçin.
    2. API'lerim sekmesini seçin.
    3. API'ler listesinde AppModelv2-NativeClient-DotNet-TodoListService API'sini veya web API'sine girdiğiniz adı seçin.
    4. Henüz seçili değilse access_as_user izin onay kutusunu seçin. Gerekirse Arama kutusunu kullanın.
    5. İzin ekle düğmesini seçin.

Projenizi yapılandırma

Uygulama Kimliğini app.config dosyasına ekleyerek TodoListClient projenizi yapılandırın.

  1. Uygulama kayıtları portalının Genel Bakış sayfasında Uygulama (istemci) kimliğinin değerini kopyalayın.

  2. TodoListClient proje kök klasöründen app.config dosyasını açın ve uygulama kimliği değerini parametresine ida:ClientId yapıştırın.

Projelerinizi çalıştırma

Her iki projenin de başlatılmasını sağlayın. Visual Studio kullanıcıları için;

  1. Visual Studio çözümüne sağ tıklayın ve Özellikler'i seçin

  2. Ortak Özellikler'de Başlangıç Projesi'ni ve ardından Birden çok başlangıç projesi'ni seçin.

  3. Her iki proje için de eylem olarak Başlat'ı seçin

  4. TodoListService hizmetinin önce yukarı oku kullanarak listedeki ilk konuma taşıyarak başlatıldığından emin olun.

TodoListClient projenizi çalıştırmak için oturum açın.

  1. Projeleri başlatmak için F5 tuşuna basın. Hizmet sayfası ve masaüstü uygulaması açılır.

  2. TodoListClient'da, sağ üstteki Oturum aç'ı seçin ve ardından uygulamanızı kaydetmek için kullandığınız kimlik bilgileriyle oturum açın veya aynı dizinde bir kullanıcı olarak oturum açın.

    İlk kez oturum açıyorsanız TodoListService web API'sini onaylamanız istenebilir.

    TodoListService web API'sine erişmenize ve Yapılacaklar listesini işlemenize yardımcı olmak için, oturum açma işlemi access_as_user kapsamına bir erişim belirteci de ister.

İstemci uygulamanızı önceden yetkilendirme

İstemci uygulamasının web API'nize erişmesi için önceden yetki vererek diğer dizinlerden kullanıcıların web API'nize erişmesine izin vekleyebilirsiniz. Bunu yapmak için istemci uygulamasındaki Uygulama Kimliği'ni web API'niz için önceden yetkilendirilmiş uygulamalar listesine eklersiniz. Önceden yetkilendirilmiş bir istemci ekleyerek kullanıcıların onay vermek zorunda kalmadan web API'nize erişmesine izin vermiş olacaksınız.

  1. Uygulama kayıtları portalında TodoListService uygulamanızın özelliklerini açın.
  2. API'yi kullanıma sunma bölümünde, Yetkili istemci uygulamaları'nın altında İstemci uygulaması ekle'yi seçin.
  3. İstemci Kimliği kutusuna TodoListClient uygulamasının Uygulama Kimliğini yapıştırın.
  4. Yetkili kapsamlar bölümünde web API'sinin api://<Application ID>/access_as_user kapsamını seçin.
  5. Uygulama ekle'yi seçin.

Projenizi çalıştırma

  1. Projenizi çalıştırmak için F5 tuşuna basın. TodoListClient uygulamanız açılır.
  2. Sağ üst köşede Oturum aç'ı seçin ve live.com veya hotmail.com hesabı ya da iş veyaokul hesabı gibi kişisel bir Microsoft hesabı kullanarak oturum açın.

İsteğe bağlı: Oturum açma erişimini belirli kullanıcılarla sınırla

Varsayılan olarak, outlook.com veya live.com hesapları gibi tüm kişisel hesaplar ya da Microsoft Entra Id ile tümleştirilen kuruluşların iş veya okul hesapları belirteç isteyebilir ve web API'nize erişebilir.

appsettings.json dosyasındaki özelliğini değiştirerek uygulamanızda kimlerin TenantIdoturum açabileceğini belirtmek için.

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

Aşağıdaki öğretici serisinde korumalı ASP.NET Core web api'sini oluşturarak daha fazla bilgi edinin: