Код состояния ответа не означает успех: 401 (неавторизовано) При вызове блокчейна Azure RESTApi
Код состояния ответа не указывает на успех: 401 (неавторизовано) При вызове блокчейна Azure
Я получаю вышеуказанную ошибку при вызове Azure Blockchain RESTApi, и я проверил все разрешения и правильно получил токен доступа, но когда я звоню, чтобы получить приложения, мы получаем вышеупомянутую ошибку
2 ответа
Проблема была устранена, выполнив следующие действия:
1) Перейдите на портал Azure-> Служба приложений -> [Служба приложений] -Api
2) Перейти к блейду аутентификации / авторизации
Разрешите проверку подлинности службы приложений и выберите Разрешить анонимные запросы (без действий) и выберите Azure Active Directory в качестве поставщиков проверки подлинности. Нажмите Дополнительно -> Заполните параметры, как показано на следующем рисунке:
Идентификатор клиента совпадает с идентификатором приложения в AzureAD Регистрация приложения. Секрет клиента совпадает с ключом API, сгенерированным из раздела "Ключи" в издателе регистрации приложения AzureAD. URL-адрес https://sts.windows.net/{AZUREADTENANTID} ß Вы можно получить идентификатор клиента Azuread из списка AzureAD Properties. Разрешенные токены должны иметь следующее значение: i. [ https://%7bYOURBLOCKCHAINAPIURL-API.azurewebsites.net/.auth/login/aad/callback%5D https: // {YOURBLOCKCHAINAPIURL-API.azurewebsites.net/.auth/login/aad/callback
3) Перейдите в Azure Active Directory сейчас, перейдите в AzureAD, перейдите в раздел "Регистрация приложений" и нажмите "BlockChain API" - или имя, которое вы выбрали для регистрации приложения AzureAD, когда вы впервые настроили блокчейн:
Нажмите Настройки и нажмите Ответить URL
Добавьте туда следующие URL:
URL-адрес Blockchain Workbench (он должен быть уже там) Базовый URL-адрес API Blockchain (тот, в котором есть -API) Базовый URL-адрес API Blockchain с обратным вызовом (как указано ниже, но используйте свой собственный URL-адрес и добавьте /.auth/login/aad/ обратный вызов) URL-адрес getpostman.com/oauth2/callback будет использоваться позже для тестирования API с помощью приложения Postman (приложения, используемого для тестирования API), добавьте его, как показано ниже
4) Сохраните настройки и перейдите в манифест (рядом с настройками в свойствах приложения API-интерфейса Blockchain).
Установите для записи манифеста oauth2allowimplicitflow значение True Save Configuration.
Вот и все, теперь нам нужно протестировать API, вы можете скачать Postman для тестирования API, конфигурация Postman немного длинна, я бы предпочел, чтобы вы бесплатно зарегистрировались на этом сервисе: https://www.wintellectnow.com/Videos/Watch?videoId=blockchain-on-azure
Используйте код: FREETRIAL, чтобы зарегистрироваться - для этого потребуется кредитная карта, но она не будет списана, используйте любую карту с предоплатой или постоплатой, но просмотр этого видео настоятельно рекомендуется, особенно на 53-й минуте, поскольку в нем объясняется, как использовать API с Почтальон (не забудьте отключить пробную версию, чтобы карта не заряжалась через 7 дней)
Вот пример токена, сгенерированного с использованием встроенного примера кода аутентификации, который поставляется с образцами блокчейна Azure на Gethub (его можно скачать здесь: https://github.com/Azure-Samples/blockchain/tree/master/blockchain-workbench/auth-samples/bearer-token-retrieval/static), если вы собираетесь тестировать его, вы должны добавить http://localhost/ к URL-адресам ответа выше и поместить его на свой IIS localhost)
А вот пример из Postman, который показывает, как токен добавляется в заголовок запроса:
Вот ответ перед токеном авторизации:
Как только токен авторизации будет доступен, вот ответ, который генерируется, когда я вызываю API, указанный в разделе GET на изображении выше:
Кроме того, вот заголовки ответа после успешной авторизации:
Подводя итог, API #blockchain требует токен аутентификации #OAuth2, этот токен не передается с помощью Swagger UI или созданного вами приложения, вам нужно изменить приложение для аутентификации в AAD OAuth2, чтобы получить токен из AzureAD, затем необходимо использовать этот сгенерированный токен в заголовке запроса к API для вызова API.
Еще один совет: не выбирайте размер машины по умолчанию при создании рабочей среды, но выбирайте машины с более высокой производительностью, такие как: Размер виртуальной машины: Стандартный F2s_v2 (2 vcpus, 4 ГБ памяти) ==> около 50 долларов США в месяц.
В настоящее время мы испытываем перебои в работе на юге центральной части США. https://azure.microsoft.com/en-us/status/
Azure AD также влияет.
Вам нужно будет следить за страницей состояния Azure для получения обновлений. К сожалению, мы ничего не можем сделать, пока проблема не будет решена с помощью техники. После того, как проблема будет устранена, и если вы все еще видите проблемы, сообщите нам.