@azure/postgresql-auth package

Schnittstellen

ConfigureEntraAuthenticationOptions

Optionen zur Konfiguration der Entra ID-Authentifizierung mit Sequelize.

EntraTokenProviderOptions

Optionen für entraTokenProvider.

SequelizeBeforeConnectHook

Ein struktureller Typ, der eine Sequelize-ähnliche Instanz darstellt und den beforeConnect Lebenszyklus-Hook unterstützt. Dies vermeidet eine starke Abhängigkeit vom sequelize Gehäuse, bietet aber dennoch Typsicherheit.

Functions

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Konfiguriert eine Sequelize-Instanz so, dass sie Entra ID-Authentifizierung verwendet.

Diese Funktion registriert einen beforeConnect Hook auf der Sequelize-Instanz, der automatisch vor jeder neuen Datenbankverbindung ein Entra ID-Token erwirbt. Der Hook extrahiert den Benutzernamen aus den JWT-Token-Claims (upn oder appid) und legt sowohl Benutzername als auch Passwort in der Verbindungskonfiguration fest.

Example

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();
entraTokenProvider(TokenCredential, EntraTokenProviderOptions)

Erstellt eine Passwortanbieterfunktion, die ein Entra ID-Zugriffstoken erschafft, das als PostgreSQL-Passwort verwendet werden kann.

Diese Funktion gibt einen Callback zurück, der, wenn er aufgerufen wird, ein Token vom bereitgestellten <xref:TokenCredential> über den Azure Database for PostgreSQL Scope anfordert. Der zurückgegebene Rückruf kann direkt als password Option für pg.Client, pg.Pool, oder ähnliche PostgreSQL-Client-Konfigurationen weitergegeben werden.

Example

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 },
});

Details zur Funktion

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Konfiguriert eine Sequelize-Instanz so, dass sie Entra ID-Authentifizierung verwendet.

Diese Funktion registriert einen beforeConnect Hook auf der Sequelize-Instanz, der automatisch vor jeder neuen Datenbankverbindung ein Entra ID-Token erwirbt. Der Hook extrahiert den Benutzernamen aus den JWT-Token-Claims (upn oder appid) und legt sowohl Benutzername als auch Passwort in der Verbindungskonfiguration fest.

Example

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();
function configureEntraAuthentication(sequelizeInstance: SequelizeBeforeConnectHook, credential: TokenCredential, options?: ConfigureEntraAuthenticationOptions)

Parameter

sequelizeInstance
SequelizeBeforeConnectHook

Die Sequelize-Instanz zur Konfiguration. Muss den Lebenszyklus-Hook beforeConnect unterstützen.

credential
TokenCredential

Ein Azure <xref:TokenCredential> verwendet, um Token zu erwerben (z. B. DefaultAzureCredential).

options
ConfigureEntraAuthenticationOptions

Optionale Konfiguration für das Authentifizierungsverhalten.

entraTokenProvider(TokenCredential, EntraTokenProviderOptions)

Erstellt eine Passwortanbieterfunktion, die ein Entra ID-Zugriffstoken erschafft, das als PostgreSQL-Passwort verwendet werden kann.

Diese Funktion gibt einen Callback zurück, der, wenn er aufgerufen wird, ein Token vom bereitgestellten <xref:TokenCredential> über den Azure Database for PostgreSQL Scope anfordert. Der zurückgegebene Rückruf kann direkt als password Option für pg.Client, pg.Pool, oder ähnliche PostgreSQL-Client-Konfigurationen weitergegeben werden.

Example

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 },
});
function entraTokenProvider(credential: TokenCredential, options?: EntraTokenProviderOptions): () => Promise<string>

Parameter

credential
TokenCredential

Ein Azure <xref:TokenCredential> verwendet, um Token zu erwerben (z. B. DefaultAzureCredential).

options
EntraTokenProviderOptions

Optionale Einstellungen wie ein benutzerdefinierter OAuth-Scope.

Gibt zurück

() => Promise<string>

Eine Funktion, die, wenn sie aufgerufen wird, ein Versprechen zurückgibt, das auf den Zugriffstoken-String aufgelöst wird.