安慰队列的 Kerberos 身份验证

Kerberos authentication for solace queue

您好,我正在尝试使用 Kerberos 与安慰队列建立安全连接。我使用 Solace JMS API 开发了一个客户端应用程序。据我所知,我们需要为安全连接执行以下步骤:

1) 添加一个密钥表到 Solace Keytab 目录

2) 使用 SolAdmin 在 Solace 上执行某些配置命令

3) 导入 Kerberos 库并在您的客户端应用程序上设置某些属性。

以下是我对题目的疑惑

1) 我想知道这些是否是我们需要遵循的安全连接步骤?

2) 密钥表在建立安全连接中起什么作用?

3) 如何为使用 kerberos 的安全连接设置用户名和密码,还是默认提供?

4) 除了导入 kerberos 库和设置一些属性外,作为客户端应用程序的一部分,还有什么应该做的吗?

使用密钥表是因为作为 "APP" 的 Solace 设备无法使用 user/pass 身份验证,因此所有身份验证都在密钥表中。

Kerberos与Solace的逻辑交互如下:

  • 当 Kerberos 身份验证方案用于客户端身份验证时,客户端必须首先通过 Kerberos 身份验证服务器 (AS) 进行身份验证,该服务器为客户端授予指定 Kerberos 用户主体的票证授予票证 (TGT)。 TGT 通常作为单个 Sign-on 过程的一部分获得,例如登录到 Windows 域。使用有效的 TGT,客户端可以尝试使用客户端本地票证缓存中的服务票证或从票证授予服务 (TGS) 获得的服务票证登录路由器。 AS 和 TGS(密钥分发中心 (KDC) 的组件)托管在一个或多个外部服务器上,而不是在 Solace 路由器上。
  • 此身份验证方案允许客户端使用 GSSAPI(通用安全服务 API)中的 Kerberos 机制来验证其与 Solace 路由器的连接。要使用 Solace 路由器进行身份验证,客户端必须提供从 KDC 票证授予服务 (TGS) 获得的服务票证。 KDC 服务托管在外部服务器上。然后,客户端将此 time-stamped ‘Kerberos’ 票证提供给 Solace 路由器。如果成功验证票证,则授予客户端与 Message VPN 的连接。
  • 对于此身份验证方案,用于后续客户端授权的客户端分配的客户端用户名是提供给路由器的票据中的用户主体名称。

要使用 Kerberos 对连接到 Solace 路由器的客户端进行身份验证,需要进行以下配置:

client-side配置

  1. 对于使用 Solace 消息传递 API 的客户端,必须使用适当的 Java 分发,或者必须为使用的 Solace 消息传递 API 安装适当的 Kerberos 库,并且客户端会话必须使用 Kerberos 身份验证方案。

Solace 路由器配置

 1. SolOS 7.0 or greater must be used.
 2. A Kerberos Keytab must be loaded on the router. 
 3. Kerberos authentication must be configured and enabled for any Message VPNs that Kerberos-authenticated clients will connect to.
 4. Optionally, a Kerberos Service Principal Name (SPN) can be assigned to the IP address for the message backbone VRF that will be
used for Kerberos authenticated clients.