Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Detta paket erbjuder Azure Entra ID (tidigare Azure Active Directory) autentisering för PostgreSQL-anslutningar i JavaScript. Den stöder både node-postgres (pg) och Sequelize-klienter .
Nyckellänkar:
Komma igång
Miljöer som stöds för närvarande
Mer information finns i vår supportprincip .
Prerequisites
- En prenumeration för Azure.
- En Azure Database for PostgreSQL server konfigurerad för Entra ID autentisering.
Installera @azure/postgresql-auth-paketet
Installera Azure PostgreSQL Authentication-klientbiblioteket för JavaScript med npm:
npm install @azure/postgresql-auth
Du behöver också installera @azure/identity för legitimationsstöd och din föredragna PostgreSQL-klient:
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Viktiga begrepp
Detta bibliotek erbjuder två funktioner för att integrera Entra ID-autentisering med PostgreSQL:
-
entraTokenProvider— Returnerar en lösenordsleverantörsfunktion som skaffar en Entra ID åtkomsttoken lämplig för användning som PostgreSQL-lösenord. Använd detta medpg.Poolellerpg.Client. -
configureEntraAuthentication— Registrerar enbeforeConnecthook på en Sequelize-instans som automatiskt skaffar en ny token och sätter användarnamn/lösenord före varje ny anslutning. -
GetEntraTokenPasswordOptions— Kan du eventuellt åsidosätta standard-OAuth-scope (scope-egenskapen) som skickas till entraTokenProvider. -
SequelizeBeforeConnectHook— Strukturellt gränssnitt accepterat av configureEntraAuthentication; låter dig använda vilket Sequelize-kompatibelt objekt som helst utan att lägga till ett hårt sequelize-beroende.
Båda funktionerna accepterar en Azure TokenCredential (från @azure/identity) och hanterar tokeninsamling mot Azure Database for PostgreSQL scope.
Exempel
Använder med 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 },
});
Användning med 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
Loggning
Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL miljövariabeln till info. Du kan också aktivera loggning vid körning genom att anropa setLogLevel i @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Mer detaljerade anvisningar om hur du aktiverar loggar finns i dokument för @azure/logger-paket.
Nästa steg
Ta en titt på exempelkatalogen för detaljerade exempel på hur du använder det här biblioteket.
Contributing
Om du vill bidra till det här biblioteket kan du läsa bidragsguiden för att lära dig mer om hur du skapar och testar koden.
Azure SDK for JavaScript