gpt4 book ai didi

c# - 在部署时从 Azure Function 获取 Azure Function key ?

转载 作者:行者123 更新时间:2023-12-01 00:17:02 24 4
gpt4 key购买 nike

我正在 Azure Functions 中使用 SendGrid bindings 发送电子邮件。作为该电子邮件内容的一部分,我想包含一个指向 HTTP methods 之一的链接。在 Azure Functions 实例中了解更多信息。我的所有 HTTP 函数都使用 AuthorizationLevel.Function 进行保护。

我已经看到了 scraping the keys from ARM and Kudu in PowerShell 的解决方案(和 this one )以及 output the keys with just ARM 的解决方案,但这些都依赖于我的 Azure Functions 不具备的功能:ARM(Azure 资源管理)API 的权限。

我还找到了Key management APIs for the Azure Functions host它在本地完全按照我想要的方式工作,但我不知道部署 Azure Functions 后如何克服 401 Unauthorized 。我可以使用 _master 功能键手动跳过它,但随后我又不知道如何在运行时获取该 key 。

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

最佳答案

尝试以下两个步骤:

  1. 获取主机主 key :

    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"
}
]
}

更新:

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

Authorization: Bearer bearerToken

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

    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 中注册的应用程序的 quid,具有 Windows Azure 服务管理 API 的 API 访问权限。

关于c# - 在部署时从 Azure Function 获取 Azure Function key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51750724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com