4.5.4.2. 使用 Red Hat Single Sign-On 授权部署 Kafka 集群
部署一个 Kafka 集群以连接到 Red Hat Single Sign-On 服务器。使用 kafka-ephemeral-oauth-single-keycloak-authz.yaml
文件将 Kafka 集群部署为 Kafka
自定义资源。这个示例使用 keycloak
授权和 oauth
身份验证部署单节点 Kafka 集群。
先决条件
- 红帽单点登录授权服务器部署到 OpenShift 集群,并加载了示例域。
- Cluster Operator 已部署到 OpenShift 集群中。
-
AMQ Streams
示例/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml
自定义资源。
流程
使用您部署的 Red Hat Single Sign-On 实例的主机名,为 Kafka 代理准备信任存储证书,以便与红帽单点登录服务器通信。
SSO_HOST=SSO-HOSTNAME SSO_HOST_PORT=$SSO_HOST:443 STOREPASS=storepass echo "Q" | openssl s_client -showcerts -connect $SSO_HOST_PORT 2>/dev/null | awk ' /BEGIN CERTIFICATE/,/END CERTIFICATE/ { print $0 } ' > /tmp/sso.crt
证书是必需的,因为 OpenShift ingress 用于进行安全(HTTPS)连接。
将证书作为机密部署到 OpenShift。
oc create secret generic oauth-server-cert --from-file=/tmp/sso.crt -n $NS
将主机名设置为环境变量
SSO_HOST=SSO-HOSTNAME
创建并部署示例 Kafka 集群。
cat examples/security/keycloak-authorization/kafka-ephemeral-oauth-single-keycloak-authz.yaml | sed -E 's#\${SSO_HOST}'"#$SSO_HOST#" | oc create -n $NS -f -