Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Android Microsoft Authentication Library (MSAL) поставляется с JSON-файлом конфигурации по умолчанию, который вы настраиваете для определения поведения общедоступного клиентского приложения для таких вещей, как центр по умолчанию, который вы будете использовать, и т. д.
В этой статье вы узнаете о различных параметрах в файле конфигурации и о том, как указать файл конфигурации, используемый в приложении на основе MSAL.
Параметры конфигурации
Общие параметры
| Property | Тип данных | Обязательный | Notes |
|---|---|---|---|
client_id |
String | Yes | Идентификатор клиента приложения на странице регистрации приложения |
redirect_uri |
String | Yes | URI перенаправления приложения на странице регистрации приложения |
broker_redirect_uri_registered |
Boolean | Нет | Возможные значения: true, false |
authorities |
Центр списка<> | Нет | Список необходимых приложений центрам |
authorization_user_agent |
AuthorizationAgent (перечисление) | Нет | Возможные значения: DEFAULT, BROWSERWEBVIEW |
http |
HttpConfiguration | Нет | Настройка HttpUrlConnectionconnect_timeout и read_timeout |
logging |
Ведение журналаКонфигурация | Нет | Задает уровень сведений о ведении журнала. Необязательные конфигурации включают: pii_enabledкоторый принимает логическое значение и log_level, который принимает ERROR, WARNINGINFOили VERBOSE. |
client_id
Идентификатор клиента или идентификатор приложения, созданный при регистрации приложения.
redirect_uri (URI перенаправления)
URI перенаправления, зарегистрированный при регистрации приложения. Если URI перенаправления относится к приложению брокера, обратитесь к URI перенаправления для общедоступных клиентских приложений , чтобы убедиться, что для приложения брокера используется правильный формат URI перенаправления.
broker_redirect_uri_registered
Если вы хотите использовать проверку подлинности с брокером, broker_redirect_uri_registered свойство должно иметь значение true. Если приложение не имеет правильного формата для взаимодействия с брокером, как описано в URI перенаправления для общедоступных клиентских приложений, приложение проверяет URI перенаправления и создает исключение при запуске.
authorities
Список известных и доверенных вами органов. Помимо перечисленных здесь властей MSAL также запрашивает Microsoft получить список облаков и властей, известных Microsoft. В этом списке органов укажите тип центра и дополнительные дополнительные параметры, такие как, которые "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"
}
}
Сопоставление Microsoft Entra центра и аудитории с платформа удостоверений Майкрософт конечными точками
| Type | Аудитория | Идентификатор арендатора | Authority_Url | Результирующая конечная точка | Notes |
|---|---|---|---|---|---|
| Майкрософт Ентра айди | AzureADandPersonalMicrosoftAccount | https://login.microsoftonline.com/common |
common — это псевдоним клиента, для которого находится учетная запись. Например, определенный клиент Microsoft Entra или система учетная запись Майкрософт. |
||
| Майкрософт Ентра айди | AzureADMyOrg | contoso.com | https://login.microsoftonline.com/contoso.com |
Только учетные записи, присутствующих в contoso.com, могут получить маркер. Любой проверенный домен или GUID клиента может использоваться в качестве идентификатора клиента. | |
| Майкрософт Ентра айди | AzureADMultipleOrgs | https://login.microsoftonline.com/organizations |
С этой конечной точкой можно использовать только Microsoft Entra учетные записи. Microsoft учетные записи могут быть членами организаций. Чтобы получить маркер с помощью учетная запись Майкрософт для ресурса в организации, укажите клиент организации, из которого требуется маркер. | ||
| Майкрософт Ентра айди | Личная учетная запись Майкрософт | https://login.microsoftonline.com/consumers |
Только Microsoft учетные записи могут использовать эту конечную точку. | ||
| B2C (бизнес для потребителя) | Просмотр результирующей конечной точки | https://login.microsoftonline.com/tfp/contoso.onmicrosoft.com/B2C_1_SISOPolicy/ |
Только учетные записи, присутствующих в клиенте contoso.onmicrosoft.com, могут получить токен. В этом примере политика B2C входит в путь URL-адреса центра. |
Note
Проверка центра не может быть включена и отключена в MSAL.
Власти либо известны вам как разработчик, как указано с помощью конфигурации, либо известны Microsoft через метаданные.
Если MSAL получает запрос маркера неизвестному центру, MsalClientException результаты типа UnknownAuthority .
Проверка подлинности с помощью брокера не работает для Azure AD B2C.
Свойства центра
| Property | Тип данных | Обязательный | Notes |
|---|---|---|---|
type |
String | Yes | Зеркально отражает аудиторию или тип учетной записи для целевых объектов приложения. Возможные значения: AAD, B2C |
audience |
Object | Нет | Применяется только при использовании type=AAD. Указывает удостоверение, которое предназначено для приложения. Использование значения из регистрации приложения |
authority_url |
String | Yes | Требуется только в том случае, если тип=B2C. Необязательно для type=AAD. Указывает URL-адрес центра или политику, которые должно использовать ваше приложение. |
default |
boolean | Yes | Один "default":true требуется при указании одного или нескольких центров. |
Свойства аудитории
| Property | Тип данных | Обязательный | Notes |
|---|---|---|---|
type |
String | Yes | Указывает аудиторию, для целевой аудитории приложения. Возможные значения: AzureADandPersonalMicrosoftAccount, , PersonalMicrosoftAccountAzureADMultipleOrgsAzureADMyOrg |
tenant_id |
String | Yes | Требуется только в том случае, если "type":"AzureADMyOrg". Необязательно для других type значений. Это может быть домен клиента, например contoso.comидентификатор клиента, например идентификатор клиента. aaaabbbb-0000-cccc-1111-dddd2222eeee |
authorization_user_agent
Указывает, следует ли использовать внедренное веб-представление или браузер по умолчанию на устройстве при входе в учетную запись или авторизацию доступа к ресурсу.
Возможные значения:
-
DEFAULT: предпочитает системный браузер. Использует внедренное веб-представление, если браузер недоступен на устройстве. -
WEBVIEW: используйте внедренное веб-представление. -
BROWSER: использует браузер по умолчанию на устройстве.
multiple_clouds_supported
Для клиентов, поддерживающих несколько национальных облаков, укажите true. Затем платформа удостоверений Майкрософт автоматически перенаправляется в правильное национальное облако во время авторизации и активации маркера. Вы можете определить национальное облако учетной записи, вошедшего в систему, проверив полномочия, связанные с этим AuthenticationResult. Обратите внимание, что AuthenticationResult не предоставляет адрес конечной точки для конкретной облачной среды ресурса, для которого запрашивается маркер.
broker_redirect_uri_registered
Логическое значение, указывающее, используется ли брокер удостоверений Microsoft, совместимый с URI перенаправления в брокере.
false Установите значение, если вы не хотите использовать брокер в приложении.
Если вы используете центр Microsoft Entra с набором "MicrosoftPersonalAccount"аудиторий, брокер не будет использоваться.
HTTP
Настройте глобальные параметры для времени ожидания HTTP, например:
| Property | Тип данных | Обязательный | Notes |
|---|---|---|---|
connect_timeout |
int | Нет | Время в миллисекундах |
read_timeout |
int | Нет | Время в миллисекундах |
лесозаготовка
Для ведения журнала используются следующие глобальные параметры:
| Property | Тип данных | Обязательный | Notes |
|---|---|---|---|
pii_enabled |
boolean | Нет | Указывает, следует ли выдавать персональные данные |
log_level |
струна | Нет | Какие сообщения регистрируются для вывода. Поддерживаемые уровни журнала включают ERROR,INFOWARNING, и VERBOSE. |
logcat_enabled |
boolean | Нет | Вывод в журнал cat в дополнение к интерфейсу ведения журнала |
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": [
"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
}
]
}
Пример базовой конфигурации
В следующем примере показана базовая конфигурация, указывающая идентификатор клиента, 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);