JWT аутентификация#
CedrusData позволяет аутентифицировать пользователя с помощью JWT (JSON Web Token).
Важно
Для использования любого механизма аутентификации необходимо предварительно включить Шифрование клиентского трафика с помощью TLS и Аутентификация узлов в кластере (shared secret).
Принцип работы JWT:
Клиент запрашивает аутентификацию на сервере.
Сервер отправляет учетные данные пользователя в службу аутентификации, которая аутентифицирует пользователя и возвращает JWT-токены серверу.
Сервер передает JWT токен клиенту.
Типичный сценарий использования аутентификации с помощью JWT - поддержка систем, в которых между пользователем и кластером CedrusData установлено промежуточное ПО, выполняющее запросы к CedrusData от имени пользователя.
Важно
Если вы используете OAuth2 или OIDC, используйте механизм аутентификации OAUTH2, который обрабатывает JWT-токены автоматически.
CedrusData поддерживает JWT в кодировке Base64, но не зашифрованные JWT.
Получить ключ для проверки подписи JWT можно одним из следующих способов:
Загрузить ключ из JWKS (JSON web key set).
Загрузить ключ из локальной файловой системы координатора.
Конфигурация#
Конфигурацию необходимо задать на координаторе.
Задайте механизм аутентификации JWT
в etc/config.properties
и укажите URL службы JWKS или путь к файлу ключа PEM или HMAC в локальной файловой системе:
http-server.authentication.type=JWT
http-server.authentication.jwt.key-file=https://cluster.example.net/.well-known/jwks.json
Название |
Описание |
---|---|
|
Обязателен. URL службы JWKS или путь к файлу ключа в формате PEM или HMAC в локальной файловой системе.
Если путь к файлу содержит |
|
Ожидаемое значение поля JWT |
|
Ожидаемое значение поля JWT |
|
Имя поля JWT, которое будет использовано для определения имени пользователя. Значение по умолчанию: |
|
Регулярное выражение для :doc: |
|
Файл с правилами :doc: |
Использование JWT с клиентами#
При использовании Trino CLI укажите JWT токен в качестве значения аргумента --access-token
.
При использовании драйвера Trino JDBC укажите JWT токен в качестве значения параметра accessToken
.
Полезные ссылки#
Online-сервис для генерации, декодирования и проверки JWT: https://jwt.io
Online-генератор JSON web key: https://mkjwk.org
Command-line генератор web key: https://connect2id.com/products/nimbus-jose-jwt/generator
Статья об использовании алгоритма RS256 для подписывания и проверки JWT: https://auth0.com/blog/navigating-rs256-and-jwks/