Azure PostgreSQL Authentication client library for JavaScript - version 1.0.0-beta.1

Ez a csomag Azure Entra ID (korábban Azure Active Directory) hitelesítést biztosít PostgreSQL kapcsolatokhoz JavaScriptben. Támogatja mind node-postgres (pg) és Sequelize klienseket.

Főbb hivatkozások:

Kezdő lépések

Jelenleg támogatott környezetek

További részletekért tekintse meg támogatási szabályzatunkat.

Prerequisites

Telepítse a(z) @azure/postgresql-auth csomagot

Telepítse a Azure PostgreSQL hitelesítési klienskönyvtárát JavaScripthez npm segítségével:

npm install @azure/postgresql-auth

@azure/identity Emellett telepítened kell a hitelesítési támogatást és a preferált PostgreSQL kliensed érdekében is:

npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg

főbb fogalmak

Ez a könyvtár két funkciót biztosít az Entra ID hitelesítés és a PostgreSQL integrációjához:

  • entraTokenProvider — Egy jelszószolgáltató funkciót ad vissza, amely egy Entra ID hozzáférési tokent szerzett, amely alkalmas PostgreSQL jelszóként való használatra. Használd ezt vagy pg.Client-vel pg.Pool .
  • configureEntraAuthentication — Regisztrál egy beforeConnect hookot egy Sequelize példányon, amely automatikusan új tokent szerz, és minden új kapcsolat előtt beállítja a felhasználónevet/jelszót.
  • GetEntraTokenPasswordOptions — Opcionálisan felülírhatja az alapértelmezett OAuth hatókört (scope property), amelyet az entraTokenProvider-nek adtak.
  • SequelizeBeforeConnectHook — Strukturális interfész a configureEntraAuthentication által elfogadott; lehetővé teszi, hogy bármilyen Sequelize-kompatibilis objektumot használj anélkül, hogy kemény sequelize függőséget adna hozzá.

Mindkét függvény elfogad egy Azure TokenCredential-t (@azure/identity-ből), és kezeli a token gyűjtést a Azure Database for PostgreSQL scope-ra szemben.

Példák

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

Használat Sequelize segítségével

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();

Troubleshooting

Logging

A naplózás engedélyezése segíthet a hibákról szóló hasznos információk feltárásában. A HTTP-kérések és válaszok naplójának megtekintéséhez állítsa a környezeti változót a AZURE_LOG_LEVEL következőre info: . Alternatívaként a naplózás futásidőben is engedélyezhető a setLogLevel hívásával a @azure/logger.

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

A naplók engedélyezésére vonatkozó részletesebb útmutatásért tekintse meg a @azure/logger csomag dokumentációit.

Következő lépések

A kódtár használatára vonatkozó részletes példákért tekintse meg a mintakönyvtárat.

Contributing

Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód összeállításáról és teszteléséről.