Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pakiet ten zapewnia uwierzytelnianie Azure Entra ID (dawniej Azure Active Directory) dla połączeń PostgreSQL w języku JavaScript. Obsługuje zarówno node-postgres (pg), jak i klientów Sequelize .
Kluczowe linki:
- Kod źródłowy
- dokumentacja produktu
Rozpoczęcie pracy
Obecnie obsługiwane środowiska
- Wersje LTS systemu Node.js
Aby uzyskać więcej informacji, zobacz nasze zasady pomocy technicznej .
Prerequisites
- Subskrypcja platformy Azure.
- Serwer Azure Database for PostgreSQL skonfigurowany do uwierzytelniania Entra ID.
Instalowanie pakietu @azure/postgresql-auth
Zainstaluj bibliotekę klienta uwierzytelniania PostgreSQL Azure dla JavaScript z npm:
npm install @azure/postgresql-auth
Będziesz też musiał zainstalować @azure/identity wsparcie dla uwierzytelniania oraz preferowanego klienta PostgreSQL:
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Kluczowe pojęcia
Ta biblioteka oferuje dwie funkcje integracji uwierzytelniania Entra ID z PostgreSQL:
-
entraTokenProvider— Zwraca funkcję dostawcy haseł, która pozyskuje token dostępu Entra ID odpowiedni do użycia jako hasło PostgreSQL. Użyj tego zpg.Poollubpg.Client. -
configureEntraAuthentication— RejestrujebeforeConnecthak na instancji Sequelize, która automatycznie przejmuje nowy token i ustawia nazwę użytkownika/hasło przed każdym nowym połączeniem. -
GetEntraTokenPasswordOptions— Opcjonalnie nadpisz domyślny zakres OAuth (właściwość zakresu) przekazany do entraTokenProvider. -
SequelizeBeforeConnectHook— Interfejs strukturalny akceptowany przez configureEntraAuthentication; pozwala używać dowolnego obiektu kompatybilnego z Sequelize bez dodawania twardej zależności Sequelize.
Obie funkcje akceptują Azure TokenCredential (od @azure/identity) i obsługują pozyskiwanie tokenów względem zakresu Azure Database for PostgreSQL.
Przykłady
Używając z węzłem-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 },
});
Użycie z 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
Przemysł drzewny
Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Aby uzyskać bardziej szczegółowe instrukcje dotyczące włączania dzienników, zapoznaj się z dokumentacją pakietu @azure/logger.
Następne kroki
Zapoznaj się z przykładami katalogu, aby zapoznać się ze szczegółowymi przykładami dotyczącymi korzystania z tej biblioteki.
Contributing
Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik dotyczący współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.
Azure SDK for JavaScript