Menu Close

12.3. 3scale 与红帽单点登录集成

作为 API 提供程序,将 3scale 与红帽单点登录(RH-SSO)集成为身份提供程序(IdP)是对 API 请求进行身份验证的选项。集成由配置以下元素组成:

12.3.1. 将 Zync 配置为使用自定义 CA 证书

您必须在 Zync 和红帽单点登录(RH-SSO)之间建立 SSL 连接,因为 Zync 使用 RH-SSO 运行来交换令牌。如果您没有在 Zync 和 RH-SSO 之间配置 SSL 连接,则会为侦听的任何人打开令牌。

3scale 2.2 及更高版本支持 RH-SSO 的自定义 CA 证书和 SSL_CERT_FILE 环境变量。此变量指向证书捆绑包的本地路径。

先决条件

  • 您必须能够通过 https 提供 RH-SSO,并确保它可通过 by zync-que 访问。要测试此类型,请执行以下操作:

    curl https://rhsso-fqdn
注意
  • 些版本的 OpenSSL 接受 -showcerts 而不是 --showcerts。将以下命令相应地修改为正在使用的版本:
  • 以下流程步骤 1 中的命令涉及 <rhsso_fqdn>。完全限定域名(FQDN)是人类可读的域名,如 host.example.com

步骤

  1. 运行以下命令获取正确的证书链:

    echo -n | openssl s_client -connect <rhsso_fqdn>:<rhsso_port> -servername <rhsso_fqdn> --showcerts | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > customCA.pem
  2. 使用以下 cURL 命令验证新证书:预期响应是 域的 JSON 配置。如果验证失败,这表示您的证书可能不正确。

    curl -v https://<secure-sso-host>/auth/realms/master --cacert customCA.pem
  3. 将证书捆绑包添加到 Zync pod:

    1. 收集 Zync pod 上 /etc/pki/tls/cert.pem 文件的现有内容。运行:

      oc exec <zync-que-pod-id> cat /etc/pki/tls/cert.pem > zync.pem
    2. 附加自定义 CA 证书文件的内容 to zync.pem

      cat customCA.pem >> zync.pem
    3. 将新文件作为 ConfigMap 附加到 Zync pod:

      oc create configmap zync-ca-bundle --from-file=./zync.pem
      oc set volume dc/zync-que --add --name=zync-ca-bundle --mount-path /etc/pki/tls/zync/zync.pem --sub-path zync.pem --source='{"configMap":{"name":"zync-ca-bundle","items":[{"key":"zync.pem","path":"zync.pem"}]}}'
  4. 部署后,验证证书是否已附加,内容是否正确:

    oc exec <zync-pod-id> cat /etc/pki/tls/zync/zync.pem
  5. 在 Zync 上配置 SSL_CERT_FILE 环境变量以指向新的 CA 证书捆绑包:

    oc set env dc/zync-que SSL_CERT_FILE=/etc/pki/tls/zync/zync.pem