微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用托管身份和REST API从VM调用Azure函数

如何解决使用托管身份和REST API从VM调用Azure函数

我们可以从Azure VM对azure函数进行REST API调用吗?我们无法存储API的用户名和密码。我们还可以使用其他身份验证来调用azure函数吗?例如:身份管理,证书?

解决方法

是的,您可以使用托管身份(MSI)来获取令牌,然后使用该令牌对您的azure函数进行REST API调用,请按照以下步骤操作。

1。导航到门户中的VM-> Identity->启用系统分配的身份。

2。导航至门户中的功能应用程序-> Authentication / Authorization->使用Azure AD身份验证配置功能应用程序,遵循此doc,不要忘记设置{{1} },配置完成后,需要一段时间才能为您的功能应用程序创建AD App,最后将显示如下。

enter image description here

3。然后在功能应用程序中,创建一个HTTP触发器以进行测试,注意:需要将其Log in with Azure Active Directory设置为Authorization level

enter image description here

4。在我的示例中,我将RDP放入VM,然后使用powershell来获取令牌,然后使用令牌来调用函数,根据您的情况,您还可以根据需要使用其他语言。我的函数名是Anonymous,在脚本中将其替换为您的函数名,它对我有效。

joyfun111

enter image description here

更新

如果是这样,则只需要使用功能键以及功能url,将$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://joyfun111.azurewebsites.net' -Method GET -Headers @{Metadata="true"} $content = $response.Content | ConvertFrom-Json $Token = $content.access_token Invoke-RestMethod -Uri 'https://joyfun111.azurewebsites.net/api/HttpTrigger1?name=world' -Method POST -Headers @{Authorization="Bearer $Token"} 更改为Authorization level,在Function中禁用Azure AD身份验证,然后使用命令如下所示。

Authentication / Authorization

enter image description here

您可以在功能页面上获取功能网址。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。