在部署时从 Azure Function 获取 Azure Function 密钥?

2024-01-02

我正在使用 Azure Functions 发送电子邮件SendGrid 绑定 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-sendgrid。作为该电子邮件内容的一部分,我想包含一个指向其中一个的链接HTTP 方法 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook在 Azure Functions 实例中了解更多信息。我所有的 HTTP 函数都受到保护AuthorizationLevel.Function.

我见过一个解决方案在 PowerShell 中从 ARM 和 Kudu 中抓取密钥 https://stackoverflow.com/a/50264228/4062072 (and this one https://stackoverflow.com/a/46436102/4062072)和一个解决方案仅使用 ARM 输出按键 https://stackoverflow.com/a/44117841/4062072,但这些都依赖于我的 Azure Functions 所不具备的功能:对 ARM(Azure 资源管理)API 的权限。

我还找到了Azure Functions 主机的密钥管理 API https://github.com/Azure/azure-functions-host/wiki/Key-management-API这完全按照我想要的本地方式工作,但我不知道如何通过401 Unauthorized部署 Azure Functions 后。我可以手动通过它_master功能键,但后来我又不知道如何在运行时获取该键。

问题是:是否可以在运行时从 Azure Function Host 以某种方式获取 Azure Function 的密钥?我非常希望不需要 ARM 权限来执行此操作。


尝试以下两个步骤:

  1. 获取主机主密钥:

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupName}/providers/Microsoft.Web/sites/{functionApp}/functions/admin/masterkey?api-version=2016-08-01
    
  2. 获取功能键:

    GET https://{functionApp}.azurewebsites.net/admin/functions/{functionName}/keys?code={masterKeyFromStep1}
    

步骤 2 的响应:

    {
      "keys": [
        {
          "name": "default",
          "value": "xxxxxxxxxxxxxxxxxxxxxx"
        }
      ],
      "links": [
        {
          "rel": "self",
          "href": "https://myFncApp.azurewebsites.net/admin/functions/myFunction/keys"
        }
      ]
 }

Update:

请注意,步骤 1 需要以下格式的授权标头:

Authorization: Bearer bearerToken

其中 bearerToken 字符串可以从 Azure Active Directory (AAD) 获取,请参阅示例的以下代码片段:

    private string AccessToken(string clientID)
    {
        string redirectUri = "https://login.live.com/oauth20_desktop.srf";
        authContext = new AuthenticationContext("https://login.windows.net/common/oauth2/authorize", TokenCache.DefaultShared);
        var ar = authContext.AcquireTokenAsync("https://management.azure.com/", clientID, new Uri(redirectUri), new PlatformParameters(PromptBehavior.SelectAccount)).Result;
        return ar.AccessToken;
    }

请注意,clientID是您在 AAD 中注册的具有 API 访问权限的应用程序的 quidWindows Azure 服务管理 API.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在部署时从 Azure Function 获取 Azure Function 密钥? 的相关文章

随机推荐

  • 实体框架中内容的国际化

    我不断遇到 i18n 要求 其中我的数据 而不是 UI 需要国际化 public class FooEntity public long Id get set public string Code get set Some values m
  • Groupby、移位和前向填充

    我有这个 df ID Date Time Lat Lon A 07 16 2019 08 00 29 39291 98 50925 A 07 16 2019 09 00 29 39923 98 51256 A 07 16 2019 10 0
  • 为应用程序操作创建自定义内置意图

    有一个可用的内置意图列表 可以在应用程序操作中使用谷歌开发者网站 https developers google com actions reference built in intents 我们有什么方法可以创建自定义的内置意图吗 不可以
  • Django Restframework、Django 通道、Ionic 2 - websocket 握手错误

    我目前正在开发一个使用线程标题中提到的技术的项目 我从浏览器中运行了这一切 该应用程序托管在 heroku 上 但是当我尝试从 Ionic 2 应用程序连接到 websockets 时 我总是在建立握手时遇到错误 2016 09 17T15
  • Excel 2007 及更高版本之间的 Range.Interior.Color 不同

    我发现 Range Interior Color 在某些情况下会为相同颜色返回不同的数字 具体取决于它是否在 Excel 2007 Excel 2010 或 2013 中运行 这是预期的吗 我很惊讶 Range Interior Color
  • Nginx 从旧 URL 重定向到新 URL

    我们正在更换房产搜索供应商 每个供应商的 URL 格式都略有不同 我们已经对 40 000 多个 URL 建立了索引 并希望将用户 301 重定向到新 URL URL 中的唯一区别是从下划线切换为连字符 以及从 idx 切换为 proper
  • 更新 Vector 中对象的属性

    我有一个包含对象的向量 这些对象有一个称为名字的属性 我想更新属性中的名字 为了做到这一点 我必须传递保存对象的向量 唯一标识每个对象的员工编号 最后是从用户输入中获取的新名称 我的问题是它在循环中显示更新名称 我用它来设置新名称 但如果我
  • Android:FastScrolling SectionIndexer getSections() 仅被调用一次

    我创建了一个ListView正在使用FastScroll 见图 当用户单击以下任何按钮 即所有曲目 艺术家 专辑 时 每次都会调用以下自定义 ArrayAdapter ArrayAdapter
  • Yii2:Ajax调用多个参数

    我使用此代码通过 ajax 调用自动填充 没有任何问题 我的视图文件中的代码 this gt registerJs dailywardentry doctor visit name on change function ajax url y
  • 我们可以使用函数作为 useEffect 中的第二个参数吗

    我有以下功能 function handleEnterPress e if e keyCode 13 if value let toAdd true chips forEach chip gt if chip value value toA
  • scrapy 项目在存储到 couchdb 时不可 JSON 序列化

    items py classes import scrapy from scrapy item import Item Field import json class Attributes scrapy Item description F
  • 如何在 WSL + VS Code 和 Docker 容器之间设置文件所有权?

    我的问题是我不知道 也不理解 如何最好地配置主机和容器之间的文件所有权 我是一名前端开发人员 所以这超出了我的深度 主机 运行 WSL2 的 Windows 10 Ubuntu 20 04 LTS 使用 VS Code WSL 远程扩展 容
  • 在R中的for循环中迭代子目录

    我有一个包含 365 个子目录的大目录 其中包含一年中每一天的图像 我创建了一个函数 我想将其应用于这些子目录中的每个图像 目前 这就是我所拥有的 library raster library zebu List all of the 36
  • Nginx 位置匹配特殊字符和编码 url 字符的正则表达式

    今天我已经尝试了很多事情 但我只是没有获胜 我的网站中有一个文件是偶然创建的 其中包含一个特殊字符 结果 Googlebot 已停止抓取 3 周 网站站长工具 搜索控制台不断通知我并希望重新测试网址 我想要实现的就是配置 Nginx 以匹配
  • 值得从 django 切换到什么框架

    我使用的最后一个框架是 Django 我喜欢其中的很多东西 比如 项目结构很简单 没有太多的目录和文件 管理界面 很棒的文档 XML 导出 导入 Form对象的概念 定义表单后 您可以在1行中显示表单 甚至可以从数据库行 从orm定义 创建
  • 添加硬件令牌数字签名的时间戳并添加 LTV 不起作用/引发异常

    这是这个问题的扩展问题 在 pdf 中添加撤销详细信息 同时签名 https stackoverflow com questions 56458787 add revocation detail in pdf while signing s
  • Java KeyPress 箭头键触发小键盘键

    使用时Robot keyPress对于关键事件VK UP 会触发小键盘键而不是普通的箭头键 我正在尝试编写一个可用于游戏等的键盘模拟器 使用 TrackMania 进行测试时我注意到它不会触发普通键 而是触发小键盘上的键 如何使用 keyP
  • 如何在运行时以编程方式设置自定义键盘文本颜色?

    我的应用程序中有一个自定义键盘 希望根据用户偏好在运行时更改文本颜色 我可以在 XML 中设置 KeyTextColor 但没有这样的属性可以以编程方式设置它 这就是我在 Xml 中设置的方式
  • 在 r 中为多个箱形图创建循环

    我设计了一个实验来观察进餐后血清标记物如何随时间变化 我有一个由 72 个观察值和 23o 个变量组成的数据框 称为 BreakfastM 有 229 个变量是血清标记物 1 个是时间点 观察结果是不同的样本 我正在寻找血清标记物 即胆固醇
  • 在部署时从 Azure Function 获取 Azure Function 密钥?

    我正在使用 Azure Functions 发送电子邮件SendGrid 绑定 https learn microsoft com en us azure azure functions functions bindings sendgri