8.2. 配置服务发现
作为 3scale 管理员,您可以使用或不使用 OAuth 服务器来配置服务发现。
先决条件
- 您必须将 3scale 2.6 部署到 OpenShift 集群(版本 3.11 或更高版本)。
- 若要将 3scale 部署到 OpenShift,您需要使用 3scale-amp-openshift-templates。
- 想要使用服务发现 3scale 的 3scale 用户必须有权访问 OpenShift 集群。
8.2.1. 使用 OAuth 服务器配置 复制链接链接已复制到粘贴板!
如果您使用 Open Authorization (OAuth)服务器配置 3scale 服务发现,当用户登录到 3scale 时会出现这种情况:
- 用户重定向到 OAuth 服务器。
- 如果用户尚未登录到 OAuth 服务器,则会提示该用户登录。
- 如果这是用户首次使用 SSO 实施 3scale 服务发现,OAuth 服务器会提示您授权执行相关操作。
- 用户重定向到 3scale。
要使用 OAuth 服务器配置服务发现,有以下选项:
8.2.1.1. 使用 OpenShift OAuth 服务器 复制链接链接已复制到粘贴板!
作为 3scale 系统管理员,您可以使用 OpenShift 内置的 OAuth 服务器来单独验证和授权 3scale 来发现 API。
为 3scale 创建 OpenShift OAuth 客户端。如需有关 OpenShift 身份验证的更多详细信息,请参阅 OAuth 客户端。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 3scale 服务发现设置文件:
oc project <3scale-project>
$ oc project <3scale-project> $ oc edit configmap system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置以下设置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保用户有适当的权限来查看包含可发现服务的集群项目。
要授予管理员用户(由 <user> 表示),对于包括了一个服务的 <namespace> 项目的查看权限可以被发现,使用以下命令:
oc adm policy add-role-to-user view <user> -n <namespace>
oc adm policy add-role-to-user view <user> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
configmap
后,您需要重新部署system-app
和system-sidekiq
pod 以应用更改。oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他备注
默认情况下,OpenShift OAuth 会话令牌会在 24 小时后过期,如 OpenShift Token Options 所述。
8.2.1.2. 使用 RH-SSO 服务器(Keycloak) 复制链接链接已复制到粘贴板!
作为系统管理员,您可以允许用户单独验证并授权 3scale 使用 Red Hat Single Sign-On for OpenShift 发现服务。有关将 OpenShift 配置为使用 RH-SSO 部署作为 OpenShift 授权网关的示例,您可以参考此 工作流。
在 Red Hat OAuth 服务器(Keycloak)中为 3scale 创建 OAuth 客户端。
注意在客户端配置中,验证
用户名
是否映射到preferred_username
,以便 OpenShift 可以链接帐户。编辑 3scale 服务发现设置。
oc project <3scale-project>
$ oc project <3scale-project> $ oc edit configmap system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否已配置这些设置。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保用户具有适当的权限,可以查看包含可发现服务的集群项目。
例如,要为
<namespace>
项目提供<user>
视图权限,请使用这个命令:oc adm policy add-role-to-user view <user> -n <namespace>
oc adm policy add-role-to-user view <user> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
修改
configmap
后,您需要重新部署system-app
和system-sidekiq
pod 以应用更改。
其他备注:
- 令牌寿命:默认情况下,会话令牌在一分钟后过期,如 Keycloak - Session 和 Token Timeouts 所示。但是,建议将超时设为可接受值为一天。