为 rtcomm-1.0 功能部件配置安全性

此主题描述有关保护 rtcomm-1.0 功能部件的多个方面。

关于此任务

以下步骤描述如何对 rtcomm-1.0 功能部件启用安全性。

过程

  1. 配置 SSL。
    rtcomm-1.0 功能部件与 MQTT 代理程序之间的 SSL
    此功能是通过在 server.xml 文件中对 Rtcomm 设置 sslEnabled="true" 属性来对 rtcomm-1.0 功能部件启用的,这通常需要另一端口(缺省为 8883)以通过 SSL 连接至代理程序。
    Rtcomm JavaScript 客户机和 MQTT 代理程序之间的 SSL
    如果通过 HTTPS 为 rtcomm.js 客户机提供服务,那么此客户机在缺省情况下将启用 SSL(并将尝试使用端口 8883),否则需要在初始化 EndpointProvider 时在配置中启用 SSL。此配置类似所下所示:
    var providerConfig = { 
           server: mqttbroker server, 
           port: mqttbroker SSL Port, 
           useSSL: true};

    以上步骤确保客户机、MQTT 代理程序及运行 rtcomm-1.0 功能部件的 Liberty 服务器之间的通信已加密。

  2. 配置认证。
    使用 MQTT 代理程序对 JavaScript 客户机进行认证和授权
    通常,实现 real-time communications 的应用程序会认证用户。有关更多详细信息,请参阅在 Liberty 中认证用户

    许多外部 MQTT 代理程序可能需要认证,但在没有特定配置的情况下,不会与应用程序使用相同的认证。

    外部 MQTT 代理程序可使用类似认证机制并提供一些方法以使用 LTPA 令牌验证身份。IBM® MessageSight 支持 LTPA,如果 LTPA 密钥与 MessageSight MQTT 代理程序共享,它们是同一个域 (servername.domainname.com) 的成员,并且都使用相同 LDAP 资源来标识用户,那么可使用 LTPA 令牌将原始认证传递至 IBM MessageSight。其他 MQTT 代理程序可以类似方式工作。有关将 LTPA 与 IBM MessageSight 配合使用的更多详细信息,请参阅轻量级第三方认证 (LTPA)

    必须使用以下信息配置 Liberty 服务器:在 Liberty 中配置 LTPA
    注: 使用 ssoDomainNames 属性定义服务器之间的公共域:
    <webAppSecurity logoutOnHttpSessionExpire="true" singleSignonEnabled="true" ssoDomainNames="domainname.com" />

    使用 LTPA 的认证独立于 IBM MessageSight 中的授权,必须遵循以下 URL 中的指示信息: 授权

    仅当提供 LTPA 令牌的原始认证者和 MessageSight 服务器共享同一 LDAP 配置时,此配置才生效。

    没有 LTPA 的客户机认证
    如果无法配置 LTPA,那么 rtcomm.js 客户机提供了一个 API,此 API 允许提供用于向 MQTT 代理程序认证的用户和密码,并在 init() 期间传递至 EndpointProvider 的配置中完成提供此用户和密码的操作:
    var providerConfig = { 
         server: servername, 
         port: port, 
         useSSL: true, 
         credentials: { 
              userName: "username", 
              password: "password" }
         };

    此配置将身份和密码传递至 MQTT 客户机以向 MQTT 代理程序认证该连接。


用于指示主题类型的图标 任务主题

文件名:twlp_config_rtcomm_security.html