29.4. 使用 OpenShift OAuth 服务器配置服务发现
作为 3scale 系统管理员,允许用户单独验证并授权 3scale 使用 OpenShift 内置 OAuth 服务器来发现 API。
先决条件
- 您必须将 3scale 2.14 部署到 OpenShift Container Platform (OCP) 4.x 集群。
- 3scale 用户若要在 3scale 中使用服务发现,必须有权访问 OpenShift 集群。
流程
为 3scale 创建 OpenShift OAuth 客户端。如需了解更多详细信息,请参阅 OpenShift 身份验证文档。在以下示例中,将 <
provide-a-client-secret&
gt; 替换为您生成的 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
打开 3scale 服务发现设置文件:
$ oc project <3scale-project> $ oc edit configmap system
配置以下设置:
service_discovery.yml: production: enabled: true authentication_method: oauth oauth_server_type: builtin client_id: '3scale' client_secret: '<choose-a-client-secret>'
确保用户有适当的权限来查看包含可发现服务的集群项目。
要授予管理员用户(由 <user> 表示),对于包括了一个服务的 <namespace> 项目的查看权限可以被发现,使用以下命令:
$ oc adm policy add-role-to-user view <user> -n <namespace>
修改
configmap
后,您必须重新部署system-app
和system-sidekiq
pod 以应用更改:$ oc rollout latest dc/system-app $ oc rollout latest dc/system-sidekiq
检查推出部署的状态,以确保它已完成:
$ oc rollout status dc/system-app $ oc rollout status dc/system-sidekiq
其他资源
- 如需有关 OpenShift OAuth 令牌的更多信息,请参阅配置内部 OAuth 服务器。