2016-01-12 50 views
2

此連接到WebSphere MQ管理器是一個後續:Can create Websphere Queue Manager but not connect難度使用域認證

我試圖建立MQ在開發機器上,但如果我嘗試連接到它使用我的域帳戶它無法驗證(AMQ4999)。挖遠一點我覺得這是在錯誤日誌:

AMQ8079:訪問被拒絕,試圖檢索組成員身份的用戶「XXX @域名」 信息時。

現在我很清楚MQ已知的問題,它無法驗證域帳戶,因爲它無法訪問其成員信息,並且從日誌證實這肯定是發生在這裏的事情,所以我試圖重寫此使用從以前的帖子收集到下面的腳本:

DEFINE CHL('DOTNET.SVRCONN') CHLTYPE(SVRCONN) MCAUSER('[email protected]') 
SET CHLAUTH('DOTNET.SVRCONN') TYPE(BLOCKUSER) USERLIST('nobody') 
SET CHLAUTH('DOTNET.SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL) ACTION(ADD) 

然而,即使這個通道的地方,我還是不能同時登錄到我的域帳戶連接到隊列管理器。我仍然困擾着我之前得到的完全相同的錯誤。我注意到的一件事是,儘管我開始使用MQ Explorer,但它仍然將該頻道報告爲不活動(儘管從我的IBM網站上閱讀這是正常的)。

我對MQ仍然很陌生,所以我認爲我要麼錯過了某些東西,要麼做了錯誤的事情,但理想情況下,我希望能夠建立一個開發環境,讓我無需依賴即可使用服務在'runas'命令上。我還應該強調,這是嚴格的開發/學習,所以顯然我不關心安全性。

更新:

我發現我在做什麼錯了 - 果然,我缺少一個步驟。多一點背景。在創建QM時,我試圖用一個簡單的C#客戶端連接到它。本來我寫的代碼是這樣的:

var queueManager = new MQQueueManager("MyQueueManager", MQC.MQCNO_STANDARD_BINDING); 

此外,嘗試通過MQExplorer連接當兩個似乎是用我的域名證書進行驗證。但是,當我明確創建一個屬性對象,並指定像這樣的通道:

var props = new Hashtable() { 
    [MQC.HOST_NAME_PROPERTY] = "localhost", 
    [MQC.PORT_PROPERTY] = 1414, 
    [MQC.CHANNEL_PROPERTY] = "DOTNET.SVRCONN", 
    [MQC.USER_ID_PROPERTY] = "DevMQUser", 
    [MQC.PASSWORD_PROPERTY] = "[email protected]$$w0rd" 
}; 

var queueManager = new MQQueueManager("MyQueueManager", props); 

然後一切工作正常。我仍然需要以本地用戶身份運行MQExplorer.exe(即使在「連接詳細信息」>「屬性」中顯式設置憑據似乎也無效),但這不是什麼大問題。

感謝您的建議。

+0

是否設置MCAUSER。到本地用戶ID而不是域限定用戶ID更改行爲? –

+0

MCAUSER是一個本地用戶ID。我已經嘗試了兩個主機名,但沒有。行爲是一樣的。我也嘗試刪除DOTNET.SVRCONN頻道,並用*代替它 - 沒有效果。 – mvastarelli

+0

因此,即使使用本地定義的,沒有域限定的用戶ID,您仍然會得到與您在問題開始時顯示的錯誤消息完全相同的錯誤消息,並顯示其中顯示的用戶ID?我也可以檢查你確實有CHLAUTH(ENABLED)嗎? –

回答

1

嘗試改變...
SET CHLAUTH('DOTNET.SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL)

要...
SET CHLAUTH('DOTNET.SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(MAP) MCAUSER(MUSR_MQADMIN)

USERSRC(CHANNEL)說採取呈現給通道內的ID,在這種情況下的本地進程ID您的登錄的帳戶,以覆蓋MCAUSER

MQ安全診斷
連接問題在渠道,搶SupportPac MS0P並安裝到MQ資源管理器。然後打開授權事件和通道事件並重新創建問題。如果連接被CHLAUTH記錄阻止,則會顯示在Channel事件隊列中。如果它被OAM阻止,它將顯示在QMgr事件隊列中。從安裝了MS0P的資源管理器中,右鍵單擊「隊列」面板中的隊列名稱將打開一個包含「格式化事件消息」作爲選項的上下文對話框。 Select is和MS0P會將PCF消息解析爲人類可讀的值,這些值顯示提交給MQ的所有參數以及阻止連接的原因。

IBM MQ V8
如果這是MQ的V8,你也有ID和密碼檢查配置。如果QMgr指向指定標識和密碼檢查的AUTHINFO記錄(IDPWOS),如果設置了標識,則密碼不能爲空。即使密碼驗證設置爲OPTIONAL,也會檢查通道上是否存在ID,客戶端代碼將確保爲真,除非特別重寫。