搜索

2.9. 配置应用程序以使用容器管理的单点登录

download PDF

您可以通过 Elytron FORM 身份验证 方法将 JBoss EAP 配置为将容器管理的单点登录用于应用。这允许用户进行身份验证一次,并访问 FORM 身份验证 方法保护的其他资源,而无需重新进行身份验证。

在以下情况下,相关的单点登录会话无效:

  • 没有有效的本地会话。
  • 从应用注销。
重要

只要这些实例在集群中,就可以在不同的 JBoss EAP 实例上部署的应用之间使用单点登录。

  1. 创建 密钥存储

    需要 密钥存储 以在参与 SSO 的不同服务器之间配置安全通信通道。此通道用于交换创建或销毁单点登录会话时发生的事件的消息,分别登录和注销。

    要在 elytron 子系统中创建 密钥 存储,请首先创建一个 Java KeyStore,如下所示:

    keytool -genkeypair -alias localhost -keyalg RSA -keysize 1024 -validity 365 -keystore keystore.jks -dname "CN=localhost" -keypass secret -storepass secret

    创建 密钥store.jks 文件后,执行以下管理 CLI 命令在 Elytron 中创建 密钥存储 定义:

    /subsystem=elytron/key-store=example-keystore:add(path=keystore.jks, relative-to=jboss.server.config.dir, credential-reference={clear-text=secret}, type=JKS)
  2. 添加安全域。

    使用以下管理 CLI 命令创建文件系统 ,这是用户在本地文件系统中存储的身份存储:

    /subsystem=elytron/filesystem-realm=example-realm:add(path=/tmp/example-realm)
  3. 使用以下管理 CLI 命令创建 安全域

    /subsystem=elytron/security-domain=example-domain:add(default-realm=example-realm,permission-mapper=default-permission-mapper,realms=[{realm=example-realm,role-decoder=groups-to-roles}]
    注意

    使用 SSO 的应用应当使用 HTTP FORM 身份验证,因为它们通常需要为用户提供登录页面。

  4. undertow 子系统中创建应用安全域。

    注意

    如果您已在 undertow 子系统中定义了 application-security-domain,只需将它用于为您的应用启用单点登录,您可以跳过这一步。

    /subsystem=undertow/application-security-domain=other:add(security-domain=example-domain)
    注意

    默认情况下,如果您的应用未在 jboss-web.xml 文件中定义任何特定的安全域,应用服务器将以 其他 名称选择一个。

  5. 更新 undertow 子系统,以启用单点登录并使用密钥存储:

    单点登录启用到 undertow 子系统中的特定 application-security-domain 定义。您用于部署应用的服务器必须使用相同的配置。

    要启用单点登录,只需更改 undertow 子系统中的现有 application-security-domain,如下所示:

    /subsystem=undertow/application-security-domain=other/setting=single-sign-on:add(key-store=example-keystore, key-alias=localhost, domain=localhost, credential-reference={clear-text=secret})
    注意

    可以通过导航到 Configuration Subsystems Web(Under tow )→ Application Security Domain,使用管理控制台配置 undertow 子系统中的 application-security-domain

    如需有关 SSO 属性及其定义的更多信息,请参阅单点登录属性参考。

  6. 配置应用的 web.xmljboss-web.xml 文件。

    您的 web.xmljboss-web.xml 必须更新为使用您在 JBoss EAP 中配置的 application-security-domain。例如,将 Web 应用程序配置为使用 Elytron 或传统安全性进行身份验证

JBoss EAP 为 使用 undertowinfinispan 子系统的集群和非集群 SSO 提供开箱即用的支持。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.