Azure PostgreSQL Authentication client library for JavaScript - version 1.0.0-beta.1

이 패키지는 자바스크립트 PostgreSQL 연결에 대한 Azure Entra ID(이전 Azure Active Directory) 인증을 제공합니다. node-postgres(pg)Sequelize 클라이언트 모두를 지원합니다.

키 링크:

시작하기

현재 지원되는 환경

자세한 내용은 저희 support 정책을 참조하세요.

사전 요구 사항

@azure/postgresql-auth 패키지 설치

npm로 자바스크립트용 Azure PostgreSQL 인증 클라이언트 라이브러리를 설치하세요:

npm install @azure/postgresql-auth

자격 증명 지원과 선호하는 PostgreSQL 클라이언트도 설치 @azure/identity 해야 합니다:

npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg

주요 개념

이 라이브러리는 Entra ID 인증을 PostgreSQL과 통합하기 위한 두 가지 기능을 제공합니다:

  • entraTokenProvider — PostgreSQL 비밀번호로 사용할 수 있는 Entra ID 접근 토큰을 획득하는 비밀번호 제공자 함수를 반환합니다. 이 단어를 또는 와 함께 pg.Poolpg.Client사용하세요.
  • configureEntraAuthentication — Sequelize 인스턴스에 훅을 beforeConnect 등록하여 자동으로 새 토큰을 획득하고 새 연결 전에 사용자 이름/비밀번호를 설정합니다.
  • GetEntraTokenPasswordOptions — 선택적으로 entraTokenProvider에 전달된 기본 OAuth 범위(scope 속성)를 덮어쓰세요.
  • SequelizeBeforeConnectHook — configureEntraAuthentication에서 수락된 구조적 인터페이스; 하드 Sequelize 의존성을 추가하지 않고도 어떤 Sequelize 호환 객체든 사용할 수 있게 해줍니다.

두 함수 모두 Azure TokenCredential(@azure/identity에서 유래)를 받으며, Azure Database for PostgreSQL 범위에 대한 토큰 획득을 처리합니다.

예제

node-postgres (pg) 사용법

import { DefaultAzureCredential } from "@azure/identity";

const { entraTokenProvider } = await import("@azure/postgresql-auth");
const pg = await import("pg");
const credential = new DefaultAzureCredential();
const pool = new pg.Pool({
  host: process.env.PGHOST,
  port: Number(process.env.PGPORT || 5432),
  database: process.env.PGDATABASE,
  user: process.env.PGUSER,
  password: entraTokenProvider(credential),
  ssl: { rejectUnauthorized: true },
});

Sequelize와 함께 사용

import { DefaultAzureCredential } from "@azure/identity";

const { configureEntraAuthentication } = await import("@azure/postgresql-auth");
const { Sequelize } = await import("sequelize");
const sequelize = new Sequelize({
  dialect: "postgres",
  host: process.env.PGHOST,
  port: Number(process.env.PGPORT || 5432),
  database: process.env.PGDATABASE,
});
const credential = new DefaultAzureCredential();
configureEntraAuthentication(sequelize, credential);
await sequelize.authenticate();

Troubleshooting

로깅

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

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

setLogLevel("info");

로그를 사용하도록 설정하는 방법에 대한 자세한 지침은 @azure/로거 패키지 문서를 참조하세요.

다음 단계

이 라이브러리를 사용하는 방법에 대한 자세한 예제는 샘플 디렉터리를 참조하세요.

Contributing

이 라이브러리에 기여하고 싶으시다면, 코드 빌드 및 테스트 방법에 대해 더 알고 싶다면 기여 가이드를 읽어보시기 바랍니다.