Ошибка «Предоставленная авторизация неизвестна» в библиотеке MSAL Android версии 5.1.0 и выше

Вопрос или проблема

На версии библиотеки 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." указывает на то, что библиотека не распознает указанный вами авторитет.

Возможные причины проблемы

  1. Неправильный формат конфигурации: Ваша конфигурация имеет некоторые поля, которые могут быть неполными, такими как authority_url, которое должно содержать корректный URL. Для B2C аутентификации необходимо указать полный путь, который, как правило, выглядит следующим образом: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy-name>/v2.0/.

  2. Несоответствие версии: Изменение версии библиотеки может привести к тому, что некоторые функции или конфигурации больше не работают. Сравните вашу конфигурацию с официальной документацией к версии MSAL v5.7.0, чтобы убедиться, что все необходимые параметры указаны.

  3. обновление зависимостей: Возможно, вам нужно обновить другие зависимости вашего проекта, чтобы они были совместимы с новой версией MSAL. Это включает обновление библиотек Jetpack и других компонентов, которые могут оказывать влияние на аутентификацию.

Решение проблемы

Чтобы исправить данную ошибку, выполните следующие шаги:

  1. Проверьте конфигурацию:

    • Убедитесь, что у вас правильно указан 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
       }
      ]
  2. Обновите зависимости:

    • Убедитесь, что вы используете последние версии всех зависимостей, включая Android Gradle Plugin. Проверьте файл build.gradle на наличие актуальных версий.
  3. Тестируйте на новой версии:

    • После внесения изменений протестируйте аутентификацию на версии библиотеки 5.7.0. Если у вас все еще возникают проблемы, проверьте логи для получения более детальной информации о том, что именно может быть не так.
  4. Смотрите на условия использования MSAL:

    • Ознакомьтесь с последними изменениями в документации по MSAL, чтобы понять более детально, что изменилось в условиях использования.

Заключительное слово

Эти шаги помогут вам решить проблему с ошибкой "Provided authority is not known" при использовании версии MSAL Android 5.1.0 и выше. Регулярно проверяйте документацию и изменения для библиотек, которые вы используете, так как они могут открывать новые возможности и улучшения, помимо исправления ошибок и повышения безопасности. Если проблема не устраняется, рассмотрите возможность обращения в службу технической поддержки Microsoft или к сообществу разработчиков для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...