AKV10032:从应用服务连接到 Azure Key Vault 时出现无效颁发者错误

AKV10032: Invalid issuer error when connecting to Azure Key Vault from App Service

API 部署为 Azure 上的应用服务。它连接到同一订阅上的 Key Vault。在 Key Vault 中为应用服务创建了访问策略。应用服务配置有系统分配的标识。 API 尝试访问密钥保管库时,出现以下错误:

AKV10032: Invalid issuer. Expected one of https://sts.windows.net/b68456ea-cf3c-4835-9d30-a4b164f33190/, https://sts.windows.net/f8cdef31-a31e-4b4a-93e4-5f571e91255a/, https://sts.windows.net/e2d54eb5-3869-4f70-8578-dee5fc7331f4/, found https://sts.windows.net/98de912a-48b9-4d1d-b5cd-21fd3f4f449d/.\

编辑: 我已经从这个问题中删除了很多内容,因为它有错误而且我走错了路。 Key Vault 和 App 服务都使用相同的租户(与我原来的 post 相反)。租户Id是98de912a-48b9-4d1d-b5cd-21fd3f4f449d,也就是上面错误信息中找到的那个。

您不能更改 Key Vault 的 AAD 租户。

如果您在应用服务上使用 system-assigned 托管标识,它将在应用服务所在的同一 AAD 租户中创建一个服务主体。 如果 Key Vault 和 App Service 在同一个订阅中,那么它们也在同一个 AAD 租户下。 然后,您应该能够将该服务主体添加到 Key Vault 访问策略,并使用它来访问 Key Vault。

但是,如果您在另一个 AAD 租户中有一个应用 registration/service 主体,则它无法访问 Key Vault。

发生这种情况是因为我获得的密钥保管库名称有错字。不幸的是,错字版本是针对现有密钥保管库的,因此我们在调查授权问题时走错了路。