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

字號:

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