IBM MQ server: Connection and authentication
Each IBM MQ server definition includes the connection properties and authentication settings that service integration uses to connect to the associated IBM MQ queue manager or queue-sharing group, either for resource discovery or for messaging.
Connection
Service integration connects to the IBM MQ network in the following situations:
- When, as part of the process of creating an IBM MQ server using the administrative console, the automatic resource discovery process runs to capture resource information direct from IBM MQ. The wsadmin commands do not support automatic discovery of resources.
- When the IBM MQ server is used to pass messages between service integration and IBM MQ.
The connection access path is determined by the host, port, transport chain and IBM MQ connection channel specified when we create the IBM MQ server definition. You get this information from the IBM MQ system administrator. The connection access path is also affected by the connection mode specified:
- Use client transport mode to establish a TCP/IP network connection between service integration and IBM MQ.
- If WebSphere Application Server and IBM MQ are co-located on the same system (or, for z/OS systems, on the same partition of the same system) it is more efficient to use bindings transport mode to connect between service integration and IBM MQ.
For more information about the mechanisms used to connect to IBM MQ for z/OS, see the z/OS System Setup Guide in the IBM MQ information center.
Authentication
The IBM MQ system administrator will probably want service integration to authenticate with IBM MQ whenever it connects. This happens whenever message data needs to be exchanged with a queue point or a mediation point that is assigned to an IBM MQ server bus member, and when the automated resource discovery process runs while we are configuring an IBM MQ server using the administrative console.
The IBM MQ system administrator might also want to set up two different user accounts on the IBM MQ system: one with only the privileges needed for resource discovery, and one with only the privileges needed for messaging. The IBM MQ server definition supports this requirement by allowing you to configure the MQ server with two authentication aliases, corresponding to these two accounts.
Authentication aliases are restricted to a maximum 12 characters in length, because the user ID that IBM MQ uses for checking the identity of new connections also has this restriction. If authentication aliases exceed 12 characters in length, they are truncated.
If we are using Resource Access Control Facility (RACF ) as the security manager on the IBM MQ for z/OS system, and using bindings transport mode, specify in uppercase characters the user names and passwords for authentication aliases. If we are using RACF and client transport mode, we can specify the user names and passwords in either upper or lowercase characters.
Where an authentication alias exists, the user name and password it contains are examined by IBM MQ using an IBM MQ channel security exit. IBM MQ for z/OS provides a sample security exit CSQ4BCX3, which demonstrates how we can authenticate based on this information.
When messages are sent to IBM MQ for resource discovery, the MQPMO_SET_IDENTITY_CONTEXT option is used. The credentials used to establish a messaging connection must have authority to assert this.
The connection mode we use for connecting to IBM MQ affects which credentials are used:
- For a client transport mode connection, the user ID and password from the authentication alias are used by IBM MQ. If an authentication alias is not specified in the IBM MQ server definition, IBM MQ is presented with an empty string for both the user ID and password.
- For a bindings transport mode connection, the credentials associated with the application server processes are used for authentication by IBM MQ. Therefore service integration instructs the application server processes to switch credentials and use the user ID and password that exist in the relevant IBM MQ server authentication alias. This in turn requires that the application server processes start with sufficient privileges to connect and perform the switch. If an authentication alias is not specified in the IBM MQ server definition, a switch of credentials is not attempted and the original credentials of the application server process are used. (ZOS) For resource discovery the credentials are those of a servant address space in a single server configuration, and those of the deployment manager address space in a network-deployment configuration. For messaging work the credentials are those of the control region adjunct address space.
Overriding the connection and authentication settings
When we add the IBM MQ server definition to a service integration bus to make it a bus member, we can override the server settings and authentication alias used for messaging, with the connection settings and authentication alias used by the bus. Use this option to create a bus-specific instance of that server and is useful in a multiple bus configuration. Typically we would do this to differentiate connections from different buses and, potentially, to apply different security settings.
Create an IBM MQ server definition createSIBWMQServer command