Невозможно получить доступ к файловой системе Azure Data Lake Gen2 с помощью Angular с помощью azure-sdk-for-js
Я разрабатываю приложение с Angular 8 и пытаюсь подключиться к файловой системе Azure Data Lake Gen 2 через его REST API, чтобы иметь возможность получать список папок, а также выполнять импорт файлов.
Для аутентификации я использую библиотеку msal-angular, которая позволяет мне получать токен идентификатора черезloginPopup
функция и токен доступа черезacquireTokenSilent
функция.
Я использую эту схему в качестве руководства: поток подключения AD
Объем: ['user.read','api://<uuid>/user_impersonation']
. области API
Затем я использую библиотеку storage-datalake, чтобы попытаться получить информацию из моего озера данных. Поэтому я использую токен доступа моего зарегистрированного пользователя, чтобы создатьDataLakeStorageClient
с TokenCredentials
. Затем я пытаюсь восстановить список папок в одной из моих файловых систем.
Я получаю такую ошибку: 401 (Server failed to authenticate the request. Please refer to the information in the www-authenticate header.)
.
Ты хоть представляешь, откуда могла взяться моя проблема?
У моего пользователя есть следующие роли:
- Автор
- Участник данных BLOB-объектов хранилища
Разрешения API: разрешения API
Когда я использую аутентификацию КОНЕЧНОГО ПОЛЬЗОВАТЕЛЯ без олицетворения пользователя (в качестве субъекта-службы), я могу получить доступ к своей файловой системе...
Спасибо заранее за вашу помощь.
1 ответ
Неправильный объем. Вы не можете использовать два вида ресурсов в области.user.read
это для https://graph.microsoft.com
ресурс. api://<uuid>/user_impersonation
для вашего собственного ресурса.
Вы можете попробовать ['https://datalake.azure.net/.default']
как область.