@azure/postgresql-auth package

Интерфейсы

ConfigureEntraAuthenticationOptions

Варианты настройки аутентификации Entra ID с помощью Sequelize.

EntraTokenProviderOptions

Варианты для entraTokenProvider.

SequelizeBeforeConnectHook

Структурный тип, представляющий экземпляр, похожий на Sequelize, поддерживающий beforeConnect крючок жизненного цикла. Это позволяет избежать жёсткой зависимости от упаковки sequelize , при этом обеспечивая безопасность типа.

Функции

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Настраивает экземпляр Sequelize с использованием аутентификации Entra ID.

Эта функция регистрирует beforeConnect на экземпляре Sequelize, который автоматически получает токен Entra ID перед каждым новым подключением к базе данных. Крюк извлекает имя пользователя из заявок на JWT (upn или appid) и устанавливает как имя пользователя, так и пароль на конфигурации соединения.

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)

Создаёт функцию провайдера паролей, которая получает токен доступа Entra ID, подходящий для использования в качестве пароля PostgreSQL.

Эта функция возвращает обратный вызов, который при вызове запрашивает токен у предоставленного <xref:TokenCredential> через область База данных Azure для PostgreSQL. Возвращённый обратный вызов может быть передан напрямую как password опция для pg.Client, pg.Pool, или аналогичных конфигураций клиента PostgreSQL.

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

Сведения о функции

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Настраивает экземпляр Sequelize с использованием аутентификации Entra ID.

Эта функция регистрирует beforeConnect на экземпляре Sequelize, который автоматически получает токен Entra ID перед каждым новым подключением к базе данных. Крюк извлекает имя пользователя из заявок на JWT (upn или appid) и устанавливает как имя пользователя, так и пароль на конфигурации соединения.

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)

Параметры

sequelizeInstance
SequelizeBeforeConnectHook

Экземпляр Sequelize для настройки. Должен поддерживать крючок beforeConnect жизненного цикла.

credential
TokenCredential

Azure <xref:TokenCredential> используется для получения токенов (например, DefaultAzureCredential).

options
ConfigureEntraAuthenticationOptions

Опциональная конфигурация для поведения аутентификации.

entraTokenProvider(TokenCredential, EntraTokenProviderOptions)

Создаёт функцию провайдера паролей, которая получает токен доступа Entra ID, подходящий для использования в качестве пароля PostgreSQL.

Эта функция возвращает обратный вызов, который при вызове запрашивает токен у предоставленного <xref:TokenCredential> через область База данных Azure для PostgreSQL. Возвращённый обратный вызов может быть передан напрямую как password опция для pg.Client, pg.Pool, или аналогичных конфигураций клиента PostgreSQL.

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>

Параметры

credential
TokenCredential

Azure <xref:TokenCredential> используется для получения токенов (например, DefaultAzureCredential).

options
EntraTokenProviderOptions

Опциональные настройки, такие как кастомный прицел OAuth.

Возвращаемое значение

() => Promise<string>

Функция, которая при вызове возвращает обещание, разрешающее строку токена доступа.