3.6. 为红帽单点登录服务器创建管理员帐户
Red Hat Single Sign-On 不提供任何预先配置的管理帐户。此管理员帐户需要登录 主 域的管理控制台并执行服务器维护操作,如创建域或用户或注册应用程序,旨在由红帽单点登录保护。
可创建管理员帐户:
- 在部署 Red Hat Single Sign-On 应用程序模板时,可以为 SSO_ADMIN_USERNAME 和 SSO_ADMIN_PASSWORD 参数 提供值,或者
- 如果在没有应用程序模板的情况下,如果部署了适用于 OpenShift 镜像的 Red Hat Single Sign-On,则通过 远程 shell 会话连接到特定的 红帽单点登录 Pod。
Red Hat Single Sign-On 允许 Welcome Page web 表单创建初始管理员帐户,但只有从本地主机访问 Welcome Page 时;此管理员创建方法不适用于 Red Hat Single Sign-On for OpenShift 镜像。
3.6.1. 使用模板参数创建管理员帐户 复制链接链接已复制到粘贴板!
在部署 Red Hat Single Sign-On 应用模板时,SSO_ADMIN_USERNAME 和 SSO_ADMIN_PASSWORD 参数表示为 master 域创建 Red Hat Single Sign-On 服务器的管理员帐户的用户名和密码。
这两个参数都是必需的。如果没有指定,则在模板实例化时,它们会自动生成并显示为 OpenShift 指令消息。
Red Hat Single Sign-On 服务器的管理员帐户的期限取决于用来存储 Red Hat Single Sign-On 服务器数据库的存储类型:
- 对于 in-memory 数据库模式(sso76-ocp3-https, sso76-ocp4-https, sso76-ocp3-x509-https, 和 sso76-ocp4-x509-https 模板,帐户在整个特定 Red Hat Single Sign-On pod 生命周期中(在 pod 销毁时会丢失)
- 对于临时数据库模式(sso76-ocp3-postgresql 和 sso76-ocp4-postgresql 模板),帐户在整个数据库 pod 生命周期中存在。即使红帽单点登录 pod 被破坏,存储的帐户数据会在假设数据库 pod 仍在运行的情况下保留。
- 对于持久性数据库模式(sso76-ocp3-postgresql-persistent, sso76-ocp4-postgresql-persistent, sso76-ocp3-x509-postgresql-persistent, 和 sso76-ocp4-x509-postgresql-persistent 模板,帐户在整个用于保存数据库数据的持久介质生命周期中存在。这意味着,即使红帽单点登录和数据库 pod 都被销毁,存储的帐户数据也会保留。
部署 Red Hat Single Sign-On 应用程序模板是一种常见做法,以获取应用程序的对应 OpenShift 部署配置,然后多次重复使用部署配置(每当需要实例化新的红帽单点登录应用程序)。
如果是 临时或持久数据库模式,在创建 RH_SSO 服务器的管理员帐户后,在部署新红帽单点登录应用程序前从部署配置中删除 SSO_ADMIN_USERNAME 和 SSO_ADMIN_PASSWORD 变量。
流程
运行以下命令,以准备之前创建的红帽单点登录应用程序的部署配置,以便在创建管理员帐户后重复使用:
识别红帽单点登录应用程序的部署配置。
$ oc get dc -o name deploymentconfig/sso deploymentconfig/sso-postgresql清除 SSO_ADMIN_USERNAME 和 SSO_ADMIN_PASSWORD 变量设置。
$ oc set env dc/sso \ -e SSO_ADMIN_USERNAME="" \ -e SSO_ADMIN_PASSWORD=""
在不使用模板的情况下,从镜像流部署 Red Hat Single Sign-On 服务器时,使用以下命令为 Red Hat Single Sign-On 服务器的 master realm 创建管理员帐户。
前提条件
- Red Hat Single Sign-On 应用 pod 已启动。
流程
识别 Red Hat Single Sign-On 应用容器集。
$ oc get pods NAME READY STATUS RESTARTS AGE sso-12-pt93n 1/1 Running 0 1m sso-postgresql-6-d97pf 1/1 Running 0 2m打开到用于 OpenShift 容器的 Red Hat Single Sign-On 的远程 shell 会话。
$ oc rsh sso-12-pt93n sh-4.2$在命令行中,通过
add-user-keycloak.sh脚本为masterrealm 创建 Red Hat Single Sign-On 服务器管理员帐户。sh-4.2$ cd /opt/eap/bin/ sh-4.2$ ./add-user-keycloak.sh \ -r master \ -u sso_admin \ -p sso_password Added 'sso_admin' to '/opt/eap/standalone/configuration/keycloak-add-user.json', restart server to load user注意上例中的 'sso_admin' / 'sso_password' 凭证仅用于演示目的。如需有关如何创建安全用户名和密码的指导,请参阅您的机构内的密码策略。
重启底层 JBoss EAP 服务器实例,以加载新添加的用户帐户。等待服务器正确重启。
sh-4.2$ ./jboss-cli.sh --connect ':reload' { "outcome" => "success", "result" => undefined }警告在重新启动服务器时,只需在运行 Red Hat Single Sign-On 容器内重新启动 JBoss EAP 进程,而不是整个容器。这是因为重启整个容器将从头开始重新创建,无需 Red Hat Single Sign-On 服务器
管理帐户。-
使用上述步骤中创建的凭据,登录红帽单点登录服务器的
主域管理控制台。在浏览器中,进入 http://sso-<project-name>.<hostname>/auth/admin for the Red Hat Single Sign-On web server, or to https://secure-sso-<project-name>.<hostname>/auth/admin for the encrypted Red Hat Single Sign-On web server,并指定用于创建管理员用户的用户名和密码。