4.6. 在带有 SAML 客户端的 Red Hat Single Sign-On 中手动注册 EAP 应用程序
本示例为 EAP 项目准备红帽单点登录域、角色和用户凭据,并为 OpenShift 部署配置 EAP。部署后,可使用 Red Hat Single Sign-On 用户进行验证并访问 JBoss EAP。
这个示例使用 SAML 客户端,但也可以使用 OpenID-Connect 客户端。有关 SAML 和 OpenID 连接客户端之间的区别,请参阅 Red Hat Single Sign-On Client Registration Methods。../advanced_concepts/advanced_concepts.xml#SSO-Clients
前提条件
4.6.1. 准备 Red Hat Single Sign-On 凭证 复制链接链接已复制到粘贴板!
流程
使用 Red Hat Single Sign-On 部署期间创建的 管理员帐户,登录到加密 Red Hat Single Sign -On Web 服务器 https://secure-sso- <project-name>。<hostname > /auth/admin。
创建 Realm
- 将光标悬停在侧边栏顶部的 realm 命名空间(默认为 Master),然后单击 Add Realm。
- 输入域名称(本示例使用 saml-demo),然后单击 Create。
复制公钥
在新创建的 saml-demo 域中,单击 Keys 选项卡并复制生成的公钥。本例将变量 realm-public-key 用于 brevity。稍后需要此操作来部署启用了 Red Hat Single Sign-On 的 JBoss EAP 镜像。
创建角色
在红帽单点登录中创建一个角色,其名称对应于 example EAP 应用的 web.xml 中定义的 JEE 角色。该角色将分配给 Red Hat Single Sign-On 应用用户,以对用户应用程序的访问权限进行身份验证。
- 单击 Configure 栏中的 Roles,以列出此域的角色。这是一个新域,因此应该只有默认的 offline_access 角色。
- 单击 Add Role。
- 输入角色名称(本示例使用角色 saml-user-role),然后单击 Save。
创建用户和分配角色
创建两个用户: - 为 域管理用户 分配 realm-management 角色,以处理 Red Hat Single Sign-On 服务器中的自动 Red Hat Single Sign-On 客户端注册。- 为应用用户 分配 JEE 角色(在上一步中创建的 JEE 角色),以验证用户应用程序的访问权限。
创建 域管理用户 :
- 单击 Manage 栏中的 Users,以查看该域的用户信息。
- 单击 添加用户。
- 输入有效 用户名 (本例使用用户 app-mgmt-user)并单击 Save。
- 编辑用户配置。单击用户空间中的 Credentials 选项卡,并为该用户输入密码。确认密码之后,您可以点击 Reset Password 来设置用户密码。弹出窗口提示其他确认。
创建应用程序用户 :
- 单击 Manage 栏中的 Users,以查看该域的用户信息。
- 单击 添加用户。
- 输入有效的 Username 和 application 用户 的任何其他可选信息,然后单击 Save。
- 编辑用户配置。单击用户空间中的 Credentials 选项卡,并为该用户输入密码。确认密码之后,您可以点击 Reset Password 来设置用户密码。弹出窗口提示其他确认。
- 单击 Role 映射,以列出域和客户端角色配置。在 Available Roles 中,添加之前创建的角色。
创建并配置 SAML 客户端 :
客户端是请求用户身份验证的红帽单点登录实体。本例将 SAML 客户端配置为处理 EAP 应用的身份验证。本节保存了两个文件: keystore.jks 和 keycloak-saml-subsystem.xml,后者稍后在流程中需要。
创建 SAML 客户端:
- 单击 Configure 栏中的 Clients,以列出 realm 中的客户端。点 Create。
- 输入有效的 客户端 ID。这个示例使用 sso-saml-demo。
- 在 Client Protocol 下拉菜单中,选择 saml。
- 输入应用程序的 Root URL。这个示例使用 https://demoapp-eap-app-demo.openshift32.example.com。
- 点 Save。
配置 SAML 客户端:
在 Settings 选项卡中,为新 sso-saml-demo 客户端设置 Root URL 和 Valid Redirect URL:
- 对于 Root URL,请输入创建客户端时使用的相同地址。这个示例使用 https://demoapp-eap-app-demo.openshift32.example.com。
- 对于 Valid Redirect URL,在用户登录时输入要重定向到 的地址。这个示例使用相对于 root https://demoapp-eap-app-demo.openshift32.example.com/* 的重定向地址。
导出 SAML 密钥:
- 点 sso-saml-demo 客户端空间中的 SAML Keys 选项卡,再单击 Export。
- 在本例中,将 归档格式 保留为 JKS。这个示例使用 sso-saml-demo 的默认 Key Alias,以及 saml-demo 的默认 Realm Certificate Alias。
- 输入 "密钥密码" 和 "存储密码 "。这个示例同时使用 password。
- 单击 Download,再保存 keystore-saml.jks 文件,供日后使用。
- 单击 sso-saml-demo 客户端,以返回到为下一步准备的客户端空间。
下载客户端适配器:
- 单击 Installation。
- 使用格式选项 下拉菜单选择格式。这个示例使用 Keycloak SAML Wildfly/JBoss 子系统。
- 单击 Download,再保存文件 keycloak-saml-subsystem.xml。
keystore-saml.jks 将与下一节中的其他 EAP 密钥存储一起使用,以便为 EAP 应用项目创建 OpenShift 机密。将 keystore-saml.jks 文件复制到 OpenShift 节点。
keycloak-saml-subsystem.xml 将被修改并在应用部署中使用。将它作为 secure-saml-deployments 复制到应用的 /configuration 文件夹中。