在本機帳戶/群組下執行的 WebSphere MQ 無法讀取 Active Directory 使用者的群組成員身分。解決方法或替代解決方案?

在本機帳戶/群組下執行的 WebSphere MQ 無法讀取 Active Directory 使用者的群組成員身分。解決方法或替代解決方案?

我正在開發一個使用 WebSphere MQ v6.0 的應用程式。由於以下問題,WebSphere MQ 目前無法運作:

  • WebSphere MQ 服務在本機群組「mqm」中的本機使用者「MUSR_MQADMIN」下執行
  • 我嘗試使用我自己的帳戶 BIZ\noahz 使用該服務
  • MUSR_MQADMIN 需要檢查 BIZ\noahz 是否在本機群組「mqm」中
  • MUSR_MQADMIN 無權讀取 BIZ\noahz 的 Active Directory 群組成員身份
  • MQ 日誌檔中出現以下錯誤:

----- amqzfubn.c:3582 ---------------------------------------- ----------------

1/31/2011 18:51:32 - 進程(704.1105)使用者(MUSR_MQADMIN)程式(amqzlaa0.exe)AMQ8079:嘗試擷取使用者「noahz@biz」的群組成員身分資訊時存取被拒絕。

說明:以使用者「musr_mqadmin@noahz-biz」權限執行的 WebSphere MQ 無法擷取指定使用者的群組成員識別資訊。操作:確保 Active Directory 存取權限允許使用者「musr_mqadmin@noahz-biz」讀取使用者「noahz@biz」的群組成員身分。若要檢索網域使用者的群組成員身分資訊,MQ 必須以網域使用者的權限執行。

----- amqzfubn.c:3582 ---------------------------------------- ----------------

我在 IBM 的網站上找到了更多資訊: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.amqtac.doc/wq10830_.htm

我沒有 Windows 電腦的 Active Directory 管理員權限,所以我的問題是:

我還能做些什麼來解決(或解決)這個問題並讓 WebSphere MQ 再次為我工作嗎?例如,我可以在 WebSphere MQ 中停用此安全性檢查嗎?

更新以下是我從 IBM 支援部門得到的答案:

通常,這些錯誤表示 MQ 服務配置為在 dcom 中執行的使用者 ID 有問題。如果您不確定這是什麼 userid,您可以檢查以下內容:

開啟命令提示字元並鍵入:dcomcnfg。組件服務 MMC 打開後,雙擊“組件服務”,雙擊“計算機”,雙擊“我的電腦”,雙擊“DCOM 配置”。在視窗中,尋找“IBM MQSeries Services”,然後右鍵單擊它,然後選擇屬性。按一下“身分”標籤。它應該顯示“此用戶”,後面跟著一個 ID。

請確保 MQ 服務 ID(來自上面的「身分」標籤)在本地具有所需的權限。授予其以下缺少的任何權利:

開啟「開始」->「程式」->「管理工具」->「本機安全設定」。

開啟本機策略,然後開啟使用者權限分配,雙擊檢查是否設定了以下權限:
- 作為批次作業登入
- 作為服務登入
- 關閉系統
- 偵錯程式
- 增加配額
- 作為作業系統的一部分
- 繞過遍歷檢查
- 替換進程級令牌

最終的結果是,我的 IT 部門和 InfoSec 決定 WebSphere MQ 是“伺服器軟體”,因此不允許在個人工作站上使用,所以我什至從未測試過上述解決方案!

答案1

雖然我找不到上述 DCOM 項目(V7.1 相關?),但我能夠藉助前面提到的 runas-tip 建立、啟動並連接到本機 Windows V7.1 Qmgr,而無需存取 Active Directory 。這就是我所做的:

  • 在Windows的lusrmgr中修改使用者MUSR_MQADMIN的密碼
  • 檢查 MQService 是否已停止
  • 在服務清單中,同時變更使用者 MUSR_MQADMIN 的密碼
  • 開啟 DOSbox 並執行: C:> runas /user:MUSR_MQADMIN "crtmqm QMGR1" C:> runas /user:MUSR_MQADMIN "strmqm QMGR1" (請注意,對於每個命令,您都必須提供密碼)
  • 右鍵單擊工作列中的 MQ 圖示並選擇“WebSphere MQ Explorer”
  • MQ 資源管理器將會打開,並且應使用向下的紅色箭頭指示 Qmgr“QMGR1”。右鍵單擊該圖標並選擇“開始...”
  • 在彈出視窗中選擇“開始互動”,然後按一下“確定”
  • QMGR1 圖示現在應該有一個向上的綠色箭頭(已啟動),其方塊應為黃色(已連接)。
  • 在 MQ Explorer 中建立一個名為 TEST1 的佇列並使其預設持久化
  • 在 DOSbox 中執行:
    C:> amqsput TEST1 QMGR1 鍵入訊息 ...,然後鍵入一個空白行以結束範例程序
  • 現在在 MQ Explorer 中檢查您的訊息是否存在!

提示:可以使用指令「mqrc , fi C:>mqrc 2085 快速檢查 MQ 回傳碼

答案2

WebSphere MQ 將始終需要取得嘗試執行其元件或授權存取其資源的任何 ID 的群組成員身分。如果這些 ID 不是本機 ID,則 MQ 將需要在擁有該 ID 的網域中執行 SAM 成員資格尋找的權限。有幾個可用的解決方法:

  1. 使用本地身份證。 MQ 將始終能夠在本機 SAM 資料庫中執行查找,因為它必須由管理員安裝,並且在安裝過程中已授予自己適當的本機權限。它不一定是 MUSR_MQADMIN,但如果要執行 QMgr,它必須位於 mqm 群組中。
  2. 使用 WMQ Explorer 啟動 QMgr。任何最新版本的 WMQ Explorer 都會提示不同的選項,其中之一是在擁有該服務的 ID 下啟動 QMgr。一旦啟動,您就可以使用常規 ID 來存取佇列和主題。

更新:
希望我在 IT 部門採取行動之前就想到了這一點,但禁用物件權限管理器是可能的。這是在 AD 網域上執行查找的元件。我知道禁用它允許任何東西連接到 QMgr,而不會出現網域權限問題。我是很確定這樣做還允許您的 ID 執行運行 QMgr 的進程。

答案3

我還在使用 Websphere Message Broker 開發應用程式。目前我有一個“開發者”版本。我找到了解決此問題的方法,即安裝 MQ 並停用 SAM 成員資格查找功能。

為此,我從安裝目錄 (Websphere_MQ_V7.5) 執行「Websphere MQ Launchpad」(在 Windows 中執行 Setup.exe)。在「網路配置」標籤中,有一個選項可以停用使用者 ID 配置。選擇“否”並執行安裝。

但這並不是生產和 QA 環境的最佳選擇。

答案4

我想最好的方法是使用魯納斯以 mq 使用者身分執行:

runas /user:MUSR_MQADMIN "strmqm <qmgr-name>"

相關內容