Aracılığıyla paylaş


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

Bu makalede, ASP.NET Core web API'sini çağırmak için örnek bir Android mobil uygulamasının nasıl yapılandırılır gösterilmektedir.

Önkoşullar

Web API'si uygulaması kaydetme

  1. Microsoft Entra yönetim merkezinde en azından Uygulama Geliştiricisi olarak oturum açın.

  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden dış kiracınıza geçmek için üst menüdeki Ayarlar simgesinikullanın.

  3. Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları.

  4. + Yeni kayıt'ı seçin.

  5. Görüntülenen Uygulamayı kaydet sayfası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 ciam-ToDoList-api.

    2. Desteklenen hesap türleri'nin altında Yalnızca bu kuruluş dizinindeki Hesaplar'ı seçin.

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

  7. Kayıt tamamlandığında uygulamanın Genel Bakış bölmesi görüntülenir. Uygulama kaynak kodunuzda kullanılacak Dizin (kiracı) kimliğini ve Uygulama (istemci) kimliğini kaydedin.

API kapsamlarını yapılandırma

İstemci uygulamalarının bir kullanıcı için erişim belirtecini başarıyla alabilmesi için api'nin Temsilci İzni olarak da adlandırılan en az bir kapsam yayımlaması gerekir. Kapsam yayımlamak 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önet'in altında API'yi kullanıma sunma'yı seçin.

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

  4. gibi api://{clientId}önerilen Uygulama Kimliği URI'sini kabul edin ve Kaydet'i 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ımlanan kapsamlar'ın altında Kapsam ekle'yi seçin.

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

    Özellik Değer
    Kapsam adı ToDoList.Read
    Kimler onaylayabilir Yalnızca yöneticiler
    Yönetici onayı görünen adı 'TodoListApi' kullanarak kullanıcıların ToDo listesini okuma
    Yönetici onayı açıklaması Uygulamanın 'TodoListApi' kullanarak kullanıcının ToDo listesini okumasına izin verin.
    Durum Etkin
  7. Kapsam ekle'yi yeniden seçin ve API'ye okuma ve yazma erişim kapsamı tanımlayan aşağıdaki değerleri girin. Değişikliklerinizi kaydetmek için Kapsam ekle'yi seçin:

    Özellik Değer
    Kapsam adı ToDoList.ReadWrite
    Kimler onaylayabilir Yalnızca yöneticiler
    Yönetici onayı görünen adı 'ToDoListApi' kullanarak kullanıcıların ToDo listesini okuma ve yazma
    Yönetici onayı açıklaması Uygulamanın 'ToDoListApi' kullanarak kullanıcının ToDo listesini okumasına ve yazmasına izin ver
    Durum Etkin
  8. Yönet'in altında Bildirim'i seçerek API bildirim düzenleyicisini açın.

  9. özelliğini olarak 2ayarlayınaccessTokenAcceptedVersion.

  10. Kaydet'i seçin.

Web API'sinin izinlerini 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 alabilmesi için uygulamalar için Uygulama İzni olarak da adlandırılan en az bir uygulama rolü yayımlaması gerekir. Uygulama izinleri, istemci uygulamalarının kendi kimliklerini başarıyla doğrulayıp oturum açması gerekmediğinde API'lerin yayımlaması gereken izin türüdür. Uygulama izni yayımlamak için şu adımları izleyin:

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

  2. Yönet'in altında Uygulama rolleri'ne tıklayın.

  3. Uygulama rolü oluştur'u seçin, ardından aşağıdaki değerleri girin ve ardından Uygula'yı seçerek değişikliklerinizi kaydedin:

    Özellik Değer
    Görünen ad ToDoList.Read.All
    İzin verilen üye türleri Uygulamalar
    Değer ToDoList.Read.All
    Açıklama Uygulamanın 'TodoListApi' kullanarak her kullanıcının ToDo listesini okumasına izin ver
  4. Uygulama rolü oluştur'u 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'yı seçin:

    Özellik Değer
    Görünen ad ToDoList.ReadWrite.All
    İzin verilen üye türleri Uygulamalar
    Değer ToDoList.ReadWrite.All
    Açıklama Uygulamanın 'ToDoListApi' kullanarak her kullanıcının ToDo listesini okumasına ve yazmasına izin ver

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

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

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 gibi) seçerek Genel Bakış sayfasını açın.

  2. Yönet'in altında API izinleri'ne tıklayın.

  3. Yapılandırılan izinler'in altında İzin ekle'yi seçin.

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

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

  6. Temsilci izinleri seçeneğini belirleyin.

  7. İzinler listesinden ToDoList.Read, ToDoList.ReadWrite öğesini 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'i ve ardından Evet'i seçin.

    2. Yenile'yi seçin, ardından Kiracı adınız> için <Verildi seçeneğinin her iki izin için de Durum altında göründüğünü doğrulayın.

  10. Yapılandırılan izinler listesinden ToDoList.Read ve ToDoList.ReadWrite izinlerini birer birer seçin ve daha sonra kullanmak üzere iznin tam URI'sini kopyalayın. Tam izin URI'si veya api://{clientId}/{ToDoList.ReadWrite}gibi api://{clientId}/{ToDoList.Read} görünür.

Ö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 dosyayı açın 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json .

  2. Yer tutucuyu bulun:

    • Enter_the_Application_Id_Hereve daha önce kopyaladığınız web API'sinin Uygulama (istemci) kimliğiyle değiştirin.
    • Enter_the_Tenant_Id_Hereve daha önce kopyaladığınız Dizin (kiracı) kimliğiyle değiştirin.
    • Enter_the_Tenant_Subdomain_Here ve bunu Dizin (kiracı) alt etki alanıyla değiştirin. Örneğin, kiracı birincil etki alanınız ise contoso.onmicrosoft.comkullanın contoso. Kiracı adınız yoksa kiracınızın ayrıntılarını 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ıç: Web API'nizi dağıtmak için ASP.NET bir web uygulaması dağıtma'yı izleyin.

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

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

  2. adlı WEB_API_BASE_URL özelliği bulun ve WEB API'nizin URL'sini ayarlayın.

    private const val WEB_API_BASE_URL = "" // Developers should set the respective URL of their web API here
    
  3. adlı scopes özelliği bulun ve Android örnek uygulamasına API izinleri verme bölümünde kaydedilen kapsamları ayarlayın.

    private val scopes = 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şim anlamına gelir.

Sonraki adımlar