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

Bu paket, JavaScript'teki PostgreSQL bağlantıları için Azure Entra ID (eski Azure Active Directory) kimlik doğrulama sağlar. Hem node-postgres (pg) hem de Sequelize istemcilerini destekler.

Önemli bağlantılar:

Başlangıç Yapmak

Şu anda desteklenen ortamlar

Daha fazla ayrıntı için destek ilkemize bakın.

Prerequisites

@azure/postgresql-auth paketini yükleme

JavaScript için Azure PostgreSQL Authentication istemci kütüphanesini npm ile kurun:

npm install @azure/postgresql-auth

Ayrıca, kimlik doğrulama desteği ve tercih ettiğiniz PostgreSQL istemcisi için kurulum @azure/identity yapmanız gerekecek:

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

Temel kavramlar

Bu kütüphane, Entra ID doğrulamasını PostgreSQL ile entegre etmek için iki işlev sağlar:

  • entraTokenProvider — PostgreSQL şifresi olarak kullanılmaya uygun bir Entra ID erişim tokenı edinen bir şifre sağlayıcı fonksiyonu döndürür. Bunu veya pg.Poolpg.Clientile kullanın.
  • configureEntraAuthentication — Sequelize örneğinde otomatik olarak yeni bir token elde eden ve her yeni bağlantıdan önce kullanıcı adı/şifresini belirleyen bir beforeConnect kanca kaydeder.
  • GetEntraTokenPasswordOptions — EntraTokenProvider'a iletilen varsayılan OAuth kapsamını (kapsam özelliği) isteğe bağlı olarak geçersiz kılın.
  • SequelizeBeforeConnectHook — Yapısal arayüz configureEntraAuthentication tarafından kabul edilir; Herhangi bir Sequelize uyumlu nesneyi kullanarak sert sequelize bağımlılığı eklemenizi sağlar.

Her iki fonksiyon da Azure TokenCredential (@azure/identity'den) kabul eder ve token edinimini PostgreSQL için Azure Veri Tabanı kapsamına karşı yönetir.

Örnekler

Node-postgres (pg) ile kullanım

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

Sequelize ile kullanım

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

Ağaç kesimi

Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.

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

setLogLevel("info");

Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.

Sonraki Adımlar

Bu kitaplığın nasıl kullanılacağına ilişkin ayrıntılı örnekler için lütfen samples dizinine göz atın.

Contributing

Bu kitaplığa katkıda bulunmak isterseniz kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzunu okuyun.