Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo pacchetto fornisce autenticazione Azure Entra ID (precedentemente Azure Active Directory) per le connessioni PostgreSQL in JavaScript. Supporta sia i client node-postgres (pg) che quelli Sequelize .
Collegamenti chiave:
Come iniziare
Ambienti attualmente supportati
Consulta la nostra politica support per maggiori dettagli.
Prerequisiti
- Una sottoscrizione di Azure.
- Un server Database di Azure per PostgreSQL configurato per l'autenticazione Entra ID.
Installare il pacchetto @azure/postgresql-auth
Installa la libreria client Azure PostgreSQL Authentication per JavaScript con npm:
npm install @azure/postgresql-auth
Dovrai anche installare @azure/identity per il supporto alle credenziali e per il tuo client PostgreSQL preferito:
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Concetti chiave
Questa libreria fornisce due funzioni per integrare l'autenticazione Entra ID con PostgreSQL:
-
entraTokenProvider— Restituisce una funzione di fornimento di password che acquisisce un token di accesso Entra ID adatto all'uso come password PostgreSQL. Usa questo conpg.Poolopg.Client. -
configureEntraAuthentication— Registra unbeforeConnecthook su un'istanza Sequelize che acquisisce automaticamente un token nuovo e imposta il nome utente/password prima di ogni nuova connessione. -
GetEntraTokenPasswordOptions— Opzionalmente sovrascrivere l'ambito OAuth predefinito (proprietà di scopo) passato a entraTokenProvider. -
SequelizeBeforeConnectHook— Interfaccia strutturale accettata da configureEntraAuthentication; ti permette di usare qualsiasi oggetto compatibile con Sequelize senza aggiungere una dipendenza rigida di Sequelize.
Entrambe le funzioni accettano un Azure TokenCredential (da @azure/identity) e gestiscono l'acquisizione dei token rispetto all'ambito Database di Azure per PostgreSQL.
Examples
Uso con nodo-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 },
});
Uso con 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
Registrazione
L'abilitazione della registrazione può aiutare a individuare informazioni utili sugli errori. Per visualizzare un log di richieste e risposte HTTP, impostare la variabile di ambiente AZURE_LOG_LEVEL su info. In alternativa, la registrazione può essere abilitata in tempo reale chiamando setLogLevel nel @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Per istruzioni più dettagliate su come abilitare i log, è possibile esaminare la documentazione del pacchetto @azure/logger.
Passaggi successivi
Per esempi dettagliati su come usare questa libreria, vedere gli esempi di directory.
Contributing
Se desideri contribuire a questa libreria, leggi la guida contributi per saperne di più su come costruire e testare il codice.
Azure SDK for JavaScript