Невозможно получить доступ к файловой системе 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'] как область.

Другие вопросы по тегам