次の方法で共有


Visual Studio Code 認証用の Azure ID プラグイン

このパッケージは、Visual Studio Code の "Azure アカウント" 拡張機能を介した認証を有効にする JavaScript 用 Azure Identity ライブラリ (@azure/identity) にプラグインを提供します。 このプラグインは、 内@azure/identityの の依存関係をVisualStudioCodeCredential提供し、 の一部DefaultAzureCredentialとして、または 独自に使用できるようにします。

ソースコード | サンプル

作業の開始

import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

前提条件

パッケージをインストールする

このパッケージは、Azure Identity for JavaScript で使用するように設計されています。 と を使用してこのパッケージの両方 @azure/identitynpmインストールします。

$ npm install --save @azure/identity
$ npm install --save-dev @azure/identity-vscode

サポートされる環境

JavaScript 用の Azure Identity プラグインでは、v12 以降の安定した (番号付き) バージョンのNode.jsがサポートされます。 プラグインは他の Node バージョンで実行することができますが、サポートは保証されません。 @azure/identity-vscode はブラウザー 環境をサポートしていません。

主要な概念

@azure/identity または Microsoft ID プラットフォーム (Azure Active Directory) を初めて使用する場合は、まず「Microsoft ID プラットフォームで @azure/identity を使用する」をお読みください。 このドキュメントでは、プラットフォームの詳細と、Azure アカウントを正しく構成する方法について説明しています。

Azure IDENTITY プラグイン

@azure/identityバージョン 2.0.0 以降、JavaScript 用 ID クライアント ライブラリにはプラグイン API が含まれています。 このパッケージ (@azure/identity-vscode) は、パッケージから最上位 useIdentityPlugin の関数に引数として渡す必要があるプラグイン オブジェクトを @azure/identity エクスポートします。 次のように、Visual Studio Code の "Azure アカウント" 拡張機能を使用して認証を有効にします。

import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

を呼び出useIdentityPluginすと、パッケージの @azure/identityVisualStudioCodeCredential有効になります。 このプラグインが使用されていない場合、 VisualStudioCodeCredential は を CredentialUnavailableErrorスローし、 の DefaultAzureCredential一部として使用することはできません。

Visual Studio Code 認証

VisualStudioCodeCredential では、 "Azure アカウント" 拡張機能からの認証セッションが使用されます。 この資格情報を使用するには、拡張機能を使用して Azure アカウントにサインインする必要があります。 これを行うには、Visual Studio Code を開き、拡張機能がインストールされていることを確認し、[Azure: サインイン] オプションを使用して コマンド パレット からサインインしてブラウザー ウィンドウを開き、Azure にサインインします。 または、[Azure: デバイス コードでサインイン] を選択して、デバイス コード フローを使用することもできます。

サインイン後、サブスクリプションを選択する必要がある場合があります (たとえば、複数の Azure サブスクリプションがある場合)、メニューを使用して [Azure: サブスクリプションの選択] エントリを選択することで、アクティブなサブスクリプションを変更できます。

プラグインが登録されたら、 の他の資格情報クラスと同様の方法で @azure/identityを使用VisualStudioCodeCredentialできます。

import { useIdentityPlugin, VisualStudioCodeCredential } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

async function main() {
  const credential = new VisualStudioCodeCredential();

  // The graph.microsoft.com scope is used as an example
  const scope = "https://graph.microsoft.com/.default";

  // Print out part of the access token
  console.log((await credential.getToken(scope)).token.substr(0, 10), "...");
}

main().catch((error) => {
  console.error("An error occurred:", error);
  process.exit(1);
});

を使用 DefaultAzureCredentialすることもできます。これにより、Visual Studio Code の "Azure アカウント" 拡張機能を使用した認証が試みられます (使用可能な場合)。

import { useIdentityPlugin, DefaultAzureCredential } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

async function main() {
  // With the plugin enabled above, `DefaultAzureCredential` will use
  // Visual Studio Code's "Azure Account" extension to authenticate if
  // it is available.
  const credential = new DefaultAzureCredential();

  // This will print a JWT access_token and its expiration timestamp
  // The graph.microsoft.com scope is used as an example
  console.log("Token:", await credential.getToken("https://graph.microsoft.com/.default"));
}

main().catch((error) => {
  console.error("An error occurred:", error);
  process.exit(1);
});

トラブルシューティング

ログの記録

ログの記録を有効にすると、エラーに関する有用な情報を明らかにするのに役立つ場合があります。 HTTP 要求と応答のログを表示するには、環境変数 AZURE_LOG_LEVELinfo に設定します。 または、@azure/loggersetLogLevel を呼び出して、実行時にログ記録を有効にすることもできます。

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

次のステップ

フィードバックの提供

バグが発生した場合や提案がある場合は、issue をオープンしてください。

共同作成

このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。

インプレッション数