Я пытаюсь выполнить вызовы REST API в облачной службе Azure. Я использую Postman для тестирования. Я успешно получил токен носителя и передаю его в запрос.
Однако, похоже, что бы я ни делал, я получаю сообщение об ошибке.
<Error xmlns = "http://schemas.microsoft.com/windowsazure" xmlns:i = "http://www.w3.org/2001/XMLSchema-instance">
<Code>ForbiddenError</Code>
<Message>The server failed to authenticate the request. Verify that the certificate is valid and
связан с этой подпиской.
https://learn.microsoft.com/en-us/rest/api/compute/cloudservices/rest-list-cloud-services
У меня нет проблем с выполнением запросов к другим вызовам API (кроме облачных служб), например с получением списка групп ресурсов и т. д. Кажется, это влияет только на вызовы API облачных служб.
Любая помощь будет оценена по достоинству.
Первоначально, когда я попытался воспроизвести то же самое в своей среде, я получил ту же ошибку:
Чтобы устранить эту ошибку, необходимо загрузить сертификат (.cer) на уровне подписки Azure.
Для создания самоподписанного сертификата используйте приведенный ниже сценарий PowerShell:
$cert = New-SelfSignedCertificate -DnsName "<your_domain_name" -CertStoreLocation "cert:\CurrentUser\My"
$cert.Thumbprint
Export-PfxCertificate -Cert "cert:\CurrentUser\My\{Thumbprint}" -FilePath "C:\path\to\certificate.pfx" -Password (ConvertTo-SecureString -String "yourpassword" -Force -AsPlainText
Export-Certificate -Cert "cert:\CurrentUser\My\{Thumbprint}" -FilePath "<file_path>\certificate.cer"
После создания самозаверяющего сертификата:
Перейдите в «Подписки» -> «Настройки» -> «Сертификаты управления» -> «Загрузить сертификат».
Теперь сгенерируйте токен доступа, обеспечив aud:https://management.core.windows.net/
Использование сгенерированного выше токена доступа в конечной точке ниже для перечисления облачных сервисов:
Request Header : x-ms-version : 2009-10-01
GET https://management.core.windows.net/<subscription-id>/services/hostedservices
Ответ:
ПРИМЕЧАНИЕ. Заголовок: версия x-ms должна быть установлена на 2009-10-01
или выше.
Ссылка: