IBM Support

WMQ 7.1/7.5/8.0/9.0 キュー・マネージャーへのクライアント接続における理由コード 2035 MQRC_NOT_AUTHORIZED または AMQ4036

Question/Answer


Question

WebSphere MQ 7.1, 7.5, 8.0 または、9.0以降で新規にキュー・マネージャーを作成し、MQ管理者のユーザーIDを使用してサーバー接続チャネル(リモートのホスト もしくは、バインディング・モードではない同じホストでローカル接続)を通して、キュー・マネージャーにアクセスする場合、理由コード 2035 のエラーを受け取ることがあります。 2035 MQRC_NOT_AUTHORIZED MQ管理者を使用してバージョン6または、7のリモート(サーバー接続チャネルを通して)のキュー・マネージャーに対しては、アクセスできます。

Cause

WebSphere MQ 7.1, 7.5, 8.0 または、9.0以降で新規にキュー・マネージャーを作成する場合、7.1以降、新規属性"チャネル認証レコード"(CHLAUTH)が有効になっています。

runmqscから値を確認できます。

例:
$ runmqsc QmgrName
DISPLAY QMGR CHLAUTH
AMQ8408: Display Queue Manager details.
QMNAME(TEST01) CHLAUTH(ENABLED)

デフォルトでは、7.1 で新規にキュー・マネージャーを作成、もしくは7.1 にアップグレードした場合、次の3つの認証レコードが生成されています。

DISPLAY CHLAUTH(*)
1 : DISPLAY CHLAUTH(*)
AMQ8878: Display channel authentication record details.
CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP)
ADDRESS(*) USERSRC(CHANNEL)
AMQ8878: Display channel authentication record details.

CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP)
ADDRESS(*) USERSRC(NOACCESS)
AMQ8878: Display channel authentication record details.

CHLAUTH(*) TYPE(BLOCKUSER)
USERLIST(*MQADMIN)

最後のレコードは、MQ管理ユーザーによるすべてのサーバー接続チャネルへアクセスをブロックします。

管理ユーザー(特権ユーザー)
http://pic.dhe.ibm.com/infocenter/wmqv7/v7r1/topic/com.ibm.mq.doc/zs00150_.htm

適切な認可が付与されていれば非管理ユーザーはアクセスできますが、Object Authority Manager(OAM)の認可設定なしに、管理者による接続と匿名接続は認められません。

これは、V7.1の新規のキュー・マネージャが前のバージョンでよりデフォルトで非常に安全であることを意味します。しかし、トレードオフとして管理アクセスを許可するには明示的にチャネル認証レコード定義を行う必要があります。

+++補足

a) キュー:マネージャーを MQ 7.1 にアップグレードした場合、デフォルトでは、この機能は有効になっていません。

$ runmqsc QmgrName
DISPLAY QMGR CHLAUTH
AMQ8408: Display Queue Manager details.
QMNAME(TEST01) CHLAUTH(DISABLED)

次のコマンドでチャネル認証レコードを有効にできます。
$ runmqsc QmgrName
ALTER QMGR CHLAUTH(ENABLED)

b) MQエクスプローラーを使用して、新規に作成されたキュー・マネージャーにリモート(サーバー接続チャネルを通して)からアクセスした場合、次のエラーを受け取ることがあります。



ダイアログBOXの中のテキストは下記のとおりです。
Access not permitted. You are not authorized to perform this operation. (AMQ4036)
Severity: 10 (Warning)
Explanation: The queue manager security mechanism has indicated that the userid associated with this request is not authorized to access the object.

ダイアログBOXをクローズすると、下記のメッセージが表示されます。



ダイアログBOXの中のテキストは下記のとおりです。
An error occurred connecting to queue manager 'QM_71 on 'host.x.com(14xx)''. Are you sure that you want to show this queue manager in the folder anyway? (AMQ4027)
Severity: 10 (Warning)
Explanation: A connection could not be made to the specified remote queue manager.
Response: Ensure that the named queue manager is running on the host and port specified, and has a channel corresponding to the specified name. Ensure that you have the authority to connect to the remote queue manager, and ensure that the network is running. Select Yes if you believe that the problem can be resolved later. Select No if you want to correct the problem now and try again.

c) エラーログには、AMQ9776 または、AMQ9777 がログされています。

c.1) AMQ9776: チャネルがユーザー ID によってブロックされました。
説明
ブロックする必要があるユーザー ID にチャネルのアクティブ値がマップされたため、インバウンド・チャネル 'SYSTEM.ADMIN.SVRCONN' はアドレス 'x.x.x.x' からブロックされました。チャネルのアクティブ値は 'MCAUSER(xxxxx) CLNTUSER(xxxxx)'. でした。
Response
システム管理者に連絡してください。システム管理者は、チャネル認証レコードを調べて、正しい設定が構成されるようにします。DISPLAY CHLAUTH コマンドを使用して、チャネル認証レコードを照会することができます。

c.2) AMQ9777: チャネルがブロックされました。
説明
チャネルのアクティブ値が USERSRC(NOACCESS) を使用して構成されたレコードと一致したため、インバウンド・チャネル 'SYSTEM.DEF.SVRCONN' はアドレス '127.0.0.1' からブロックされました。チャネルのアクティブ値は 'CLNTUSER()' でした。
Response
システム管理者に連絡してください。システム管理者は、チャネル認証レコードを調べて、正しい設定が構成されるようにします。DISPLAY CHLAUTH コマンドを使用して、チャネル認証レコードを照会することができます。

c.3) 上記、いずれかのメッセージに引き続き、次のエラーが出力されます。
AMQ9999: チャネル・プログラムが異常終了しました。

Answer

1) 本番環境でエラーを至急解決しなけらばならない場合、チャネル認証レコードでブロックされているMQ管理者ユーザーではなく、非MQ管理者ユーザーを使ってキューマネージャーにアクセスしてください。

2) MQ管理者としてキュー・マネージャーにチャネル接続が必要な場合、下記のアクションのひとつを実施してください。

2.a) 次の資料を参照して、チャネル認証レコードを追加してください。

What's New in WebSphere MQ v7.1 Security?
Page 10: User ID blocking

1つ目のルールとして管理者ユーザーとMCAUSER "nobody"(この設定により、誰かがユーザーID "nobody"を作成して管理グループに登録することを防ぎます)をブロックします。

$ runmqsc QmgrName
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('nobody','*MQADMIN')

2つ目のルールとして、管理ユーザーに対してSYSTEM.ADMINチャネル使用を許可するようチャネル認証制限を緩和します。
(この例ではTYPE(SSPPEERMAP)などその他のCHLAUTHルールでは、すでに管理接続が認可されていると仮定します)

SET CHLAUTH(SYSTEM.ADMIN.*) TYPE(BLOCKUSER) USERLIST('nobody')

上記のSYSTEM.ADMIN.SVRCONNに対するルールは、MQエクスプローラーからも適用できます。

もしMY.ADMIN.SVRCONNのような他のユーザー定義チャネルを使用を使用されている場合、次の手順で2つのレコードを追加してください。

SET CHLAUTH(MY.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) USERSRC(CHANNEL)
SET CHLAUTH(MY.ADMIN.SVRCONN) TYPE(BLOCKUSER) USERLIST('nobody')

Note:
SYSTEM.DEF.*チャネルをアクティブな接続として使用することは望ましくありません。
システム・デフォルト・チャンネルのプロパティは、すべてのユーザー定義チャネルから引き継がれるためです。
SYSTEM.DEF.*とSYSTEM.AUTO.*チャネルは使用可能に構成しないことが推奨されます。

2.b) これは、(2.a)のバリエーションとして特定アドレスからの接続でのみMQ管理者のアクセスを許可する設定です。

1つ目のルールは、MCAUSER "nobody"をブロックします。
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(BLOCKUSER) USERLIST('nobody')

2つ目のルールは、SYSTEM.ADMIN.SVRCONNへのすべてのアクセスを除去します。
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)

3つ目のルールは、キューマネージャーへのアクセスを許可する接続元のIPアドレス情報を登録します。
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(9.27.4x.7y) USERSRC(CHANNEL)

2.c) チャネル認証レコード機能を使用不可にします。

ALTER QMGR CHLAUTH(DISABLED)

WARNING:
セキュリティの観点から、MQ7.1の新機能であるチャネル認証レコード機能を使用不可にすることはお勧めできません。
チャネル認証レコード機能を使用不可にするとデフォルトで管理接続を許可することに注意ください。CHLAUTH(ENABLED)で使用するより、CHLAUTH(DISABLED)で管理アクセスを制限するほうが管理上の労力ははるかに大きくなります。
したがって、CHLAUTH(ENABLED)のままで、管理者接続を認証するためにWebSphere MQ V7.1の他のセキュリティ機能を使用することが推奨されます。

+++ 関係するTechnote

MQ 7.1: How to remove a CHLAUTH record

Remote connection to v7.1 queue manager on IBMi fails with AMQ4036, Access not permitted

+++ トレース詳細

エラー時のMQキュー・マネージャーのトレースのサンプルです。

Trace for process: amqrmppa

000012 0x1018D30C 2A 4E 4F 41 43 43 45 53 53 : *NOACCESS
000051E8 08:57:27.404186 6640.14 RSESS:000012 (11)------------{ rriCheckUserBlocked
000051E9 08:57:27.404199 6640.14 RSESS:000012 (12)-------------{ rrxError
000051EA 08:57:27.404215 6640.14 RSESS:000012 RetCode = 20009777, rc1 = 0, rc2 = 0, Comment1 = 'SYSTEM.DEF.SVRCONN', Comment2 = '127.0.0.1', Comment3= 'CLNTUSER()', File= 'F:\build\p000_P\src\base\src\cmqxrmsa.c', Line= '885'
000051EB 08:57:27.404236 6640.14 RSESS:000012 (12)-------------}! rrxError (rc=rrcE_CHLAUTH_BLOCKED_NOACCESS)
000051EC 08:57:27.404505 6640.14 RSESS:

The error rrcE_CHLAUTH_BLOCKED_NOACCESS is mapped to 2035 MQRC_NOT_AUTHORIZED as seen in the following reformatted trace:

00005508 08:57:27.417747   6640.14     RSESS:000012 Channel Name:SYSTEM.DEF.SVRCONN  
00005509 08:57:27.417766   6640.14     RSESS:000012 Sending Data:-
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E020 54 53 48 4D 00 00 01 80 00 00 00 01 00 00 00 00 : TSHM...€..... ----------------------+ Transmission Segment Header (TSHM)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E030 02 91 30 00 00 00 00 00 00 00 00 00 11 01 00 00 : .‘0.............    | StrucId       {+000} | 'TSHM'
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E040 B5 01 00 00 00 00 01 78 02 00 00 00 F3 07 00 00 : .......x........    | Length        {+004} | 384
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E050 00 00 00 00 51 4D 5F 56 37 31 30 20 20 20 20 20 : ....QM_V710         | Conv.   Id    {+008} | 1
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :                     | Request Id    {+00C} | 0
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :                     | Encoding      {+010} | 2  (LITTLE_ENDIAN)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E080 20 20 20 20 57 65 62 53 70 68 65 72 65 20 4D 51 :     WebSphere MQ    | SegmentType   {+011} | 145 rfpTST_MQCONN_REPLY (MQCONN  Reply)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E090 20 43 6C 69 65 6E 74 20 66 6F 72 20 4A 61 76 61 :  Client for Java    | ControlFlags1 {+012} | 30
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0A0 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    |                      | 10 rfpTCF_FIRST (First Segment)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    |                      | 20 rfpTCF_LAST (Last Segment)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0C0 00 00 00 00 03 00 00 00 00 00 00 00 46 43 4E 4F : ............FCNO    | ControlFlags2 {+013} | 00
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0D0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | LUWID         {+014} | 0000000000000000
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | MQEncoding    {+01C} | 0x'111'
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | CCSID         {+020} | 437
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | Reserved      {+022} | 0000
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    +----------------------+ MQ Api (MQAPI)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | Call Length   {+024} | 376
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | CompCode      {+028} | 2 MQCC_FAILED (Failed)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | Reason        {+02C} | 2035 MQRC_NOT_AUTHORIZED (Not authorized.)
00005509 08:57:27.417766   6640.14     RSESS:000012  0x00C8E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 : ................    | Handle        {+030} | 0



【関連文書】
英文:Technote (FAQ) : 1577137
WMQ 7.1 / 7.5 queue manager RC 2035 MQRC_NOT_AUTHORIZED or AMQ4036 when using client connection as an MQ Administrator
※ 最新の情報は英文をご参照いただくことをお勧めいたします。


【お問合せ先】
技術的な内容に関して、サービス契約のあるお客様はIBMサービス・ラインにお問い合わせください。
IBM サービス・ライン

Document information

More support for: WebSphere MQ

Component: Security

Software version: 7.1, 7.5, 8.0, 9.0

Operating system(s): AIX, HP-UX, Linux, Solaris, Windows

Reference #: 1642073

Modified date: 02 November 2018