Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Paket ini menyediakan autentikasi Azure Entra ID (sebelumnya Azure Active Directory) untuk koneksi PostgreSQL di JavaScript. Ini mendukung klien node-postgres (pg) dan Sequelize .
Tautan kunci:
Memulai Langkah Pertama
Lingkungan yang didukung saat ini
Lihat kebijakan dukungan kami untuk detail selengkapnya.
Prasyarat
- Sebuah langganan Azure.
- Server Azure Database for PostgreSQL yang dikonfigurasi untuk autentikasi Entra ID.
Pasang paket @azure/postgresql-auth
Instal pustaka klien Autentikasi PostgreSQL Azure untuk JavaScript dengan npm:
npm install @azure/postgresql-auth
Anda juga perlu menginstal @azure/identity untuk dukungan kredensial dan klien PostgreSQL pilihan Anda:
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Konsep Utama
Pustaka ini menyediakan dua fungsi untuk mengintegrasikan otentikasi Entra ID dengan PostgreSQL:
-
entraTokenProvider— Mengembalikan fungsi penyedia kata sandi yang memperoleh token akses Entra ID yang cocok untuk digunakan sebagai kata sandi PostgreSQL. Gunakan ini denganpg.Poolataupg.Client. -
configureEntraAuthentication— MendaftarkanbeforeConnecthook pada instance Sequelize yang secara otomatis memperoleh token baru dan mengatur nama pengguna/kata sandi sebelum setiap koneksi baru. -
GetEntraTokenPasswordOptions— Secara opsional mengganti cakupan OAuth default (properti cakupan) yang diteruskan ke entraTokenProvider. -
SequelizeBeforeConnectHook— Antarmuka struktural diterima oleh configureEntraAuthentication; memungkinkan Anda menggunakan objek apa pun yang kompatibel dengan Sequelize tanpa menambahkan dependensi sekuel keras.
Kedua fungsi menerima Azure TokenCredential (dari @azure/identity) dan menangani akuisisi token terhadap cakupan Azure Database for PostgreSQL.
Examples
Menggunakan dengan 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 },
});
Menggunakan dengan 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();
Troubleshooting
Penebangan kayu
Mengaktifkan pengelogan dapat membantu menemukan informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Untuk instruksi lebih rinci tentang cara mengaktifkan log, Anda dapat melihat dokumen paket @azure/logger.
Langkah berikutnya
Silakan lihat sampel direktori untuk contoh terperinci tentang cara menggunakan pustaka ini.
Contributing
Jika Anda ingin berkontribusi ke library ini, silakan baca panduan contributor untuk mempelajari lebih lanjut cara membuat dan menguji kode.
Azure SDK for JavaScript