1.10. Elytron 与 Remoting subsystem 集成


1.10.1. Elytron 与补救连接器集成

补救连接器由 SASL 身份验证工厂、套接字绑定和可选的 SSL 上下文指定。特别是,连接器的属性如下:

sasl-authentication-factory
对 SASL 身份验证工厂的引用,用于向这个连接器验证请求。有关创建此工厂的更多信息,请参阅创建 Elytron Authentication Factory
socket-binding
对套接字绑定的引用,详细描述了连接器应该侦听传入请求的接口和端口。
ssl-context
此连接器使用的服务器端 SSL 上下文的可选引用。SSL 上下文包含要使用的服务器密钥管理器和信任管理器,应在需要 SSL 的实例上定义。

例如,可以添加连接器,如下所示,SASL_FACTORY_NAME 是已经定义的身份验证工厂,SOCKET_BINDING_NAME 是现有的套接字绑定。

/subsystem=remoting/connector=CONNECTOR_NAME:add(sasl-authentication-factory=SASL_FACTORY_NAME,socket-binding=SOCKET_BINDING_NAME)

如果需要 SSL,可以使用 ssl-context 属性来引用预配置的 server-ssl-context,如下所示。

/subsystem=remoting/connector=CONNECTOR_NAME:add(sasl-authentication-factory=SASL_FACTORY_NAME,socket-binding=SOCKET_BINDING_NAME,ssl-context=SSL_CONTEXT_NAME)

1.10.1.1. 启用单向 SSL/TLS 使用 elytron 子系统重新移动连接器

以下 SASL 机制支持频道绑定到外部安全频道,如 SSL/TLS:

  • GS2-KRB5-PLUS
  • SCRAM-SHA-1-PLUS
  • SCRAM-SHA-256-PLUS
  • SCRAM-SHA-384-PLUS
  • SCRAM-SHA-512-PLUS

要使用任何这些机制,您可以配置自定义 SASL 工厂,或修改预定义的 SASL 身份验证因素之一。可以在客户端使用 SASL 机制选择器来指定适当的 SASL 机制。

先决条件

  • 配置了 密钥存储
  • 配置了 key-manager
  • 配置了 server-ssl-context,它引用定义的 key-manager

流程

  1. 为连接器创建 socket-binding。以下命令定义了在端口 11199 上侦听的 oneWayBinding 绑定。

    /socket-binding-group=standard-sockets/socket-binding=oneWayBinding:add(port=11199)
  2. 创建引用 SASL 身份验证工厂、之前创建的套接字绑定和 SSL 上下文的连接器。

    /subsystem=remoting/connector=oneWayConnector:add(sasl-authentication-factory=SASL_FACTORY,socket-binding=oneWayBinding,ssl-context=SSL_CONTEXT)
    重要

    如果您同时定义了 security-realmssl-context,JBoss EAP 将使用 ssl-context 提供的 SSL/TLS 配置。

  3. 配置客户端以信任服务器证书。Elytron Client Side One Way Example 提供了一个常规的示例客户端。这个示例使用客户端 trust-store 来配置 ssl-context

1.10.1.2. 启用双向 SSL/TLS 使用 elytron 子系统重新移动连接器

以下 SASL 机制支持频道绑定到外部安全频道,如 SSL/TLS:

  • GS2-KRB5-PLUS
  • SCRAM-SHA-1-PLUS
  • SCRAM-SHA-256-PLUS
  • SCRAM-SHA-384-PLUS
  • SCRAM-SHA-512-PLUS

要使用任何这些机制,您可以配置自定义 SASL 工厂,或修改预定义的 SASL 身份验证因素之一以提供这些机制。可以在客户端使用 SASL 机制来指定适当的 SASL 机制。

先决条件

  • 为客户端和服务器证书配置单独的 key-store 组件。
  • 为服务器 key-store 配置了一个 key-manager
  • 为服务器 trust-store 配置了一个 trust-manager
  • 配置了 server-ssl-context,它引用了定义的 key-managertrust-manager

流程

  1. 为连接器创建 socket-binding。以下命令定义了侦听端口 11199twoWayBinding 绑定。

    /socket-binding-group=standard-sockets/socket-binding=twoWayBinding:add(port=11199)
  2. 创建引用 SASL 身份验证工厂、之前创建的套接字绑定和 SSL 上下文的连接器。

    /subsystem=remoting/connector=twoWayConnector:add(sasl-authentication-factory=SASL_FACTORY,socket-binding=twoWayBinding,ssl-context=SSL_CONTEXT)
    重要

    如果您同时定义了 security-realmssl-context,JBoss EAP 将使用 ssl-context 提供的 SSL/TLS 配置。

  3. 将您的客户端配置为信任服务器证书,并将其证书提供给服务器。

    您需要将客户端配置为向服务器提供可信客户端证书,以完成双向 SSL/TLS 身份验证。例如,如果使用浏览器,您需要将可信证书导入到浏览器的信任存储中。Elytronon Client Side Two way Example 包括了一个常规的示例客户端。这个示例使用客户端 trust-storekey-store 来配置 ssl-context

现在,在 remoting connector 上启用了双向 SSL/TLS。

1.10.2. Elytron 与补救 HTTP 连接器集成

通过引用 undertow 子系统中的连接器和 elytron 子系统中定义的 SASL 身份验证工厂来指定远程 HTTP 连接。HTTP 连接器为基于 HTTP 升级的补救连接器提供配置,并连接到通过 connector-ref 属性指定的 HTTP 监听程序。

http-connector 的属性如下:

connector-ref
对预定义的 undertow 侦听器的引用。
sasl-authentication-factory
对 SASL 身份验证工厂的引用,用于向这个连接器验证请求。有关创建此工厂的更多信息,请参阅创建 Elytron Authentication Factory

例如,可以添加 http-connector,其中 CONNECTOR_NAME 引用 undertow 侦听器,SASL_FACTORY_NAMEelytron 子系统中已经定义了的身份验证工厂。

/subsystem=remoting/http-connector=HTTP_CONNECTOR_NAME:add(connector-ref=CONNECTOR_NAME,sasl-authentication-factory=SASL_FACTORY_NAME)

1.10.2.1. 在 remoting HTTP 连接器中启用单向 SSL

以下 SASL 机制支持频道绑定到外部安全频道,如 SSL/TLS:

  • GS2-KRB5-PLUS
  • SCRAM-SHA-1-PLUS
  • SCRAM-SHA-256-PLUS
  • SCRAM-SHA-384-PLUS
  • SCRAM-SHA-512-PLUS

要使用上述任何机制,可以配置自定义 SASL 工厂,或者可以修改其中一个预定义的 SASL 身份验证因素来提供这些机制。可以在客户端使用 SASL 机制选择器来指定适当的 SASL 机制。

先决条件

流程

  1. 检查 https-listener 是否已配置为使用旧安全域进行 SSL 配置。

    /subsystem=undertow/server=default-server/https-listener=https:read-attribute(name=security-realm)
    {
        "outcome" => "success",
        "result" => "ApplicationRealm"
    }

    以上命令显示 https-listener 被配置为将 ApplicationRealm 传统安全 realm 用于其 SSL 配置。Undertow 无法同时引用传统的安全域和 Elytron 中的 ssl-context,因此您必须删除对旧安全域的引用。

    注意

    如果结果 未定义,则不需要在下一步中删除对安全域的引用。

  2. 删除对旧安全域的引用,并更新 https-listener 以使用 Elytron 中的 ssl-context

    注意

    https-listener 需要始终配置了 security-realmssl-context。在两个配置之间更改时,命令必须作为一个批处理来执行,如下所示。

    batch
    /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm)
    /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=SERVER_SSL_CONTEXT)
    run-batch
  3. 创建 HTTP 连接器来引用 HTTPS 侦听器和 SASL 身份验证工厂。

    /subsystem=remoting/http-connector=ssl-http-connector:add(connector-ref=https,sasl-authentication-factory=SASL_FACTORY)
  4. 重新加载服务器。

    reload
  5. 配置客户端以信任服务器证书。例如,如果使用浏览器,您需要将可信证书导入到浏览器的信任存储中。

1.10.2.2. 在 remoting HTTP 连接器中启用双向 SSL/TLS

以下 SASL 机制支持频道绑定到外部安全频道,如 SSL/TLS:

  • GS2-KRB5-PLUS
  • SCRAM-SHA-1-PLUS
  • SCRAM-SHA-256-PLUS
  • SCRAM-SHA-384-PLUS
  • SCRAM-SHA-512-PLUS

要使用上述任何机制,可以配置自定义 SASL 工厂,或者可以修改其中一个预定义的 SASL 身份验证因素来提供这些机制。可以在客户端使用 SASL 机制选择器来指定适当的 SASL 机制。

先决条件

流程

  1. 检查 https-listener 是否已配置为使用旧安全域进行 SSL 配置。

    /subsystem=undertow/server=default-server/https-listener=https:read-attribute(name=security-realm)
    {
        "outcome" => "success",
        "result" => "ApplicationRealm"
    }

    以上命令显示 https-listener 被配置为将 ApplicationRealm 传统安全 realm 用于其 SSL 配置。Undertow 无法同时引用传统的安全域和 Elytron 中的 ssl-context,因此您必须删除对旧安全域的引用。

    注意

    如果结果 未定义,则不需要在下一步中删除对安全域的引用。

  2. 删除对旧安全域的引用,并更新 https-listener 以使用 Elytron 中的 ssl-context

    注意

    https-listener 需要始终配置了 security-realmssl-context。在两个配置之间更改时,命令必须作为一个批处理来执行,如下所示。

    batch
    /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm)
    /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=SERVER_SSL_CONTEXT)
    run-batch
  3. 创建 HTTP 连接器来引用 HTTPS 侦听器和 SASL 身份验证工厂。

    /subsystem=remoting/http-connector=ssl-http-connector:add(connector-ref=https,sasl-authentication-factory=SASL_FACTORY)
  4. 重新加载服务器。

    reload
  5. 将您的客户端配置为信任服务器证书,并将其证书提供给服务器。

    通过将客户端配置为向服务器提供可信客户端证书,完成双向 SSL/TLS 身份验证。例如,如果使用浏览器,您需要将可信证书导入到浏览器的信任存储中。

现在,在 remoting HTTP 连接器上启用了双向 SSL/TLS。

重要

如果您同时定义了 security-realmssl-context,JBoss EAP 将使用 ssl-context 提供的 SSL/TLS 配置。

1.10.3. Elytron 与远程出站连接器集成

远程出站连接通过出站套接字绑定和验证上下文指定。验证上下文提供连接所需的所有安全信息。特别是 remote-outbound-connection 的属性如下:

  • 出站套接字-binding-ref - 出站套接字绑定的名称,用于确定连接的目标地址和端口。
  • authentication-context - 对验证上下文的引用,该上下文包含验证配置和定义的 SSL 上下文(如果存在,则为连接需要)。有关定义验证上下文的详情,请参考 创建身份验证上下文

例如,可以添加 remote-outbound-connection,其中 OUTBOUND_SOCKET_BINDING_NAME 是已经定义的 出站套接字-bindingAUTHENTICATION_CONTEXT_NAME,已在 elytron 子系统配置中定义的 验证上下文

/subsystem=remoting/remote-outbound-connection=OUTBOUND_CONNECTION_NAME:add(authentication-context=AUTHENTICATION_CONTEXT_NAME, outbound-socket-binding-ref=OUTBOUND_SOCKET_BINDING_NAME)
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.