29.5. 使用 RH-SSO 服务器(Keycloak)配置服务发现.

作为系统管理员,允许用户单独验证 3scale 并授权 3scale 通过 使用红帽单点登录 OpenShift 来发现服务。

有关将 OpenShift 配置为使用 RH-SSO 部署作为 OpenShift 授权网关的示例,您可以参考此 工作流

先决条件

  • 您必须将 3scale 2.13 部署到 OpenShift 集群(版本 3.11 或更高版本)。
  • 若要将 3scale 部署到 OpenShift,您需要使用 3scale-amp-openshift-templates
  • 3scale 用户若要在 3scale 中使用服务发现,必须有权访问 OpenShift 集群。

流程

  1. 在 Red Hat OAuth 服务器(Keycloak)中为 3scale 创建 OAuth 客户端。

    注意

    在客户端配置中,验证用户名是否映射到 preferred_username,以便 OpenShift 可以链接帐户。

  2. 编辑 3scale 服务发现设置。

        $ oc project <3scale-project>
        $ oc edit configmap system
  3. 验证是否已配置以下设置,其中 '<the-client-secret-from-Keycloak> 是创建 OAuth 客户端时自动生成的 Keycloak 的值。

        service_discovery.yml:
          production:
            enabled: true
            authentication_method: oauth
            oauth_server_type: rh_sso
            client_id: '3scale'
            client_secret: '<the-client-secret-from-Keycloak>'
  4. 确保用户具有适当的权限,可以查看包含可发现服务的集群项目。

    例如,要为 <namespace> 项目提供 <user> 视图权限,请使用这个命令:

    oc adm policy add-role-to-user view <user> -n <namespace>
  5. 修改 configmap 后,您必须重新部署 system-appsystem-sidekiq pod 以应用更改。

其他资源