Android Microsoft Kimlik Doğrulama Kitaplığı yapılandırma dosyası

Android Microsoft Authentication Library (MSAL), genel istemci uygulamanızın varsayılan yetkili, hangi yetkilileri kullanacağınız gibi işlemler için davranışını tanımlamak üzere özelleştirdiğiniz bir varsayılan yapılandırma JSON dosyası ile birlikte sunulur.

Bu makale, yapılandırma dosyasındaki çeşitli ayarları ve MSAL tabanlı uygulamanızda kullanılacak yapılandırma dosyasının nasıl belirtileceğini anlamanıza yardımcı olur.

Yapılandırma ayarları

Genel ayarlar

Özellik Veri Türü Zorunlu Notlar
client_id String Yes Uygulama kaydı sayfasından uygulamanızın İstemci Kimliği
redirect_uri String Yes Uygulama kaydı sayfasından uygulamanızın Yeniden Yönlendirme URI'sini
broker_redirect_uri_registered Boolean Hayır Olası değerler: true, false
authorities Liste<Yetkilisi> Hayır Uygulamanızın ihtiyaç duyduğu yetkililerin listesi
authorization_user_agent AuthorizationAgent (numaralandırma) Hayır Olası değerler: WEBVIEW, BROWSER
http HttpConfiguration Hayır yapılandırma HttpUrlConnectionconnect_timeout ve read_timeout
logging LoggingConfiguration Hayır Günlük ayrıntılarının düzeyini belirtir. İsteğe bağlı yapılandırmalar şunlardır: pii_enabledboole değeri alan ve log_level, , WARNINGINFOveya VERBOSEalan ERROR.

client_id

Uygulamanızı kaydettiğinizde oluşturulan istemci kimliği veya uygulama kimliği.

redirect_uri

Uygulamanızı kaydettiğinizde kaydettiğiniz yeniden yönlendirme URI'si. Yeniden yönlendirme URI'si bir aracı uygulamasıysa, aracı uygulamanız için doğru yeniden yönlendirme URI'sini kullandığınızdan emin olmak için genel istemci uygulamaları için Yeniden Yönlendirme URI'sine bakın.

broker_redirect_uri_registered

Aracılı kimlik doğrulaması kullanmak istiyorsanız özelliği broker_redirect_uri_registered olarak trueayarlanmalıdır. Aracılı kimlik doğrulama senaryosunda, uygulama ortak istemci uygulamaları için Yeniden Yönlendirme URI'sinde açıklandığı gibi aracıyla konuşmak için doğru biçimde değilse, uygulama yeniden yönlendirme URI'nizi doğrular ve başlatıldığında bir özel durum oluşturur.

Yetkili

Sizin tarafınızdan bilinen ve güvenilen yetkililerin listesi. Burada listelenen yetkililere ek olarak MSAL, Microsoft tarafından bilinen bulutların ve yetkililerin listesini almak için Microsoft'u da sorgular. Bu yetkili listesinde, yetkilinin türünü ve gibi "audience"ek isteğe bağlı parametreleri belirtin. Bu parametreler, uygulamanızın kaydına göre uygulamanızın hedef kitlesiyle uyumlu olmalıdır. Aşağıda örnek bir yetkili listesi verilmiştir:

// Example AzureAD and Personal Microsoft Account
{
    "type": "AAD",
    "audience": {
        "type": "AzureADandPersonalMicrosoftAccount"
    },
    "default": true // Indicates that this is the default to use if not provided as part of the acquireToken call
},
// Example AzureAD My Organization
{
    "type": "AAD",
    "audience": {
        "type": "AzureADMyOrg",
        "tenant_id": "contoso.com" // Provide your specific tenant ID here
    }
},
// Example AzureAD Multiple Organizations
{
    "type": "AAD",
    "audience": {
        "type": "AzureADMultipleOrgs"
    }
},
//Example PersonalMicrosoftAccount
{
    "type": "AAD",
    "audience": {
        "type": "PersonalMicrosoftAccount"
    }
}

Microsoft Entra yetkilisini ve hedef kitlesini Microsoft kimlik platformu uç noktalarına eşleme

Tür Hedef Kitle Kiracı kimliği Authority_Url Sonuçta elde edilen Uç Nokta Notlar
Microsoft Entra Kimlik AzureADandPersonalMicrosoftAccount https://login.microsoftonline.com/common common hesabın bulunduğu yerin kiracı diğer adıdır. Belirli bir Microsoft Entra kiracısı veya Microsoft hesap sistemi gibi.
Microsoft Entra Kimlik AzureADMyOrg contoso.com https://login.microsoftonline.com/contoso.com Yalnızca contoso.com'de bulunan hesaplar belirteç alabilir. Doğrulanmış herhangi bir etki alanı veya kiracı GUID'si, kiracı kimliği olarak kullanılabilir.
Microsoft Entra Kimlik AzureADMultipleOrgs https://login.microsoftonline.com/organizations Bu uç noktayla yalnızca Microsoft Entra hesapları kullanılabilir. Microsoft hesapları kuruluşların üyesi olabilir. Kuruluştaki bir kaynak için Microsoft hesabı kullanarak belirteç almak için belirteci istediğiniz kuruluş kiracısını belirtin.
Microsoft Entra Kimlik PersonalMicrosoftAccount https://login.microsoftonline.com/consumers Bu uç noktayı yalnızca Microsoft hesapları kullanabilir.
B2C Bkz. Sonuç Uç Noktası https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ Yalnızca contoso.onmicrosoft.com kiracısında bulunan hesaplar belirteç alabilir. Bu örnekte B2C ilkesi, Yetkili URL yolunun bir parçasıdır.

Not

MSAL'de yetkili doğrulaması etkinleştirilemez ve devre dışı bırakılamaz. Yetkililer, yapılandırma aracılığıyla belirtilen geliştirici olarak sizin adınıza veya meta veriler aracılığıyla Microsoft tarafından bilinir. MSAL bilinmeyen bir yetkiliye belirteç isteği alırsa, türünden UnknownAuthority bir MsalClientException sonuç elde eder. Aracılı kimlik doğrulaması Azure AD B2C için çalışmaz.

Yetkili özellikleri

Özellik Veri türü Zorunlu Notlar
type String Yes Uygulamanızın hedef kitlesini veya hesap türünü yansıtır. Olası değerler: AAD, B2C
audience Object Hayır Yalnızca type=AAD olduğunda geçerlidir. Uygulamanızın hedefledikleri kimliği belirtir. Uygulama kaydınızdaki değeri kullanın
authority_url String Yes Yalnızca type=B2C olduğunda gereklidir. type=AADiçin isteğe bağlı. Uygulamanızın kullanması gereken yetkili URL'sini veya ilkesini belirtir
default boolean Yes Bir veya daha fazla yetkili belirtildiğinde tek "default":true bir tane gerekir.

İzleyici Özellikleri

Özellik Veri Türü Zorunlu Notlar
type String Yes Uygulamanızın hedeflemek istediği hedef kitleyi belirtir. Olası değerler: AzureADandPersonalMicrosoftAccount, PersonalMicrosoftAccount, AzureADMultipleOrgs, AzureADMyOrg
tenant_id String Yes Yalnızca olduğunda gereklidir "type":"AzureADMyOrg". Diğer type değerler için isteğe bağlı. Bu, gibi contoso.combir kiracı etki alanı veya gibi bir kiracı kimliği olabilir 00001111-aaaa-2222-bbbb-3333cccc4444

authorization_user_agent

Bir hesapta oturum açarken veya bir kaynağa erişim yetkisi verirken ekli web görünümü mü yoksa cihazda varsayılan tarayıcı mı kullanılacağını gösterir.

Olası değerler:

  • WEBVIEW: Eklenmiş web görünümünü kullanın.
  • BROWSER: Cihazdaki varsayılan tarayıcıyı kullanır.

multiple_clouds_supported

Birden çok ulusal bulutu destekleyen istemciler için belirtin true. Microsoft kimlik platformu yetkilendirme ve belirteç kullanım sırasında otomatik olarak doğru ulusal buluta yönlendirilir. ile ilişkili yetkiliyi inceleyerek oturum açmış hesabın ulusal bulutunu AuthenticationResultbelirleyebilirsiniz. belirteci AuthenticationResult istediğiniz kaynağın ulusal buluta özgü uç nokta adresini sağlamadığını unutmayın.

broker_redirect_uri_registered

Microsoft Kimlik aracısı uyumlu bir aracı içi yeniden yönlendirme URI'sini kullanıp kullanmadığınızı gösteren boole değeri. Aracıyı false uygulamanızda kullanmak istemiyorsanız olarak ayarlayın.

Hedef Kitle olarak ayarlanmış "MicrosoftPersonalAccount"Microsoft Entra Authority kullanıyorsanız aracı kullanılmaz.

http

HTTP zaman aşımları için genel ayarları yapılandırın, örneğin:

Özellik Veri türü Zorunlu Notlar
connect_timeout int Hayır Milisaniye cinsinden süre
read_timeout int Hayır Milisaniye cinsinden süre

günlüğe kaydetme

Günlüğe kaydetme için aşağıdaki genel ayarlar şunlardır:

Özellik Veri Türü Zorunlu Notlar
pii_enabled boolean Hayır Kişisel verilerin yayılıp yayılmayacağı
log_level Dize Hayır Hangi günlük iletilerinin çıkışı. Desteklenen günlük düzeyleri ,WARNINGINFO ve VERBOSE'tirERROR.
logcat_enabled boolean Hayır Günlük arabirimine ek olarak günlük kedisine çıkış yapılıp yapılmayacağını

account_mode

Uygulamanızda aynı anda kaç hesabın kullanılabileceğini belirtir. Olası değerler:

  • MULTIPLE (Varsayılan)
  • SINGLE

Bu ayarla eşleşmeyen bir hesap modu kullanarak oluşturma PublicClientApplication bir özel durumla sonuçlanır.

Tek ve birden çok hesap arasındaki farklar hakkında daha fazla bilgi için bkz . Tek ve birden çok hesap uygulaması.

browser_safelist

MSAL ile uyumlu tarayıcıların izin verme listesi. Bu tarayıcılar özel amaçlara yönlendirmeleri doğru şekilde işler. Bu listeye ekleyebilirsiniz. Varsayılan, aşağıda gösterilen varsayılan yapılandırmada sağlanır. ``

Varsayılan MSAL yapılandırma dosyası

MSAL ile birlikte gelen varsayılan MSAL yapılandırması aşağıda gösterilmiştir. GitHub'da en son sürümü görebilirsiniz.

Bu yapılandırma, sağladığınız değerlerle tamamlanır. Sağladığınız değerler varsayılan değerleri geçersiz kılar.

{
  "authorities": [
    {
      "type": "AAD",
      "audience": {
        "type": "AzureADandPersonalMicrosoftAccount"
      },
      "default": true
    }
  ],
  "authorization_user_agent": "DEFAULT",
  "multiple_clouds_supported": false,
  "broker_redirect_uri_registered": false,
  "http": {
    "connect_timeout": 10000,
    "read_timeout": 30000
  },
  "logging": {
    "pii_enabled": false,
    "log_level": "WARNING",
    "logcat_enabled": false
  },
  "shared_device_mode_supported": false,
  "account_mode": "MULTIPLE",
  "browser_safelist": [
    {
      "browser_package_name": "com.android.chrome",
      "browser_signature_hashes": [
        "7fmduHKTdHHrlMvldlEqAIlSfii1tl35bxj1OXN5Ve8c4lU6URVu4xtSHc3BVZxS6WWJnxMDhIfQN0N0K2NDJg=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "45"
    },
    {
      "browser_package_name": "com.android.chrome",
      "browser_signature_hashes": [
        "7fmduHKTdHHrlMvldlEqAIlSfii1tl35bxj1OXN5Ve8c4lU6URVu4xtSHc3BVZxS6WWJnxMDhIfQN0N0K2NDJg=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "org.mozilla.firefox",
      "browser_signature_hashes": [
        "2gCe6pR_AO_Q2Vu8Iep-4AsiKNnUHQxu0FaDHO_qa178GByKybdT_BuE8_dYk99G5Uvx_gdONXAOO2EaXidpVQ=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "org.mozilla.firefox",
      "browser_signature_hashes": [
        "2gCe6pR_AO_Q2Vu8Iep-4AsiKNnUHQxu0FaDHO_qa178GByKybdT_BuE8_dYk99G5Uvx_gdONXAOO2EaXidpVQ=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "57"
    },
    {
      "browser_package_name": "com.sec.android.app.sbrowser",
      "browser_signature_hashes": [
        "ABi2fbt8vkzj7SJ8aD5jc4xJFTDFntdkMrYXL3itsvqY1QIw-dZozdop5rgKNxjbrQAd5nntAGpgh9w84O1Xgg=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "4.0"
    },
    {
      "browser_package_name": "com.sec.android.app.sbrowser",
      "browser_signature_hashes": [
        "ABi2fbt8vkzj7SJ8aD5jc4xJFTDFntdkMrYXL3itsvqY1QIw-dZozdop5rgKNxjbrQAd5nntAGpgh9w84O1Xgg=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.cloudmosa.puffinFree",
      "browser_signature_hashes": [
        "1WqG8SoK2WvE4NTYgr2550TRhjhxT-7DWxu6C_o6GrOLK6xzG67Hq7GCGDjkAFRCOChlo2XUUglLRAYu3Mn8Ag=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.duckduckgo.mobile.android",
      "browser_signature_hashes": [
        "S5Av4cfEycCvIvKPpKGjyCuAE5gZ8y60-knFfGkAEIZWPr9lU5kA7iOAlSZxaJei08s0ruDvuEzFYlmH-jAi4Q=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.explore.web.browser",
      "browser_signature_hashes": [
        "BzDzBVSAwah8f_A0MYJCPOkt0eb7WcIEw6Udn7VLcizjoU3wxAzVisCm6bW7uTs4WpMfBEJYf0nDgzTYvYHCag=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.ksmobile.cb",
      "browser_signature_hashes": [
        "lFDYx1Rwc7_XUn4KlfQk2klXLufRyuGHLa3a7rNjqQMkMaxZueQfxukVTvA7yKKp3Md3XUeeDSWGIZcRy7nouw=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.microsoft.emmx",
      "browser_signature_hashes": [
        "Ivy-Rk6ztai_IudfbyUrSHugzRqAtHWslFvHT0PTvLMsEKLUIgv7ZZbVxygWy_M5mOPpfjZrd3vOx3t-cA6fVQ=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.opera.browser",
      "browser_signature_hashes": [
        "FIJ3IIeqB7V0qHpRNEpYNkhEGA_eJaf7ntca-Oa_6Feev3UkgnpguTNV31JdAmpEFPGNPo0RHqdlU0k-3jWJWw=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "com.opera.mini.native",
      "browser_signature_hashes": [
        "TOTyHs086iGIEdxrX_24aAewTZxV7Wbi6niS2ZrpPhLkjuZPAh1c3NQ_U4Lx1KdgyhQE4BiS36MIfP6LbmmUYQ=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "mobi.mgeek.TunnyBrowser",
      "browser_signature_hashes": [
        "RMVoXuK1sfJZuGZ8onG1yhMc-sKiAV2NiB_GZfdNlN8XJ78XEE2wPM6LnQiyltF25GkHiPN2iKQiGwaO2bkyyQ=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "org.mozilla.focus",
      "browser_signature_hashes": [
        "L72dT-stFqomSY7sYySrgBJ3VYKbipMZapmUXfTZNqOzN_dekT5wdBACJkpz0C6P0yx5EmZ5IciI93Q0hq0oYA=="
      ],
      "browser_use_customTab" : false
    }
  ]
}

Örnek temel yapılandırma

Aşağıdaki örnekte istemci kimliğini, yeniden yönlendirme URI'sini, aracı yeniden yönlendirmesinin kayıtlı olup olmadığını ve bir yetkili listesini belirten temel bir yapılandırma gösterilmektedir.

{
  "client_id" : "00001111-aaaa-2222-bbbb-3333cccc4444",
  "redirect_uri" : "msauth://com.microsoft.identity.client.sample.local/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",
  "broker_redirect_uri_registered": true,
  "authorities" : [
    {
      "type": "AAD",
      "audience": {
        "type": "AzureADandPersonalMicrosoftAccount"
      }
      "default": true
    }
  ]
}

Yapılandırma dosyası kullanma

  1. Yapılandırma dosyası oluşturun. özel yapılandırma dosyanızı içinde res/raw/auth_config.jsonoluşturmanızı öneririz. Ama istediğiniz yere koyabilirsiniz.

  2. oluştururken MSAL'ye yapılandırmanızı nerede arayabileceğinizi PublicClientApplicationsöyleyin. Örnek:

    //On Worker Thread
    IMultipleAccountPublicClientApplication sampleApp = null; 
    sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);