Yerel kimlik doğrulamasını kullanarak örnek bir Android uygulamasında kullanıcılarda oturum açma ve API çağırma

Şunun için geçerlidir: Aşağıdaki içeriğin dış kiracılar için geçerli olduğunu gösteren beyaz onay işareti simgesine sahip yeşil daire. Dış kiracılar (daha fazla bilgi edinin)

Bu hızlı başlangıçta, ASP.NET Core web API'sini çağırmak için örnek bir Android mobil uygulamasını yapılandırmayı öğreneceksiniz.

Önkoşullar

  • Yerel kimlik doğrulamasıkullanarak örnek Android (Kotlin) mobil uygulamasında kullanıcıları oturum açın.
  • Microsoft Entra yönetim merkezinde, aşağıdaki yapılandırmayla web API'niz için yeni bir uygulama kaydedin. Ayrıntılı adımlar için bkz . Uygulama kaydetme. Daha sonra kullanmak üzere Uygulama (istemci) kimliğini ve Dizin (kiracı) kimliğini kaydedin.
    • Ad: ciam-ToDoList-api.
    • Desteklenen hesap türleri: Yalnızca bu kuruluş dizinindeki hesaplar (Tek kiracı)

API kapsamlarını yapılandırma

İstemci uygulamalarının kullanıcı için erişim belirtecini başarıyla alabilmesi için api'nin Temsilci İzinolarak da adlandırılan en az bir kapsam yayımlaması gerekir. Kapsamı yayınlamak için şu adımları izleyin:

  1. Uygulama kayıtları sayfasında, oluşturduğunuz API uygulamasını (ciam-ToDoList-api) seçerek Genel Bakış sayfasını açın.

  2. Yönetaltında Bir API'yi kullanıma sunseçin.

  3. Sayfanın üst kısmında, Uygulama Kimliği URI'siyanındaki Ekle bağlantısını seçerek bu uygulama için benzersiz bir URI oluşturun.

  4. api://{clientId}gibi önerilen Uygulama Kimliği URI'sini kabul edin ve Kaydetöğesini seçin. Web uygulamanız web API'si için bir erişim belirteci istediğinde, API için tanımladığınız her kapsam için ön ek olarak URI'yi ekler.

  5. Bu API tarafından tanımlananKapsamlar altında Kapsam ekle seçeneğiniseçin.

  6. API'ye okuma erişimi tanımlayan aşağıdaki değerleri girin, ardından değişikliklerinizi kaydetmek için Kapsam ekle seçin:

    Mülk Değer
    Kapsam adı ToDoList.Read
    Kim onay verebilir? Yalnızca Yöneticiler
    Yönetici onayı için görünen ad 'TodoListApi' kullanarak kullanıcıların ToDo listesini okuma
    Yönetici onayı açıklaması 'TodoListApi'kullanarak uygulamanın kullanıcının ToDo listesini okumasına izin verin.
    Devlet Aktif
  7. Kapsam Ekle'yi tekrar seçin ve API için okuma ve yazma erişim kapsamını tanımlayan aşağıdaki değerleri girin. Değişikliklerinizi kaydetmek için Kapsam ekle seçin.

    Mülk Değer
    Kapsam adı ToDoList.ReadWrite
    Kim onay verebilir? Yalnızca Yöneticiler
    Yönetici onayı için görünen ad Kullanıcıların ToDo listesini 'ToDoListApi' kullanarak okuma ve yazma
    Yönetici onayı açıklaması 'ToDoListApi' kullanarak uygulamanın kullanıcının ToDo listesini okumasına ve yazmasına izin ver
    Devlet Aktif

Web API'sine yönelik izinler yayımlarken en az ayrıcalık ilkesi hakkında daha fazla bilgi edinin.

Uygulama rollerini yapılandırma

bir API'nin, istemci uygulamalarının kendileri gibi bir erişim belirteci elde etmesi için uygulamalar için uygulama izni olarak da adlandırılan en az bir uygulama rolü yayımlaması gerekir. Uygulama izinleri, istemci uygulamaların kendi kimlikleriyle doğrulama yapabilmesini ve kullanıcıların oturum açmasına gerek kalmamasını sağlamak için API'lerin yayımlaması gereken izin türleridir. Uygulama izni yayımlamak için şu adımları izleyin:

  1. Uygulama kayıtları sayfasında, oluşturduğunuz uygulamayı (ciam-ToDoList-api) seçerek Genel Bakış sayfasını açın.

  2. Yönetaltında Uygulama rolleriseçin.

  3. uygulama rolü oluşturseçin, ardından aşağıdaki değerleri girin ve değişikliklerinizi kaydetmek için uygula seçin:

    Mülk Değer
    Görünen ad YapılacaklarListesi.Okuma.Tümü
    İzin verilen üye türleri Uygulamaları
    Değer YapılacaklarListesi.Okuma.Tümü
    Açıklama Uygulamanın 'TodoListApi' kullanarak her kullanıcının ToDo listesini okumasına izin ver
    Bu uygulama rolünü etkinleştirmek istiyor musunuz? İşaretli tutun
  4. Uygulama rolü oluştur yeniden seçin, ardından ikinci uygulama rolü için aşağıdaki değerleri girin ve ardından değişikliklerinizi kaydetmek için uygula seçin:

    Mülk Değer
    Görünen ad ToDoList.ReadWrite.All
    İzin verilen üye türleri Uygulamaları
    Değer ToDoList.ReadWrite.All
    Açıklama 'ToDoListApi' kullanarak uygulamanın her kullanıcının ToDo listesini okumasına ve yazmasına izin ver
    Bu uygulama rolünü etkinleştirmek istiyor musunuz? İşaretli tutun

İsteğe bağlı talepleri yapılandırma

Web API'sinin bir uygulama belirteci mi yoksa uygulama + kullanıcı belirteci mi olduğunu belirlemesine yardımcı olmak için idtyp isteğe bağlı talebi ekleyebilirsiniz. Aynı amaçla scp ve rolleri taleplerin birleşimini kullanabilirsiniz ancak idtyp talebi, uygulama belirteci ile uygulama + kullanıcı belirtecini birbirinden ayırt etmenin en kolay yoludur. Örneğin, belirteç yalnızca uygulama belirteci olduğunda bu talebin değeri , uygulama olur.

Android örnek uygulamasına API izinleri verme

Hem istemci uygulamanızı hem de web API'nizi kaydettikten ve kapsamlar oluşturarak API'yi kullanıma sunduğunuzda, aşağıdaki adımları izleyerek istemcinin API izinlerini yapılandırabilirsiniz:

  1. Uygulama kayıtları sayfasında, oluşturduğunuz uygulamayı (ciam-client-app) seçerek Genel Bakış sayfasını açın.

  2. Yönetaltında API izinleriniseçin.

  3. Yapılandırılmış izinler altındaBir izin ekleseçin.

  4. Kuruluşumun kullandığı API'lerini sekmesini seçin.

  5. API'ler listesinde ciam-ToDoList-apigibi API'yi seçin.

  6. Temsilci izinleri seçeneğini seçin.

  7. İzinler listesinden ToDoList.Read, ToDoList.ReadWrite seçin (gerekirse arama kutusunu kullanın).

  8. İzin ekle düğmesini seçin.

  9. Bu noktada izinleri doğru atamış olursunuz. Ancak, kiracı bir müşterinin kiracısı olduğundan, tüketici kullanıcıları bu izinlere onay veremez. Bu sorunu çözmek için, yönetici olarak kiracıdaki tüm kullanıcılar adına bu izinleri onaylamanız gerekir:

    1. kiracı adınız<>için yönetici onayı ver, ardından Evet seçeneğini seçin.

    2. Yenile'yiseçin, ardından kiracı adınızın <için Verildi> her iki izin için Durum altında göründüğünü doğrulayın.

  10. Yapılandırılmış izinler listesinden ToDoList.Read ve ToDoList.ReadWrite izinlerini birer birer seçin ve ardından iznin tam URI'sini daha sonra kullanmak üzere kopyalayın. Tam izin URI'si, api://{clientId}/{ToDoList.Read} veya api://{clientId}/{ToDoList.ReadWrite}benzer bir görünüme sahiptir.

Örnek web API'sini kopyalama veya indirme

Örnek uygulamayı edinmek için GitHub'dan kopyalayabilir veya .zip dosyası olarak indirebilirsiniz.

  • Örneği kopyalamak için bir komut istemi açın ve projeyi oluşturmak istediğiniz yere gidin ve aşağıdaki komutu girin:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
    
  • .zip dosyasınıindirin. Adın uzunluğu 260 karakterden az olan bir dosya yoluna ayıklayın.

Örnek web API'lerini yapılandırma ve çalıştırma

  1. Kod düzenleyicinizde 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json dosyasını açın.

  2. Yer tutucuyu bulun:

    • Enter_the_Application_Id_Here ve daha önce kopyaladığınız web API'sinin Uygulama (istemci) kimliği değiştirin.
    • Enter_the_Tenant_Id_Here'ı daha önce kopyaladığınız Dizin (kiracı) kimliği ile değiştirin.
    • Enter_the_Tenant_Subdomain_Here'ı dizin (tenant) alt etki alanıyla değiştirin. Örneğin, kiracı birincil alan adınız contoso.onmicrosoft.comise, contosokullanın. Kiracı adınız yoksa, kiracı ayrıntılarınızı nasıl okuyacağınızıöğrenin.

Android örnek uygulamasını çağırmak için web API'nizi barındırmanız gerekir. Hızlı Başlangıcı izleyin: Web API'nizi dağıtmak için ASP.NET bir web uygulaması dağıtma.

Web API'sini çağırmak için örnek Android mobil uygulamasını yapılandırma

Örnek, birden çok Web API'si URL uç noktası ve kapsam kümesi yapılandırmanıza olanak tanır. Bu durumda, yalnızca bir Web API'si URL uç noktasını ve ilişkili kapsamlarını yapılandırabilirsiniz.

  1. Android Studio'nuzda /app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt dosyasını açın.

  2. WEB_API_URL_1 adlı özelliği bulun ve URL'yi web API'nize ayarlayın.

    private const val WEB_API_URL_1 = "" // Developers should set the respective URL of their web API here
    
  3. scopesForAPI1 adlı özelliği bulun ve kaydedilen kapsamlarıAndroid örnek uygulamasına API izinleri vererek ayarlayın.

    private val scopesForAPI1 = listOf<String>() // Developers should set the respective scopes of their web API here. For example, private val scopes = listOf<String>("api://{clientId}/{ToDoList.Read}", "api://{clientId}/{ToDoList.ReadWrite}")
    

Android örnek uygulamasını çalıştırma ve web API'sini çağırma

Uygulamanızı derlemek ve çalıştırmak için şu adımları izleyin:

  1. Araç çubuğunda, çalıştırma yapılandırmaları menüsünden uygulamanızı seçin.

  2. Hedef cihaz menüsünde, uygulamanızı çalıştırmak istediğiniz cihazı seçin.

    Yapılandırılmış cihaz yoksa, Android Öykünücüsü'ni kullanmak için bir Android Sanal Cihaz oluşturmanız veya fiziksel bir cihaz bağlamanız gerekir.

  3. Çalıştır düğmesini seçin. Uygulama e-posta ve tek seferlik geçiş kodu ekranında açılır.

  4. API çağrısını test etmek için API sekmesini seçin. Web API'sine yapılan başarılı bir çağrı HTTP 200döndürürken, HTTP 403 yetkisiz erişimi bildirir.

Sonraki adımlar