統一用戶認證方案思路
實現目標:
1.實現單點登陸,使用單點登陸賬號登陸後,可訪問多個被受權的系統。
2.儘可能不讓用戶進行客戶端安裝,有些技術如CAS,SAML,P3P歡迎點評
免登陸訪問方式可能存在:
一、當前系統界面鏈接其餘系統的界面,(場景:多系統集成一個系統)
二、當前系統訪問其餘系統的有驗證的服務接口, (場景: 訪問被受權的系統的服務)
三、在新的瀏覽器標籤頁直接打開其餘系統的頁面 。(場景: 進入其餘系統免登陸)
2.加強安全驗證性,採用 cookie,token,session,和安全令牌securityCard形式
一、cookie記錄了用戶的登陸信息token,
二、session可得到訪問者的IP,
三、安全令牌用於記錄單點登陸用戶訪問的惟一憑證.
四、敏感信息(金錢,核心內容)或者防惡意請求(如盜號)可考慮動態密碼和訪問頻率來控制(將來有須要時)
3.加強用戶體驗性
1.已登陸的我的資料編輯,增長上傳頭像
2.用戶管理,分組管理,角色管理,權限管理界面交互修改更友好
3.用戶直接訪問某系統子頁面時,若是未登陸則彈出登陸,登陸後重定向到指定子頁面。
4.對於一些特殊的http請求錯誤給予友好error.html提示,如404.500,302等.
存在問題:
1.多個系統可能有多套自身用戶管理,另外有可能第三方系統有可能接入;
2.多個系統可能共用一套用戶管理;
3.單點登陸用戶和各系統之間的關係如何。
解決方案:
1.針對問題1: 設立uum認證中心;
提供應用系統單點登陸角色配置的註冊,更新,和註銷等接口(即應用系統加入認證中心的操做);
提供應用系統之間受權的添加,更改,刪除等接口;
提供全部註冊系統的註冊信息的查詢接口;
提供在線單點登陸用戶的查詢,退出,登陸等;
對接口的信息中有必要包含受權期限等。
2.針對問題2:
優化應用系統的用戶管理模塊,支持區分存儲不一樣域名的權限;
將統一的用戶管理角色註冊到uum認證中心,並對個系統相互受權;
建議將統一的用戶管理界面開放給某個系統的用戶進行統一操做。
3.針對問題3:
應用系統有自身的用戶管理體系,若是想加入單點登陸羣組,須要創建以下規則:
應用系統向認證中心發起請求的元單位爲角色,即單獨登陸的用戶須要在認證中內心判別角色;
須要設立單點登陸的角色,而後將自身系統的角色與其匹配;
應用系統用戶管理中能夠將單點登陸角色受權給其餘系統,也可查看被其餘系統受權的信息;
認證中心只管角色,可對加入的應用系統進行註冊信息統一管理(另行處理) ,可是角色的訪問權限由各個系統複製管理。
4.單獨登陸配置:
1.應用系統提交xml格式註冊到uum認證中心,包括信息:系統ID,角色名稱(可多個),到期時間等,並可修改。
2.應用系統可將單點登陸角色賦給其餘系統對應的角色,可爲一對多,包括到期時間等必要的信息。
3.認證中心可對應用系統提交的部分信息進行一些甑別和修改。
5.單點登陸訪問步驟:
1.用戶訪問A系統,輸入用戶名,密碼;
2.A系統登陸成功,
發現是該用戶角色爲單點登陸角色,
重定向uum認證中心登陸界面,並傳送參數以及A系統回調路徑,
uum認證解析參數,檢查角色是否過時,生成安全令牌,再重定向迴應用系統;
此時產生了應用系統和認證中心兩個系統的鏈接。
3.用戶訪問B系統主頁,B系統發現沒有在本身服務器上登陸,
重定向uum認證中心登陸界面,並傳送參數以及B系統回調路徑,
uum認證發現已經登陸,返回用戶角色相應信息以及安全令牌重定向給B系統,
B系統登陸成功。
6.安全驗證:
html