Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este paquete proporciona autenticación Azure Entra ID (anteriormente Azure Active Directory) para conexiones PostgreSQL en JavaScript. Soporta tanto node-postgres (pg) como clientes Sequelize .
Vínculos clave:
Cómo empezar
Entornos admitidos actualmente
Consulte nuestra de directiva de soporte técnico de
Prerequisites
- Una suscripción de Azure.
- Un servidor Azure Database for PostgreSQL configurado para autenticación Entra ID.
Instalación del paquete @azure/postgresql-auth
Instala la biblioteca cliente de autenticación Azure PostgreSQL para JavaScript con npm:
npm install @azure/postgresql-auth
También necesitarás instalar @azure/identity para soporte de credenciales y tu cliente preferido de PostgreSQL:
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Conceptos clave
Esta biblioteca ofrece dos funciones para integrar la autenticación de Entra ID con PostgreSQL:
-
entraTokenProvider— Devuelve una función de proveedor de contraseñas que adquiere un token de acceso Entra ID adecuado para usarse como contraseña de PostgreSQL. Úsalo conpg.Poolopg.Client. -
configureEntraAuthentication— Registra unbeforeConnectgancho en una instancia de Sequelize que adquiere automáticamente un token nuevo y establece el nombre de usuario/contraseña antes de cada nueva conexión. -
GetEntraTokenPasswordOptions— Opcionalmente anular el alcance OAuth por defecto (propiedad de alcance) pasado a entraTokenProvider. -
SequelizeBeforeConnectHook— Interfaz estructural aceptada por configureEntraAuthentication; te permite usar cualquier objeto compatible con Sequelize sin añadir una dependencia estricta de Sequelize.
Ambas funciones aceptan un Azure TokenCredential (de @azure/identity) y gestionan la adquisición de tokens en función del alcance Azure Database for PostgreSQL.
Ejemplos
Usando con nodo-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 },
});
Usando con Secuela
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();
Solución de problemas
Registro
Habilitar el registro puede ayudar a descubrir información útil sobre errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en el @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Para obtener instrucciones más detalladas sobre cómo habilitar los registros, puede consultar los documentos del paquete de @azure/registrador.
Pasos siguientes
Eche un vistazo al directorio de ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.
Contributing
Si desea contribuir a esta biblioteca, lea la guía de contribución de para obtener más información sobre cómo compilar y probar el código.
Azure SDK for JavaScript