向 Azure Key Vault 进行身份验证

已完成

使用 Key Vault 进行身份验证与 Microsoft Entra ID 配合使用,该 ID 负责验证任何指定安全主体的身份标识。 安全主体是任何可以请求访问 Azure 资源的实体。 这包括:

  • 用户 – Microsoft Entra ID 中具有帐户的真实人员。
  • 组 - 用户集合。 授予组的权限将应用于其所有成员。
  • 服务主体 – 表示应用或服务(而不是人员)。 将其视为应用的用户帐户。

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

  • 使用托管标识(建议):Azure 为你创建和管理服务主体。 应用可以安全地访问其他 Azure 服务,而无需存储凭据。 适用于应用服务、Azure Functions 和虚拟机等服务。

  • 手动注册应用:在 Microsoft Entra ID 中注册应用。 这会创建一个服务主体和一个应用对象,用于标识所有租户中的应用。

注意

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

在应用程序代码中向 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 授权服务的地址。

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

其他资源