Нашей системе необходим доступ к ресурсам в Azure
, и поэтому в нашем текущем коде аутентификации у нас есть поддержка ADAL
, которая хорошо подходит для этой цели.
Теперь, когда MSAL
заменяет ADAL
мы хотели бы предварительно добавить поддержку для него. Сейчас мы создаем функцию, которая генерирует oauth2
access_token
, используя MSAL
вместо ADAL
.
Мы следовали руководству по миграции , но есть одна проблема, которая мы не находим ответ на вопрос.
При использовании ADAL
мы предоставляем resource_id
, содержащий идентификатор, который идентифицирует систему, о которой мы говорим. Обычно это resource_id
было скопировано с портала Azure.
В MSAL
нет resource_id
, вместо этого мы должны использовать список scopes
. Если мы наивно используем существующую resource_id
в качестве такой области видимости:
resource_id = "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX"
scopes = [ resource_id ]
Мы получим следующую ошибку:
Error fetching MSAL token (invalid_scope):
AADSTS70011: The provided request must include a 'scope' input parameter.
The provided value for the input parameter 'scope' is not valid.
The scope XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX is not valid.
E Trace ID: XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX
E Correlation ID: XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX
E Timestamp: 2020-03-05 09:36:03Z
Итак, вопрос в том, что такое правильный способ подготовки идентификатора ресурса в форме XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX в допустимую область для MSAL
?
РЕДАКТИРОВАТЬ : Ответ на этот Вопрос был протестирован и использован в небольшом пакете Python для упрощения аутентификации с помощью Azure с использованием запросов под названием reports_ms_auth , которые также доступны в виде пакета pypi .