Web服務(wù)實(shí)戰(zhàn):統(tǒng)一身份認(rèn)證服務(wù)

字號(hào):

當(dāng)“基于供應(yīng)鏈管理應(yīng)用”在家用電子產(chǎn)品零售商和制造商中部署之后,收到了非常好的效果。由于采用了Web服務(wù)技術(shù)作為應(yīng)用集成交互技術(shù),各個(gè)企業(yè)實(shí)體都能自行選擇平臺(tái),自行開(kāi)發(fā)實(shí)施系統(tǒng),并且只需要遵循事先商定的Web服務(wù)接口就可以彼此無(wú)縫連接。各個(gè)企業(yè)實(shí)體開(kāi)始使用Web服務(wù)技術(shù)改造內(nèi)部的舊有信息系統(tǒng)以實(shí)現(xiàn)企業(yè)內(nèi)部、企業(yè)之間的廣泛應(yīng)用互聯(lián)。然而此時(shí),企業(yè)又發(fā)現(xiàn)了一個(gè)使用上的障礙。
    每個(gè)應(yīng)用系統(tǒng)都有其自身的用戶系統(tǒng)和認(rèn)證方式。程序員在為某個(gè)應(yīng)用系統(tǒng)編寫(xiě)接入其它應(yīng)用系統(tǒng)的程序代碼時(shí),常常為用戶認(rèn)證大傷腦筋。問(wèn)題主要表現(xiàn)在以下幾方面:
    1.讓最終用戶頻繁登錄? 但這似乎是一個(gè)讓用戶很難接受的解決方案。來(lái)源:www.examda.com
    2.在代碼中內(nèi)置用戶名和密碼?   但代碼需要隨用戶和密碼的變化經(jīng)常維護(hù),同時(shí)在很多場(chǎng)合下,用戶名和密碼對(duì)于程序員來(lái)說(shuō)是不可見(jiàn)的。
    如何解決這一問(wèn)題呢?我們從目前和未來(lái)的應(yīng)用發(fā)展趨勢(shì)判斷認(rèn)為,應(yīng)當(dāng)開(kāi)發(fā)一個(gè)統(tǒng)一身份認(rèn)證服務(wù),以解決這一應(yīng)用集成中碰到的用戶認(rèn)證問(wèn)題。這個(gè)服務(wù)需要達(dá)到以下功能和目標(biāo):
    1. 支持Web服務(wù)技術(shù)框架,使得在對(duì)各個(gè)應(yīng)用系統(tǒng)實(shí)施基于Web服務(wù)的應(yīng)用集成(EAI/B2Bi)的時(shí)候,能夠使用這個(gè)統(tǒng)一身份認(rèn)證服務(wù),進(jìn)行身份認(rèn)證。
    2. 方便使用,能夠盡可能地利用現(xiàn)有系統(tǒng)的身份認(rèn)證模塊及現(xiàn)有的用戶設(shè)置和權(quán)限設(shè)置,盡量保護(hù)現(xiàn)有的投資,減少新用戶設(shè)置和權(quán)限設(shè)置的費(fèi)用。同時(shí)避免對(duì)現(xiàn)有系統(tǒng)進(jìn)行大規(guī)模的修改。
    3. 具有良好的擴(kuò)展性和可集成性,不僅能支持現(xiàn)有的應(yīng)用系統(tǒng)及用戶系統(tǒng),當(dāng)有新的企業(yè)應(yīng)用被部署或開(kāi)發(fā)的時(shí)候,這個(gè)統(tǒng)一身份認(rèn)證服務(wù)還可以作為其身份認(rèn)證模塊的形式工作。也就是說(shuō),新的企業(yè)應(yīng)用可以不自帶用戶系統(tǒng),可以通過(guò)集成該服務(wù)的形式來(lái)實(shí)現(xiàn)等價(jià)的功能。
    4. 應(yīng)當(dāng)具備靈活和方便的使用模式,使用者可以通過(guò)多種方式自由地使用該統(tǒng)一身份認(rèn)證服務(wù)。
    解決方案
    根據(jù)這個(gè)統(tǒng)一身份認(rèn)證服務(wù)的目標(biāo)和初步的功能定義,將這個(gè)服務(wù)設(shè)計(jì)為圖1所示。
    該服務(wù)主要需要具備三項(xiàng)功能:
    1. 用戶注冊(cè),用戶在統(tǒng)一身份認(rèn)證服務(wù)中注冊(cè)賬號(hào)。以后這個(gè)賬號(hào)可以在所有使用統(tǒng)一身份認(rèn)證服務(wù)的應(yīng)用系統(tǒng)中使用。
    2. 賬號(hào)關(guān)聯(lián)。如果用戶之前已經(jīng)在相關(guān)的應(yīng)用系統(tǒng)中擁有賬號(hào),同時(shí)也已經(jīng)設(shè)置了相應(yīng)的權(quán)限,那么用戶能夠?qū)⑦@些應(yīng)用系統(tǒng)的賬號(hào)與統(tǒng)一身份認(rèn)證服務(wù)的賬號(hào)進(jìn)行關(guān)聯(lián),使得用戶登錄統(tǒng)一身份認(rèn)證服務(wù)之后,就能夠自動(dòng)使用相關(guān)的應(yīng)用系統(tǒng)用戶來(lái)訪問(wèn)應(yīng)用系統(tǒng)。