【问题标题】:IBM MQ v8 .NET authentication using Windows user rather than USER_ID_PROPERTY使用 Windows 用户而不是 USER_ID_PROPERTY 的 IBM MQ v8 .NET 认证
【发布时间】:2017-10-25 05:46:24
【问题描述】:

当我尝试连接(写入)IBM WebSphere MQ v8 时,无论我做什么,它总是会出错(2035 未授权),因为 MQQueueManager 连接看起来正在使用正在运行应用程序服务的用户(Windows x64 server 2012) 而不是我在哈希表中设置的MQC.PASSWORD_PROPERTY

MQ 与我的库 (v8) 版本相同,具有ADOPTCTX(YES),我们执行了REFRESH SECURITY TYPE(CONNAUTH)。为属性设置我的哈希表如下:

MQ_PROPERTIES = New Hashtable()
MQ_PROPERTIES.Add(MQC.HOST_NAME_PROPERTY, MQ_HOSTNAME)
MQ_PROPERTIES.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED)
MQ_PROPERTIES.Add(MQC.PORT_PROPERTY, MQ_PORT)
MQ_PROPERTIES.Add(MQC.CHANNEL_PROPERTY, MQ_CHANNEL_NAME)
MQ_PROPERTIES.Add(MQC.USER_ID_PROPERTY, MQ_USERNAME)
MQ_PROPERTIES.Add(MQC.PASSWORD_PROPERTY, MQ_PASSWORD)
MQ_PROPERTIES.Add(MQC.USE_MQCSP_AUTHENTICATION_PROPERTY, True)

开始时:

Using queueManager As New MQQueueManager(MQ_QUEUE_MANAGER, MQ_PROPERTIES)

编辑/更新:

{windows app user} = 运行应用服务的帐户。

dll 全部 v 8.0.0.4

mq 日志中的错误(没有直接访问权限,但提供):

  AMQ9557: Queue Manager User ID initialization failed for '{windows app user}'.           

EXPLANATION:                                                                    

  Cause . . . . . :   The call to initialize the User ID '{windows app user}' failed     
with CompCode 2 and Reason 2035.                                                
  Recovery  . . . :   Correct the error and try again.                          

----- cmqxrsrv.c : 2356 ------------------------------------------------------- 
 ************End of Data********************   

CONNAUTH 设置为 SYSTEM.DEFAULT.AUTHINFO.IDPWLDAP。 IDPWLDAP 和 IDPWOS 的设置如下:

      5 : dis AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWLDAP)       
 AMQ8566: Display authentication information details.          
    AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWLDAP)                 
    AUTHTYPE(IDPWLDAP)                      ADOPTCTX(YES)      
    DESCR( )                                CONNAME( )         
    CHCKCLNT(REQUIRED)                      CHCKLOCL(OPTIONAL) 
    CLASSUSR( )                             FAILDLAY(1)        
    BASEDNU( )                              LDAPUSER( )        
    LDAPPWD( )                              SHORTUSR( )        
    USRFIELD( )                             SECCOMM(NO)        
    ALTDATE(2017-10-20)                     ALTTIME(16.38.55)  

       2 : dis AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS)        
  AMQ8566: Display authentication information details.         
     AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS)                  
     AUTHTYPE(IDPWOS)                        ADOPTCTX(YES)     
     DESCR( )                                CHCKCLNT(OPTIONAL)
    CHCKLOCL(OPTIONAL)                      FAILDLAY(1)       
     ALTDATE(2017-10-23)                     ALTTIME(13.50.20)

【问题讨论】:

    标签: .net authentication ibm-mq


    【解决方案1】:

    您引用的AUTHINFO 对象具有AUTHTYPE(IDPWLDAP),但您没有任何必填字段,例如CONNAMEBASEDNU 等。仔细检查队列管理器的CONNAUTH 设置以确保您正在查看正确的 AUTHINFO 对象,您可以使用命令 DIS QMGR CONNAUTH 执行此操作。 队列管理器的 CONNAUTH 字段中显示的任何值都是您应该查看的 AUTHINFO 对象的名称。

    如果您想使用AUTHTYPE(IDPWLDAP),您需要将其配置为指向具有所需值的 LDAP 服务器。如果您希望它使用 Windows 操作系统身份验证,那么您将使用 AUTHTYPE(IDPWOS)

    根据 OP (Hub3rt) 的更新,队列管理器的 CONNAUTH 设置错误地指向 SYSTEM.DEFAULT.AUTHINFO.IDPWLDAP,并且在使用 ADOPTCTX(YES) 身份验证成功更新队列管理器的 CONNAUTH 设置以指向 SYSTEM.DEFAULT.AUTHINFO.IDPWOS 之后.

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 2016-06-23
      • 2011-07-22
      • 1970-01-01
      • 2016-12-14
      • 2019-12-01
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多