JavaScript でAzure Key Vaultシークレットの使用を開始する

この記事では、JavaScript 用の Azure Key Vault シークレット クライアント ライブラリを使用してAzure Key Vaultに接続する方法について説明します。 接続すると、コードはコンテナー内のシークレットとシークレット プロパティに対して操作できます。

API リファレンス | パッケージ (npm) | ライブラリ ソース コード | サンプル | フィードバック

[前提条件]

プロジェクトの設定

  1. コマンド プロンプトを開き、プロジェクト フォルダーに変更します。 <project-directory> を実際のフォルダー名に変更します:

    cd <project-directory>
    
  2. ディレクトリに package.json ファイルがまだない場合は、プロジェクトを初期化してファイルを作成します。

    npm init -y
    
  3. JavaScript 用の Azure Key Vault シークレット クライアント ライブラリをインストールします。

    npm install @azure/keyvault-secrets
    
  4. Microsoft Entra IDを使用してパスワードレス接続を使用する場合は、JavaScript 用の Azure Identity クライアント ライブラリをインストールします。

    npm install @azure/identity
    

アクセスを承認し、Key Vaultに接続する

Microsoft Entra IDは、接続 ID (管理 ID) を管理することで、最も安全な接続を提供します。 このパスワードレス機能を使用すると、コードに格納されているシークレット (キーまたは接続文字列) を必要としないアプリケーションを開発できます。

Azure Key Vault シークレットを使用するAzureをプログラムで認証する前に、必ず環境を設定してください。

 JavaScript 資格情報フローのAzure SDKのダイアグラム.

開発者はAzure CLIをインストールし、コードで DefaultAzureCredential を使用する前に、az login コマンドを使用して対話形式でサインインして、Azureにログインする必要があります。

az login

アプリケーションをビルドする

アプリケーションをビルドすると、コードは次の 2 種類のリソースと対話します。

  • KeyVaultSecret。次のものが含まれます。
    • シークレット名、文字列値。
    • シークレット値。シークレットの文字列です。 必要に応じて、文字列との間でシークレット値のシリアル化と逆シリアル化を行います。
    • 秘密の属性。
  • SecretProperties。シークレットのメタデータ (名前、バージョン、タグ、有効期限データ、有効かどうかなど) が含まれます。

KeyVaultSecret の値が必要な場合は、 KeyVaultSecret を返すメソッドを使用します。

残りのメソッドは、SecretProperties オブジェクトまたは次のようなプロパティの別の形式を返します。

SecretClient オブジェクトを作成する

SecretClient オブジェクトは、SDK の最上位のオブジェクトです。 このクライアントを使用すると、シークレットを操作できます。

Azure Key Vaultアクセス ロールとローカル環境を設定したら、@azure/identity パッケージを含む JavaScript ファイルを作成します。 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");

こちらも参照ください

次のステップ