토큰 캐시 지속성을 위한 Azure ID 플러그 인

이 패키지는 영구 토큰 캐싱을 사용하도록 설정하는 JavaScript(@azure/identity)용 Azure ID 라이브러리에 대한 플러그 인을 제공합니다. 토큰 캐시 지속성을 사용하면 기본 제공 토큰 캐시가 로컬 운영 체제에서 제공하는 보안 스토리지 시스템을 사용하여 세션 간에 유지됩니다.

소스 코드 | 샘플

시작

import { useIdentityPlugin } from "@azure/identity";
import { cachePersistencePlugin } from "@azure/identity-cache-persistence";

useIdentityPlugin(cachePersistencePlugin);

사전 요구 사항

패키지 설치

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

$ npm install --save @azure/identity
$ npm install --save @azure/identity-cache-persistence

지원되는 환경

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

주요 개념

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

Azure ID 플러그 인

@azure/identity 버전 2.0.0을 기준으로 JavaScript용 ID 클라이언트 라이브러리에는 플러그 인 API가 포함되어 있습니다. 이 패키지(@azure/identity-cache-persistence)는 인수로 전달해야 하는 플러그 인 개체를 패키지의 @azure/identity 최상위 useIdentityPlugin 함수로 내보냅니다. 다음과 같이 프로그램에서 토큰 캐시 지속성을 사용하도록 설정합니다.

import { useIdentityPlugin } from "@azure/identity";
import { cachePersistencePlugin } from "@azure/identity-cache-persistence";

useIdentityPlugin(cachePersistencePlugin);

를 호출 useIdentityPlugin한 후 영구 토큰 캐시 플러그 인은 패키지에 @azure/identity 등록되며 영구 토큰 캐싱을 지원하는 모든 자격 증명(생성자 옵션에 있는 tokenCachePersistenceOptions 자격 증명)에서 사용할 수 있습니다.

플러그 인이 등록되면 로 설정된 true 속성을 자격 증명 생성자로 전달 tokenCachePersistenceOptionsenabled 하여 토큰 캐시 지속성을 사용하도록 설정할 수 있습니다. 다음 예제에서는 토큰의 영구 캐싱을 사용하면 캐시된 토큰을 사용할 수 있는 경우 대화형 디바이스 코드 인증 흐름을 건너뛸 수 있으므로 를 사용합니다 DeviceCodeCredential.

import { useIdentityPlugin, DeviceCodeCredential } from "@azure/identity";
import { cachePersistencePlugin } from "@azure/identity-cache-persistence";

useIdentityPlugin(cachePersistencePlugin);

async function main() {
  const credential = new DeviceCodeCredential({
    tokenCachePersistenceOptions: {
      enabled: true
    }
  });

  // We'll use the Microsoft Graph scope 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);
});

문제 해결

로깅

로깅을 사용하도록 설정하면 실패에 대한 유용한 정보를 파악하는 데 도움이 될 수 있습니다. HTTP 요청 및 응답 로그를 보려면 AZURE_LOG_LEVEL 환경 변수를 info로 설정합니다. 또는 @azure/logger에서 setLogLevel을 호출하여 런타임에 로깅을 사용하도록 설정할 수 있습니다.

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

setLogLevel("info");

다음 단계

피드백 제공

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

참여

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

Impressions