Azure PostgreSQL 地图 JavaScript 的认证客户端库
此软件包为在JavaScript中的PostgreSQL连接提供Azure Entra ID(原Azure Active Directory)认证. 它支持两者 节点员额(pg(中文(简体) ) 财务报告和审定财务报表 排序 客户.
密钥链接 :
开始
目前得到支持的环境
看我们的 支助政策 更多细节.
先决条件
- 一个 Azure 订阅。 。 。 .
- 一个 PostgreSQL 的 Azure 数据库 为 Entra ID 认证配置了服务器 .
安装 @azure/postgresql-auth 软件包
为 JavaScript 安装 Azure PostgreSQL 认证客户端库 npm数字 :
npm install @azure/postgresql-auth
您还需要安装 @azure/identity 证书支持和您喜欢的 PostgreSQL 客户端 :
npm install @azure/identity pg
# or
npm install @azure/identity sequelize pg
关键概念
这个库为Entra ID认证与PostgreSQL集成提供了两个功能:
entraTokenProvider——返回一个密码提供者功能,该功能获得一个适合用作PostgreSQL密码的Entra ID访问令牌. 用这个pg.Pool或者说pg.Client。 。 。 .configureEntraAuthentication登记abeforeConnect钩在序列化实例上,该实例自动获得一新符并在每个新连接之前设置用户名/密码.GetEntraTokenPasswordOptions——可选地将默认的 OAuth 范围(镜像属性) 传递给 entraToken Provider.SequelizeBeforeConnectHook——通过配置 EntraAuthentication 接受的结构界面;允许您使用任何序列兼容对象而无需添加硬后继依赖性.
两个函数都接受 Azure TokenCredential (从) @azure/identity),并针对PostgreSQL范围的Azure数据库处理令牌获取.
实例
使用节点后缀(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 },
});
使用序列
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();
解决问题
日志
允许伐木可能有助于发现有关失败的有用信息。 为了查看 HTTP 请求和回复的日志,设置 AZURE_LOG_LEVEL 环境变量改为 info。或者,可以在运行时拨打 setLogLevel 输入 @azure/logger数字 :
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
关于如何启用日志的更详细指示,您可以查看 @ azure/ logger 包文件。 。 。 .
今后的步骤
请看一下 样本 关于如何使用此库的详细示例的目录.
捐款
如果您想为图书馆捐钱 请读一下 贡献指南 学习如何构建和测试密码.