对 Azure Key Vault 进行身份验证

已完成

向密钥保管库进行身份验证时可结合使用 Microsoft Entra ID,后者负责对任意给定安全主体的标识进行身份验证。

对于应用程序,有两种获取服务主体的方法:

  • 为应用程序启用系统分配的托管标识。 借助托管标识,Azure 在内部管理应用程序的服务主体,并自动通过其他 Azure 服务对应用程序进行身份验证。 托管标识可用于部署到各种服务的应用程序。

  • 如果无法使用托管标识,请改为将应用程序注册到 Microsoft Entra 租户。 注册操作还会创建第二个应用程序对象,该对象在所有租户中标识该应用。

注意

建议使用系统分配的托管标识。

下面是有关在不使用托管标识的情况下向 Key Vault 进行身份验证的信息。

在应用程序代码中对密钥保管库进行身份验证

Key Vault SDK 使用 Azure 标识客户端库,从而允许 Key Vault 在具有相同代码的环境中进行无缝身份验证。 下表提供了有关 Azure 标识客户端库的信息:

.NET Python Java JavaScript
Azure 标识 SDK .NET Azure 标识 SDK Python Azure 标识 SDK Java Azure 标识 SDK JavaScript

使用 REST 对 Key Vault 进行身份验证

必须使用 HTTP 授权标头向服务发送访问令牌:

PUT /keys/MYKEY?api-version=<api_version>  HTTP/1.1  
Authorization: Bearer <access_token>

如果未提供访问令牌,或者服务未接受令牌,则客户端会收到 HTTP 401 错误,该错误将包括 WWW-Authenticate 标头,例如:

401 Not Authorized  
WWW-Authenticate: Bearer authorization="…", resource="…"

WWW-Authenticate 标头上的参数是:

  • authorization:可用于获取请求访问令牌的 OAuth2 授权服务的地址。

  • resource:要在授权请求中使用的资源 (https://vault.azure.net) 的名称。

其他资源