B.86. KafkaClientAuthenticationOAuth 模式参考


用于:KafkaBridgeSpec, KafkaConnectS2ISpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerProducerSpec

要使用 OAuth 客户端身份验证,请将 type 属性设置为 oauth 值。

OAuth 身份验证可使用以下选项之一进行配置:

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

客户端 ID 和 secret

您可以在 tokenEndpointUri 属性中配置授权服务器的地址,以及身份验证中使用的客户端 ID 和客户端机密。OAuth 客户端将连接到 OAuth 服务器,使用客户端 ID 和机密进行身份验证,并获取它将用于与 Kafka 代理进行身份验证的访问令牌。在 clientSecret 属性中,指定一个指向包含客户端 secret 的 Secret 的链接。

使用客户端 ID 和客户端 secret 进行 OAuth 客户端身份验证示例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  clientSecret:
    secretName: my-client-oauth-secret
    key: client-secret

客户端 ID 和刷新令牌

您可以在 tokenEndpointUri 属性中配置 OAuth 服务器的地址,并与 OAuth 客户端 ID 和刷新令牌一起配置。OAuth 客户端将连接到 OAuth 服务器,使用客户端 ID 进行身份验证并刷新令牌,并获取它将用于与 Kafka 代理进行身份验证的访问令牌。在 refreshToken 属性中,指定包含刷新令牌的 Secret 链接。

+ .使用客户端 ID 和刷新令牌进行 OAuth 客户端身份验证示例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token

访问令牌

您可以直接配置用于与 Kafka 代理进行身份验证的访问令牌。在本例中,您不用指定 tokenEndpointUri。在 accessToken 属性中,指定包含访问令牌的 Secret 链接。

仅使用访问令牌进行 OAuth 客户端身份验证示例

authentication:
  type: oauth
  accessToken:
    secretName: my-access-token-secret
    key: access-token

TLS

使用 HTTPS 协议访问 OAuth 服务器不需要额外的配置,只要其使用的 TLS 证书由可信证书颁发机构签名,并且其主机名列在证书中。

如果您的 OAuth 服务器使用自签名证书,或者由不信任的证书颁发机构签名,您可以在自定义重新创建中配置可信证书列表。The tlsTrustedCertificates 属性包含一个 secret 列表,其密钥名称存储在证书的下面。证书必须以 X509 格式存储。

提供的 TLS 证书示例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  tlsTrustedCertificates:
    - secretName: oauth-server-ca
      certificate: tls.crt

OAuth 客户端将默认验证 OAuth 服务器的主机名是否与证书主题或其它 DNS 名称匹配。如果不需要,您可以禁用主机名验证。

禁用 TLS 主机名验证示例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  disableTlsHostnameVerification: true

type 属性是一个光盘,它区分使用 KafkaClientAuthenticationOAuth 类型与 KafkaClientAuthenticationTlsKafkaClientAuthenticationScramSha512KafkaClientAuthenticationPlain。它必须具有类型 KafkaClientAuthenticationOAuth 的值 oauth

属性描述

accessToken

包含从授权服务器获取的访问令牌的 OpenShift Secret 链接。

GenericSecretSource

accessTokenIsJwt

配置是否应将访问令牌视为 JWT。如果授权服务器返回不透明令牌,这应当设为 false。默认值为 true

布尔值

clientId

Kafka 客户端 ID,可用于对 OAuth 服务器进行身份验证并使用令牌端点 URI。

字符串

clientSecret

含有 OAuth 客户端机密的 OpenShift Secret 链接,Kafka 客户端可以使用该机密对 OAuth 服务器进行身份验证并使用令牌端点 URI。

GenericSecretSource

disableTlsHostnameVerification

启用或禁用 TLS 主机名验证。默认值为 false

布尔值

maxTokenExpirySeconds

将访问令牌的寿命限制为指定的秒数。如果授权服务器返回不透明令牌,则应设置此项。

整数

refreshToken

包含刷新令牌的 OpenShift Secret 链接,可用于从授权服务器获取访问令牌。

GenericSecretSource

scope

针对授权服务器进行身份验证时使用的 OAuth 范围。些授权服务器要求进行此设置。可能的值取决于授权服务器的配置方式。默认情况下,执行令牌端点请求时不指定 范围

字符串

tlsTrustedCertificates

TLS 连接到 OAuth 服务器的可信证书。

CertSecretSource 数组

tokenEndpointUri

授权服务器令牌端点 URI.

字符串

type

必须是 oauth

字符串

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.