本章节以Keycloak为例,介绍ZStack Cloud以OIDC协议集成统一认证系统的方法。
本场景中的信息基于以下资源或权限要求:
- 用户拥有Keycloak控制台的管理员权限。有关更多信息,请参阅Keycloak官方文档。
- 用户的ZStack Cloud环境已安装有效的租户管理模块许可证。
-
创建Keycloak客户端。
- 登录Keycloak控制台。
- 在左侧导航栏中,点击客户端管理。
-
在客户端页面,点击创建客户端。

- 设置客户端ID,并将客户端类型设置为OpenID Connect。
- 保存后,点击凭证,记录客户端密码的值,这些信息将在后续步骤“添加并配置统一认证服务器”时使用。
-
创建Keycloak群组和用户。
-
点击群组管理 > 创建群组,输入群组名称,然后点击创建。

-
点击用户管理 > 添加用户,输入用户名和其他信息,然后点击加入群组,选择刚刚创建的群组,最后完成创建。

-
在用户详情页的证书子页面,点击设置密码。

-
点击群组管理 > 创建群组,输入群组名称,然后点击创建。
-
在ZStack Cloud中,添加并配置统一认证服务器。
- 登录ZStack Cloud。
- 在主菜单中,点击运营管理 > 租户管理 > 统一认证SSO > 添加统一认证服务器。
- 在选择服务器类型弹窗中,选择OIDC,然后点击确定。
-
在添加统一认证服务器页面,需完成服务器配置、同步映射规则、确认信息三个步骤。
- 对于步骤1:服务器配置,需完成以下操作:
- 对于认证供应商,选择标准协议。
- 对于Client ID,填入设置的客户端ID。
- 对于Client Secret,填入从凭证中获取到的客户端密码。
- 对于Scope,填入从客户端作用域的映射子页面中获取到的值,例如:groups。
- 对于Authorization Request
URL,填入从领域设置的终端节点中获取到的authorization_endpoint的值,例如:
http://172.25.126.217:8000/realms/ZSCloud/protocol/openid-connect/auth,其中http://172.25.126.217:8000/realms/ZSCloud替换为实际使用的领域值。 - 对于Token Request
URL,填入从领域设置的终端节点中获取到的token_endpoint的值,例如:
http://172.25.126.217:8000/realms/ZSCloud/protocol/openid-connect/token,其中http://172.25.126.217:8000/realms/ZSCloud替换为实际使用的领域值。 - 对于Userinfo Request
URL,填入从领域设置的终端节点中获取到的userinfo_endpoint的值,例如:
http://172.25.126.217:8000/realms/ZSCloud/protocol/openid-connect/userinfo,其中http://172.25.126.217:8000/realms/ZSCloud替换为实际使用的领域值。 - 对于Logout
URL,填入从领域设置的终端节点中获取到的end_session_endpoint的值,例如:
http://172.25.126.217:8000/realms/ZSCloud/protocol/openid-connect/logout,其中http://172.25.126.217:8000/realms/ZSCloud替换为实际使用的领域值。
- 对于步骤2:同步映射规则,可参考从领域设置的终端节点中获取到的claims_supported的值,例如:preferred_username。
- 对于步骤3:确认信息,确认配置信息无误后,点击完成。
- 对于步骤1:服务器配置,需完成以下操作:
- 成功添加统一认证服务器后,复制平台免密登录URL。
-
为统一认证用户配置角色或加入项目。
需提前在ZStack Cloud为统一认证用户配置角色或加入项目,否则将无访问资源权限。
- 返回ZStack Cloud。
- 在主菜单中,点击运营管理 > 租户管理 > 用户 > 统一认证用户。
- 在统一认证用户子页面,选择从统一认证系统同步过来的的用户,然后点击操作 > 加入项目。
- 在加入项目弹窗中,选择项目和项目角色,然后点击确定。