Connecting to App Service’s Kudu endpoint programmatically

February 17, 2021 0 By JeremyBrooks

I recently worked on a case where a customer wanted to programmatically connect to Kudu. I’m not well versed in XML parsing (which Azure Powershell pulls for the publish profile) so I went the route of using the Azure CLI’s az rest command to pull the JSON publish profile and extracting the username and password.

$subscriptionID= "xxx"
$appname = "xx"
$RGname = "xxx"
$publishprofile = ((az rest --method post --url$subscriptionID/resourceGroups/$RGname/providers/Microsoft.Web/sites/$appname/config/publishingcredentials/list?api-version=2019-08-01) | ConvertFrom-Json).properties 
$username = $publishprofile.publishingUsername
$password = $publishprofile.publishingPassword
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$apiBaseUrl = https://$
Invoke-WebRequest -Uri "$apiBaseUrl" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET -OutFile "C:\users\xxx\Downloads\"