问题描述

当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】

【Azure 应用服务】在App Service 中如何通过Managed Identity获取访问Azure资源的Token呢? 如Key Vault的更多相关文章

  1. 【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?

    问题描述 在App Service中运行Python编写的定时任务,需要使用pymssql连接到数据库,但是发现使用 python.exe -m pip install --upgrade -r re ...

  2. 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法

    问题定义 使用Azure应用服务(App Service),部署Java应用,使用Tomcat容器,如何自定义错误页面呢?同时禁用DELETE, PUT方法 解决办法 如何自定义错误页面呢?需要在 J ...

  3. 【Azure 应用服务】App Service/Azure Function的出站连接过多而引起了SNAT端口耗尽,导致一些新的请求出现超时错误(Timeout)

    问题描述 当需要在应用中有大量的出站连接时候,就会涉及到SNAT(源地址网络转换)耗尽的问题.而通过Azure App Service/Function的默认监控指标图表中,却没有可以直接查看到SNA ...

  4. 【Azure 应用服务】App Service 运行状况健康检查功能简介 (Health check)

    通过Azure App Service门户,启用Health Check来监视应用服务的实例,当发现其中一个实例处于不健康(unhealthy)状态时,通过重新路由(即把有问题的实例从负载均衡器中移除 ...

  5. 【Azure 应用服务】App Service For Container 配置Nginx,设置/home/site/wwwroot/目录为启动目录,并配置反向代理

    问题描述 通过Docker Desktop for Linux,配置Nginx镜像后,自定义nginx.conf文件,修改启动目录和对 /out 路径的反向代理到博客园的博文地址 (https://w ...

  6. 【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php

    问题描述 参考官方文档部署 PHP Laravel 项目到App Service for Linux环境中,但是访问应用时候遇见了500 Server Error 错误. 从部署的日志中,可以明确看出 ...

  7. 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志

    问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...

  8. 【Azure 应用服务】App Service频繁出现 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 异常分析

    问题描述 在使用App Service的过程中,发现应用频繁出现503错误,通过Kudu站点获取到Logfiles. 在 Eventlog.xml 文件中,发现大量的 Microsoft.Window ...

  9. 【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题

    问题描述 在.Net Core 5.0 项目中,添加 Microsoft.Extensions.Logging.AzureAppServices 和 Microsoft.Extensions.Logg ...

  10. 【Azure 应用服务】App Service For Windows 环境中部署Python站点后,如何继续访问静态资源文件呢(Serving Static Files)?

    问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart- ...

随机推荐

  1. elementui中自定义Select选择器样式自定义

    <el-select class="my-el-select" v-model="tenantCont" placeholder="请输入机构标 ...

  2. 让一段代码执行在new Vue之前

    这是一个自调用函数,也有人叫做一次性函数: 这样函数前面最后打一个: ;(function initApp(){ loadApp(); })() function loadApp (){ //tena ...

  3. Go - 基本数据类型和其字符串表示之间转换

    1. 基本数据类型和其字符串表示之间转换 基本类型的值,都有一个字符串表示,如数字类型值1 字符串表示为 "1",字符的编码为Unicode或者UTF-8,数字的编码是 int,底 ...

  4. C++ Boost库 实现命令行解析

    Boost库中默认自带了一个功能强大的命令行参数解析器,以往我都是自己实现参数解析的,今天偶尔发现这个好东西,就来总结一下参数解析的基本用法,该库需要引入program_options.hpp头文件, ...

  5. automapper 10 +autofac+asp.net web api

    automapper 不必多说 https://automapper.org autofac 这里也不多说 https://autofac.org 这里主要 说 automapper 10.0 版本+ ...

  6. Python下的三维建模和可视化

    本文介绍基于AnyCAD Rapid Py三维图形平台开发Python的三维应用 1 准备工作 1.1 安装 vc_resit 2022 在Windows下,AnyCAD Rapid SDK依赖Vis ...

  7. 使用symbolicatecrash工具符号化Crash日志

    对于打包上线的APP,或者打包测试的APP,出现了崩溃并不能方便的把手机链接到电脑使用XCode自动符号化,此时手动符号化就是重要的选项. 1.查找符号化工具symbolicatecrash find ...

  8. 文心一言 VS 讯飞星火 VS chatgpt (195)-- 算法导论14.3 3题

    三.用go语言,请给出一个有效的算法,对一个给定的区间i,返回一个与i重叠且具有最小低端点的区间;或者当这样的区间不存在时返回T.nil. 文心一言,去掉math,代码正常运行: 在Go语言中,你可以 ...

  9. MySQL-生成随机数字、字符串、日期、验证码及 UUID的方法

    一.生成随机数字 1. 生成 0 到 1 之间的随机数 MySQL 中的 RAND 函数可以用于生成一个大于等于 0 小于 1 的随机数字.例如: SELECT rand(); 该函数返回的数据类型为 ...

  10. 如何使用graalvm为带有反射功能的java代码生成native image

    译自Configure Native Image with the Tracing Agent graal官方文档 , 以下所有命令需要在linux环境下操作,graalvm也支持windows. 要 ...