Аутентификация AngularJS adal в хранилище BLOB-объектов Azure - PullRequest
0 голосов
/ 28 августа 2018

У меня есть проект angularJS. Я включил в свои сценарии azure-blob-storage.js и могу получить доступ с использованием SAS, но не аутентификации AD.

Я добавил разрешения API хранилища Azure для регистрации приложения AD и назначил роли «Читатель приложения» и «Участник» для учетной записи хранения.

adalAuthenticationService.acquireToken({clientId},
        function(error, token) {
          // Handle ADAL Error
          if (error || !token) {
            return;
          }
        }).then(function (token) {
var tokenCredential = new AzureStorage.Blob.TokenCredential(token);
var blobService = AzureStorage.Blob.createBlobServiceWithTokenCredential({myStorageAccountURI}, tokenCredential);

Я получаю следующую ошибку:

<Error><Code>AuthenticationFailed</Code><Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature....</Message>
<AuthenticationErrorDetail>Audience validation failed. Audience did not match.</AuthenticationErrorDetail></Error>

1 Ответ

0 голосов
/ 28 августа 2018

Ошибка Audience validation failed. Audience did not match. означает, что аудитория токена (= предполагаемый получатель) неверна. Скорее всего, вы получаете токен для своего приложения с идентификатором клиента. Вам нужно переключить его на https://storage.azure.com/ при вызове acquToken ().

А также, как вы узнали, ваш пользователь должен иметь права на чтение / запись для больших двоичных объектов :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...