API Azure KeyVault Get Secret отвечает с ошибкой 404 или 401 - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь получить секрет из хранилища ключей Azure.Это очень простой вызов API Restful.Например, для всех ключей это так просто:

GET {vaultBaseUrl}/secrets?api-version=7.0

, где vaultBaseUrl предоставляется в консоли Azure как DNS-имя хранилища.Я использую режим консоли для тестирования https://docs.microsoft.com/en-us/rest/api/keyvault/getsecrets/getsecrets#code-try-0 Но возвращаемое значение всегда 404. Когда я пытаюсь свернуться в консоли Azure, выдается 401 - Неавторизовано.Однако я могу использовать командную строку, чтобы раскрыть секрет.Есть ли какой-нибудь секрет в том, чтобы сделать спокойный звонок и работать, чтобы раскрыть секрет?Все эти ситуации используют одинаковые учетные данные.Дополнительный вопрос заключается в том, что на странице тестирования API-интерфейса micorosft есть раздел «Предварительный просмотр» с зеленой кнопкой «Выполнить», почти как если бы он приглашал вас запустить API-интерфейс, но ссылка на docs.microsoft.com икнопка копирования на поле отключена.Я никогда не видел столько проблем в одном месте, поэтому я думаю, может быть, я чего-то здесь не понимаю.

1 Ответ

2 голосов
/ 26 апреля 2019

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

Выполните действия, указанные ниже.

1. Зарегистрируйте приложение в Azure Active Directory, см. Эту ссылку . Получить идентификатор приложения и ключ, см. Эту ссылку . Добавьте участника службы в Access policies в вашем хранилище ключей с правильным секретным разрешением (просто найдите имя своего приложения AD и добавьте его).

2.В почтальоне отправьте запрос на адрес

POST https://login.microsoftonline.com/{your tenant id}/oauth2/token?api-version=1.0

Тело запроса и полный образец (client_id и client_secret - это идентификатор приложения и ключ на шаге 1):

enter image description here

3. Скопируйте access_token на шаге 2, затем используйте его в качестве токена авторизации для вызова API:

GET https://yourkeyvault.vault.azure.net/secrets?api-version=7.0

enter image description here

Кроме , если вы хотите использовать CURL, чтобы получить секрет, попробуйте тот, как показано ниже. TOKEN совпадает с access_token на шаге 2 выше.

curl -X GET -H "Authorization: Bearer [TOKEN]" https://yourkeyvault.vault.azure.net/secrets?api-version=7.0

Для получения более подробной информации о получении access_token с помощью curl и полных шагов, вы можете обратиться к этой ссылке . Не забудьте изменить resource на https://vault.azure.net в шаге Request Token step.

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