ibm-mq

MQ container , how admin user id is defined in the container


I am trying to understand, how the MQ admin user is configured in the IBM MQ container. The app id make sense that it's a system user and under the group MQclient. I am not getting any details on admin id part. How that is declared, and which group it belong to?


Solution

  • The repo for the developer image is here.

    The instructions for building the advanced for developers image is here. Which shows that it is built by running the command -

    make build-devserver
    

    The makefile is here.

    The makefile builds the image with the docker file found here.

    The admin authentication / password is built in these lines in the docker file.

    ###############################################################################
    # Build stage to build C code for custom authorization service (developer-only)
    ###############################################################################
    # Use the Go toolset image, which already includes gcc and the MQ SDK
    FROM builder as cbuilder
    USER 0
    # Install the Apache Portable Runtime code (used for simpleauth hash checking)
    COPY authservice/ /opt/app-root/src/authservice/
    WORKDIR /opt/app-root/src/authservice/mqsimpleauth
    RUN make all
    

    The image is built with the mqsc commands found here.

    The admin relevant section is:

    * Developer channels (Application + Admin)
    DEFINE CHANNEL('DEV.ADMIN.SVRCONN') CHLTYPE(SVRCONN) REPLACE
    ...
    
    * Developer channel authentication rules
    SET CHLAUTH('*') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS) DESCR('Back-stop rule - Blocks everyone') ACTION(REPLACE)
    ...
    SET CHLAUTH('DEV.ADMIN.SVRCONN') TYPE(BLOCKUSER) USERLIST('nobody') DESCR('Allows admins on ADMIN channel') ACTION(REPLACE)
    SET CHLAUTH('DEV.ADMIN.SVRCONN') TYPE(USERMAP) CLNTUSER('admin') USERSRC(CHANNEL) DESCR('Allows admin user to connect via ADMIN channel') ACTION(REPLACE)
    SET CHLAUTH('DEV.ADMIN.SVRCONN') TYPE(USERMAP) CLNTUSER('admin') USERSRC(MAP) MCAUSER ('mqm') DESCR ('Allow admin as MQ-admin') ACTION(REPLACE)