Skip to content

Antalya 26.8: Token authentication/authorization + OAuth client login - #2377

Open
zvonand wants to merge 3 commits into
antalya-26.8from
feature/antalya-26.8/pr-2140
Open

zvonand wants to merge 3 commits into
antalya-26.8from
feature/antalya-26.8/pr-2140

Conversation

@zvonand

@zvonand zvonand commented Sep 15, 2026

Copy link
Copy Markdown
Member

Changelog category (leave one):

  • New Feature

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Add token-based authentication and authorization, with a new Entra processor type that validates Entra ID tokens locally through the OIDC flow using published JWKS (the tenant ID must now be set in the configuration, and the older azure type remains as an alias). Extend clickhouse-client with OAuth2 login, including browser and device code flows, and with an option to obtain a JWT from an external command, re-invoked on every reconnect.
Add token-based authentication and authorization, with a new Entra processor type that validates Entra ID tokens locally through the OIDC flow using published JWKS (the tenant ID must now be set in the configuration, and the older azure type remains as an alias). Extend clickhouse-client with OAuth2 login, including browser and device code flows, and with an option to obtain a JWT from an external command, re-invoked on every reconnect (#1658 by @zvonand, #1749 by @zvonand, #1777 by @zvonand, #1784 by @zvonand, #1799 by @zvonand, #1809 by @zvonand, #2086 by @zvonand, #2114 by @zvonand) (#2140 by @zvonand).

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Performance tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • All with Aarch64
  • All Regression
  • Disable CI Cache

Regression jobs to run:

  • Fast suites (mostly <1h)
  • Aggregate Functions (2h)
  • Alter (1.5h)
  • Benchmark (30m)
  • ClickHouse Keeper (1h)
  • Iceberg (2h)
  • LDAP (1h)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • S3 Export (2h)
  • Swarms (30m)
  • Tiered Storage (2h)

Cherry-picked from #2140.

…next commit)

---
Original cherry-pick message follows:

Merge pull request #2140 from Altinity/feature/antalya-26.6/auto-grp-pr-1658

Antalya 26.6: Token authentication/authorization + OAuth client login
# Conflicts:
#	docs/concepts/features/interfaces/client.mdx
#	docs/concepts/features/security/external-authenticators/tokens.md
#	docs/en/operations/external-authenticators/index.md
#	programs/client/Client.cpp
#	src/Access/AccessControl.h
#	src/Access/ExternalAuthenticators.cpp
#	src/Common/ShellCommand.h
#	src/Core/ServerSettings.cpp
#	src/Interpreters/Context.cpp
#	src/Parsers/Access/ASTAuthenticationData.h
#	src/Parsers/Access/ParserCreateUserQuery.cpp
#	src/Server/HTTP/authenticateUserByHTTP.cpp
Kept the port's additions (token auth, --jwt-command / --login OAuth client
options, enable_token_auth server setting, Bearer token HTTP auth, JWT
PROCESSOR/CLAIMS parser clauses) on top of antalya-26.8's own changes in the
same regions.

Adapted: parseValidUntil/setValidUntil - antalya-26.8 re-signatured
parseValidUntil (extra valid_until_is_interval out-param) and routes the AST
through ASTAuthenticationData::setValidUntil, so the port's
`parseValidUntil(pos, expected, auth_data->valid_until)` was translated to the
new form.
Adapted: formatValidUntil in ASTAuthenticationData.cpp - antalya-26.8 added the
`is_interval` parameter, so the port's JWT case passes valid_until_is_interval.
Adapted: docs - antalya-26.8 moved
docs/en/operations/external-authenticators/index.md to
docs/concepts/features/security/external-authenticators/index.mdx, so the
port's single added bullet was applied there (with the new absolute link form)
instead of resurrecting the deleted old-path file.
Adapted: src/Core/ServerSettings.cpp - antalya-26.8 de-indented the setting
docstrings, so the added enable_token_auth docstring is de-indented to match.
@zvonand zvonand added releasy Created/managed by RelEasy antalya-26.8 Session label (releasy session config) forwardport This is a frontport of code that existed in previous Antalya versions ai-resolved Port conflict auto-resolved by Claude labels Sep 15, 2026
@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown

Workflow [PR], commit [95cdeae]

@zvonand zvonand mentioned this pull request Sep 15, 2026
27 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-resolved Port conflict auto-resolved by Claude antalya-26.8 Session label (releasy session config) forwardport This is a frontport of code that existed in previous Antalya versions releasy Created/managed by RelEasy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant