@azure/postgresql-auth package

Antarmuka

ConfigureEntraAuthenticationOptions

Opsi untuk mengonfigurasi otentikasi Entra ID dengan Sequelize.

EntraTokenProviderOptions

Opsi untuk entraTokenProvider.

SequelizeBeforeConnectHook

Jenis struktural yang mewakili instance seperti Sequelize yang mendukung beforeConnect hook siklus hidup. Ini menghindari ketergantungan yang sulit pada sequelize paket sambil tetap memberikan keamanan tipe.

Fungsi

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Mengonfigurasi instance Sequelize untuk menggunakan autentikasi Entra ID.

Fungsi ini mendaftarkan hook beforeConnect pada instance Sequelize yang secara otomatis memperoleh token Entra ID sebelum setiap koneksi database baru. Hook mengekstrak nama pengguna dari klaim token JWT (upn atau appid) dan mengatur nama pengguna dan kata sandi pada konfigurasi koneksi.

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)

Membuat fungsi penyedia kata sandi yang memperoleh token akses Entra ID yang cocok untuk digunakan sebagai kata sandi PostgreSQL.

Fungsi ini mengembalikan panggilan balik yang, ketika dipanggil, meminta token dari <xref:TokenCredential> yang disediakan menggunakan cakupan Azure Database for PostgreSQL. Callback yang dikembalikan dapat diteruskan secara langsung sebagai password opsi untuk pg.Client, pg.Pool, atau konfigurasi klien PostgreSQL serupa.

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

Detail Fungsi

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Mengonfigurasi instance Sequelize untuk menggunakan autentikasi Entra ID.

Fungsi ini mendaftarkan hook beforeConnect pada instance Sequelize yang secara otomatis memperoleh token Entra ID sebelum setiap koneksi database baru. Hook mengekstrak nama pengguna dari klaim token JWT (upn atau appid) dan mengatur nama pengguna dan kata sandi pada konfigurasi koneksi.

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

Instans Sequelize untuk dikonfigurasi. Harus mendukung beforeConnect kait siklus hidup.

credential
TokenCredential

Azure <xref:TokenCredential> digunakan untuk memperoleh token (misalnya, DefaultAzureCredential).

options
ConfigureEntraAuthenticationOptions

Konfigurasi opsional untuk perilaku autentikasi.

entraTokenProvider(TokenCredential, EntraTokenProviderOptions)

Membuat fungsi penyedia kata sandi yang memperoleh token akses Entra ID yang cocok untuk digunakan sebagai kata sandi PostgreSQL.

Fungsi ini mengembalikan panggilan balik yang, ketika dipanggil, meminta token dari <xref:TokenCredential> yang disediakan menggunakan cakupan Azure Database for PostgreSQL. Callback yang dikembalikan dapat diteruskan secara langsung sebagai password opsi untuk pg.Client, pg.Pool, atau konfigurasi klien PostgreSQL serupa.

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

Azure <xref:TokenCredential> digunakan untuk memperoleh token (misalnya, DefaultAzureCredential).

options
EntraTokenProviderOptions

Pengaturan opsional seperti cakupan OAuth kustom.

Mengembalikan

() => Promise<string>

Fungsi yang, ketika dipanggil, mengembalikan promise yang diselesaikan ke string token akses.