配置Azure可验证凭据Demo扫码后报KeyVault无访问权限如何解决
故障基本信息
- 错误代码:
ForbiddenException - 错误提示:使用给定凭据无法访问KeyVault资源
- 触发场景:实施Azure Verifiable Credentials演示项目时,已完成演示应用在自有Azure Active Directory租户的注册,且已为KeyVault配置全量访问权限,扫描演示应用生成的QR码后触发该错误
- 相关参考截图:
- 可验证凭据专家颁发界面:

- 错误代码截图:

- 可验证凭据专家颁发界面:
故障原因及修复方案
这个错误的核心是发起KeyVault访问请求的身份未通过KeyVault的访问校验,和你给演示应用开权限没有直接关系,常见触发原因和对应修复方式如下:
- 授权对象配错
绝大多数人踩这个坑都是因为给错了授权主体:实际访问KeyVault做签名操作的是Azure Verifiable Credentials的托管服务主体,不是你手动注册的演示应用,也不是你当前登录的个人账号。你需要到KeyVault的访问策略或者RBAC权限配置页,找到Verifiable Credentials Service这个服务主体,给它授予最小必要权限:密钥的「获取」「签名」权限,证书的「获取」权限即可,不需要开全量权限。 - KeyVault网络规则拦截
权限配置正确的前提下,如果KeyVault开了网络访问限制(仅允许指定IP、虚拟网络访问),且没有放通VC服务的访问网段,同样会返回403。测试阶段可以先把KeyVault公共网络访问设置为「允许所有网络访问」,验证功能正常后,再通过添加AzureActiveDirectory服务标签的方式放通对应网段,收紧访问规则。 - 权限未同步生效
KeyVault的访问策略、RBAC角色配置有3-5分钟的同步延迟,刚配完就测试很容易因为权限没同步到KeyVault后端节点触发403,等几分钟重试就行。 - 资源跨租户不匹配
如果用的KeyVault是建在其他Azure AD租户关联的订阅下,跨租户场景下VC服务的服务主体默认拿不到KeyVault的访问授权,必须保证KeyVault和你配置Verifiable Credentials的资源归属同一个Azure AD租户。
内容的提问来源于stack exchange,提问作者laznar
相关产品推荐
相关产品推荐

