이 패키지는 자바스크립트 PostgreSQL 연결에 대한 Azure Entra ID(이전 Azure Active Directory) 인증을 제공합니다.
node-postgres(pg)와 Sequelize 클라이언트 모두를 지원합니다.
키 링크:
시작하기
현재 지원되는 환경
자세한 내용은 저희 support 정책을 참조하세요.
사전 요구 사항
- Azure 구독.
- Entra ID인증용으로 구성된 Azure Database for PostgreSQL 서버입니다.
@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_LEVEL를 info .로 설정합니다. 또는 런타임에 setLogLevel에서 @azure/logger를 호출하여 로깅을 활성화할 수 있습니다:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
로그를 사용하도록 설정하는 방법에 대한 자세한 지침은 @azure/로거 패키지 문서를 참조하세요.
다음 단계
이 라이브러리를 사용하는 방법에 대한 자세한 예제는 샘플 디렉터리를 참조하세요.
Contributing
이 라이브러리에 기여하고 싶으시다면, 코드 빌드 및 테스트 방법에 대해 더 알고 싶다면 기여 가이드를 읽어보시기 바랍니다.
Azure SDK for JavaScript