29.4. 使用 OpenShift OAuth 服务器配置服务发现

作为 3scale 系统管理员,允许用户单独验证并授权 3scale 使用 OpenShift 内置 OAuth 服务器来发现 API。

先决条件

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

流程

  1. 为 3scale 创建 OpenShift OAuth 客户端。如需了解更多详细信息,请参阅 OpenShift 身份验证文档。在以下示例中,将 <provide-a-client-secret> 替换为您生成的 secret,并将 <3scale-master-domain-route> 替换为 3scale Master 管理门户的 URL。

        $ oc project default
        $ cat <<-EOF | oc create -f -
        kind: OAuthClient
        apiVersion: v1
        metadata:
         name: 3scale
        secret: "<provide-a-client-secret>"
        redirectURIs:
         - "<3scale-master-domain-route>"
        grantMethod: prompt
        EOF
  2. 打开 3scale 服务发现设置文件:

        $ oc project <3scale-project>
        $ oc edit configmap system
  3. 配置以下设置:

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

    要授予管理员用户(由 <user> 表示),对于包括了一个服务的 <namespace> 项目的查看权限可以被发现,使用以下命令:

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

    oc rollout latest dc/system-app
    oc rollout latest dc/system-sidekiq
  6. 检查推出部署的状态,以确保它已完成:

    oc rollout status dc/system-app
    oc rollout status dc/system-sidekiq

其他资源