다음을 통해 공유


Visual Studio Code 인증을 위한 Azure ID 플러그 인

이 패키지는 Visual Studio Code 대한 "Azure 계정" 확장을 통해 인증을 사용하도록 설정하는 JavaScript용 Azure ID 라이브러리(@azure/identity)에 대한 플러그 인을 제공합니다. 이 플러그 인은 의 @azure/identity 종속성을 VisualStudioCodeCredential 제공하고 자체 또는 의 DefaultAzureCredential일부로 사용할 수 있도록 합니다.

소스 코드 | 샘플

시작

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

useIdentityPlugin(vsCodePlugin);

사전 요구 사항

패키지 설치

이 패키지는 JavaScript용 Azure ID와 함께 사용하도록 설계되었습니다. 를 사용하여 및 이 패키지를 모두 @azure/identity 설치합니다 npm.

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

지원되는 환경

JavaScript용 Azure ID 플러그 인은 v12부터 안정적인(짝수 번호가 매겨진) 버전의 Node.js 지원합니다. 플러그 인은 다른 노드 버전에서 실행 될 수 있지만 지원은 보장되지 않습니다. @azure/identity-vscode 브라우저 환경을 지원하지 않습니다.

주요 개념

@azure/identity 또는 Microsoft ID 플랫폼(Azure Active Directory)을 처음 사용하는 경우 먼저 Microsoft ID 플랫폼과 함께 @azure/identity 사용을 읽는 것이 좋습니다. 이 문서를 통해 플랫폼과 Azure 계정을 올바르게 구성하는 방법을 자세히 이해할 수 있습니다.

Azure ID 플러그 인

@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하면 VisualStudioCodeCredential 패키지의 가 @azure/identity 사용하도록 설정됩니다. 이 플러그 인을 사용하지 VisualStudioCodeCredential 않으면 가 throw CredentialUnavailableError되고 의 DefaultAzureCredential일부로 사용할 수 없습니다.

Visual Studio Code 인증

VisualStudioCodeCredential"Azure 계정" 확장의 인증 세션을 사용합니다. 이 자격 증명을 사용하려면 확장을 사용하여 Azure 계정에 로그인해야 합니다. 이렇게 하려면 Visual Studio Code 열고 확장이 설치되어 있는지 확인하고 "Azure: 로그인" 옵션을 사용하여 명령 팔레트에서 로그인하여 브라우저 창을 열고 Azure에 로그인합니다. 또는 "Azure: 디바이스 코드로 로그인"을 선택하여 디바이스 코드 흐름을 사용할 수 있습니다.

로그인한 후 구독(예: 여러 Azure 구독이 있는 경우)을 선택해야 할 수 있으며 메뉴를 사용하여 활성 구독을 변경하여 "Azure: 구독 선택" 항목을 선택할 수 있습니다.

플러그 인이 등록되면 의 다른 자격 증명 클래스와 비슷한 방식으로 를 사용할 VisualStudioCodeCredential 수 있습니다.@azure/identity

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);
});

사용 가능한 경우 Visual Studio Code 대해 "Azure 계정" 확장을 사용하여 인증을 시도하는 를 사용할 DefaultAzureCredential수도 있습니다.

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_LEVEL 환경 변수를 info로 설정합니다. 또는 @azure/logger에서 setLogLevel을 호출하여 런타임에 로깅을 사용하도록 설정할 수 있습니다.

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

setLogLevel("info");

다음 단계

피드백 제공

버그가 발생하거나 제안이 있는 경우 문제를 열어주세요.

참여

이 라이브러리에 기여하려면 기여 가이드 를 참조하여 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.

Impressions