次の方法で共有


JavaScript で Azure Key Vault シークレットを使用できるようにする

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

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

[前提条件]

プロジェクトの設定

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

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

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

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

    npm install @azure/identity
    

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

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

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

Azure SDK for JavaScript 資格情報フローの図。

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

az login

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

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

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

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

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

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

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

Azure Key Vault アクセス ロールとローカル環境を設定したら、 @azure/ID パッケージを含む 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 = '<your-vault-name>';  
const url = `https://${vaultName}.vault.azure.net`;  
const client = new SecretClient(url, credential);  

// Get secret
const secret = await client.getSecret("MySecretName");

こちらも参照ください

次のステップ