一个人如何将Kafka与OpenID-Connect结合使用?

时间:2020-03-10 20:40:55

标签: apache-kafka openid-connect kafka-rest

我从Kafka开始。

我看到我能够在生成消息时传递标题。

通常会有一个Web客户端(单页应用程序),用户可以通过该客户端通过一些远程oidc idp登录并接收令牌。然后,该令牌通过Authentication: Bearer token-here标头发送到某个RESTful后端,在该后端中检查令牌的有效性,并处理有效载荷,将其保存到数据库或其他数据库中,然后返回或不返回某些内容。

现在有Apache Kafka。它具有REST代理。我可以将标头传递到REST代理并生成消息,也可以使用它们,但是我对“保护我的RESTful JSON API”部分感兴趣。

当前,没有Kafka,我有一个oidc代理(使用keycloak,即keycloak-gatekeeper)来过滤将请求发送到后端的请求,或者我有一个oidc客户端作为某些中间件功能来进行令牌验证在后端。我认为,无论如何,无效请求都不会像在Kafka中那样被“记录”。

在Kafka / Confluent生态系统中,oidc令牌验证和请求过滤在哪里适合?

假设我们有一个与Confluent REST代理对话的SPA。一些登录用户想要发布消息,而一些未登录用户则不能。

Kafka和/或其工具如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

Kafka通常使用SASL和其他授权插件来阻止访问。

证书将在客户端之间分配(这里是REST代理)。与其他任何Web服务器一样,您可能需要 附近的其他代理或插件,以防止进一步访问或审核请求。

HTTPS证书将用于保护到REST代理的流量,但是您似乎在询问更具体的内容。

There is no reference to OpenID in the documentation, only LDAP RBAC, as a commercial offering