向 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)。