2012-04-27 46 views
4

私はwebsphere MQクライアントを使用していますが、C#を使用してリモートMQサーバ(7.0バージョン)に接続し、権限の問題が発生します。 qmgr.にアクセスする権限。私は 'setmqaut'コマンドを使用してユーザーに十分な権限を与え、それが機能します。MQクライアントがリモートMQサーバに接続する権限が不十分です

私はそれが非常に便利ではないと思うし、より良い方法でなければならないと思います。MQサーバーにユーザーのIPを追加することで可能ですか?しかし、私はそれをどうやって行うのか分かりません。

ご意見をいただければ幸いです。 ありがとう

答えて

5

WebSphere MQは認証を実行しません。ローカルアプリケーションはオペレーティングシステムによって認証されるため、IDを信頼することができます。 (定義上、ローカルOS認証を信頼できない場合、サーバー全体が危険にさらされます。)ローカル接続と同様に、WMQはリモートから接続するIDが本物であると信頼します。どのレベルの認証を採用するかは、WMQ管理者が決定します。 WMQ v7では、SSL/TLSチャネルで認証するか、チャネル出口で認証するかの2つの選択肢があります。

いずれの場合も、認可に使用されるのは、どのIDが使用されるかを決定するチャネルのMCAUSER値です。 MCAUSERがブランクのままの場合、チャネルはクライアントが送信するユーザーIDを使用します。クライアントが管理者(mqm)グループにないIDを送信したため、あなたのケースで2035エラーが発生しました。クライアントがID 'mqm'(またはWindowsの 'MUSR_MQADMIN')を送信した場合、接続は成功したでしょう。プログラムがJavaまたはJMSの場合、提示されたIDを選択する機能はAPIの一部です。 QMgrにあなたがなることを伝えてください。

リモート接続でサーバ上でOSコマンドを実行する場合は、チャネルのMCAUSERに管理IDを入力するだけです。 (UNIXの場合はMCAUSER( 'mqm')、Windowsの場合はMCAUSER( 'MUSR_MQADMIN')など)。ただし、管理者権限を持つリモートユーザーは、QMgrを使用して任意のOSコマンドラインコードをリモートで実行できます。これはWMQの機能であり、バグではないため、本番環境ではこれを絶対に推奨しません。実際、私は開発環境がセキュリティを可能にすることを個人的に推奨します。プロダクションが接続を認証する方法と必要な権限を理解するために待っていると、不必要なデプロイメントの遅延が発生することがよくあります。

脅威を緩和するためにIPフィルタリングを使用する場合は、この機能をネイティブに含むWMQ v7.1に移動するか、BlockIP2などの終了を使用します。これらのいずれのソリューションでも、着信接続要求をIPアドレス、ユーザーIDなどでフィルタリングするルールを作成できます。

v7.0 QMgrでは、すべてのチャネルがデフォルトで保護されていません。したがって、あるチャネルで着信要求をフィルタリングしても、他のチャネルがデフォルト状態のままであれば、誰でも接続して管理者としてコマンドを実行できます。このすべてを包括的に検討するには、WebSphere MQのプレゼンテーション「Hardening」(t-rob.net)をご覧ください。下にスクロールしてv7.0のプレゼンテーションを表示します。

+0

ありがとう、T.Rob.Itは本当に役立ちます!今私はそれを行う方法を知っています。 –

関連する問題