当前位置 : 主页 > 网络推广 > seo >

从azure功能应用程序中检索主机密钥

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在尝试使用Azure cli编写环境脚本.我创建了一些功能应用程序,并希望添加主机密钥或至少检索自动创建的默认密钥.天蓝色的cli对此毫无支持. 似乎有一个api(文档似乎很稀疏)在函数本
我正在尝试使用Azure cli编写环境脚本.我创建了一些功能应用程序,并希望添加主机密钥或至少检索自动创建的默认密钥.天蓝色的cli对此毫无支持.

似乎有一个api(文档似乎很稀疏)在函数本身允许我获取键,但是你需要一个键来使用它所以..没有帮助那里.

https://github.com/Azure/azure-webjobs-sdk-script/wiki/Key-management-API

例如:https://example-functions.azurewebsites.net/admin/host/keys?code=somecodeyoualreadyknow

我已经看到一些使用webapps scm api下载包含密钥的json文件的其他示例但是我不确定如何使用此API进行身份验证.我有一个服务主体(userid,密码,tenantid),我希望不必在我的脚本中添加另一个身份验证方案.

这是步骤.

>假设您已经拥有Kudu部署凭据. (听起来你已经知道如何做到这一点了.你可以通过ARM服务原则等来获得它)
>从kudu部署信用卡中,您可以获得一个允许您调用Functions键API的JWT.
>从Functions API,您可以获得所有密钥(包括您的密钥).

这是一个powershell脚本,演示了从Kudu部署信用卡到功能主密钥的确切调用:

# You need to start with these:
$site = "YourSiteName"
$username='YourDeploymentUserName'
$password='YourDeploymentPassword'

# Now... 
$apiBaseUrl = "https://$($site).scm.azurewebsites.net/api"
$siteBaseUrl = "https://$($site).azurewebsites.net"

# For authenticating to Kudu
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))


# Call Kudu /api/functions/admin/token to get a JWT that can be used with the Functions Key API 
$jwt = Invoke-RestMethod -Uri "$apiBaseUrl/functions/admin/token" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET

# Call Functions Key API to get the master key 
$x = Invoke-RestMethod -Uri "$siteBaseUrl/admin/host/systemkeys/_master" -Headers @{Authorization=("Bearer {0}" -f $jwt)} -Method GET

$masterKey = $x.value
网友评论