Перед началом работы
- Организация на тарифе Enterprise.
- Сервис, работающий под управлением ClickHouse версии 26.4 или более поздней.
- Роль с разрешением
control-plane:service:manageдля этого сервиса (например, Admin или Service admin). Участники без этого разрешения могут только просматривать данный раздел. - Общедоступный URL JWKS по протоколу HTTPS, публикующий хотя бы один ключ RSA (
RS256) или, для сервисов версии 26.8 или более поздней, ключ EC (ES256,ES384,ES512).
Провайдеры на основе JWKS поддерживают ключи RSA и, начиная с версии 26.8, ключи EC на кривых P-256, P-384 и P-521. Документ JWKS может содержать ключи других типов, но в нём должен присутствовать хотя бы один пригодный для использования ключ.
Как это работает
- ClickHouse считывает из заголовка токена
kid(ID ключа) и выбирает соответствующий ключ из вашего документа JWKS. - Он проверяет подпись токена с помощью этого открытого ключа, а также сверяет утверждения
iss(издатель) иaud(аудитория) с конфигурацией вашего провайдера. - При успешной проверке соединение выполняется от имени эфемерного пользователя, чьи права доступа определяются утверждениями
clickhouse:grantsиclickhouse:rolesтокена и ограничены верхней границей разрешений (пользовательdefault). Подробнее см. в разделе Права доступа.
Добавление JWT-провайдера
1
Откройте настройки безопасности сервиса
Перейдите к сервису, откройте Settings и прокрутите страницу до раздела Security. Найдите карточку JWT-аутентификация.
2
Откройте выдвижную панель провайдеров
Выберите Set up JWT providers (или Manage JWT providers, если провайдеры уже настроены). Откроется выдвижная панель с готовой к заполнению формой нового провайдера.
3
Заполните сведения о провайдере
Заполните форму провайдера и нажмите Save.
4
При необходимости добавьте других провайдеров
Используйте Add another provider, чтобы настроить дополнительные провайдеры. В сервисе может быть не более пяти JWT-провайдеров.
Ограничения
- Для каждого сервиса допускается не более пяти JWT-провайдеров.
- JWKS-провайдеры поддерживают ключи RSA (
RS256), а начиная с версии 26.8 — ключи EC (ES256,ES384,ES512). - URL JWKS должен быть общедоступной конечной точкой HTTPS. Частные, внутренние и локальные адреса канального уровня отклоняются.
- JWT-аутентификация — утверждения токена, эфемерные пользователи и использование клиентом.