29.5. 使用红帽单点登录服务器(Keycloak)配置服务发现.
作为系统管理员,允许用户单独验证 3scale 并授权 3scale 通过 使用红帽单点登录 OpenShift 来发现服务。
有关将 OpenShift 配置为使用 Red Hat 单点登录部署作为 OpenShift 授权网关的示例,您可以参考 此工作流。
先决条件
- 您必须将 3scale 2.14 部署到 OpenShift Container Platform (OCP) 4.x 集群。
- 3scale 用户若要在 3scale 中使用服务发现,必须有权访问 OpenShift 集群。
流程
在 Red Hat OAuth 服务器(Keycloak)中为 3scale 创建 OAuth 客户端。
注意在客户端配置中,验证
用户名
是否映射到preferred_username
,以便 OpenShift 可以链接帐户。编辑 3scale 服务发现设置:
$ oc project <3scale-project> $ oc edit configmap system
验证是否已配置以下设置,其中 '<
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>'
确保用户具有适当的权限,可以查看包含可发现服务的集群项目。
例如,要为
<namespace>
项目提供<user>
视图权限,请使用这个命令:$ oc adm policy add-role-to-user view <user> -n <namespace>
-
修改
configmap
后,您必须重新部署system-app
和system-sidekiq
pod 以应用更改。
其他资源
- 令牌寿命:默认情况下,会话令牌在一分钟后过期,如 Keycloak - Session 和 Token Timeouts 所示。但是,建议将超时设为可接受值为一天。