对 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
) 的名称。