2017-10-20 26 views
1

Quoi que je fasse lorsque j'essaie de me connecter à IBM WebSphere MQ v8, il y a toujours des erreurs (2035 non autorisées) car la connexion MQQueueManager semble utiliser l'utilisateur sur lequel le service de l'application s'exécute (Windows x64 server 2012) plutôt que le MQC.PASSWORD_PROPERTY que j'ai configuré dans la table de hachage. Le MQ est la même version que mes bibliothèques (v8) et a ADOPTCTX(YES) et nous avons effectué REFRESH SECURITY TYPE(CONNAUTH). La mise en place de mon Hashtable comme suit pour les propriétés:Authentification IBM MQ v8 .NET à l'aide de l'utilisateur Windows plutôt que USER_ID_PROPERTY

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) 

Avec en commençant comme:

Using queueManager As New MQQueueManager(MQ_QUEUE_MANAGER, MQ_PROPERTIES) 

Modifier/Mise à jour:

{utilisateur Windows app} = le compte que le service de l'application fonctionne comme.

DLLs tout v 8.0.0.4

erreur dans le journal de mq (ne pas avoir un accès direct mais fourni):

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 a été mis à SYSTEM.DEFAULT.AUTHINFO. IDPWLDAP. Les paramètres des IDPWLDAP et IDPWOS sont les suivantes:

 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) 

Répondre

1

objet AUTHINFO que vous faites référence a AUTHTYPE(IDPWLDAP), mais vous ne pas les champs obligatoires comme CONNAME, BASEDNU, etc. Vérifiez CONNAUTH paramètre du gestionnaire de file d'attente Pour vous assurer que vous visualisez le bon objet AUTHINFO, vous pouvez le faire avec la commande DIS QMGR CONNAUTH. La valeur affichée dans le champ CONNAUTH du gestionnaire de files d'attente correspond au nom de l'objet AUTHINFO que vous devriez voir.

Si vous souhaitez utiliser AUTHTYPE(IDPWLDAP), vous devez le configurer pour qu'il pointe vers un serveur LDAP avec les valeurs requises. Si vous souhaitez utiliser l'authentification du système d'exploitation Windows, vous devez utiliser AUTHTYPE(IDPWOS).

par une mise à jour de l'OP (Hub3rt), le réglage du gestionnaire de file d'attente CONNAUTH pointait incorrectement SYSTEM.DEFAULT.AUTHINFO.IDPWLDAP et après la mise à jour CONNAUTH paramètre du gestionnaire de file d'attente pour pointer vers SYSTEM.DEFAULT.AUTHINFO.IDPWOS avec ADOPTCTX(YES) l'authentification a réussi.