@azure/postgresql-auth package

Gränssnitt

ConfigureEntraAuthenticationOptions

Alternativ för att konfigurera Entra ID-autentisering med Sequelize.

EntraTokenProviderOptions

Alternativ för entraTokenProvider.

SequelizeBeforeConnectHook

En strukturell typ som representerar en Sequelize-liknande instans som stödjer beforeConnect livscykelkroken. Detta undviker ett starkt beroende av paketet sequelize samtidigt som det ger typsäkerhet.

Funktioner

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Konfigurerar en Sequelize-instans att använda Entra ID-autentisering.

Denna funktion registrerar en beforeConnect hook på Sequelize-instansen som automatiskt skaffar en Entra ID token före varje ny databasanslutning. Hooken extraherar användarnamnet från JWT-tokenanspråken (upn eller appid) och sätter både användarnamn och lösenord i anslutningskonfigurationen.

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)

Skapar en lösenordsleverantörsfunktion som erhåller en Entra ID-åtkomsttoken lämplig för användning som PostgreSQL-lösenord.

Denna funktion returnerar en callback som, när den anropas, begär en token från den tillhandahållna <xref:TokenCredential> med hjälp av Azure Database for PostgreSQL scope. Den returnerade callbacken kan skickas direkt som password alternativ för pg.Client, pg.Pool, eller liknande PostgreSQL-klientkonfigurationer.

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

Funktionsinformation

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Konfigurerar en Sequelize-instans att använda Entra ID-autentisering.

Denna funktion registrerar en beforeConnect hook på Sequelize-instansen som automatiskt skaffar en Entra ID token före varje ny databasanslutning. Hooken extraherar användarnamnet från JWT-tokenanspråken (upn eller appid) och sätter både användarnamn och lösenord i anslutningskonfigurationen.

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)

Parametrar

sequelizeInstance
SequelizeBeforeConnectHook

Sequelize-instansen att konfigurera. Måste stödja beforeConnect livscykelkroken.

credential
TokenCredential

En Azure <xref:TokenCredential> används för att skaffa polletter (t.ex. DefaultAzureCredential).

options
ConfigureEntraAuthenticationOptions

Valfri konfiguration för autentiseringsbeteendet.

entraTokenProvider(TokenCredential, EntraTokenProviderOptions)

Skapar en lösenordsleverantörsfunktion som erhåller en Entra ID-åtkomsttoken lämplig för användning som PostgreSQL-lösenord.

Denna funktion returnerar en callback som, när den anropas, begär en token från den tillhandahållna <xref:TokenCredential> med hjälp av Azure Database for PostgreSQL scope. Den returnerade callbacken kan skickas direkt som password alternativ för pg.Client, pg.Pool, eller liknande PostgreSQL-klientkonfigurationer.

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>

Parametrar

credential
TokenCredential

En Azure <xref:TokenCredential> används för att skaffa polletter (t.ex. DefaultAzureCredential).

options
EntraTokenProviderOptions

Valfria inställningar som ett anpassat OAuth-teleskop.

Returer

() => Promise<string>

En funktion som, när den anropas, returnerar ett löfte som löser sig till access-tokensträngen.