Android için Microsoft Kimlik Doğrulama Kitaplığı

Android için Microsoft Authentication Library (MSAL), Android uygulamalarının Microsoft kimlik platformu (eski adı Azure Active Directory) ile kullanıcıların kimliğini doğrulamasını ve OAuth2 ve OpenID Connect protokollerini kullanarak korumalı web API'lerine erişmesini sağlayan bir kitaplıktır. MSAL Android, geliştiricilerin kullanıcıların kimliğini doğrulamak ve Android tabanlı uygulamaları için güvenli web API'lerine erişmek için Microsoft kimlik platformu güvenlik belirteçleri almasını sağlar.

MSAL Android çoklu oturum açma (SSO), koşullu erişim ve aracılı kimlik doğrulaması gibi birden çok kimlik doğrulama senaryolarını destekler. Microsoft Entra ID (İş ve Okul hesapları), Microsoft Hesapları (Outlook.com, hotmail.com ve daha birçok hesap) veya Azure AD B2C'yi (Sosyal ve Yerel hesaplar) dahil olmak üzere birden çok kimlik türünü kolayca hedeflemenizi sağlar.

Buradaki kılavuz, MSAL Android ile ilgili yaygın işlevleri belgelemeye yöneliktir. Microsoft Entra ID, Microsoft Hesapları veya Azure AD B2C ile çalışmaya başlama konusunda daha fazla yardım arıyorsanız Microsoft kimlik platformu belgelerine göz atın. Microsoft Graph API hakkında daha fazla bilgi arıyorsanız Microsoft Graph belgelerine göz atın.

MSAL'de yerel kimlik doğrulaması desteği

MSAL Android, mobil uygulamalarda uçtan uca özelleştirilebilir akışlarla yerel bir kimlik doğrulama deneyimi uygulamanıza da olanak tanır. Yerel kimlik doğrulaması ile kullanıcılar, uygulamadan çıkmadan zengin, yerel, mobil öncelikli kaydolma ve oturum açma yolculuğunda yönlendirilir. Yerel kimlik doğrulama özelliği yalnızca müşteriler için Dış Kimlik'te bulunan mobil uygulamalarda kullanılabilir.

Azure Active Directory Kimlik Doğrulama Kitaplığı'ndan (ADAL) geçiş

Android için Azure Active Directory Kimlik Doğrulama Kitaplığı (ADAL), Haziran 2023 tarihinden itibaren kullanımdan kaldırılmıştır. Siz veya kuruluşunuz Android için Azure Active Directory Kimlik Doğrulama Kitaplığı'nı (ADAL) kullanıyorsanız, uygulamanızın güvenliğini riske atmamak için MSAL Android'e geçiş yapmalısınız. Android için Microsoft Authentication Library (MSAL), kimlik doğrulaması ve belirteç alımı için kullanılabilecek desteklenen kitaplıktır.

MSAL Android'i kullanmaya başlama

Uygulamanızda MSAL Android'i kullanmak için şunları yapmanız gerekir:

MSAL Android hem tarayıcı aracılı hem de yerel kimlik doğrulama deneyimlerini desteklediğinden, senaryonuza göre aşağıdaki öğreticilerdeki adımları izleyin.

Requirements

  • En Düşük SDK Sürüm 16+
  • Hedef SDK Sürüm 33+

1. Adım: MSAL bağımlılığı bildirme

Uygulamanızın build.gradle öğesine ekleyin:

dependencies {
    implementation 'com.microsoft.identity.client:msal:4.9.+'
}

Lütfen gradle betiğinizde depolar bölümünüze aşağıdaki satırları da ekleyin:

maven { 
    url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' 
}

2. Adım: MSAL yapılandırma dosyanızı oluşturma

Tarayıcıya devredilen kimlik doğrulama:

Yapılandırma dosyanızı projenizde "ham" kaynak olarak oluşturun. Bir PublicClientApplication örneği oluştururken, oluşturulan kaynak tanımlayıcısını kullanarak buna başvurun. Uygulamanızı ilk kez Microsoft Entra yönetim merkezi kaydediyorsanız, size ayrıntılı MSAL Android yapılandırma dosyası da sağlanır

{
  "client_id" : "<YOUR_CLIENT_ID>",
  "redirect_uri" : "msauth://<YOUR_PACKAGE_NAME>/<YOUR_BASE64_URL_ENCODED_PACKAGE_SIGNATURE>",
  "broker_redirect_uri_registered": true,
}

redirect_uri içinde, <YOUR_PACKAGE_NAME>, context.getPackageName() yöntemi tarafından döndürülen paket adını ifade eder. Bu paket adı, dosyanızda application_id tanımlananla aynıdırbuild.gradle.

Yukarıdaki değerler gereken en düşük yapılandırmadır. MSAL, diğer tüm ayarlar için kitaplığıyla birlikte gelen varsayılan değerleri kullanır. Kitaplık varsayılanlarını anlamak için lütfen MSAL Android yapılandırma dosyası belgelerine bakın .

Yerel kimlik doğrulaması:

  1. res’e sağ tıklayın ve Yeni > Dizin seçeneğini belirleyin. Yeni dizin adı olarak raw yazın ve Tamam'ı seçin.
  2. Bu yeni klasörde (app > src > main > res > raw), auth_config_native_auth.json adlı yeni bir JSON dosyası oluşturun ve aşağıdaki şablonu MSAL Yapılandırması'na yapıştırın:
{ 
  "client_id": "Enter_the_Application_Id_Here", 
  "authorities": [ 
    { 
      "type": "CIAM", 
      "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/" 
    } 
  ], 
  "challenge_types": ["oob"], 
  "logging": { 
    "pii_enabled": false, 
    "log_level": "INFO", 
    "logcat_enabled": true 
  } 
 }

3. Adım: Tarayıcı tarafından atanan kimlik doğrulaması için AndroidManifest.xml yapılandırma

  1. Android Bildirimi aracılığıyla aşağıdaki izinleri isteyin
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  1. Yeniden yönlendirme URI'nizi kullanarak Android Bildirimi'nde bir amaç filtresi yapılandırma

Yapılandırma aracılığıyla belirttiğiniz yeniden yönlendirme URI'sine uyan bir amaç filtresi eklenememesi, başarısız etkileşimli belirteç isteğine neden olur.

    <!--Intent filter to capture authorization code response from the default browser on the device calling back to our app after interactive sign in -->
    <activity
        android:name="com.microsoft.identity.client.BrowserTabActivity">
        <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="<YOUR_PACKAGE_NAME>"
                android:path="/<YOUR_BASE64_ENCODED_PACKAGE_SIGNATURE>" />
        </intent-filter>
    </activity>

Sık karşılaşılan yeniden yönlendirme uri'leri sorunları hakkında daha fazla bilgi için MSAL Android SSS sayfasına göz atın.

ProGuard

MSAL, çeşitli kalıcılık ve serileştirmeyle ilgili işlevleri desteklemek için çalışma zamanında dosyalarda .class depolanan yansıma ve genel tür bilgilerini kullanır. Küçültme ve gizleme için kitaplık desteği sınırlıdır. Bu kitaplıkla birlikte varsayılan bir yapılandırma gönderilir; herhangi bir sorun bulursanız lütfen bir sorun bildirin .

Tavsiye

MSAL bir güvenlik kitaplığıdır. Kullanıcıların oturum açma ve hizmetlere erişme şeklini denetler. Uygun olduğunda her zaman uygulamanızda kitaplığımızın en son sürümünü kullanmanızı öneririz. Uygulamanızı güncelleştirme riskini denetleyebilmeniz için anlamsal sürüm oluşturma özelliğini kullanırız. Örneğin, her zaman en son alt sürüm numarasını (örn. x.y.x) indirmek, API yüzeyimizin değişmediği güvencesiyle en son güvenlik güncellemelerini ve özellik iyileştirmelerini almanızı sağlar. en son sürümü ve sürüm notlarını her zaman GitHub Sürümler sekmesinde görebilirsiniz.