Web服务安全性和SOA路线图的人为维度
這句話聽起來很明顯,但實(shí)際上并不總是考慮在內(nèi)。 一些組織要么沒有這樣的集中式集成控制,要么因?yàn)椤胺恋K了一切”而停止使用它。 充其量,這意味著集成信息被保存在某些關(guān)鍵人物的頭上,這很冒險(xiǎn)。 通常,在這樣的地方的團(tuán)隊(duì)不敢“在某些情況下仍然依賴它們”更新服務(wù)合同,而是在需要更新時隨時復(fù)制它們,這與SOA相反。
有時,一個好主意只需要退后幾步即可正確應(yīng)用。 我在這篇文章中解釋了為什么我認(rèn)為對SOA路線圖的需求應(yīng)能激發(fā)大多數(shù)Web服務(wù)(包括非敏感服務(wù))上存在安全訪問限制。
為什么這么簡單的想法很難付諸實(shí)踐?
有幾個因素可以促使團(tuán)隊(duì)跳過這一重要的文檔編制步驟:
- 其他重要的短期任務(wù)的緊迫性,以及團(tuán)隊(duì)不斷地“撲滅大火”的感覺,沒有時間做其他事情
- 缺少明確標(biāo)識的中央存儲庫,該存儲庫用于在何處訪問和發(fā)布此類信息(例如SOA注冊中心或存儲庫),或者缺乏對這些信息的使用。
- 缺乏集中式的管理,無法監(jiān)督整合
從人為因素的角度來看,“我已經(jīng)受夠了”綜合癥會使這種情況惡化。 在復(fù)雜的多團(tuán)隊(duì)/多項(xiàng)目環(huán)境中,已經(jīng)為眼前的問題所困擾的個人通常不會主動尋找其他項(xiàng)目難以解決(并解決)的依賴問題。 我們需要對此進(jìn)行預(yù)測并積極幫助那些團(tuán)隊(duì),同時要記住,他們要處理的其他問題當(dāng)然也很重要。
以上內(nèi)容的核心根源是,在可能的情況下,更容易跳過集成的驗(yàn)證/文檔步驟。 我們必須通過宣傳集中式集成信息的價(jià)值以及提高實(shí)現(xiàn)無證集成的難度來扭轉(zhuǎn)這種感覺。
我們需要的
我們需要一個易于使用的過程來收集,驗(yàn)證和發(fā)布系統(tǒng)之間當(dāng)前和將來的依賴關(guān)系。 一個關(guān)鍵方面是以“足夠的治理”方式使它保持簡單并與實(shí)際使用它的人保持聯(lián)系。
四個主要組成部分似乎是:
- 一個清晰的過程,用于請求新的集成或更新現(xiàn)有的集成。 這包括從業(yè)務(wù)和技術(shù)角度進(jìn)行驗(yàn)證,以確保環(huán)境保持盡可能清潔和面向未來。 如果執(zhí)行了EA工作,那么大多數(shù)請求都來自EA團(tuán)隊(duì)或來自EA團(tuán)隊(duì),這使得此步驟變得微不足道! 在實(shí)踐中,當(dāng)項(xiàng)目團(tuán)隊(duì)在詳細(xì)的設(shè)計(jì)或?qū)嵤╇A段確定所需的依賴關(guān)系時,也將來自項(xiàng)目團(tuán)隊(duì)。
- 一個明確標(biāo)識且易于訪問的存儲庫,可在其中查找當(dāng)前和計(jì)劃中的集成。 該存儲庫必須包括每個未來依賴項(xiàng)的版本控制以及棄用/停用計(jì)劃。
- 負(fù)責(zé)更新中央存儲庫的團(tuán)隊(duì),使路線圖保持最新。 如果可以的話,通常是EA團(tuán)隊(duì)。
- 在技??術(shù)層面上,如果不涉及上述三個組件,則無法執(zhí)行集成。 這應(yīng)避免在合同更新引發(fā)問題之前一直隱藏的“幻影依賴項(xiàng)”。
在實(shí)踐中,第四個組件應(yīng)是企業(yè)范圍內(nèi)的IT原則,該原則規(guī)定每個Web Service實(shí)現(xiàn)必須要求調(diào)用應(yīng)用程序具有安全授權(quán)。 當(dāng)服務(wù)需要時,這將不會阻止其他安全機(jī)制的存在,例如,傳輸帶有發(fā)起原始業(yè)務(wù)操作的人工用戶身份的票證(REST和SOAP都允許同時存在多個安全令牌)。
通常必須通過將技術(shù)文檔和代碼示例附加到IT原理上來簡化該原理的實(shí)現(xiàn)。 因?yàn)槲覀儾幌M轮g互相攻擊,所以可以采取低風(fēng)險(xiǎn)的方法,其目的只是確保讓EA團(tuán)隊(duì)更容易建立幻影依賴。 使用SOAP時,我的建議是使用簡單的WS-UsernameToken策略,并為每個客戶端應(yīng)用程序關(guān)聯(lián)一個用戶名/密碼對。 使用REST時,一種眾所周知的機(jī)制是使用HMAC,將請求的一部分與隨機(jī)數(shù)和/或到期日期一起進(jìn)行哈希處理(此機(jī)制類似于Amazon S3所使用的機(jī)制)。
結(jié)論
在本文中,我試圖解釋為什么我認(rèn)為在每個Web服務(wù)中系統(tǒng)地采用一個簡單的安全策略有助于跟蹤IT狀況,并確保SOA治理團(tuán)隊(duì)看不到“幻影依賴項(xiàng)”。 此安全策略的實(shí)施必須簡單易行,并得到幫助文檔的支持,并且不能過于強(qiáng)大,僅足以確保EA團(tuán)隊(duì)了解所有集成實(shí)施。
參考:來自Svend博客的 JCG合作伙伴 Svend Vanderveken的Web服務(wù)安全性和SOA路線圖的人為因素 。
翻譯自: https://www.javacodegeeks.com/2012/09/web-service-security-and-human.html
總結(jié)
以上是生活随笔為你收集整理的Web服务安全性和SOA路线图的人为维度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 3.1缓存和@Cachea
- 下一篇: Java:选择正确的集合