24.2. superUsers


被视为超级用户的用户主体列表,以便在不查询 ACL 规则的情况下始终允许它们。

您可以使用 Kafka.spec.kafka.config 添加用于初始化自定义授权器的配置。

Kafka.spec下的自定义授权配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    authorization:
      type: custom
      authorizerClass: io.mycompany.CustomAuthorizer
      superUsers:
        - CN=client_1
        - user_2
        - CN=client_3
    # ...
    config:
      authorization.custom.property1=value1
      authorization.custom.property2=value2
    # ...
Copy to Clipboard Toggle word wrap

除了 Kafka 自定义资源配置外,包含自定义授权器类及其依赖项的 JAR 文件还必须在 Kafka 代理的类路径上可用。

AMQ Streams Maven 构建过程提供了一种将自定义第三方库添加到生成的 Kafka broker 容器镜像中的机制,方法是将它们作为依赖项添加到 pom.xml 文件的 docker-images/kafka/kafka-thirdparty-libs 目录下。目录包含不同 Kafka 版本的不同文件夹。选择适当的文件夹。在修改 pom.xml 文件前,第三方库必须在 Maven 存储库中可用,且 Maven 存储库必须可以被 AMQ Streams 构建过程访问。

注意

Kafka.spec.kafka 中的 config 配置属性中的 super.user 配置选项会被忽略。改为指定 authorization 属性中的超级用户。如需更多信息,请参阅 Kafka 代理配置

在使用 oauth 身份验证和配置 groupsClaim 配置属性时,自定义授权可以在身份验证期间使用从 JWT 令牌提取的组成员资格信息。在 authorize ()调用过程中,组在 OAuthKafkaPrincipal 对象上可用,如下所示:

    public List<AuthorizationResult> authorize(AuthorizableRequestContext requestContext, List<Action> actions) {

        KafkaPrincipal principal = requestContext.principal();
        if (principal instanceof OAuthKafkaPrincipal) {
            OAuthKafkaPrincipal p = (OAuthKafkaPrincipal) principal;

            for (String group: p.getGroups()) {
                System.out.println("Group: " + group);
            }
        }
    }
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat