Fix: Use a common JWT issuer across the whole NiFi 2 cluster
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- kubernetes, rust
調査の方向性
まず issue 810 と 809 を確認し、その後 Apache NiFi の issue NIFI-7246 を読んで upstream の制約を把握します。現在 issuer がどのように生成されているか、また再起動後も保持されるかを追跡します。クラスタ全体で 1 つの issuer が使用され、正常なメンバーであれば有効な JWT を受け入れられる状態になれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Part of https://github.com/stackabletech/nifi-operator/issues/809.
[!CAUTION]
Depends on https://github.com/stackabletech/nifi-operator/issues/810.Technically it could be done, but it is likely to be rejected upstream as it appears to have been done to avoid connecting to the wrong server.
Current state
In NiFi2, JWT tokens are issued for specific nodes, and the current recommendation is to use sticky-sessions on load balancers.
NIFI-7246
The uniqueness of JWT-generating keys to individual nodes (and thus the lack of transitivity of tokens between nodes) is by design. The solution is to enable sticky sessions in the load balancer.
This is rather unusual when dealing with a "cluster" where any healthy member should be able to service requests with the same answer as any other, and using the same authentication token.
JWT tokens are by design stateless, they contain everything they need to be validated without sticky-sessions or server-side shared session stores.
Example claim showing the issuer for a specific cluster member.
{
"aud": "https://simple-nifi-node-default-0.simple-nifi-node-default.default.svc.cluster.local:8443",
"exp": 1747013821,
"groups": [],
"iat": 1746985021,
"iss": "https://simple-nifi-node-default-0.simple-nifi-node-default.default.svc.cluster.local:8443",
"jti": "ad20e97e-5f60-4404-87a5-bcd8b3093746",
"nbf": 1746985021,
"preferred_username": "admin",
"sub": "admin"
}
Future state
- There should be a common issuer for the cluster so that a JWT token can be used on any cluster node.
- Any healthy cluster member should accept a valid JWT token in the same way any other cluster member would.
Unknowns
- How is the issuer currently generated? Does it persist across restarts?
- 主要言語
- Rust
- スター
- 48
- フォーク
- 12
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 11
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
stackabletech/nifi-operator のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
stackabletech/nifi-operator#956 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
stackabletech/nifi-operator#879 ·
メンテナーはふだん 1 日以内に返信
-
customer-request type/bug
難易度 3/5 1〜2日 初心者へのやさしさ 42/100
stackabletech/nifi-operator#842 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
size/L
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
stackabletech/nifi-operator#810 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
epic size/XL type/security
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
stackabletech/nifi-operator#809 ·
メンテナーはふだん 1 日以内に返信
stackabletech/nifi-operator の issue をすべて見る
似ている issue
-
bug user-priority/P2
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
rescript-lang/rescript#8765 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
nautechsystems/nautilus_trader#5287 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
farion1231/cc-switch#8072 ·
メンテナーはふだん 1 日以内に返信
-
Python 3.15 support対応中かも @amnesiaof が今日担当しました。 オープンL: python L: python:uv
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
dependabot/dependabot-core#16524 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信