Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este pacote fornece autenticação Azure Entra ID (anteriormente Azure Active Directory) para ligações PostgreSQL em JavaScript. Suporta tanto clientes node-postgres (pg) como Sequelize .
Ligações principais:
Como Começar
Ambientes atualmente suportados
Consulte a nossa política de suporte para obter mais detalhes.
Pré-requisitos
- Uma assinatura do Azure.
- Um servidor Base de Dados do Azure para PostgreSQL configurado para autenticação Entra ID.
Instalar o pacote @azure/postgresql-auth
Instale a biblioteca cliente Azure PostgreSQL Authentication para JavaScript com npm:
npm install @azure/postgresql-auth
Também terá de instalar @azure/identity para suporte a credenciais e para o seu cliente PostgreSQL preferido:
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Conceitos-chave
Esta biblioteca fornece duas funções para integrar autenticação Entra ID com PostgreSQL:
-
entraTokenProvider— Devolve uma função de fornecedor de palavra-passe que adquire um token de acesso Entra ID adequado para ser usado como palavra-passe PostgreSQL. Use isto compg.Pooloupg.Client. -
configureEntraAuthentication— Regista umbeforeConnecthook numa instância Sequelize que adquire automaticamente um token novo e define o nome de utilizador/palavra-passe antes de cada nova ligação. -
GetEntraTokenPasswordOptions— Opcionalmente, sobrepor o âmbito padrão OAuth (propriedade de escopo) passado para entraTokenProvider. -
SequelizeBeforeConnectHook— Interface estrutural aceite pelo configureEntraAuthentication; permite usar qualquer objeto compatível com Sequelize sem adicionar uma dependência rígida do Sequelize.
Ambas as funções aceitam um Azure TokenCredential (de @azure/identity) e tratam da aquisição de tokens contra o âmbito Base de Dados do Azure para PostgreSQL.
Exemplos
Usando com node-postgres (pg)
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 },
});
Usar com Sequelize
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();
Solução de problemas
Logging
Habilitar o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em tempo de execução chamando setLogLevel no @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Para obter instruções mais detalhadas sobre como habilitar logs, você pode consultar os documentos do pacote @azure/logger.
Passos seguintes
Por favor, dê uma olhada no diretório de exemplos para obter exemplos detalhados sobre como usar esta biblioteca.
Contributing
Se você quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Azure SDK for JavaScript