@azure/postgresql-auth package

Interfaces

ConfigureEntraAuthenticationOptions

Opções para configurar autenticação do Entra ID com o Sequelize.

EntraTokenProviderOptions

Opções para entraTokenProvider.

SequelizeBeforeConnectHook

Um tipo estrutural que representa uma instância semelhante a Sequelize que suporta o beforeConnect gancho do ciclo de vida. Isso evita uma dependência rígida sequelize do pacote, ao mesmo tempo em que oferece segurança de tipos.

Funções

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Configura uma instância Sequelize para usar autenticação Entra ID.

Essa função registra um gancho beforeConnect na instância Sequelize que automaticamente adquire um token Entra ID antes de cada nova conexão com banco de dados. O hook extrai o nome de usuário das reivindicações do token JWT (upn ou appid) e define tanto o nome de usuário quanto a senha na configuração da conexão.

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)

Cria uma função de provedor de senhas que adquire um token de acesso Entra ID adequado para uso como senha PostgreSQL.

Essa função retorna um callback que, quando invocado, solicita um token do <xref:TokenCredential> fornecido usando o escopo Banco de Dados do Azure para PostgreSQL. O callback retornado pode ser passado diretamente como opção password para pg.Client, pg.Pool, ou configurações similares de clientes 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 },
});

Detalhes da função

configureEntraAuthentication(SequelizeBeforeConnectHook, TokenCredential, ConfigureEntraAuthenticationOptions)

Configura uma instância Sequelize para usar autenticação Entra ID.

Essa função registra um gancho beforeConnect na instância Sequelize que automaticamente adquire um token Entra ID antes de cada nova conexão com banco de dados. O hook extrai o nome de usuário das reivindicações do token JWT (upn ou appid) e define tanto o nome de usuário quanto a senha na configuração da conexão.

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)

Parâmetros

sequelizeInstance
SequelizeBeforeConnectHook

A instância Sequelize para configurar. Deve apoiar o beforeConnect gancho do ciclo de vida.

credential
TokenCredential

Um Azure <xref:TokenCredential> usado para adquirir tokens (por exemplo, DefaultAzureCredential).

options
ConfigureEntraAuthenticationOptions

Configuração opcional para o comportamento de autenticação.

entraTokenProvider(TokenCredential, EntraTokenProviderOptions)

Cria uma função de provedor de senhas que adquire um token de acesso Entra ID adequado para uso como senha PostgreSQL.

Essa função retorna um callback que, quando invocado, solicita um token do <xref:TokenCredential> fornecido usando o escopo Banco de Dados do Azure para PostgreSQL. O callback retornado pode ser passado diretamente como opção password para pg.Client, pg.Pool, ou configurações similares de clientes 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>

Parâmetros

credential
TokenCredential

Um Azure <xref:TokenCredential> usado para adquirir tokens (por exemplo, DefaultAzureCredential).

options
EntraTokenProviderOptions

Configurações opcionais, como um osciloscópio OAuth personalizado.

Retornos

() => Promise<string>

Uma função que, quando chamada, retorna uma promessa resolvendo para a string do token de acesso.