Android Microsoft Authentication Library 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 varsayılan bir 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

Mülkiyet Veri Türü Zorunlu Notlar
client_id String Evet Uygulama kaydı sayfasından uygulamanızın İstemci Kimliği
redirect_uri String Evet 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: DEFAULT, BROWSER, WEBVIEW
http HttpConfiguration Hayır yapılandırma HttpUrlConnectionconnect_timeout ve read_timeout
logging LoggingConfiguration (Günlüğe Kaydetme Yapılandırması) 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.

müşteri_kimlik

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

yönlendirme_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.

authorities

Sizin tarafınızdan bilinen ve güvenilen yetkililerin listesi. MSAL, burada listelenen yetkililere ek olarak Microsoft sorgular ve Microsoft bilinen bulutların ve yetkililerin listesini alır. 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ıyla eşleme

Türü Hedef kitle Kiracı Kimliği Authority_Url Sonuçta elde edilen Uç Nokta Notlar
Microsoft Entra Kimliği Azure AD ve kişisel Microsoft hesabı 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 hesabı sistemi gibi.
Microsoft Entra Kimliği 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 Kimliği 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 kaynağın Microsoft hesabı kullanarak belirteç almak için, belirteci istediğiniz kuruluş kiracısını belirtin.
Microsoft Entra Kimliği Kişisel Microsoft Hesabı https://login.microsoftonline.com/consumers Bu uç noktayı yalnızca Microsoft hesaplar kullanabilir.
B2C (İşletmeden Tüketiciye) 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.

Note

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 bilinir veya meta veriler aracılığıyla Microsoft 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

Mülkiyet Veri türü Zorunlu Notlar
type String Evet Uygulamanızın hedef kitlesini veya hesap türünü yansıtır. Olası değerler: AAD, B2C
audience Nesne 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 Evet 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 Evet Bir veya daha fazla yetkili belirtildiğinde tek "default":true bir tane gerekir.

İzleyici Özellikleri

Mülkiyet Veri Türü Zorunlu Notlar
type String Evet Uygulamanızın hedeflemek istediği hedef kitleyi belirtir. Olası değerler: AzureADandPersonalMicrosoftAccount, PersonalMicrosoftAccount, AzureADMultipleOrgs, AzureADMyOrg
tenant_id String Evet 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 aaaabbbb-0000-cccc-1111-dddd2222eeee

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:

  • DEFAULT: Sistem tarayıcısını tercih eder. Cihazda tarayıcı yoksa eklenmiş web görünümünü kullanır.
  • 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

Aracı içi yeniden yönlendirme URI'sini uyumlu bir Microsoft Kimlik aracısı 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 Yetkilisini kullanıyorsanız aracı kullanılmaz.

http

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

Mülkiyet 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ükleme

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

Mülkiyet Veri Türü Zorunlu Notlar
pii_enabled Boolean Hayır Kişisel verilerin yayılıp yayılmayacağı
log_level String 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. en son sürümü GitHub 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": [
        "7fmdu...2NDJg=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "45"
    },
    {
      "browser_package_name": "com.android.chrome",
      "browser_signature_hashes": [
        "7fmdu...2NDJg=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "org.mozilla.firefox",
      "browser_signature_hashes": [
        "2gCe6...idpVQ=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "org.mozilla.firefox",
      "browser_signature_hashes": [
        "2gCe6...idpVQ=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "57"
    },
    {
      "browser_package_name": "com.sec.android.app.sbrowser",
      "browser_signature_hashes": [
        "ABi2f...4O1Xgg=="
      ],
      "browser_use_customTab" : true,
      "browser_version_lower_bound": "4.0"
    },
    {
      "browser_package_name": "com.sec.android.app.sbrowser",
      "browser_signature_hashes": [
        "ABi2f...O1Xgg=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.cloudmosa.puffinFree",
      "browser_signature_hashes": [
        "1WqG8...Mn8Ag=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.duckduckgo.mobile.android",
      "browser_signature_hashes": [
        "S5Av4...jAi4Q=="
      ],
      "browser_use_customTab" : false
    },
    {
      "browser_package_name": "com.explore.web.browser",
      "browser_signature_hashes": [
        "BzDzB...YHCag=="
      ],
      "browser_use_customTab" : false
    },

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

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

    {
      "browser_package_name": "com.opera.browser",
      "browser_signature_hashes": [
        "FIJ3I...jWJWw=="
      ],
      "browser_use_customTab" : false
    },

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

    {
      "browser_package_name": "mobi.mgeek.TunnyBrowser",
      "browser_signature_hashes": [
        "RMVoX...bkyyQ=="
      ],
      "browser_use_customTab" : false
    },

    {
      "browser_package_name": "org.mozilla.focus",
      "browser_signature_hashes": [
        "L72dT...q0oYA=="
      ],
      "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. Örneğin:

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