Antalya 26.6: Token authentication/authorization + OAuth client login - #2140
Open
zvonand wants to merge 10 commits into
Open
Antalya 26.6: Token authentication/authorization + OAuth client login#2140zvonand wants to merge 10 commits into
zvonand wants to merge 10 commits into
Conversation
…next commit) --- Original cherry-pick message follows: Merge pull request #1658 from Altinity/feature/antalya-26.3/pr-1430-1596 Antalya 26.3 forward-port: Token Authentication and Authorization # Conflicts: # ci/jobs/scripts/check_style/aspell-ignore/en/aspell-dict.txt # docs/en/operations/external-authenticators/index.md # src/Access/IAccessStorage.cpp # src/Access/UsersConfigParser.cpp # src/Parsers/Access/ASTAuthenticationData.cpp
Adapted the JWT users.xml parsing to antalya-26.6's refactored `parseUserAuthMethod` (returns AuthenticationData, uses `auth_method_path` and `num_authentication_types` instead of pushing into `user->authentication_methods` with `user_config`). Kept antalya-26.6's `jwt_use_authenticator` prefix selection inside the source PR's `if (!children.empty())` guard in ASTAuthenticationData. Dropped the re-added aspell dictionary: the file was removed from antalya-26.6 by 3a5d8a3 ("Remove aspell and codespell from style check"), so the source PR's new dictionary words have no destination. Source-PR: #1658 (#1658)
…next commit) --- Original cherry-pick message follows: Merge pull request #1749 from Altinity/feature/antalya-26.3/pr-1606 Antalya 26.3: Add OAuth2 login to clickhouse-client (--login / --login=device) # Conflicts: # docs/en/interfaces/cli.md
The clickhouse-client documentation moved from docs/en/interfaces/cli.md to docs/en/interfaces/client.md on antalya-26.6 (commit 266165b "Add clickhousectl docs page and move ClickHouse Client to /interfaces/client"); cli.md now documents clickhousectl. Applied the source PR's doc changes (--login[=<mode>] / --oauth-credentials rows and the "OAuth credentials file" section) to docs/en/interfaces/client.md and restored cli.md to the base-branch content. Adapted: docs/en/interfaces/cli.md doc changes relocated to docs/en/interfaces/client.md (clickhouse-client docs moved on antalya-26.6) Source-PR: #1749 (#1749)
…next commit) --- Original cherry-pick message follows: Merge pull request #1777 from Altinity/fix/antalya-26.3/oauth-address-audit Antalya 26.3: address OAuth security audit # Conflicts: # src/Interpreters/Session.h # src/Parsers/Access/ASTAuthenticationData.cpp # src/Parsers/Access/ASTAuthenticationData.h
…next commit) --- Original cherry-pick message follows: Merge pull request #1809 from Altinity/feature/antalya-26.3/oauth-executable-token-in-client Antalya 26.3: add `--jwt-command` to client # Conflicts: # docs/en/interfaces/cli.md # src/Client/Connection.cpp # src/Interpreters/Session.h
- src/Client/Connection.cpp: kept the base branch's TOO_LARGE_ARRAY_SIZE error-code declaration next to the PR's AUTHENTICATION_FAILED one. - src/Interpreters/Session.h: applied the PR's removal of `auth_token_expires_at` while keeping the base branch's `certificate_info` member (out of the PR's scope). - docs: the PR patched docs/en/interfaces/cli.md, but commit 266165b on antalya-26.6 moved the ClickHouse Client reference to docs/en/interfaces/client.md (cli.md now documents `clickhousectl`). Applied the PR's `--jwt-command` / `--jwt-command-timeout` rows and the `--jwt-command` details section verbatim to client.md and restored cli.md to its antalya-26.6 content. Adapted: docs/en/interfaces/cli.md changes moved to docs/en/interfaces/client.md (file renamed on antalya-26.6 by 266165b) Source-PR: #1809 (#1809)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Add token-based authentication and authorization, including an
entraprovider type that validates tokens locally against Entra JWKS and requirestenant_idto be set in the configuration (the previousazuretype remains as an alias). Add OAuth2 login toclickhouse-clientvia--loginand--login=device, along with--jwt-commandand--jwt-command-timeoutto obtain a JWT from an external script on every connect.Add token-based authentication and authorization, including an
entraprovider type that validates tokens locally against Entra JWKS and requirestenant_idto be set in the configuration (the previousazuretype remains as an alias). Add OAuth2 login toclickhouse-clientvia--loginand--login=device, along with--jwt-commandand--jwt-command-timeoutto obtain a JWT from an external script on every connect (#1658 by @zvonand, #1749 by @zvonand, #1777 by @zvonand, #1784 by @zvonand, #1799 by @zvonand, #1809 by @zvonand).CI/CD Options
Exclude tests:
Regression jobs to run:
Combined port of 6 PR(s) (group
auto-grp-pr-1658). Cherry-picked from #1658, #1749, #1777, #1784, #1799, #1809.--jwt-commandto client #1809 — Antalya 26.3: add--jwt-commandto client