It is failing to look up that user id on the local box. That is what is failing.
The queue manager needs to know the group memberships and the S-ID of the user ID. So it looks it up in the O/S. In your environment, the user Id doesn't exist so you get the error message you saw.
The question though is, why did it need to look it up? Why is it not using the adopted MQCSP user ID?
If you define it as a local user, then certainly this error message should go away, and perhaps then it will become clear where it is being used.
Original Message:
Sent: Thu April 10, 2025 04:40 AM
From: Joao Ramires
Subject: mapping client user to local user
I did several REFRESH SECURITY , no success
The 2035 is strange unexpected, it doesn't say why, what is failing: if a connect to the queue manager or other operation
I'll try the same test, defining 'wasserver' user as a local user on the windows box.
------------------------------
Joao Ramires
Original Message:
Sent: Wed April 09, 2025 07:50 PM
From: Morag Hughson
Subject: mapping client user to local user
Hi Joao,
Hmm, that's interesting.
I can see that you are indeed sending a user ID and password in, since the error message says:-
If an MQCSP block was used, the User ID in the MQCSP block was 'joao'.
And I can see what I assumed was the case before, that the 'wasserver' user id is the logged on user id on the client side and is being flowed to the queue manager as part of the client protocol, since the error message says:-
If a userID flow was used, the User ID in the UID header was 'wasserver'
Ignoring the client flowed user ID is what the ADOPTCTX(YES) configuration is supposed to do.
Is there any possibility that the ADOPTCTX(YES) setting was recently changed and the queue manager has neither been restarted nor refreshed since that changed was made?
If you issue the following command:-
REFRESH SECURITY TYPE(CONNAUTH)
and retry the connection, is there any difference to the way it behaves?
Cheers,
Morag
------------------------------
Morag Hughson
MQ Technical Education Specialist
MQGem Software Limited
Website: https://www.mqgem.com
Original Message:
Sent: Wed April 09, 2025 05:38 PM
From: Joao Ramires
Subject: mapping client user to local user
Thank you Morag,
that's also my understanding, what I don't understand is the queue manager giving 2035 to the user wasserver.
I don't have wasserver user defined on the windows box, but user joao is.
i'm using ADOPTCTX(YES) , message I have is the one that follows.
AMQ9557E: Queue Manager User ID initialization failed for 'wasserver'.
EXPLANATION:
The call to initialize the User ID 'wasserver' failed with CompCode 2 and Reason
2035. If an MQCSP block was used, the User ID in the MQCSP block was
'joao'. If a userID flow was used, the User ID in the UID header was
'wasserver' and any CHLAUTH rules applied prior to user adoption were evaluated
case-sensitively against this value.
------------------------------
Joao Ramires
Original Message:
Sent: Wed April 09, 2025 12:42 PM
From: Morag Hughson
Subject: mapping client user to local user
Yes, you can assert a user id to be used using CHLAUTH based on three different things. You rightly point out that you can do this with with a certificate Distinguished Name (DN), but you can also do it based on an IP address or a client asserted user id (or both in fact).Doing this is just a mapping - nothing is being authenticated when you do this and so anyone with the same user ID could take advantage.
You mention that you are using CONNAUTH too. The other way you can change the user ID, would be to use a user ID and password on your connection from machine with the wasserver user ID, where the user ID and password provided do exist on the Windows box, and make sure that the settings in SYSTEM.DEFAULT.AUTHINFO.IDPWOS are configured for ADOPTCTX(YES).
Cheers,
Morag
------------------------------
Morag Hughson
MQ Technical Education Specialist
MQGem Software Limited
Website: https://www.mqgem.com
Original Message:
Sent: Wed April 09, 2025 05:46 AM
From: Joao Ramires
Subject: mapping client user to local user
Hello all
I have an application that runs on a Windows App Server and uses a client channel. This app identifies itself in qmgr with the user running the app server, eg."wasserver". This "wasserver" does not exist on the windows box. Can I ignore this user, and use a CHLAUTH rule to map this user to an existing user, eg. "appuser"? With SSL certificates it would be possible, but for now I won't use it.
Qmgr is using default CONNAUTH('SYSTEM.DEFAULT.AUTHINFO.IDPWOS')
Thanks!
------------------------------
Joao Ramires
------------------------------