Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit pakket biedt Azure Entra ID (voorheen Azure Active Directory) authenticatie voor PostgreSQL-verbindingen in JavaScript. Het ondersteunt zowel node-postgres (pg) als Sequelize-clients .
Sleutelkoppelingen:
Aan de slag
Momenteel ondersteunde omgevingen
Zie ons ondersteuningsbeleid voor meer informatie.
Prerequisites
- Een Azure-abonnement.
- Een Azure Database for PostgreSQL server geconfigureerd voor Entra ID authenticatie.
Het @azure/postgresql-auth-pakket installeren
Installeer de Azure PostgreSQL Authentication clientbibliotheek voor JavaScript met npm:
npm install @azure/postgresql-auth
Je moet het ook installeren @azure/identity voor credentialondersteuning en je favoriete PostgreSQL-client:
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
belangrijke concepten
Deze bibliotheek biedt twee functies voor het integreren van Entra ID-authenticatie met PostgreSQL:
-
entraTokenProvider— Geeft een wachtwoordproviderfunctie terug die een Entra ID toegangstoken verwerft dat geschikt is voor gebruik als PostgreSQL-wachtwoord. Gebruik dit metpg.Poolofpg.Client. -
configureEntraAuthentication— Registreert eenbeforeConnecthook op een Sequelize-instantie die automatisch een nieuw token verwerft en de gebruikersnaam/wachtwoord voor elke nieuwe verbinding instelt. -
GetEntraTokenPasswordOptions— Overschrijf optioneel de standaard OAuth-scope (scope-eigenschap) die aan entraTokenProvider wordt doorgegeven. -
SequelizeBeforeConnectHook— Structurele interface geaccepteerd door configureEntraAuthentication; laat je elk Sequelize-compatibel object gebruiken zonder een harde sequelize-afhankelijkheid toe te voegen.
Beide functies accepteren een Azure TokenCredential (van @azure/identity) en behandelen tokenverwerving tegen de Azure Database for PostgreSQL scope.
Examples
Met 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 },
});
Gebruik met 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
Logging
Het inschakelen van logboekregistratie kan helpen nuttige informatie over fouten te ontdekken. Als u een logboek met HTTP-aanvragen en -antwoorden wilt zien, stelt u de omgevingsvariabele AZURE_LOG_LEVEL in op info. U kunt logboekregistratie ook tijdens runtime inschakelen door setLogLevel aan te roepen in de @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Voor meer gedetailleerde instructies over het inschakelen van logboeken, kunt u de @azure/logger pakketdocumentenbekijken.
Volgende stappen
Bekijk de voorbeelden map voor gedetailleerde voorbeelden over het gebruik van deze bibliotheek.
Contributing
Als je wilt bijdragen aan deze bibliotheek, lees dan de bijdragende gids om meer te weten te komen over hoe je de code bouwt en test.
Azure SDK for JavaScript