0、引言
隨著企業信息化建設的逐步深入,信息系統已逐步滲透企業生產經營管理的各個領域,包括:ERP、MES、電子商務平臺、DSS、OA、電子郵件等等 但由于系統建設的不同步及期初缺乏前瞻性和總體規劃,這些系統經常擁有各自獨立的用戶管理體系和認證方法。這就可能出現同一個用戶在不同系統中使用不同的賬號和密碼,需要記憶眾多的賬號和密碼已成為用戶沉重的負擔。此外,由于各系統中用戶信息的格式、命名與存儲方式多種多樣,系統管理員對用戶信息進行同步維護時也將增加額外的工作量。因此,眾多企業已著手研究建立企業專門的單點登錄系統。對企業單點登錄的實現方案已有眾多研究和討論,本文以云銅集團基于企業門戶的單點登錄解決方案為實例,探討企業面對復雜異構應用環境下如何以最小代價柔性地實現各新老系統的單點登錄。
1、單點登錄概述
1.1 單點登錄定義
單點登錄(SSO:Single Sign On)是一種目前較流行的企業業務整合解決方案。單點登錄是指訪問同一服務器不同應用中的受保護資源的同一用戶,只需要登錄一次,即通過一個應用中的安全驗證后,再訪問其他應用中的受保護資源時,不再需要重新登錄驗證。
1.2 單點登錄技術的國內外動態
目前,單點登錄技術在國內的應用還不是非常普及,但隨著企業門戶應用的逐漸普及,越來越多的企業已開始重視單點登錄技術的實現。在國外,單點登錄的技術發展非常的迅速。從技術的實現上,單點登錄的實現技術主要有:Cookie、Broker-based、Agent-based、Token-based、Gateway-based等。
1.3 單點登錄技術比較
2、基于企業門戶的云銅集團單點登錄方案的設計
2.1 云銅集團異構應用環境介紹
云銅集團經過多年的信息化建設已建成了涵蓋冶金行業五級系統架構的各種應用系統,且涉及多種技術平臺,包括:SAP平臺的ERP系統2套,基于domino平臺的分布式OA系統、郵件系統、短信系統、經營決策管理系統,基于Dotnet平臺的MES系統、生產管理系統、投資管理系統、礦產資源管理系統、HSE管理系統和協同應用系統,騰訊的RTX企業內部通訊系統等等,其中有老系統、新建系統,有B/S結構、C/S結構,部署在不同子域、不同服務器上。針對云銅集團復雜的異構應用環境,采用傳統的單點登錄技術已經很難滿足云銅集團的單點登錄需求。
2.2 云銅集團單點登錄方案
云銅集團單點登錄方案主要由統一用戶管理、認證管理和基于Sharepoint企業門戶的單點登錄三個部分組成。
2.2.1 統一用戶管理
統一用戶管理的目標是要建立一個囊括云銅集團所有IT應用系統的基礎用戶管理平臺,做到一套用戶以及密碼覆蓋所有系統,在此基礎之上通過組合認證實現各系統的單點登陸。云銅集團統一用戶管理涉及到SAP HR系統、企業門戶的用戶信息公共數據庫、WebAD認證巾心(基于微軟AD開發的web界面管理平臺)、ADSync(Domino平臺自帶的用戶目錄系統)。整個用戶數據管理如圖1所示:
圖1 統一用戶管理的數據同步
(1)統一用戶管理的數據源來自于SAP HR模塊,HR模塊中的員工數據通過SSIS(Microsoft SQL Server Integration Services)將數據同步到企業門戶公共數據庫,供認證中心使用。
(2)認證中心(web AD)進行具體的用戶管理,注冊用戶時選取員工信息,并將用戶信息通過AD LDAP服務寫入AD。
(3)認證中心(web AD)通過web service方式提供對外接口,將用戶數據分發到新老系統中。
(4)對新老系統進行用戶數據分發的方式分為兩大類:原有domino系統通過一個ADSync分發:非domino系統直接通過認證中心(web AD)提供的web Service服務分發。
2.2.2 認證管理
云銅集團單點登錄涉及sharepoint門戶登錄認證、ASP.NET系統認證(包含生產管理系統、投資管理系統、礦產資源管理系統、HSE管理系統和協同應用系統)、Domino系統認證(包含分布式OA系統、郵件系統、短信系統、經營決策管理系統)、SAP系統認證(兩套ERP系統)、RTX認證等5 大類系統認證。
(1)sharepoint門戶登錄認證:采用Broker based模式的典型應用Kerberos認證機制。
(2)ASP.NET系統認證:采用cookie模式的AD認證。
(3)Domino系統認證:采用Token-based模式的LTPA Token認證。
(4)SAP系統認證:采用用戶映射的方式進行認證。
(5)RTX認證:采用web serviees方式進行認證。
2.2.3 單點集成
在統一用戶管理和明確各種類型系統的認證方式后,企業門戶作為各應用系統的統一集中入口,用戶在企業門戶上輸入用戶名和密碼后,個人門戶通過調用web AD的訪問控制列表把當前用戶能訪問的系統羅列在個人門戶常用系統中,采用上述認證方式,用戶無需再輸入用戶名和密碼就可以訪問相關應用系統了。
3、云銅集團單點登錄技術的具體實現
由于云銅集團涉及單點登錄的各系統都統一在同樣的一級域名yncic.com之下,因此可以概括來說,各系統的單點登錄都是采用共享cookie信息的方式實現的。即通過各系統的統一入口(門戶系統)登錄后。生成各關聯單點系統的驗證信息存儲于cookie中,各系統讀取Cookie信息實現單點登錄。
3.1 實現與Domino系統單點登錄
與Domino系統的單點登錄采用Lightweight Third-Party Authentication (LTPA)的方式(LTPA是IBM Websphere和Domino產品中使用單點登錄技術)。當服務器配置好LTPA認證方式,用戶通過瀏覽器成功登錄后,服務器會自動發送一個session cookie給瀏覽器,此cookie中包含一個LTPA Token,獲得cookie后登錄Domino系統,Domino系統通過分析該cookie判斷當前用戶是否驗證通過。這個cookie由以下部分組成:LTPA token版本(4字節)、創建時間(8字節)、過期時間(8字節)、用戶名(可變長度)、Domino LTPA密鑰(20字節),其中LTPA密鑰采用SHA加密存儲在cookie中。
以下是Domino系統獲取LTPA token信息的核心代碼:
3.2 實現與ASP.NET系統單點登錄
由于云銅集團涉及單點登錄的ASP.NET系統使用相同的主域名,所以采用Form身份驗證方式,共用一個Cookie來實現單點登錄。
具體實現過程如下:
(1)選用Forms驗證
(2)修改各單點系統Web.config文件,加入共用的machineKey節點和值。
(3)登陸時寫入cookie值
以下是生成ASP.NET系統共享Cookie票據信息的核心代碼:
3.3 實現與SAP系統單點登錄
與SAP系統實現單點登錄主要是通過在SSO WEB服務器頁面嵌入ActiveX控件,由AetiveX控件從Sharepoint的SSO服務端獲取用戶映射表中SAP的用戶名和密碼,然后啟動客戶端控件,向客戶端控件傳遞登錄信息,實現自動登錄。
3.4 實現與RTX系統單點登錄
與RTX系統實現單點登錄主要是通過調用RTX Server SDK獲取Session Key接口獲取該用戶的Session Key,同時調用客戶端Session Key登錄的腳本登錄RTX。
4、小結
面對多種異構應用并存的現狀,云銅集團有針對性地將多種單點登錄技術組合應用,有效地解決了基于企業門戶的單點登錄問題。為其它企業如何解決復雜異構應用環境下的單點登錄提供了可借鑒的經驗,具有很好的推廣應用價值。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:ERP/MES/OA復雜異構應用環境下的單點登錄設計與實現
本文網址:http://www.guhuozai8.cn/html/consultation/1082009659.html