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

Azure Databricks调用Log Analytics API时遇AADSTS7000215密钥无效错误

解决AADSTS7000215:客户端密钥无效的问题

针对你在Databricks中请求Entra ID OAuth2令牌时遇到的AADSTS7000215错误,按以下步骤排查:

  • 确认Key Vault中存储的是客户端密钥值而非ID
    在Entra ID创建服务主体的客户端密钥时,系统只会显示一次密钥的明文值,请确保存入Key Vault的是这个值,而不是密钥的名称(即密钥ID)。如果误存了密钥ID,必然会触发该错误。

  • 验证Databricks密钥范围的权限配置
    检查你的Databricks密钥范围是否正确关联了目标Key Vault,并且Databricks用于访问Key Vault的身份(通常是工作区系统分配的托管标识或指定的服务主体)拥有Key Vault的机密读取(Get)权限。如果权限不足,dbutils.secrets.get可能获取到空值或错误内容。

  • 校验密钥获取结果
    不要直接打印密钥明文,可通过打印密钥长度验证是否获取到有效内容:

    key = dbutils.secrets.get(scope="kv_XXX", key="XXXx")
    print(f"密钥长度: {len(key)}")
    

    如果长度为0或远短于预期的密钥长度,说明密钥读取环节存在问题,需重新检查密钥范围配置或密钥名称是否正确。

  • 核对请求参数的正确性

    • 确认URL中的xxxxxxx是你的租户ID,无拼写错误;
    • scope参数需匹配Log Analytics API的资源标识符,正确值应为https://api.loganalytics.io/.default,如果使用了错误的scope,也可能导致认证失败(错误提示可能误导为密钥问题);
    • client_id需确保是目标服务主体的应用(客户端)ID,而非对象ID。
  • 直接测试密钥有效性(排查用)
    临时将代码中的key替换为你已知正确的客户端密钥值,运行代码:

    payload = {"grant_type":"client_credentials",
                "client_id": "2xxxxx",  
                "scope":"https://api.loganalytics.io/.default", 
                "client_secret": "你的正确密钥值"} 
    

    如果能成功获取令牌,说明问题出在Databricks读取Key Vault的环节;如果仍失败,需检查服务主体是否被禁用、密钥是否过期,或服务主体是否拥有Log Analytics API的访问权限。

你的原始代码:

url = "https://login.microsoftonline.com/xxxxxxx/oauth2/token"
headers = {"Content-Type": "application/x-www-form-urlencoded"}
key = dbutils.secrets.get(scope="kv_XXX", key="XXXx")
payload = {"grant_type":"client_credentials",
            "client_id": "2xxxxx",  
            "scope":"34xxxxxxx/.default", 
            "client_secret": key} 
response = requests.post(url, headers=headers, data=payload)
print(response.text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:22:50