搜索

4.5. 在带有 OpenID-Connect 客户端的 Red Hat Single Sign-On 中自动注册 EAP 应用程序

download PDF

本例使用 OpenID-Connect 客户端适配器为 EAP 项目准备红帽单点登录、角色和用户凭据。然后,EAP 中为 OpenShift 模板提供了这些凭证,以自动注册红帽单点登录客户端注册。部署后,可以使用 Red Hat Single Sign-On 用户进行验证和访问 JBoss EAP。

注意

这个示例使用 OpenID-Connect 客户端,但也可以使用 SAML 客户端。如需有关 OpenID-Connect 和 SAML 客户端之间的区别的更多信息,请参阅 Red Hat Single Sign-On ClientsAutomatic and Manual Red Hat Single Sign-On Client Registration Methods

先决条件

4.5.1. 为 OpenShift 部署准备红帽单点登录身份验证

使用包含 cluster:admin 角色的用户登录 OpenShift CLI。

  1. 创建一个新项目

    $ oc new-project eap-app-demo
  2. view 角色添加到 default 服务帐户。这可让服务帐户查看 eap-app-demo 命名空间中的所有资源,这是管理集群所必需的。

    $ oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default
  3. EAP 模板需要 SSL 密钥存储和 JGroups 密钥存储
    本例使用 keytool (Java Development Kit 中包含的软件包)为这些密钥存储生成自签名证书。以下命令将提示输入密码。

    1. 为 SSL 密钥存储生成安全密钥:

      $ keytool -genkeypair -alias https -storetype JKS -keystore eapkeystore.jks
    2. 为 JGroups 密钥存储生成安全密钥:

      $ keytool -genseckey -alias jgroups -storetype JCEKS -keystore eapjgroups.jceks
  4. 使用 SSL 和 JGroup 密钥存储文件为 OpenShift 机密生成 EAP:

    $ oc create secret generic eap-ssl-secret --from-file=eapkeystore.jks
    $ oc create secret generic eap-jgroup-secret --from-file=eapjgroups.jceks
  5. 将 EAP secret 添加到 default 服务帐户:

    $ oc secrets link default eap-ssl-secret eap-jgroup-secret

4.5.2. 准备红帽单点登录凭证

使用在红帽单点登录部署期间创建的 管理员帐户 登录到加密的红帽单点登录 Web 服务器 https://secure-sso-<project-name > . <hostname> /auth/admin

流程

创建一个 Realm

  1. 将光标悬停在侧边栏顶部的 realm 命名空间上,然后单击 Add Realm
  2. 输入 realm 名称(本例使用 eap-demo),然后点 Create

复制公钥

在新创建的 eap-demo 域中,单击 Keys 选项卡并复制生成的公钥。这个示例为 brevity 使用变量 & lt;realm-public-key& gt;。这用于部署启用了 Red Hat Single Sign-On 的 JBoss EAP 镜像。

创建角色

在红帽单点登录中创建角色,其名称对应于示例 EAP 应用的 web.xml 中定义的 JEE 角色。此角色分配到 Red Hat Single Sign-On 应用用户,以验证对用户应用的访问权限。

  1. 单击 Configure 边栏中的 Roles,以列出此域的角色。这是一个新域,因此只有默认的 offline_access 角色。
  2. Add Role
  3. 输入角色名称(本例使用 role eap-user-role),然后单击 Save

创建用户和分配角色

创建两个用户: - 为 realm-management 角色分配 域管理用户,以便在 Red Hat Single Sign-On 服务器中处理自动的 Red Hat Single Sign-On 客户端注册。- 分配在上一步中创建的应用程序用户 JEE 角色,以验证对用户应用程序的访问权限。

创建 realm 管理用户

  1. 单击 Manage sidebar 中的 Users,以查看域的用户信息。
  2. 单击 添加用户
  3. 输入一个有效的 Username (本例使用用户 eap-mgmt-user)并单击 Save
  4. 编辑用户配置。单击用户空间中的 Credentials 选项卡,然后输入用户的密码。确认密码后,您可以单击 重置密码 以设置用户密码。弹出窗口提示进行额外的确认。
  5. 单击 Role Mappings,以列出 realm 和 client 角色配置。在 Client Roles 下拉菜单中,选择 realm-management 并将所有可用的角色添加到用户。这提供了红帽单点登录服务器权限,供 JBoss EAP 镜像用于创建客户端。

创建应用程序用户

  1. 单击 Manage sidebar 中的 Users,以查看域的用户信息。
  2. 单击 添加用户
  3. 输入一个有效的 Username 以及 应用程序用户 的额外可选信息,然后点 Save
  4. 编辑用户配置。单击用户空间中的 Credentials 选项卡,然后输入用户的密码。确认密码后,您可以单击 重置密码 以设置用户密码。弹出窗口提示进行额外的确认。
  5. 单击 Role Mappings,以列出 realm 和 client 角色配置。在 Available Roles 中,添加之前创建的角色。

4.5.3. 部署启用了 Red Hat Single Sign-On 的 JBoss EAP 镜像

流程

  1. 返回到 OpenShift Web 控制台,点 Add to project 列出默认镜像流和模板。
  2. 使用 Filter by keyword 搜索栏,将列表限制为与 sso 匹配的列表。您可能需要点击 See all 以显示所需的应用程序模板。
  3. 选择 eap71-sso-s2i 镜像,以列出所有部署参数。包含以下 Red Hat Single Sign-On 参数,以在 EAP 构建期间配置 Red Hat Single Sign-On 凭证:

    变量示例值

    APPLICATION_NAME

    sso

    HOSTNAME_HTTPS

    secure-sample-jsp.eap-app-demo.openshift32.example.com

    HOSTNAME_HTTP

    sample-jsp.eap-app-demo.openshift32.example.com

    SOURCE_REPOSITORY_URL

    https://repository-example.com/developer/application

    SSO_URL

    https://secure-sso-sso-app-demo.openshift32.example.com/auth

    SSO_REALM

    eap-demo

    SSO_USERNAME

    eap-mgmt-user

    SSO_PASSWORD

    password

    SSO_PUBLIC_KEY

    <realm-public-key>

    HTTPS_KEYSTORE

    eapkeystore.jks

    HTTPS_PASSWORD

    password

    HTTPS_SECRET

    EAP-ssl-secret

    JGROUPS_ENCRYPT_KEYSTORE

    eapjgroups.jceks

    JGROUPS_ENCRYPT_PASSWORD

    password

    JGROUPS_ENCRYPT_SECRET

    EAP-jgroup-secret

  4. 单击 Create 以部署 JBoss EAP 镜像。

部署 JBoss EAP 映像可能需要几分钟时间。

4.5.4. 使用红帽单点登录登录 JBoss EAP 服务器

流程

  1. 访问 JBoss EAP 应用服务器,然后单击 登录。您将被重定向到 Red Hat Single Sign-On 登录。
  2. 使用在示例中创建的 Red Hat Single Sign-On 用户登录。您已通过 Red Hat Single Sign-On 服务器进行身份验证,并返回给 JBoss EAP 应用服务器。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.