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.
Voorbeelden
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
Logboekregistratie
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 map met voorbeelden voor gedetailleerde voorbeelden over het gebruik van deze bibliotheek.
Contributing
Als u een bijdrage wilt leveren aan deze bibliotheek, leest u de gids voor bijdragen voor meer informatie over het bouwen en testen van de code.
Azure SDK for JavaScript