Я пытаюсь получить доступ к озеру данных из клиентского приложения .Net, используя этот пример
Я зарегистрировал клиентское приложение в AAD Tenant и оттуда использую идентификатор клиента и секрет клиента (как я полагаю, это аутентификация между сервисами.)
Озеро данных находится в другой подписке, но принадлежит тому же Арендатору / AAD
Приложение имеет разрешение на чтение / запись / выполнение в разделах «Владелец» и «Назначенные разрешения»
для конкретной папки (две иерархии вниз по корневой папке) в datalake. Родительские папки до корня имеют разрешения «Выполнить» как , упомянутые здесь . Общий уровень доступа в «Access Control (IAM)» для приложения - «Reader»
Я получаю следующую ошибку, которая, как мне кажется, означает, что я могу пройти проверку подлинности, но у меня недостаточно прав для чтения / чтения:
Microsoft.Azure.DataLake.Store.AdlsException: Error opening a Read Stream for file something/something/something.txt
Operation: GETFILESTATUS failed with HttpStatus:Forbidden RemoteException: AccessControlException GETFILESTATUS failed with
error 0x83090aa2 (Forbidden. ACL verification failed. Either the resource does not exist or the user is not authorized to
perform the requested operation.).
[***][***] JavaClassName: org.apache.hadoop.security.AccessControlException.
Last encountered exception thrown after 1 tries. [Forbidden: AccessControlException]
[ServerRequestId:***]
Я не понимаю, какие еще разрешения отсутствуют?
Должен ли я использовать принципы обслуживания здесь? Если так, как я могу проверить, каков доступ к принципалу службы моего приложения на этом озере данных.
Спасибо.