Azure Key Vault报AKV10000错误:请求缺少Bearer/PoP令牌,如何解决?
解决Azure Key Vault 401(AKV10000)错误的建议
- 修正依赖拼写错误:你的Maven依赖中
azure-security-keyvault-secretss多了一个s,正确的依赖名称是azure-security-keyvault-secrets,错误的依赖会导致SDK功能缺失,无法正常完成认证流程。 - 更换稳定版身份认证依赖:当前使用的
azure-identity是1.9.0-beta.1测试版本,存在潜在兼容性或bug风险,建议替换为最新稳定版(比如1.8.2或更高正式版本),避免beta版本带来的认证异常。 - 核对认证参数准确性:
- 确认
ClientId、ClientSecret、TenantId完全匹配应用注册的对应值,注意不要包含多余空格、大小写错误(ClientSecret需完全一致,不可修改字符)。 - 检查应用注册的ClientSecret是否过期,若已过期需重新生成新的密钥并更新代码。
- 确认
- 验证Key Vault访问策略配置:
- 确认Key Vault的访问策略中,已正确添加目标应用注册作为主体,且明确授予了
Get权限(代码执行的是getSecret操作),策略保存后需等待数分钟生效。 - 检查应用注册是否处于启用状态,未被禁用或限制访问。
- 确认Key Vault的访问策略中,已正确添加目标应用注册作为主体,且明确授予了
- 排查认证流程是否正常:在代码中添加手动获取token的逻辑,验证是否能成功获取Bearer token:
如果获取token失败,根据抛出的异常进一步定位问题(比如权限不足、参数错误)。TokenRequestContext context = new TokenRequestContext().addScopes("https://vault.azure.net/.default"); AccessToken token = paramClientSecretCredential.getToken(context).block(); System.out.println("Token: " + (token != null ? token.getToken() : "Failed to get token")); - 检查网络连通性:确保运行代码的环境可以访问Azure AD认证端点(
login.microsoftonline.com)和Key Vault服务地址,若存在防火墙或代理,需允许相关域名的出站请求。
内容的提问来源于stack exchange,提问作者dzivi
相关产品推荐
相关产品推荐

