4.4.6.4. 为 Kafka 组件配置 OAuth 2.0


这个步骤描述了如何将 Kafka 组件配置为使用授权服务器的 OAuth 2.0 身份验证。

您可以为以下对象配置身份验证:

  • Kafka Connect
  • Kafka MirrorMaker
  • Kafka Bridge

在这种情况下,Kafka 组件和授权服务器会在同一集群中运行。

开始前

有关为 Kafka 组件配置 OAuth 2.0 身份验证的更多信息,请参阅:

先决条件

  • AMQ Streams 和 Kafka 正在运行
  • 为对 Kafka 代理的 OAuth 访问部署并配置了 OAuth 授权服务器
  • 为 OAuth 2.0 配置 Kafka 代理

流程

  1. 创建客户端机密,并将它作为环境变量挂载到组件上。

    例如,此处我们为 Kafka Bridge 创建客户端 Secret

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Secret
    metadata:
     name: my-bridge-oauth
    type: Opaque
    data:
     clientSecret: MGQ1OTRmMzYtZTllZS00MDY2LWI5OGEtMTM5MzM2NjdlZjQw 1
    1
    clientSecret 键必须采用 base64 格式。
  2. 为 Kafka 组件创建或编辑资源,以便为身份验证属性配置 OAuth 2.0 身份验证。

    对于 OAuth 2.0 身份验证,您可以使用:

    • 客户端 ID 和 secret
    • 客户端 ID 和刷新令牌
    • 访问令牌
    • TLS

    KafkaClientAuthenticationOAuth 模式参考提供了每个模式的示例

    例如,此处的 OAuth 2.0 使用客户端 ID 和 secret 分配给 Kafka Bridge 客户端,以及 TLS:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaBridge
    metadata:
      name: my-bridge
    spec:
      # ...
      authentication:
        type: oauth 1
        tokenEndpointUri: https://<auth-server-address>/auth/realms/master/protocol/openid-connect/token 2
        clientId: kafka-bridge
        clientSecret:
          secretName: my-bridge-oauth
          key: clientSecret
        tlsTrustedCertificates: 3
        - secretName: oauth-server-cert
          certificate: tls.crt
    1
    验证类型设置为 oauth
    2
    用于身份验证的令牌端点的 URI。
    3
    TLS 到授权服务器的可信证书。

    根据您应用 OAuth 2.0 身份验证的方式以及授权服务器的类型,您可以使用额外的配置选项:

    # ...
    spec:
      # ...
      authentication:
        # ...
        disableTlsHostnameVerification: true 1
        checkAccessTokenType: false 2
        accessTokenIsJwt: false 3
        scope: any 4
        audience: kafka 5
    1
    (可选)禁用 TLS 主机名验证。默认为 false
    2
    如果授权服务器没有在 JWT 令牌中返回 拼写错误 (类型)声明,您可以应用 checkAccessTokenType: false 来跳过令牌类型检查。默认值为 true
    3
    如果您使用不透明令牌,您可以应用 accessTokenIsJwt: false,以便访问令牌不被视为 JWT 令牌。
    4
    (可选)从令牌端点请求令牌 的范围。授权服务器可能需要客户端指定范围。本例中为 任意.
    5
    (可选)从令牌端点请求令牌的 受众。授权服务器可能需要客户端指定受众。本例中为 kafka
  3. 将更改应用到 Kafka 资源的部署。

    oc apply -f your-file
  4. 检查日志中的更新,或者查看 pod 状态转换:

    oc logs -f ${POD_NAME} -c ${CONTAINER_NAME}
    oc get pod -w

    滚动更新配置组件,以使用 OAuth 2.0 身份验证与 Kafka 代理交互。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.