是否可以将MQIPT配置为对MQ客户端为特定连接设置的凭据进行身份验证

时间:2017-08-14 14:41:37

标签: ibm-mq

场景:MQIPT用于MQ客户机和MQ服务器版本8之间。

是否可以验证在MQIPT上与通道连接一起发送的凭证。我检查了文档,除非为它编写某种安全出口,否则似乎无法完成。

只是想了解一下这方面的意见,如果可能的话,它是如何实现的。

谢谢。

1 个答案:

答案 0 :(得分:1)

MQIPT com.ibm.mq.ipt.exit.SecurityExitcom.ibm.mq.ipt.exit.CertificateExit类不公开客户端通道的用户名和密码信息。以下是IBM关于这两种出口的文档。

IBM v9.0知识中心记录了

The com.ibm.mq.ipt.exit.SecurityExit class,其中包含以下信息:

  

public SecurityExitResponse validate(IPTTrace)
  可以使用以下属性:

     
      
  • 侦听器端口
  •   
  • 目的地
  •   
  • 目的地港口
  •   
  • 超时
  •   
  • 客户端IP地址
  •   
  • 客户端端口地址
  •   
  • 频道名称
  •   
  • 队列管理员名称
  •   
     

MQIPT收到a时将调用validate方法   连接请求以进行验证。通道名称和队列管理器   如果已存在SSLProxyMode属性,则名称将不可用   启用,因为此功能仅用于隧道SSL / TLS数据和   因此,通常从初始数据流中获得的数据将是   不可读。

IBM v9.0知识中心记录了

The com.ibm.mq.ipt.exit.CertificateExit class,其中包含以下信息:

  

获得属性的支持方法:
   public int getListenerPort()

     

检索路由侦听器端口 - 由ListenerPort定义   属性

     

public String getDestination()

     

检索目标地址 - 由Destination定义   属性

     

public int getDestinationPort()

     

检索目标侦听器端口地址 - 由...定义   DestinationPort属性

     

public String getClientIPAddress()

     

检索发出连接请求的客户端的IP地址

     

public int getClientPortAddress()

     

检索进行连接的客户端使用的端口地址   请求

     

public boolean isSSLClient()

     

用于确定退出是否被称为SSL / TLS客户端或   SSL / TLS服务器。如果返回true,则退出在客户端   连接,验证从中获得的证书   服务器。如果返回false,则退出位于服务器端   连接,验证客户端发送的证书。这是有效的   对于充当SSL / TLS服务器和SSL / TLS客户端的路由,   解密和重新加密流量。在这种情况下,虽然   有一个退出类,类的一些实例将是   称为客户端,一些称为服务器。您可以使用isSSLClient   确定给定实例的情况。

     

public int getConnThreadID()

     

用于检索正在处理的工作线程的ID   连接请求,可用于调试。

     

public String getChannelName()

     

检索连接中使用的IBM®MQ通道名称   请求。仅在传入请求未使用时才可用   SSL / TLS和MQIPT充当SSL / TLS客户端。

     

public String getQMName()

     

检索连接中使用的IBM MQ队列管理器的名称   请求。仅在客户端请求未使用时才可用   SSL / TLS和MQIPT充当SSL / TLS客户端。

     

public boolean getTimedout()

     

出口用于确定超时是否已过期。

     

公共IPTCertificate getCertificate()

     

检索需要验证的SSL / TLS证书。

     

public String getExitData()

     

检索退出数据,由SSLExitData属性定义。

     

public String getExitName()

     

检索退出名称,由SSLExitName属性定义。