張波
摘要:在企業(yè)內(nèi)部,可能會存在眾多的企業(yè)應用,這些應用是否能夠使用統(tǒng)一的認證方式,不論對于用戶,還是對于IT運維管理人員,都具有非常重要的意義?;贏D的企業(yè)統(tǒng)一認證方式概述,給出了一種現(xiàn)實可行的企業(yè)統(tǒng)一認證方式,該方式對于不同開發(fā)的應用系統(tǒng)能夠?qū)崿F(xiàn)支持和兼容,從而避免了對于應用系統(tǒng)開發(fā)語言的限制,擴大了企業(yè)IT人員對于應用系統(tǒng)選型的靈活性。在最后的部分討論了這種認證方式存在的一些不足,以及未來需要考慮的問題。
關(guān)鍵詞:認證;AD;企業(yè)應用
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)05-0102-02
在企業(yè)信息化建設(shè)過程中,各應用系統(tǒng)都離不開用戶身份認證這樣一個基本功能。企業(yè)內(nèi)部存在著眾多的業(yè)務系統(tǒng),每個業(yè)務系統(tǒng)的用戶身份認證方式都不盡相同,用戶需要針對每個系統(tǒng)記憶特定的密碼,而企業(yè)IT部門則需要為此付出大量的維護工作。為此,企業(yè)應用統(tǒng)一認證在企業(yè)信息化的過程中變得尤其重要。
而企業(yè)信息化所采用的企業(yè)技術(shù)架構(gòu)也是千差萬別。根據(jù)企業(yè)自身的業(yè)務特點,一個企業(yè)內(nèi)部通常會存在若干的業(yè)務系統(tǒng),有的業(yè)務系統(tǒng)是從外部引入的成熟軟件產(chǎn)品,有的業(yè)務系統(tǒng)是通過定制開發(fā)實現(xiàn)的。各應用系統(tǒng)的操作系統(tǒng)、開發(fā)語言、采用之間件也都不盡相同。因此,怎么選擇企業(yè)應用統(tǒng)一認證方式,是一個令人頭疼的問題。
1 企業(yè)應用統(tǒng)一認證方式概述
通過對不同企業(yè)內(nèi)部身份認證方式的研究,可以發(fā)現(xiàn),企業(yè)對于統(tǒng)一身份認證的需求意愿通常都較高,并且,不同企業(yè)內(nèi)部的實現(xiàn)的程度和方式也不盡相同。
從邏輯上講,企業(yè)應用統(tǒng)一認證架構(gòu)需要包括如下幾個部分:
1) 用戶身份信息存儲
該部分用于實現(xiàn)用戶身份信息的存儲,并且確保用戶身份信息的安全可靠,對于非法訪問的限制,并能夠?qū)τ陬愃朴诒┝ζ平獾氖侄尉哂凶銐虻姆烙芰Γ缥④浀腁D。
2) 用戶認證協(xié)議
用戶認證協(xié)議則是實現(xiàn)了支持應用系統(tǒng)對用戶身份信息進行存取。通過用戶認證協(xié)議,企業(yè)應用能夠驗證用戶身份信息的合法性,從而確定是否允許登錄應用系統(tǒng)。
3) 訪問適配器
訪問適配器則是應用認證協(xié)議客戶端的具體實現(xiàn),從邏輯關(guān)系上講,該部分屬于企業(yè)應用的一部分,企業(yè)應用通過訪問適配器,能夠?qū)崿F(xiàn)與用戶身份信息存儲的交互,從而完成用戶身份的驗證功能。
整體企業(yè)應用統(tǒng)一認證架構(gòu)如圖1所示:
2 基于AD的企業(yè)應用統(tǒng)一認證架構(gòu)
在企業(yè)信息化的過程中,基于現(xiàn)有的環(huán)境,可以選擇不同的企業(yè)應用統(tǒng)一認證架構(gòu)。由于微軟系列產(chǎn)品在個人辦公電腦和桌面應用上屬于絕對的主流產(chǎn)品,所以基于AD統(tǒng)一認證架構(gòu),是很多企業(yè)的選擇。
在實際應用中,微軟的AD產(chǎn)品和微軟系應用結(jié)合的非常緊密,在IIS應用服務器中,通過簡單的設(shè)置,即可實現(xiàn)應用于微軟AD的整合,從而實現(xiàn)應用的統(tǒng)一認證。而企業(yè)內(nèi)部的應用通常是基于多種不同的開發(fā)語言的,常見的如C#語言,JAVA語言,PHP語言。基于這些不同的語言開發(fā)的應用,都需要能夠?qū)崿F(xiàn)基于AD的統(tǒng)一認證,這樣,才能為各企業(yè)應用的使用者和管理維護者帶來便利。
基于AD的企業(yè)統(tǒng)一應用認證架構(gòu)如下:
2.1 C#應用
C#應用由于其基于微軟平臺,因此,實現(xiàn)基于AD統(tǒng)一應用認證是最為容易的?;贑#的web應用,都是基于IIS應用服務器的,在IIS應用服務器中,通過簡單的配置,即可實現(xiàn)。
用C#開發(fā)的WEB應用,配置實現(xiàn)基于AD的統(tǒng)一應用認證分為兩部分,一部分是在IIS中進行配置,另外就是在應用代碼中進行特定的設(shè)定和使用。具體的:
1) 在IIS中的配置
將應用部署在IIS應用服務器上后,選中部署的應用,在右側(cè)窗口IIS部分中點擊“身份驗證”,從中選擇“WINDOWS身份驗證”并啟用。
2) 在應用代碼中進行的相關(guān)設(shè)定
在應用代碼中通過下面形式的代碼可以獲得當前的訪問的域用戶:
request.Credentials = CredentialCache.DefaultNetworkCredentials;
在web.cofig文件中需要將authentication元素的mode屬性配置為Windows。
2.2 JAVA應用
JAVA應用在實現(xiàn)基于AD的單點登錄時,需要有一個通用的組件能夠?qū)崿F(xiàn)NTLM的協(xié)議,從而實現(xiàn)與AD的交互來驗證用戶當前身份的合法性。具體的實現(xiàn)就會有兩種做法:一種是完全實現(xiàn)一套NTLM/Kerberos協(xié)議,從而完成與AD的交互。另外一種做法是利用現(xiàn)有的組件來實現(xiàn)。當前,實現(xiàn)的較好的組件是Jespa。該組件能夠較好實現(xiàn)對于NTLMv1和NTLMv2的實現(xiàn),對于當前windows7以后的平臺支持較好。
具體的,在JAVA應用中,需要引入Jespa的filter,通過filter來獲取當前具有訪問權(quán)限的用戶名,同時,Jespa還有一個配置文件,用于配置AD的相關(guān)屬性信息,包括domain的信息,需要進行過濾的URL,認證失敗后需要調(diào)整的URL等信息。
2.3 PHP應用
PHP應用在實現(xiàn)基于AD的單點登錄時,在很多的時候,和JAVA應用類似的,需要一個實現(xiàn)NTLM協(xié)議的組件,從而能夠溝通PHP應用和AD,實現(xiàn)用戶身份的合法驗證。PHP應用基于的應用組件是mod-ntlm。很多的PHP應用都是基于Linux服務器,而在Linux平臺上,也同樣需要加域才能完成與AD的通信。
對于Linux服務器加入域,主要步驟包括安裝samba,winbind,進行samba和kerberos和winbaind的配置。最后,還需要安裝mod-ntlm組件,從而完成整個配置的步驟。具體的步驟,就不在這里詳細描述。
3 不足和發(fā)展方向
基于AD的單點登錄從技術(shù)上來講,是目前企業(yè)信息化過程中的一種較為現(xiàn)實的選擇方案?;谠摲桨福髽I(yè)可以靈活選擇不同的信息化的軟件產(chǎn)品,也無需限定特定的軟件開發(fā)語言和平臺,可以說是一種較為理想的技術(shù)方案。但是從其本身的角度出發(fā),也存在著一定的不足和局限性:
1) 該技術(shù)主要基于microsoft的Acitve Directory,因此,對于微軟的平臺具有一定的依賴性,同時,其他的平臺實現(xiàn)起來也沒有IIS平臺上配置簡單
2) 對于身份信息存儲部分,因為是基于微軟平臺,所以本身需要一定的微軟產(chǎn)品的投入,未來,微軟公司本身的產(chǎn)品和技術(shù)路線,以及微軟公司本身的穩(wěn)定性也會對整體的技術(shù)架構(gòu)帶來一些潛在的風險
3) 因為微軟產(chǎn)品的封閉性,在企業(yè)的規(guī)模發(fā)展到一定程度后,如果出現(xiàn)系統(tǒng)的性能問題,擴展性的問題時,只能依賴微軟來進行分析和解決。
考慮到上面的幾個局限性,理想的企業(yè)應用統(tǒng)一身份認證架構(gòu),應該是基于統(tǒng)一、開放的標準來實現(xiàn)的,各廠家可以基于該標準實現(xiàn)自己的產(chǎn)品,同時,始終由開源組織來維護開源的參考實現(xiàn),同步提供低成本的解決方案。
在移動應用快速發(fā)展的今天,如何兼顧移動端應用安全性和使用便利,是未來企業(yè)統(tǒng)一認證方式需要考慮的一個問題。
對于企業(yè)來講,為了解決地域分布的問題,企業(yè)應用很多的都發(fā)布在互聯(lián)網(wǎng)上,此時,系統(tǒng)的安全問題帶來了新的挑戰(zhàn),而基于AD且實現(xiàn)NTLM協(xié)議的統(tǒng)一認證方式,在一定程度上,能夠提高企業(yè)內(nèi)部信息系統(tǒng)的安全性,相對于用戶名/密碼保存在數(shù)據(jù)中的方式,安全性更高。
4 結(jié)論
對于一個企業(yè)來講,眾多應用系統(tǒng)的用戶認證,對于用戶來講,統(tǒng)一認證意味著可以保持單一用戶ID和密碼;對于IT運維人員來講,可以避免重復的勞動,因此,對于企業(yè)內(nèi)部應用系統(tǒng)的運維具有非常重要的意義。適度提前且規(guī)劃良好的企業(yè)統(tǒng)一認證策略,可以推動企業(yè)信息化的進程,特別是對新的企業(yè),可以帶來良好的用戶體驗和事半功倍的效果。同時,采用統(tǒng)一身份認證方式也有助于提高企業(yè)內(nèi)部的信息化安全水平。
參考文獻:
[1] 孫韓林,劉建華. 公眾網(wǎng)絡(luò)統(tǒng)一身份認證服務及標準研究[J]. 電信科學,2013(2).
[2] 歐陽榮彬,樊春,來天平. 一種面向單點登錄的統(tǒng)一身份認證框架[J]. 武漢大學學報(理學版),2012(S1).
[3] 王逸軍,耿海飛,施彤年,等. NTLM身份驗證協(xié)議詳解[J] 計算機與網(wǎng)絡(luò),2009(18).