Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Paket bietet Azure Entra ID (früher Azure Active Directory) Authentifizierung für PostgreSQL-Verbindungen in JavaScript. Es unterstützt sowohl Node-Postgres (pg) als auch Sequelize-Clients .
Wichtige Links:
Erste Schritte
Derzeit unterstützte Umgebungen
Weitere Details finden Sie in unserer Supportrichtlinie .
Voraussetzungen
- Ein Azure-Abonnement.
- Ein Azure Database for PostgreSQL Server, der für Entra ID Authentifizierung konfiguriert ist.
Installieren Sie das @azure/postgresql-auth-Paket
Installieren Sie die Azure PostgreSQL Authentication Client-Bibliothek für JavaScript mit npm:
npm install @azure/postgresql-auth
Sie müssen außerdem für die Unterstützung der Zugangsdaten und Ihren bevorzugten PostgreSQL-Client installieren @azure/identity :
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Wichtige Konzepte
Diese Bibliothek bietet zwei Funktionen zur Integration der Entra ID-Authentifizierung mit PostgreSQL:
-
entraTokenProvider— Gibt eine Passwortanbieterfunktion zurück, die ein Entra ID Zugriffstoken erwirbt, das als PostgreSQL-Passwort verwendet werden kann. Verwenden Sie dies mitpg.Pooloderpg.Client. -
configureEntraAuthentication— Registriert einenbeforeConnectHook auf einer Sequelize-Instanz, der automatisch ein frisches Token erwirbt und vor jeder neuen Verbindung Benutzername/Passwort einlegt. -
GetEntraTokenPasswordOptions— Optional überschreiben Sie den Standard-OAuth-Scope (Scope-Eigenschaft), der an entraTokenProvider weitergegeben wird. -
SequelizeBeforeConnectHook— Strukturelle Schnittstelle akzeptiert von configureEntraAuthentication; erlaubt es dir, jedes Sequelize-kompatible Objekt zu verwenden, ohne eine feste Sequelize-Abhängigkeit hinzuzufügen.
Beide Funktionen akzeptieren ein Azure TokenCredential (aus @azure/identity) und verwalten die Token-Erfassung gegen den Azure Database for PostgreSQL Scope.
Examples
Verwendung mit 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 },
});
Verwendung mit 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
Protokollierung
Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert werden:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in den @azure/Logger-Paketdokumenten.
Nächste Schritte
Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie im Beispielverzeichnis .
Contributing
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den Beitragsleitfaden , um mehr über das Erstellen und Testen des Codes zu erfahren.
Azure SDK for JavaScript