Aracılığıyla paylaş


Eğitim: Microsoft Kimlik Platformu'nu kullanarak kullanıcıların oturum açması için bir Android uygulaması ayarlama

için geçerlidir: Yeşil Daire, Beyaz Onay İşareti Simgesi . Yeşil Daire, Beyaz Onay İşareti Simgesiyle Workforce kiracıları . Yeşil Daire, Beyaz Onay İşareti Simgesiyle Dış kiracıları (daha fazla bilgi)

Bu öğreticide, Android uygulamanıza Android için Microsoft Authentication Library (MSAL) eklemeyi nasıl yapacağınızı öğreneceksiniz. MSAL, Android uygulamalarının Microsoft Entra ile kullanıcıların kimliğini doğrulamasını sağlar.

Bu öğreticide öğreneceksiniz;

  • MSAL bağımlılığını ekle
  • Yapılandırma ekleme
  • MSAL SDK örneği oluşturma

Önkoşullar

  • Çalışan konut kiracısı. Varsayılan Dizininizi kullanabilir veya yeni bir kiracı ayarlayabilirsiniz.
  • 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
  • Android projesi. Android projeniz yoksa oluşturun.

Yeniden yönlendirme URI'sini ekleme

İndirilen kod örneğiyle uyumluluğu sağlamak için uygulama kaydınızda belirli yeniden yönlendirme URI'lerini yapılandırmanız gerekir. Bu URI'ler, kullanıcıları başarıyla oturum açtıktan sonra uygulamaya geri yönlendirmek için gereklidir.

  1. Yönetaltında Kimlik Doğrulaması>Platform Ekle>Androidseçin.

  2. Yukarıda indirdiğiniz örnek türüne göre projenizin Paket Adını girin.

    • Java örneği - com.azuresamples.msalandroidapp
    • Kotlin örneği - com.azuresamples.msalandroidkotlinapp
  3. Android uygulamanızı yapılandırma bölmesininİmza karması bölümünde geliştirme İmza Karması oluşturma seçin. ve KeyTool komutunu komut satırınıza kopyalayın.

    • KeyTool.exe Java Geliştirme Seti'nin (JDK) bir parçası olarak yüklenir. KeyTool komutunu yürütmek için OpenSSL aracını da yüklemeniz gerekir. Daha fazla bilgi için, anahtar oluşturmaya ilişkin Android belgelerine bakın.
  4. KeyTool tarafından oluşturulan İmza karmasını girin.

  5. Yapılandır'ı seçin ve daha sonra uygulamanızı yapılandırırken girebilmeniz için, Android yapılandırma bölmesinde görüntülenen MSAL Yapılandırma kaydedin.

  6. Seç. Bitti.

MSAL bağımlılığını ve ilgili kitaplıkları projenize ekleyin

Android projenize MSAL bağımlılıkları eklemek için şu adımları izleyin:

  1. Projenizi Android Studio'da açın veya yeni bir proje oluşturun.

  2. Uygulamanızın build.gradle açın ve aşağıdaki bağımlılıkları ekleyin:

    allprojects {
    repositories {
        //Needed for com.microsoft.device.display:display-mask library
        maven {
            url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
            name 'Duo-SDK-Feed'
        }
        mavenCentral()
        google()
        }
    }
    //...
    
    dependencies { 
        implementation 'com.microsoft.identity.client:msal:5.+'
        //...
    }
    

    build.gradle yapılandırmasında depolar proje bağımlılıkları için tanımlanır. Azure DevOps'tan com.microsoft.device.display:display-mask kitaplığı için bir Maven deposu URL'si içerir. Ayrıca Maven Central ve Google depolarını kullanır. Bağımlılıklar bölümü, MSAL sürüm 5'in ve potansiyel olarak diğer bağımlılıkların uygulanmasını belirtir.

  3. Android Studio'da Dosya>Gradle Dosyalarıyla Projeyi Senkronize Etseçeneğini seçin.

Yapılandırma ekleme

Uygulama (istemci) kimliği gibi gerekli kiracı tanımlayıcılarını bir JSON yapılandırma ayarı aracılığıyla MSAL SDK'ya geçirirsiniz.

Yapılandırma dosyası oluşturmak için şu adımları kullanın:

  1. Android Studio'nun proje bölmesinde app\src\main\resadresine gidin.

  2. res'e sağ tıklayın ve Yeni>Dizin seçin. Yeni dizin adı olarak raw girin ve tamam seçin.

  3. app>src>main>res>hamiçinde auth_config_single_account.json adlı yeni bir JSON dosyası oluşturun ve daha önce kaydettiğiniz MSAL Yapılandırmasını yapıştırın.

    Yeniden yönlendirme URI'sinin altına yapıştırın:

      "account_mode" : "SINGLE",
    

    Yapılandırma dosyanız şu örneğe benzemelidir:

    {
      "client_id": "00001111-aaaa-bbbb-3333-cccc4444",
      "authorization_user_agent": "WEBVIEW",
      "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D",
      "broker_redirect_uri_registered": true,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    

    Bu öğreticide yalnızca Tek Hesap modunda bir uygulamanın nasıl yapılandırılacağı gösterilmektedir, daha fazla bilgi için bkz. tek ve birden çok hesap modu ve uygulamanızı yapılandırma .

  4. 'WEBVIEW' kullanmanızı öneririz. Uygulamanızda "authorization_user_agent" öğesini 'BROWSER' olarak yapılandırmak istiyorsanız aşağıdaki güncelleştirmeleri yapmanız gerekir. a) auth_config_single_account.json'ı "authorization_user_agent": "Tarayıcı" olarak güncelleyin. b) AndroidManifest.xmlgüncelleştirin. Uygulamada uygulama>src>ana>AndroidManifest.xmladresine gidin, BrowserTabActivity etkinliğini <application> öğesinin bir alt öğesi olarak ekleyin. Bu giriş, Kimlik doğrulamasını tamamladıktan sonra Microsoft Entra Id'nin uygulamanıza geri çağrı yapmasını sağlar:

    <!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in-->
    <activity
        android:name="com.microsoft.identity.client.BrowserTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="msauth"
                android:host="Enter_the_Package_Name"
                android:path="/Enter_the_Signature_Hash" />
        </intent-filter>
    </activity>
    
    • değeri değiştirmek için android:host=. kullanın. com.azuresamples.msalandroidappgibi görünmelidir.
    • İmza Karması'i kullanarak android:path= değerini değiştirin. İmza Hash'in başında / olduğundan emin olun. /aB1cD2eF3gH4+iJ5kL6-mN7oP8q=gibi görünmelidir.

    Bu değerleri uygulama kaydınızın Kimlik Doğrulaması panelinde de bulabilirsiniz.

MSAL SDK örneği oluşturma

MSAL SDK örneğini başlatmak için aşağıdaki kodu kullanın:

PublicClientApplication.createSingleAccountPublicClientApplication(
    getContext(),
    R.raw.auth_config_single_account,
    new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
        @Override
        public void onCreated(ISingleAccountPublicClientApplication application) {
            // Initialize the single account application instance
            mSingleAccountApp = application;
            loadAccount();
        }

        @Override
        public void onError(MsalException exception) {
            // Handle any errors that occur during initialization
            displayError(exception);
        }
    }
);

Bu kod, auth_config_single_account.jsonyapılandırma dosyasını kullanarak tek bir hesap genel istemci uygulaması oluşturur. Uygulama başarıyla oluşturulduğunda, örneği mSingleAccountApp atar ve loadAccount() yöntemini çağırır. Oluşturma sırasında bir hata oluşursa, displayError(exception) yöntemini çağırarak hatayı işler.

İçe aktarma ifadelerini eklemeyi unutmayın. Android Studio sizin için içeri aktarma ifadelerini otomatik olarak eklemelidir.

Sonraki adımlar