Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce paquet fournit une authentification Azure Entra ID (anciennement Azure Active Directory) pour les connexions PostgreSQL en JavaScript. Il prend en charge à la fois les clients node-postgres (pg) et Sequelize .
Liens clés :
- Code source
- documentation du produit
Premiers pas
Environnements actuellement pris en charge
Pour plus d’informations, consultez notre de stratégie de support
Prerequisites
- Un abonnement Azure.
- Un serveur Azure Database pour PostgreSQL configuré pour l’authentification Entra ID.
Installer le package @azure/postgresql-auth
Installez la bibliothèque client Azure PostgreSQL Authentication pour JavaScript avec npm :
npm install @azure/postgresql-auth
Vous devrez également installer @azure/identity pour le support des identifiants et votre client PostgreSQL préféré :
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
Concepts clés
Cette bibliothèque offre deux fonctions pour intégrer l’authentification Entra ID avec PostgreSQL :
-
entraTokenProvider— Renvoie une fonction de fournisseur de mot de passe qui acquiert un jeton d’accès Entra ID adapté à l’utilisation comme mot de passe PostgreSQL. Utilisez ceci avecpg.Pooloupg.Client. -
configureEntraAuthentication— Enregistre unbeforeConnecthook sur une instance Sequelize qui acquiert automatiquement un jeton neuf et définit le nom d’utilisateur/mot de passe avant chaque nouvelle connexion. -
GetEntraTokenPasswordOptions— Éventuellement passer outre la portée OAuth par défaut (propriété de portée) passée à entraTokenProvider. -
SequelizeBeforeConnectHook— Interface structurelle acceptée par configureEntraAuthentication ; vous permet d’utiliser n’importe quel objet compatible Sequelize sans ajouter une dépendance stricte à Sequelize.
Les deux fonctions acceptent un Azure TokenCredential (de @azure/identity) et gèrent l’acquisition de jetons selon le scope Azure Database pour PostgreSQL.
Exemples
Utiliser avec 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 },
});
Utilisation avec 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();
Résolution des problèmes
Exploitation forestière
L’activation de la journalisation peut vous aider à découvrir des informations utiles sur les échecs. Pour afficher un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL sur info. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel dans la @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Pour obtenir des instructions plus détaillées sur l’activation des journaux, vous pouvez consulter la documentationdu package
Étapes suivantes
Consultez les exemples répertoire pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque.
Contribution
Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.
Azure SDK for JavaScript