@azure/postgresql-auth package

Interfaces

ConfigureEntraAuthenticationOptions

Options pour configurer l’authentification Entra ID avec Sequelize.

EntraTokenProviderOptions

Options pour entraTokenProvider.

SequelizeBeforeConnectHook

Un type structurel représentant une instance de type Sequelize qui supporte le beforeConnect crochet du cycle de vie. Cela évite une dépendance stricte au sequelize package tout en assurant la sécurité des types.

Functions

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Configure une instance Sequelize pour utiliser l’authentification Entra ID.

Cette fonction enregistre un hook beforeConnect sur l’instance Sequelize qui acquiert automatiquement un jeton Entra ID avant chaque nouvelle connexion à la base de données. Le hook extrait le nom d’utilisateur des revendications du token JWT (upn ou appid) et définit à la fois le nom d’utilisateur et le mot de passe sur la configuration de connexion.

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)

Crée une fonction de fournisseur de mots de passe qui acquiert un jeton d’accès Entra ID adapté à un mot de passe PostgreSQL.

Cette fonction renvoie un rappel qui, lorsqu’il est invoqué, demande un jeton au <xref:TokenCredential> fourni en utilisant le scope Azure Database pour PostgreSQL. Le rappel retourné peut être transmis directement comme option password pour pg.Client, pg.Pool, ou des configurations clients PostgreSQL similaires.

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

Informations relatives à la fonction

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Configure une instance Sequelize pour utiliser l’authentification Entra ID.

Cette fonction enregistre un hook beforeConnect sur l’instance Sequelize qui acquiert automatiquement un jeton Entra ID avant chaque nouvelle connexion à la base de données. Le hook extrait le nom d’utilisateur des revendications du token JWT (upn ou appid) et définit à la fois le nom d’utilisateur et le mot de passe sur la configuration de connexion.

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)

Paramètres

sequelizeInstance
SequelizeBeforeConnectHook

L’instance Sequelize pour configurer. Il faut soutenir le beforeConnect crochet du cycle de vie.

credential
TokenCredential

Un Azure <xref:TokenCredential> utilisé pour acquérir des jetons (par exemple, DefaultAzureCredential).

options
ConfigureEntraAuthenticationOptions

Configuration optionnelle pour le comportement d’authentification.

entraTokenProvider(TokenCredential, EntraTokenProviderOptions)

Crée une fonction de fournisseur de mots de passe qui acquiert un jeton d’accès Entra ID adapté à un mot de passe PostgreSQL.

Cette fonction renvoie un rappel qui, lorsqu’il est invoqué, demande un jeton au <xref:TokenCredential> fourni en utilisant le scope Azure Database pour PostgreSQL. Le rappel retourné peut être transmis directement comme option password pour pg.Client, pg.Pool, ou des configurations clients PostgreSQL similaires.

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>

Paramètres

credential
TokenCredential

Un Azure <xref:TokenCredential> utilisé pour acquérir des jetons (par exemple, DefaultAzureCredential).

options
EntraTokenProviderOptions

Des réglages optionnels comme une lunette OAuth personnalisée.

Retours

() => Promise<string>

Une fonction qui, lorsqu’elle est appelée, renvoie une promesse résolvant la chaîne de jeton d’accès.