Веб-сайты Azure API KUDU REST – аутентификация

Я пытаюсь использовать PowerShell для размещения обновленного файла содержимого на Azure Website через REST API. Однако при поставке моих учетных данных в Invoke-RestMethod -Credentials я возвращаю HTML Invoke-RestMethod -Credentials стандартной страницы входа в Azure.

Как я могу аутентифицироваться с помощью Kudu из PowerShell? Благодарю.

Сначала вы можете получить веб-сайт через Powershell, а затем использовать учетные данные публикации на веб-сайте для вызова API REST Kudu. В следующем примере вы получите версию Kudu.

 $website = Get-AzureWebsite -Name "WebsiteName" $username = $website.PublishingUsername $password = $website.PublishingPassword $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password))) $apiBaseUrl = "https://$($website.Name).scm.azurewebsites.net/api" $kuduVersion = Invoke-RestMethod -Uri "$apiBaseUrl/environment" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET 

В новом мире ARM и новейшем PowerShell вам нужно будет внести некоторые изменения в ответ @ Seth.

В частности, способ, которым вы получаете публикации, является другим, это первые 3 строки. Остальное я бесстыдно скопировал из @Seth для завершения fragmentа.

Обязательно замените YourResourceGroup / YourWebApp соответствующим образом:

 $creds = Invoke-AzureRmResourceAction -ResourceGroupName YourResourceGroup -ResourceType Microsoft.Web/sites/config -ResourceName YourWebApp/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force $username = $creds.Properties.PublishingUserName $password = $creds.Properties.PublishingPassword $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password))) $apiBaseUrl = "https://$($website.Name).scm.azurewebsites.net/api" $kuduVersion = Invoke-RestMethod -Uri "$apiBaseUrl/environment" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET 
Interesting Posts
Давайте будем гением компьютера.