Вопрос или проблема
На версии библиотеки MSAL для Android выше 5.0.1 (Android Gradle Plugin v8.0.0 и выше) мы получаем следующую ошибку: “Предоставленный идентификатор не известен. MSAL будет делать запросы только к известным идентификаторам”.
Но на версии 5.0.1 аутентификация работает нормально (Android Gradle Plugin v7.5.1).
{
"client_id": "xyz",
"authorization_user_agent": "WEBVIEW",
"redirect_uri": "",
"account_mode": "MULTIPLE",
"broker_redirect_uri_registered": false,
"authorities": [
{
"type": "B2C",
"authority_url": "",
"default": true
}
]
}
Существуют ли какие-то конкретные процедуры или шаги, которые нужно выполнить, чтобы использовать последнюю версию библиотеки MSAL v5.7.0? Любая помощь или руководство будут очень полезны.
Ответ или решение
Ошибки, связанные с библиотекой MSAL Android версии 5.1.0 и выше, могут возникнуть по нескольким причинам, особенно в контексте изменения требований и структур конфигурации, которые были введены с обновлением Android Gradle Plugin до версии 8.0.0. В вашем случае ошибка "Provided authority is not known. MSAL will only make requests to known authorities." указывает на то, что библиотека не распознает указанный вами авторитет.
Возможные причины проблемы
-
Неправильный формат конфигурации: Ваша конфигурация имеет некоторые поля, которые могут быть неполными, такими как
authority_url
, которое должно содержать корректный URL. Для B2C аутентификации необходимо указать полный путь, который, как правило, выглядит следующим образом:https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy-name>/v2.0/
. -
Несоответствие версии: Изменение версии библиотеки может привести к тому, что некоторые функции или конфигурации больше не работают. Сравните вашу конфигурацию с официальной документацией к версии MSAL v5.7.0, чтобы убедиться, что все необходимые параметры указаны.
-
обновление зависимостей: Возможно, вам нужно обновить другие зависимости вашего проекта, чтобы они были совместимы с новой версией MSAL. Это включает обновление библиотек Jetpack и других компонентов, которые могут оказывать влияние на аутентификацию.
Решение проблемы
Чтобы исправить данную ошибку, выполните следующие шаги:
-
Проверьте конфигурацию:
- Убедитесь, что у вас правильно указан
authority_url
. Пример правильной конфигурации для B2C выглядит так:"authorities": [ { "type": "B2C", "authority_url": "https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy-name>/v2.0/", "default": true } ]
- Убедитесь, что у вас правильно указан
-
Обновите зависимости:
- Убедитесь, что вы используете последние версии всех зависимостей, включая Android Gradle Plugin. Проверьте файл
build.gradle
на наличие актуальных версий.
- Убедитесь, что вы используете последние версии всех зависимостей, включая Android Gradle Plugin. Проверьте файл
-
Тестируйте на новой версии:
- После внесения изменений протестируйте аутентификацию на версии библиотеки 5.7.0. Если у вас все еще возникают проблемы, проверьте логи для получения более детальной информации о том, что именно может быть не так.
-
Смотрите на условия использования MSAL:
- Ознакомьтесь с последними изменениями в документации по MSAL, чтобы понять более детально, что изменилось в условиях использования.
Заключительное слово
Эти шаги помогут вам решить проблему с ошибкой "Provided authority is not known" при использовании версии MSAL Android 5.1.0 и выше. Регулярно проверяйте документацию и изменения для библиотек, которые вы используете, так как они могут открывать новые возможности и улучшения, помимо исправления ошибок и повышения безопасности. Если проблема не устраняется, рассмотрите возможность обращения в службу технической поддержки Microsoft или к сообществу разработчиков для получения дополнительной помощи.