Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот пакет обеспечивает Azure Entra ID (ранее Azure Active Directory) аутентификацию для подключений PostgreSQL в JavaScript. Поддерживается как node-postgres (pg), так и Sequelize клиенты.
Ключевые ссылки:
Начало работы
Поддерживаемые в настоящее время среды
Чтобы получить дополнительные сведения, ознакомьтесь с нашей политикой поддержки.
Предпосылки
- Подписка Azure.
- Сервер База данных Azure для PostgreSQL, настроенный для Entra ID аутентификации.
Установите пакет @azure/postgresql-auth.
Установите клиентскую библиотеку аутентификации Azure PostgreSQL для JavaScript с помощью 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— Возвращает функцию провайдера паролей, которая получает токен доступа Entra ID, подходящий для использования в качестве пароля PostgreSQL. Используйте это сpg.Poolилиpg.Client. -
configureEntraAuthentication— РегистрируетbeforeConnectкрючок на экземпляре Sequelize, который автоматически получает новый токен и устанавливает имя пользователя/пароль перед каждым новым соединением. -
GetEntraTokenPasswordOptions— Опционально переопределить стандартную область действия OAuth (свойство области), переданное entraTokenProvider. -
SequelizeBeforeConnectHook— Структурный интерфейс, принятый configureEntraAuthentication; позволяет использовать любой объект, совместимый с Sequelize, без добавления жёсткой зависимости от Sequelise.
Обе функции принимают Azure TokenCredential (от @azure/identity) и обрабатывают приобретение токенов по База данных Azure для PostgreSQL области.
Примеры
Использование с узлом-постгресом (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 },
});
Использование с 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
Лесозаготовка
Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. В альтернативном порядке, логирование можно включить во время выполнения, вызвав setLogLevel в @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.
Дальнейшие действия
Ознакомьтесь с примерами каталога, чтобы получить подробные примеры использования этой библиотеки.
Contributing
Если вы хотите внести вклад в эту библиотеку, пожалуйста, ознакомьтесь с руководством contributing guide чтобы узнать больше о том, как создавать и тестировать код.
Azure SDK for JavaScript