好的,答案已經發售,今天買一送三! :-)讓我們把這些按順序排列...
1.A.通道的MCAUSER值是執行授權檢查的ID。如果DEFINE CHL() CHLTYPE(SVRCONN)
將MCAUSER留空,則客戶端連接可以指定他們希望連接的ID。如果它們未能指定,WMQ客戶端嘗試使用客戶端用戶的ID,如從客戶端應用程序正在運行的工作站所看到的那樣。在通道定義中設置MCAUSER
可防止客戶端應用程序指定值。
1.B.ADDRESSMAP
規則中的MCAUSER用於根據某些標識條件映射MCAUSER
。它說:「IF連接上到達這個通道與指定的IP地址|用戶名| SSL分辨名稱THEN使用這個 ID爲MCAUSER
和允許通道運行,如果沒有其他規則塊它。
如果CHLAUTH
映射規則被用於通常是設置該建議的信道的MCAUSER
到不可能是一個用戶ID,所以它不會運行。通過這種方式,信道默認爲一個安全的狀態,除非一個CHLAUTH
的值規則會將MCAUSER重寫爲允許訪問的值MCAUSER
以前的價值曾經是nobody
,直到Hursley實驗室的WMQ策略師Mark Taylor建議使用一個不能是實際用戶ID的值,例如no#body
。從WMQ V7.1開始,值*NOACCESS
是一個保留的工作,我現在用於會議演示中。
2.是的。 WMQ基於組進行授權。標準的建議是將您的安全需求解構爲'admin','app1','app2','monitoring','anonymous'等角色。然後,對於需要訪問的每個角色,創建一個組。
但訪問請求來自唯一標識的主體,而不是來自組。授權檢查需要一個帳戶進行檢查,以便通道中的MCAUSER是一個ID,而授權是按組存儲的。要將用戶與正確的權限相關聯,請將其註冊到正確的組中。
這是標準的UNIX授權模型,支持職責分離。資源管理員(WMQ管理員)授權組。帳戶管理員分組註冊用戶ID。它需要兩個組來提供訪問權限。在現實世界中,大多數商店不使用職責分離的特徵,但在重要情況下它是強制性的。
3.排序V7.1或更高版本的默認QMgr根本不允許任何遠程連接。這是因爲創建時沒有AUTHREC
規則,因此非管理員不被授予訪問權限。管理員被默認的CHLAUTH
規則阻止遠程訪問。
根據規定,任何人都可以成功連接到$cname
頻道,並將被授權爲tcs-mq-user
。如果您希望它們連接爲具有相同權限的其他用戶ID ,則需要將該ID添加到mq-user
組,然後設置通道以映射出現的ID。如果您想要強制執行某人連接了哪個ID,因爲您必須通過IP地址指定映射,或者更好地根據其證書專有名稱來指定映射。
4.否如上面#2所述,訪問請求總是由主體而不是按組進行。 CHLAUTH
規則,MCAUSER
和專有名稱映射的全部要點是解析該通道用於授權檢查的用戶標識。通道定義的MCAUSER
是該ID解析過程中的安全控制,因此它在ID上運行,而不是在組上運行。
如果您還沒有找到該網站,您可能會發現T-Rob.net有用。特別是在鏈接頁面上,我公佈了會議的所有WMQ安全演示文稿以及我和其他作者文章的鏈接。
一如既往非常值得回答。至於你的答案中的第3項,你說*任何人*都可以連接到$ cname ...現在我從客戶端模式瞭解這一點。綁定模式怎麼樣,這真的嗎? – arrehman 2012-08-03 16:04:02
在綁定或共享內存模式下,我需要切換到tcs-mq-user權限?如果tcs-mq-user是非登錄ID,該怎麼辦? – arrehman 2012-08-03 16:11:02
在綁定模式下,不使用任何通道。它是一個直接的內存到內存的連接。 CHLAUTH規則和通道定義僅適用於通過網絡堆棧進行連接的情況。如果您希望tcs-mq-user以綁定模式進行連接,則該ID必須能夠運行進程。因此,根據您的商店中「非登錄」的含義,您可能需要將其設爲登錄帳戶才能在本地運行流程。 (一些商店配置「非登錄」,以便交互式shell不被允許,但是root仍然可以啓動一個以ID身份運行的進程。您的里程可能會有所不同。) – 2012-08-03 16:16:46