【发布时间】:2020-03-10 20:40:55
【问题描述】:
我从 Kafka 开始。
我发现我可以在生成消息时传递标头。
传统上,用户将拥有一个 Web 客户端(单页应用程序),用户可以在其中通过某个远程 oidc idp 登录并接收令牌。然后该令牌通过Authentication: Bearer token-here 标头发送到某个 RESTful 后端,在该后端检查令牌的有效性并处理有效负载,保存到数据库或其他,然后返回或不返回某些内容。
现在有 Apache Kafka。它有一个 REST 代理。我可以将标头传递给 REST 代理并生成消息或使用它们,但我对“保护我的 RESTful JSON API”部分感兴趣。
目前,在没有 Kafka 的情况下,我有一个 oidc 代理(使用 keycloak,即 keycloak-gatekeeper)来过滤将哪个请求发送到后端,或者我有一个 oidc 客户端将令牌验证作为一些中间件功能后端内部。在任何情况下,我认为无效请求都不会像在 Kafka 中那样被“记录”。
oidc 令牌验证和请求过滤在 Kafka/Confluent 生态系统中的什么位置?
假设我们有一个与 Confluent REST 代理通信的 SPA。一些已登录的用户想要发布消息,而一些未登录的用户则不能。
Kafka 和/或其工具如何处理这种情况?
【问题讨论】:
-
自 3.1.0 版(2022 年 1 月发布)以来,kafka 现已支持 OpenID 连接 cwiki.apache.org/confluence/pages/…
标签: apache-kafka openid-connect kafka-rest