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 HttpUrlConnection connect_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_enabled boole değeri alan ve log_level , , WARNING INFO veya VERBOSE alan 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 true
ayarlanmalı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=AAD iç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.com bir 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:
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 AuthenticationResult
belirleyebilirsiniz. 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 ,WARNING INFO 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": [
"aB1cD2eF3gH4iJ5kL6-mN7oP8qR=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "45"
},
{
"browser_package_name": "com.android.chrome",
"browser_signature_hashes": [
"cD2eF3gH4iJ5kL6mN7-oP8qR9sT=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"eF3gH4iJ5kL6mN7oP8-qR9sT0uV=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "org.mozilla.firefox",
"browser_signature_hashes": [
"gH4iJ5kL6mN7oP8qR9-sT0uV1wX=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "57"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"iJ5kL6mN7oP8qR9sT0-uV1wX2yZ=="
],
"browser_use_customTab" : true,
"browser_version_lower_bound": "4.0"
},
{
"browser_package_name": "com.sec.android.app.sbrowser",
"browser_signature_hashes": [
"kL6mN7oP8qR9sT0uV1-wX2yZ3aB=="
],
"browser_use_customTab" : false
},
{
"browser_package_name": "com.cloudmosa.puffinFree",
"browser_signature_hashes": [
"mN7oP8qR9sT0uV1wX2-yZ3aB4dE="
],
"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": [
"RMVoXgjjgyjjmbj4578fcbkyyQ=="
],
"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
Yapılandırma dosyası oluşturun. özel yapılandırma dosyanızı içinde
res/raw/auth_config.json
oluşturmanızı öneririz. Ama istediğiniz yere koyabilirsiniz.oluştururken MSAL'ye yapılandırmanızı nerede arayabileceğinizi
PublicClientApplication
söyleyin. Örnek://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);