Файл конфигурации библиотеки проверки подлинности Microsoft для Android
Библиотека аутентификации Microsoft для Android (MSAL) поставляется с файлом конфигурации JSON по умолчанию, который можно настроить для определения поведения общедоступного клиентского приложения, например используемого по умолчанию центра авторизации и т. д.
Эта статья поможет вам понять различные параметры в файле конфигурации и указать файл конфигурации для использования в приложении на основе MSAL.
Параметры конфигурации
Общие параметры
Свойство | Тип данных | Обязательное поле | Примечания. |
---|---|---|---|
client_id |
Строка | Да | Идентификатор клиента приложения на странице регистрации приложения |
redirect_uri |
Строка | Да | URI перенаправления приложения со страницы регистрации приложения |
broker_redirect_uri_registered |
Логический | No | Возможные значения: true , false |
authorities |
Список<Authority> | No | Список центров, необходимых для приложения |
authorization_user_agent |
AuthorizationAgent (enum) | No | Возможные значения: WEBVIEW , BROWSER |
http |
HttpConfiguration | No | Настройка HttpUrlConnection connect_timeout и read_timeout |
logging |
LoggingConfiguration | No | Определяет уровень ведения журнала. К дополнительным параметрам конфигурациям относятся pii_enabled , принимающие логические значения, и log_level , принимающие значения ERROR , WARNING , INFO или VERBOSE . |
client_id
Идентификатор клиента или приложения, который был создан при регистрации приложения.
redirect_uri
URI перенаправления, зарегистрированный при регистрации приложения. Если URI перенаправления относится к приложению брокера, обратитесь к разделу URI перенаправления для общедоступных клиентских приложений, чтобы убедиться, что вы используете правильный формат URI перенаправления для приложения брокера.
broker_redirect_uri_registered
Чтобы использовать проверку подлинности через брокер, свойство broker_redirect_uri_registered
должно иметь значение true
. Если в сценарии проверки подлинности через брокер приложение не имеет правильного формата для взаимодействия с брокером, как описано в статье URI перенаправления для общедоступных клиентских приложений, то приложение проверяет URI перенаправления и активирует исключение при запуске.
authorities
Список известных и заслуживающих доверия центров. Помимо перечисленных здесь центров, MSAL также запрашивает у корпорации Майкрософт список облаков и центров, известных корпорации Майкрософт. В этом списке центров укажите тип центра и любые дополнительные параметры, такие как "audience"
, которые должны быть согласованы с аудиторией приложения на основе регистрации приложения. Ниже представлен пример списка центров.
// 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"
}
}
Сопоставление центра Записи Майкрософт и аудитории с платформа удостоверений Майкрософт конечными точками
Тип | Аудитория | Идентификатор клиента | Authority_Url | Результирующая конечная точка | Примечания. |
---|---|---|---|---|---|
Microsoft Entra ID | AzureADandPersonalMicrosoftAccount | https://login.microsoftonline.com/common |
common — псевдоним клиента, в котором находится учетная запись. Например, определенный клиент Microsoft Entra или система учетных записей Майкрософт. |
||
Microsoft Entra ID | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Только учетные записи, имеющиеся в contoso.com, могут получить токен. В качестве идентификатора клиента может использоваться любой проверенный домен или идентификатор GUID клиента. | |
Microsoft Entra ID | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
С этой конечной точкой можно использовать только учетные записи Microsoft Entra. Учетные записи Майкрософт могут быть членами организаций. Чтобы получить токен с помощью учетной записи Майкрософт для ресурса в организации, укажите арендатор организации, из которого требуется получить токен. | ||
Microsoft Entra ID | PersonalMicrosoftAccount | https://login.microsoftonline.com/consumers |
Эту конечную точку могут использовать только учетные записи Майкрософт. | ||
B2C | См. "Результирующая конечная точка" | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Только учетные записи, имеющиеся в клиенте contoso.onmicrosoft.com, могут получить токен. В этом примере политика B2C является частью пути URL-адреса центра. |
Примечание.
Проверка центра не может быть включена и отключена в MSAL.
Центры сертификации известны вам как разработчику, как указано в конфигурации, либо известны корпорации Майкрософт через метаданные.
Если MSAL получает запрос токена для неизвестного центра сертификации, происходит возврат MsalClientException
с результатом типа UnknownAuthority
.
Проверка подлинности через посредника не работает для Azure AD B2C.
Свойства полномочий
Свойство | Тип данных | Обязательное поле | Примечания. |
---|---|---|---|
type |
Строка | Да | Отражает аудиторию или тип учетной записи, для которой предназначено приложение. Возможные значения: AAD , B2C |
audience |
Object | No | Применяется только при типе = AAD . Указывает удостоверение, для которого предназначено приложение. Использовать значение из регистрации приложения |
authority_url |
Строка | Да | Требуется только при типе = B2C . Необязательно для type=AAD . Указывает URL-адрес центра или политику, которые должно использовать приложение |
default |
boolean | Да | Если указаны один или несколько центров сертификации, необходимо указать один из них "default":true . |
Свойства аудитории
Свойство | Тип данных | Обязательное поле | Примечания. |
---|---|---|---|
type |
Строка | Да | Указывает аудиторию, для которой нужно назначить приложение. Возможные значения: AzureADandPersonalMicrosoftAccount , PersonalMicrosoftAccount , AzureADMultipleOrgs , AzureADMyOrg |
tenant_id |
Строка | Да | Требуется только при "type":"AzureADMyOrg" . Необязательно для других значений type . Это может быть домен клиента, например contoso.com идентификатор клиента, например идентификатор клиента. aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Указывает, следует ли использовать встроенный WebView или браузер по умолчанию на устройстве при входе в учетную запись или авторизации доступа к ресурсу.
Возможные значения:
WEBVIEW
: использование внедренного веб-представления.BROWSER
: использует браузер по умолчанию на устройстве.
multiple_clouds_supported
Для клиентов, поддерживающих несколько национальных облаков, укажите true
. После этого платформа идентификаторов Microsoft автоматически перенаправляет в надлежащее национальное облако во время авторизации и активации токенов. Можно определить национальные облака учетной записи, в которой выполнен вход, изучив центр, связанный с AuthenticationResult
. Обратите внимание, что AuthenticationResult
не предоставляет адреса конечной точки ресурса национального облака, для которого запрашивается токен.
broker_redirect_uri_registered
Логическое значение, указывающее, используется ли универсальный код ресурса (URI) перенаправления в брокере Microsoft Identity. Задайте значение false
, если не хотите использовать брокер в приложении.
Если вы используете центр записи Майкрософт с аудиторией, для этого "MicrosoftPersonalAccount"
не будет использоваться брокер.
HTTP
Настройте глобальные параметры для времени ожидания HTTP, например:
Свойство | Тип данных | Обязательное поле | Примечания. |
---|---|---|---|
connect_timeout |
INT | No | Время в миллисекундах |
read_timeout |
INT | No | Время в миллисекундах |
Ведение журналов
Для ведения журнала используются следующие глобальные параметры:
Свойство | Тип данных | Обязательное поле | Примечания. |
---|---|---|---|
pii_enabled |
boolean | No | Следует ли выводить персональные данные |
log_level |
строка | Нет | Журнал вывода сообщений. Поддерживаемые уровни ведения журнала: ERROR , WARNING , INFO и VERBOSE . |
logcat_enabled |
boolean | No | Нужен ли вывод logcat в дополнение к интерфейсу ведения журнала |
account_mode
Указывает, сколько учетных записей может использоваться в приложении за один раз. Возможны следующие значения:
MULTIPLE
(по умолчанию)SINGLE
Создание PublicClientApplication
с использованием режима учетной записи, который не соответствует этому параметру, приведет к исключению.
Дополнительные сведения о различиях между одной и несколькими учетными записями см. в разделе Приложения для одной и нескольких учетных записей.
browser_safelist
Список разрешенных браузеров, совместимых с MSAL. Эти браузеры правильно обрабатывают перенаправления на объекты, намеченные пользователем. Можно дополнять этот список. Значение по умолчанию указывается в конфигурации по умолчанию, показанной ниже. ``
Файл конфигурации MSAL по умолчанию
Ниже приведена конфигурация MSAL по умолчанию, входящая в состав MSAL. Можно видеть последнюю версию на сайте GitHub.
Эта конфигурация дополняется предоставленными значениями. Предоставленные значения переопределяют параметры по умолчанию.
{
"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
}
]
}
Пример использования основной конфигурации
В следующем примере показана базовая конфигурация, в которой указывается идентификатор клиента, URI перенаправления, зарегистрировано ли перенаправление брокера, а также список центров.
{
"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
}
]
}
Как использовать файл конфигурации
Создание файла конфигурации Рекомендуется создать пользовательский файл конфигурации в
res/raw/auth_config.json
. Но вы можете разместить его в любом месте.Укажите MSAL, где следует искать конфигурацию при создании
PublicClientApplication
. Например://On Worker Thread IMultipleAccountPublicClientApplication sampleApp = null; sampleApp = new PublicClientApplication.createMultipleAccountPublicClientApplication(getApplicationContext(), R.raw.auth_config);