8.2. 配置 OpenShift 以启用服务发现


作为 3scale 管理员,您可以使用或不使用 Open Authorization(OAuth)服务器来配置服务发现。

如果您使用 OAuth 服务器配置 3scale 服务发现,当用户签名到 3scale 时会出现这种情况:

  • 用户重定向到 OAuth 服务器。
  • 如果用户尚未登录到 OAuth 服务器,则会提示该用户登录。
  • 如果这是用户首次使用 SSO 实施 3scale 服务发现,OAuth 服务器会提示您授权执行相关操作。
  • 用户重定向到 3scale。

要使用 OAuth 服务器配置服务发现,有以下选项:

如果您在没有 OAuth 服务器的情况下配置服务发现,当用户签入到 3scale 时,该用户不会被重定向。相反,3scale 单服务帐户为集群提供无缝身份验证,以进行服务发现。所有 3scale 租户管理用户对集群具有相同的访问权限级别,同时通过 3scale 发现 API 服务。

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

作为 3scale 系统管理员,您可以使用 OpenShift 内置的 OAuth 服务器来单独验证和授权 3scale 来发现 API。

先决条件

  • 您必须将 3scale 2.8 部署到 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

其他备注

如需有关 OpenShift OAuth 令牌的更多信息,请配置内部 OAuth 服务器

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.