Как пройти аутентификацию для https://management.azure.com API? - PullRequest
0 голосов
/ 20 июня 2019

Я хочу получить данные о своих DNS-зонах с помощью вызова API:

$api = "?api-version=2018-05-01"

$pat = "Bearer $env:System_AccessToken"

Write-Host "### PAT ###"
Write-Host $pat

$DNSInformation = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Network/dnsZones/$zoneName/$recordType/$relativeRecordSetName$api"

Write-Host "###"
Write-Host $DNSInformation
Write-Host "###"

$x = Invoke-RestMethod -Uri $DNSInformation -Headers @{Authorization = $pat } -Method Get

Когда я запускаю этот скрипт, я получаю:

Удаленный сервер возвратил ошибку:(401) Несанкционировано.

Когда я перехожу по URL, я получаю:

error: {
    code: "AuthenticationFailed",
    message: "Authentication failed. The Authorization header is missing."
}

Я думаю, что проблема в том, что я не могу использовать токен $env:System_AccessToken для полученияна management api.Но я не могу найти информацию, какая аутентификация необходима.

1 Ответ

0 голосов
/ 21 июня 2019

Как упоминается в ошибке, заголовок авторизации неверен.

$URI = "https://management.azure.com/providers/microsoft.resources/checkresourcename?api-version=2014-01-01"
Invoke-RestMethod -Uri $URI -Method GET -Headers $authHeader

Вы можете использовать несколько подходов для создания заголовка:

  1. Как вы упомянули- Azure Powershell для проверки имен ресурсов

  2. Путем создания токена на предъявителя: Сценарий Powershell для удаления неиспользуемых ресурсов в Azure

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