你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何使用适用于 JavaScript 的 Azure 密钥保管库 机密客户端库连接到Azure 密钥保管库。 连接后,代码可以对保管库中的机密和机密属性进行操作。
API 参考 | Package (npm) | Library 源代码 | 示例 | 提供反馈
先决条件
- Azure订阅 - 免费创建一个订阅。
- Azure 密钥保管库 实例。 请确保运行代码的标识在代码中执行特定任务时具有适当的 Azure RBAC 角色。
- Node.js 版本 LTS
设置你的项目
请打开命令提示符并切换到你的项目文件夹。 将
<project-directory>更改为你的文件夹名称:cd <project-directory>如果目录中没有
package.json文件,请初始化项目以创建该文件:npm init -y安装适用于 JavaScript 的Azure 密钥保管库机密客户端库:
npm install @azure/keyvault-secrets如果要使用 Microsoft Entra ID 的无密码连接,请安装适用于 JavaScript 的标识客户端库Azure:
npm install @azure/identity
授权访问并连接到密钥保管库
Microsoft Entra ID通过管理连接标识(托管标识)提供最安全的连接。 此无密码功能使你可以开发不需要存储在代码中的任何机密(密钥或连接字符串)的应用程序。
在以编程方式对Azure进行身份验证以使用Azure 密钥保管库秘钥之前,请确保配置环境。
Azure SDK 的 JavaScript 凭据流示意图。
生成应用程序
生成应用程序时,代码与两种类型的资源交互:
-
KeyVaultSecret,其中包括:
- 机密名称,字符串值。
- 机密值,它是机密的字符串。 根据需要,提供将机密值序列化为字符串以及将字符串反序列化为机密值的方法。
- 机密属性。
- SecretProperties,其中包括机密的元数据,例如其名称、版本、标记、过期数据以及它是否已启用。
如果需要 KeyVaultSecret 的值,请使用返回 KeyVaultSecret 的方法:
其余方法返回 SecretProperties 对象或其他形式的属性,例如:
创建 SecretClient 对象
SecretClient 对象是 SDK 中的顶部对象。 此客户端支持对机密进行操作。
设置Azure 密钥保管库访问角色和本地环境后,创建一个 JavaScript 文件,其中包含 @azure/identity 包。 创建凭据(如 DefaultAzureCredential),以实现与保管库的无密码连接。 使用该凭据通过 SecretClient 对象进行身份验证。
// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';
import { SecretClient } from '@azure/keyvault-secrets';
// Authenticate to Azure
const credential = new DefaultAzureCredential();
// Create SecretClient
const vaultName = '<vault-name>';
const url = `https://${vaultName}.vault.azure.net`;
const client = new SecretClient(url, credential);
// Get secret
const secret = await client.getSecret("MySecretName");