目錄
1 概述
西北油田分公司信息化經過長期建設,在各個業務點上,逐步搭建了適應業務管理的信息化系統,爲分公司經營管理提供了強大的信息化輔助管理支撐。 但是,分公司前期建設的信息化系統都是基於傳統辦公自動化OA,目前逐步形成了多個單獨業務系統組成的OA,如公文、合同、招投標、預結算等系統,這些系統之間沒有統一的技術和數據標準,數據不能自動傳遞和共享,流程控制和標準多樣化,從而形成了一個個彼此隔離的信息孤島。
在此背景上,西北油田分公司搭建了一套整合分公司各種信息資源庫的協同工作平臺,形成統一、綜合、開放的辦公應用平臺。
本文檔爲西北油田分公司內部應用系統接入統一的協同工作平臺提供指導,提供應用系統接入統一用戶管理平臺、實現單點登錄和統一任務集成的接口說明。
2 單點登錄實現
2.1 原理概述
單點登錄系統提供統一的認證頁面、統一的當前用戶加密和解密服務。
用戶通過統一認證頁面登錄系統,當用戶需要訪問企業內部應用系統時,單點登錄加密當前用戶身份跳轉至指定的應用系統,指定應用系統獲取到當前加密身份後,通過調用單點登錄服務進行解密,獲取到用戶真實身份進行認證。
當統一認證頁面採用Windows認證模式時,那麼同樣採用Windows認證模式的應用系統,必須部署在同一應用程序池下,對於其他非Windows認證的系統,將採取上述加密跳轉的方式。
2.2 統一認證頁面
由單點登錄系統提供,使用統一用戶管理平臺的賬號和密碼進行驗證。用戶訪問企業內網門戶或應用系統時,如果檢測到未登錄,則跳轉至統一認證頁面,用戶登錄後,再跳轉至用戶訪問的頁面。
統一認證頁面地址:http://10.16.0.168/Portal/Login.aspx
統一認證頁面輸入輸出參數如下
應用系統未認證時,跳轉至統一認證頁面,輸入參數:
編碼 | 輸入方式 | 描述 |
SystemCode | Get/post | 系統編碼,由單點登錄系統提供指定的編碼,每個應用系統唯一,輸入爲空時,跳轉至默認的門戶頁面 |
URL | Get/post | 登錄成功後,跳轉到的應用系統URL,輸入爲空時,跳轉至默認的門戶頁面 |
統一認證完成後,跳轉至應用系統指定URL,輸出參數:
編碼 | 輸入方式 | 描述 |
Token | Get | 一次有效的驗證Token,調用單點登錄服務,可以得到當前用戶的真實信息 |
2.3 單點認證服務
單點認證服務是提供給企業應用系統進行登錄驗證的服務,企業應用系統獲取到Token後,以自己對應單點登錄的SystemCode和Secret值,進行調用單點登錄服務,解析得到統一平臺的用戶登錄信息。
服務地址:http://10.16.0.168/SSO.asmx
單點認證服務提供2個WebService服務接口:
ü 獲取統一認證平臺用戶賬號接口
接口名稱 | GetAuthenticationUser | |
接口說明 | 獲取已登錄統一認證平臺的用戶賬號 | |
輸入參數 | ||
參數編碼 | 類型 | 說明 |
SystemCode | String | 傳入系統編碼 |
Secret | String | 傳入系統祕鑰 |
Token | Stirng | 登錄信息 |
輸出參數 | ||
類型 | 說明 | |
String | 返回當前已登錄統一認證系統的登錄賬號 |
ü 更改Secret接口
接口名稱 | UpdateSecret | |
接口說明 | 更改統一認證Secret信息 | |
輸入參數 | ||
參數編碼 | 類型 | 說明 |
SystemCode | String | 傳入系統編碼 |
Secret | String | 傳入舊的系統祕鑰 |
NewSecret | Stirng | 傳入新的Secret信息 |
輸出參數 | ||
類型 | 說明 | |
bool | 返回更改Secret值是否成功 |
3 應用系統單點登錄接入
3.1 獲取系統編碼
系統編碼是由單點登錄服務提供的系統編碼和解密祕鑰。
編碼 | 名稱 | 說明 |
SystemCode | 系統編碼 | 文本類型,系統編碼、企業內部唯一,不可變更 |
Secret | 解密祕鑰 | 文本類型,調用解密服務需要傳入的參數,可以調用單點登錄服務修改 |
以下是各應用系統編碼,Secret可調用接口(參考3.4.4章節)自行修改:
系統名稱 | SystemCode | Secret |
電子考勤系統 | DZKQ | DZKQ |
生產經營系統 | SCJY | SCJY |
招投標系統 | ZTB | ZTB |
無紙化會議 | WZHHY | WZHHY |
領導動態 | LDDT | LDDT |
3.2 統一登錄頁面
注:該功能爲預留使用,本期項目可以不實現,應用系統只需要做好單點登錄,仍然可保留已有的登錄界面,讓用戶即可從統一平臺登錄界面進行登錄系統,也可以從已有的系統登錄界面進行登錄系統。
統一單點登錄頁面URL:http://10.16.0.168/Portal/Login.aspx
當用戶請求頁面,並且未登錄時,統一跳轉至單點登錄服務提供的登錄頁面地址,
http://10.16.0.168/Portal/Login.aspx?q={URL}&SystemCode={SystemCode}
參數說明
編碼 | 名稱 | 說明 |
URL | 應用系統URL | 單點登錄成功後跳轉到應用系統的URL地址 |
SystemCode | 系統編碼 | 單點登錄系統編碼 |
示例:當前應用系統編碼是SCJY,用戶請求的頁面URL爲:http://192.0.0.1/Default.aspx,
則跳轉至:
http://10.16.0.168/Portal/Login.aspx?q= http://192.0.0.1/Default.aspx&SystemCode=SCJY |
3.3 系統間單點登錄跳轉
系統之家的單點登錄實現,都需要通過統一登錄頁面進行實現,例如A系統訪問B系統的 Default.aspx頁面,則需要使用:http://10.16.0.168/Portal/Login.aspx?q=http://B/Default.aspx。
3.4 應用系統單點登錄實現過程
3.4.1 單點登錄過程
本章節描述了應用系統對於單點登錄需要做的事情和過程。
應用系統從URL中獲取到Token值,通過SystemCode和Secret調用單點登錄服務,解析得到用戶的統一用戶管理平臺中的賬號,在本系統實現登錄驗證。
單點登錄需要支持的頁面:所有在統一平臺中需要加上鍊接的頁面和表單界面。
以上頁面中,在判斷當前系統用戶登錄認證之前,按照以下步驟進行:
1. 如果URL中有Token值,則進入3,否則進入2
2. 跳轉至本系統的登錄界面;
3. 調用單點登錄服務進行解密,得到用戶的真實賬號;
4. 使用解密得到的賬號自動進行本系統登錄認證,完成單點登錄;
3.4.2 單點登錄界面說明
本期項目以下功能需要實現單點登錄:
系統名稱 | 集成功能 |
公文管理系統 | 公司發文、公司收文、公司工作聯繫單、公司會議記要審批件流轉、部門發文、流程審覈表單 |
合同管理系統 | 合同查詢、合同臺賬、流程審覈表單 |
招投標系統 | 招投標流程運行監控、項目運行監控、招標會議安排招標項目臺賬、評標專家維護、流程審覈表單 |
生產經營管理系統 | 業務跟蹤查詢、流程審覈表單 |
電子考勤系統 | 考勤管理、特殊考勤申請、考勤記錄查詢、流程審覈表單 |
無紙化會議系統 | 會議室使用情況、無紙化會議申請、會議材料上傳、流程審覈表單 |
領導動態 | 行程動態登記、行程動態查詢 |
內控管理系統 | 部門控制目標、內控手冊查詢、內控全文索引 |
電子郵件系統 | 未處理郵件數提醒 |
注:請各應用系統將以上功能的測試環境和正式環境的URL訪問地址,提供給信息化管理中心董小詩。
3.4.3 獲取Token
從統一認證平臺跳轉至應用系統時,統一認證平臺會將當前的用戶加密信息以Get方式進行發送至應用系統。
例如:應用系統URL地址http://192.0.0.1/Default.aspx,統一認證平臺返回的URL地址爲
http://192.0.0.1/Default.aspx?Token={Token}
參數說明
編碼 | 名稱 | 說明 |
Token | 訪問的Token | 一次性使用,可以通過單點登錄服務得到真實賬號 |
注:每次登錄Token值只一次有效。
3.4.4 獲取應用系統用戶賬號
應用系統獲取Token後,調用單點登錄服務提供的解密服務,得到真實賬號,單點登錄服務以WebService方式提供。
接口名稱 | GetAuthenticationUser | |
接口說明 | 獲取已登錄統一認證平臺的用戶賬號 | |
輸入參數 | ||
參數編碼 | 類型 | 說明 |
SystemCode | String | 傳入系統編碼 |
Secret | String | 傳入系統祕鑰 |
Token | Stirng | 登錄信息 |
輸出參數 | ||
類型 | 說明 | |
String | 返回當前應用系統的用戶賬號 |
應用系統獲取到返回當前應用系統的用戶賬號後,需要進行本系統的登錄操作。
3.4.5 更改Secret信息
爲了安全考慮,Secret值可以根據應用系統需要進行請求修改。修改過程調用統一單點登錄服務進行完成。
單點登錄系統提供接口如下:
接口名稱 | UpdateSecret | |
接口說明 | 更改統一認證Secret信息 | |
輸入參數 | ||
參數編碼 | 類型 | 說明 |
SystemCode | String | 傳入系統編碼 |
Secret | String | 傳入舊的系統祕鑰 |
NewSecret | Stirng | 傳入新的Secret信息 |
輸出參數 | ||
類型 | 說明 | |
bool | 返回更改Secret值是否成功 |
3.4.6 提供系統用戶表
如果應用系統不是使用AD域賬號,並且本系統用戶沒有與AD用戶對應的用戶關係映射表,那麼需要做2個事情:
1. 對於已有的系統用戶,導出系統用戶清單提供給統一平臺,導出格式爲:
所屬組織 | 用戶姓名 | 當前系統賬號 |
2. 對於新增用戶(不在系統用戶清單的用戶),嚴格使用AD賬號,否則不能正常單點登錄。
3.5 統一用戶管理集成
注:如果應用系統組織和用戶不需要從AD做同步,仍然可以採取已有的方式進行維護,可以忽略此章節。
企業應用系統用戶管理必須以統一用戶管理平臺提供數據爲基礎,系統定時或者管理員手動從統一用戶管理平臺進行同步。
使用統一用戶管理後,應用系統不需要再從本系統進行維護組織和系統賬號,所有系統賬號創建、刪除權在統一用戶管理平臺,應用系統需要實現從該平臺進行組織同步。
統一用戶管理平臺提供組織、用戶的數據接口,企業應用系統可以通過接口進行同步數據。
3.5.1 統一用戶管理數據結構
ü 組織數據結構(OrganizationUnit)
字段名稱 | 類型 | 說明 |
ObjectID | 字符串 | 組織ID,唯一標示 |
Code | 字符串 | 組織編碼 |
Name | 字符串 | 組織名稱 |
ParentID | 字符串 | 上級組織ID,如果爲空,則表示是頂層組織 |
ManagerID | 字符串 | 組織經理的用戶ID,關聯用戶ObjectID |
ModifiedTime | 日期 | 組織最後修改日期 |
State | 整數類型 | 啓/禁用,0表示啓用,1表示禁用 |
ü 用戶數據結構
字段名稱 | 類型 | 說明 |
ObjectID | 字符串 | 用戶ID,唯一標示 |
Code | 字符串 | 編碼、AD賬號 |
Name | 字符串 | 姓名 |
Appellation | 字符串 | 稱謂 |
EmployeeNumber | 字符串 | 員工工號 |
ParentID | 字符串 | 所屬組織ID,關聯組織ObjectID |
ManagerID | 字符串 | 上級經理ID,關聯用戶表ObjectID |
Mobile | 字符串 | 用戶手機號碼 |
字符串 | 用戶郵箱號碼 | |
OfficePhone | 字符串 | 辦公電話 |
State | 整數類型 | 啓/禁用,0表示啓用,1表示禁用 |
ModifiedTime | 日期 | 修改日期 |
3.5.2 統一用戶管理平臺接口
ü GetCompany()
方法說明:獲取根目錄的組織架構信息
輸入參數 | |||
參數名稱 | 類型 | 說明 | |
無 | |||
返回值 | |||
類型 | 說明 | ||
OrganizationUnit | 組織機構對象 |
ü GetAllOrganizationUnit()
方法說明:獲取所有組織數據
輸入參數 | |||
參數名稱 | 類型 | 說明 | |
無 | |||
返回值 | |||
類型 | 說明 | ||
OrganizationUnit[] | 組織機構數組 |
ü GetAllUser()
方法說明:獲取所有用戶數據
輸入參數 | |||
參數名稱 | 類型 | 說明 | |
無 | |||
返回值 | |||
類型 | 說明 | ||
User[] | 用戶數組 |
4 統一任務集成
4.1 集成說明
統一任務集成平臺是西北油田分公司所有應用系統的待辦任務綜合處理平臺,所有應用系統待辦都接入統一任務集成平臺處理。用戶可以直接登錄該平臺,處理分散在所有系統中的任務。
所以我們需要所有應用系統將用戶待辦/待閱任務能即時推送至統一任務集成平臺,並且和統一任務集成平臺實現單點登錄,方便用戶進行操作。
基於移動擴展考慮,並且展示統一移動模式表單,應用系統還需要提供表單數據接口和表單操作接口,方便統一任務集成平臺實現移動擴展。
統一任務集成過程如下圖所示:
4.2 統一任務集成接口說明
接口服務地址:http://10.16.0.168/Portal/WorkItemService.asmx
ü 接口名稱:AddUnFinishedWorkItem
方法說明:應用系統推送待辦任務至統一任務集成平臺
參數說明:
輸入參數 | |||
參數名稱 | 類型 | 說明 | |
SystemCode | string | 系統編碼,由SSO服務提供 | |
Secret | string | 系統祕鑰,由SSO服務提供 | |
ID | string | 應用系統工作任務唯一標示 | |
WorkflowName | string | 流程模板名稱:如請假申請、發文審批 | |
InstanceName | string | 流程實例名稱:例如張三的年假審批 | |
ActivityName | string | 環節名稱:例如領導審批 | |
Originator | string | 發起人賬號:流程發起人的中石化郵箱賬號 | |
Participant | string | 當前任務處理人的中石化郵箱賬號 | |
ReceiveTime | Datetime | 任務接收時間 | |
PriorityType | PriorityType | 枚舉類型,待辦的優先級 Low = 0, // 低 Normal = 1, // 中(默認值) High = 2 // 高 | |
ItemType | int | 待辦/待閱,0是待辦/1是待閱 | |
AllowReject | Bool | 是否允許駁回 | |
MobileProcessing | Bool | 是否允許移動辦公審批 業務系統自己判定,當存在複雜操作的表單邏輯和操作時,可以設置不支持在移動端操作,例如發起環節的填寫。 | |
Url | string | 應用系統打開當前工作任務的URL | |
返回值 | |||
類型 | 說明 | ||
bool | 任務推送是否成功 | ||
示例程序 | |||
// 調用一個任務推送,將任務ID=12345的任務推送至統一任務集成平臺 bool result = workItemService.AddUnFinishedWorkItem( "系統編碼", "系統祕鑰", "12345", // 應用系統的任務ID "請假申請", "張三的事假申請", "主管審覈", "zhangs.xbsj", "wangw.xbsj", new DateTime(2015, 10, 31, 12, 21, 05), PriorityType.Normal, 0, "http://10.1.0.100/System/Apply.aspx?ID=12345" ); |
ü 接口名稱:FinishWorkItem(string SystemCode,string Secret,string ID)
方法說明:應用系統任務完成時,通知統一任務平臺
參數說明:
輸入參數 | ||
參數名稱 | 類型 | 說明 |
SystemCode | string | 系統編碼,由SSO服務提供 |
Secret | string | 系統祕鑰,由SSO服務提供 |
ID | string | 待辦任務在應用系統中的唯一標示 |
返回值 | ||
類型 | 說明 | |
bool | 統一任務處理平臺調用是否成功 |
4.3 應用系統需要提供接口說明
在PC端,統一任務集成平臺通過單點登錄直接打開應用系統表單URL,所有操作均由應用系統完成。
在移動端,統一任務集成平臺通過獲取應用系統表單數據,統一轉換成移動辦公模式表單進行展示,用戶直接使用轉換後的移動辦公表單進行任務操作,所以應用系統需要向統一任務集成平臺提供表單數據接口和表單操作接口。
4.3.1 移動端表單數據集成接口
應用系統需要構造接口返回數據結構,以WebService形式提供給統一任務集成平臺進行調用。也就是說,以統一任務集成平臺的提供數據結構,構造SheetData[]數組,返回給統一任務集成平臺使用。
接口說明:統一使用名稱 LoadSheetData
輸入參數
字段名稱 | 類型 | 說明 |
Token | string | 統一平臺會調用SSO加密服務將結果傳遞至應用系統,應用系統再調用解密服務驗證Token值的真實有效性,然後進行處理。 |
ID | string | 任務唯一標示 |
SheetData定義示例:
返回數據示例:
應用系統必須提供2個接口方法給統一任務集成平臺調用,方便統一平臺在移動端審批時,能實現應用系統的提交、駁回操作,接口提供推薦使用WebServices模式。4.3.2 移動端表單操作接口
接口一:提交任務接口,統一使用名稱 SubmitItem
接口需要接收3個參數:
字段名稱 | 類型 | 說明 |
Token | 字符串 | 統一平臺會調用SSO加密服務將結果傳遞至應用系統,應用系統再調用解密服務驗證Token值的真實有效性,然後進行處理。 |
ID | 字符串 | 任務唯一標示 |
CommentText | 字符串 | 當前任務審覈意見 |
SheetData | 字符串 | 移動審批修改的數據項值,以JSON格式傳遞,當不修改時傳遞爲空。 例如: {數據項名稱1:"數據項1的值",數據項名稱2:"數據項2的值"} |
接口二:駁回任務接口,統一使用名稱 RejectItem
接口需要接收3個參數:
字段名稱 | 類型 | 說明 |
Token | 字符串 | 統一平臺會調用SSO加密服務將結果傳遞至應用系統,應用系統再調用解密服務驗證Token值的真實有效性,然後進行處理。 |
ID | 字符串 | 任務唯一標示 |
CommentText | 字符串 | 當前任務審覈意見 |
SheetData | 字符串 | 移動審批修改的數據項值,以JSON格式傳遞,當不修改時傳遞爲空。 例如: {數據項名稱1:"數據項1的值",數據項名稱2:"數據項2的值"} |