You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python操作Azure Government函数应用密钥遇问题,求解决方案

Azure Government函数应用密钥获取问题

问题1:/api/functions/admin/token方法是否适用于Azure Government?

  • 参考公云Azure Functions的密钥管理方案,将URL替换为Azure Government版本后,调用/api/functions/admin/token时收到错误:No route registered for '/api/functions/admin/token',询问该方法是否可行。

问题2:管理API获取主机密钥的Bearer令牌要求

  • 尝试调用以下管理API获取主机密钥:
resp = requests.get("https://management.usgovcloudapi.net/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/sites/<function-app-name>/functions/admin/masterkey?api-version=20XX-XX-XX", headers={"Authorization": f"Bearer {something}"})
  • 收到错误:{"error":{"code":"InvalidAuthenticationToken","message":"The access token is invalid."}},询问此方法正确的话,Bearer令牌应采用何种格式。

解决方案说明

关于/api/functions/admin/token方法

这个端点仅适用于公云Azure环境,Azure Government并未启用该路由,直接替换URL的方法不可行,请放弃此路径。

关于管理API的Bearer令牌

调用Azure Government管理API时,Bearer令牌必须满足以下要求:

  • 受众(Audience)必须匹配Azure Gov管理端点:获取令牌时需指定受众为https://management.usgovcloudapi.net/,公云的https://management.azure.com/在Gov环境下完全无效。
  • 令牌需包含对应权限:确保身份(Azure AD应用或用户)拥有Microsoft.Web/sites/functions/admin/masterkey/read相关权限,可通过分配函数应用Contributor、Reader等角色实现。
  • 从Azure Gov的AD端点获取令牌:令牌必须从https://login.microsoftonline.us/(而非公云的login.microsoftonline.com)获取,同时使用对应Gov环境的租户ID、客户端ID等参数。

示例获取有效令牌的Python代码(使用azure-identity库):

from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
# 指定Azure Gov管理API的权限范围
token = credential.get_token("https://management.usgovcloudapi.net/.default")
# 正确的请求头格式
headers = {"Authorization": f"Bearer {token.token}"}

另外,API版本需使用当前有效值,比如2023-12-01,不要使用占位符20XX-XX-XX。


内容的提问来源于stack exchange,提问作者afgt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:55:18