次の方法で共有


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 に対してプログラムで認証する前に、環境が設定されていることを確認します。

JavaScript 用の Azure SDK の資格情報フローを示す図。

開発者は、コードで DefaultAzureCredential を使用する前に、Azure CLI をインストールし、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 = '<your-vault-name>';  
const url = `https://${vaultName}.vault.azure.net`;  
const client = new SecretClient(url, credential);  

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

関連項目

次のステップ