【Azure 应用服务】在App Service 中如何通过Managed Identity获取访问Azure资源的Token呢? 如Key Vault
问题描述
当App Service启用了Managed Identity后,Azure中的资源就可以使用此Identity访问。 如果需要显示的获取这个Token,如何实现呢?
问题解答
在App Service开启托管标识之后,会生成两个环境变量IDENTITY_ENDPOINT和IDENTITY_HEADER:
- IDENTITY_ENDPOINT - 本地令牌服务的 URL。是一个本地 URL,应用可从其请求令牌。
- IDENTITY_HEADER - 用于帮助缓解服务器端请求伪造 (SSRF) 攻击的标头。 该值由平台轮换。
在根据《App Service 托管标识》的介绍,可以通过多种方式获取到对Azure资源的Token。如 HTTP GET, .NET, Java, PowerShell等。
这里就通过App Service Kudu工具,发送 curl 请求,快速获取 Access Token。
第一步:在kudu中执行set指令,获取当前环境中是有的参数设置,从中找到 IDENTITY_ENDPOINT 和 IDENTITY_HEADER
第二步:发送curl 请求,获取Access Token
curl -v "<IDENTITY_ENDPOINT>?resource=https://vault.azure.cn&api-version=2019-08-01" -H "X-IDENTITY-HEADER:<IDENTITY_HEADER>"
注意:
1)<IDENTITY_ENDPOINT> 需要用正确的值替换,如:http://127.0.0.1:41723/MSI/token/, 在 token后面必须添加反斜杠( / ),不可以省略。
2) resource=https://vault.azure.cn ,resource的url可以根据需要访问的资源进行替换。
3) <IDENTITY_HEADER> 需要正确的值进行替换。
请求返回Body中,包含access_token内容。
参考文档
如何使用应用服务和 Azure Functions 的托管标识: https://docs.azure.cn/zh-cn/app-service/overview-managed-identity?tabs=portal%2Chttp
【end】
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-08-02 【Azure 应用服务】如何让App Service 支持 Delete 方法