java 实现ukey身份认证_一种基于ukey认证的单点登录实现方法与流程
本發明涉及網絡技術領域,更具體的說是涉及一種基于ukey認證的單點登錄實現方法。
背景技術:
單點登錄sso(singlesignon)簡單來說就是在一個多系統共存的環境下,用戶在一處登錄后,就不用在其他系統中登錄,也就是用戶的一次登錄能得到其他所有系統的信任。
無論在大型網站還是企業網站,單點登錄是被廣泛使用的解決方案。由于網站規模龐大,涉及的子系統成百上千,如果在每個系統都需要重新認證一遍,不僅耗時耗力,對用戶來講感知是極其不好的。
現在實現單點登錄最常用的方案是通過cas實現。cas是centralauthenticationservice的縮寫,中央認證服務,一種獨立開放指令協議。cas是yale大學發起的一個開源項目,旨在為web應用系統提供一種可靠的單點登錄方法,cas在2004年12月正式成為ja-sig的一個項目。但是目前cas只支持用戶名密碼的認證。
有些時候,我們可能需要其他的認證方式,針對cas的局限性,我們需要設計一個新的解決方案。
技術實現要素:
針對以上問題,本發明的目的在于提供一種基于ukey認證的單點登錄實現方法,實現了跨域登錄,能夠選擇登錄系統,并可擴展認證方式。
本發明為實現上述目的,通過以下技術方案實現:一種基于ukey認證的單點登錄實現方法,包括:
使用安全管理框架建立身份認證系統,并進行key與系統用戶的綁定和身份認證;
通過跨域身份驗證解決方案保存認證用戶信息;
用戶直接進行系統登錄時,首先進入身份認證系統進行身份認證,身份認證成功后,跳轉到用戶要訪問的系統首頁,身份認證系統自動跳回身份認證系統首頁。
進一步,用戶通過身份認證系統進行系統登錄時,身份認證系統向用戶展示可訪問的系統,用戶選擇進入。
進一步,所述安全管理框架采用apacheshiro;所述跨域身份驗證解決方案采用jsonwebtoken。
進一步,所述身份認證基于pki級別的ukey認證,后臺生成隨機數,前臺使用ukey中的密鑰進行加密,并將密文和公鑰傳遞給后臺,后臺進行驗證,如果通過則認證成功,否則認證失敗。
進一步,所述通過跨域身份驗證解決方案保存認證用戶信息具體為:
通過jsonwebtoken協議生成token,并將用戶認證信息保存在memcached中,身份認證系統向提供用戶可訪問的系統列表,供用戶選擇。
進一步,用戶直接進行系統登錄時,首先進入shiro身份認證系統進行身份認證,檢驗用戶是否登錄過要訪問系統,如果是,直接跳轉到用戶要訪問的系統首頁;如果否,校驗是否有token,如果有token,直接跳轉到用戶要訪問的系統首頁;如果沒有token,進入身份認證系統首頁。
進一步,進入身份認證系統首頁后,攜帶回調地址重定向到uias進行key登錄,判斷該用戶是否有權限,如果有則登錄并產生token,并保存,同時返回到要訪問的系統。
進一步,用戶還可以通過身份認證系統進行系統登錄,登錄時,直接在身份認證系統的登錄頁進行key登錄,登錄成功后,身份認證系統向用戶展示可訪問的系統,用戶選擇進入。
進一步,用戶直接進行系統登錄時,通過shirofiter進行過濾,使訪問請求可以到達用戶的請求訪問的系統地址。
對比現有技術,本發明有益效果如下:
1、身份認證是基于pki體系的ukey認證,身份認證系統安全可靠,保證了證書的合法性和登錄的合法性。
2、通過使用memcached,解決jsonwebtoken的跨域問題。
3、登錄系統可選擇。通過認證系統展示了用戶可用系統,提供了門戶作用。
4、認證方式可擴展,可選擇多種認證方式。
本發明提供了一種基于ukey認證的單點登錄實現方法,通過身份認證系統,實現key與系統用戶的綁定,身份認證基于pki級別的ukey認證,后臺生成隨機數,前臺使用ukey中的密鑰進行加密,并將密文和公鑰傳遞給后臺,后臺進行驗證,如果通過則認證成功,否則認證失敗。
本發明借助jjsonwebtoken生成token.保存認證用戶信息。jsonwebtoken(jwt)是一個開放標準(rfc7519),它定義了一種緊湊的、自包含的方式,用于作為json對象在各方之間安全地傳輸信息。該信息可以被驗證和信任,因為它是數字簽名的。認證成功后,跳轉到要訪問的系統,在系統中取得對應的token進行驗證。token驗證成功在進入系統首頁,驗證認證跳轉回認證系統首頁。若直接訪問認證系統,則進入認證系統展示用戶可訪問的系統,用戶選擇進入。
由此可見,本發明與現有技術相比,具有突出的實質性特點和顯著的進步,其實施的有益效果也是顯而易見的。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
附圖1是本發明實施例一的方法流程圖。
附圖2是本發明實施例二的方法流程圖。
具體實施方式
下面結合附圖對本發明的具體實施方式做出說明。
實施例一:
如圖1所示的一種基于ukey認證的單點登錄實現方法,包括:
使用安全管理框架建立身份認證系統,并進行key與系統用戶的綁定和身份認證。
通過跨域身份驗證解決方案保存認證用戶信息。
用戶直接進行系統登錄時,首先進入身份認證系統進行身份認證,身份認證成功后,跳轉到用戶要訪問的系統首頁,身份認證系統自動跳回身份認證系統首頁。
用戶通過身份認證系統進行系統登錄時,身份認證系統向用戶展示可訪問的系統,用戶選擇進入。
實施例二:
在實施例一的基礎上,所述安全管理框架采用apacheshiro;所述跨域身份驗證解決方案采用jsonwebtoken。apacheshiro是一個強大且易用的java安全框架,執行身份驗證、授權、密碼和會話管理。借助于現有優秀的安全管理框架shiro實現系統的權限管理,同時參考cas模式實現認證系統,系統的認證基于pki級別的ukey認證完成。完成認證后,借助jwt生成token保存在memcached中,用戶即可登錄其他的系統而不用再進行認證,用戶在某一系統登出后,需重新進行認證。sonwebtoken(jwt)是目前最流行的跨域身份驗證解決方案。
如圖2所示的一種基于ukey認證的單點登錄實現方法,包括:
使用安全apacheshiro建立身份認證系統,并進行key與系統用戶的綁定和身份認證。身份認證基于pki級別的ukey認證,后臺生成隨機數,前臺使用ukey中的密鑰進行加密,并將密文和公鑰傳遞給后臺,后臺進行驗證,如果通過則認證成功,否則認證失敗。
通過jsonwebtoken協議生成token,并將用戶認證信息保存在memcached中,身份認證系統向提供用戶可訪問的系統列表,供用戶選擇。
用戶直接進行系統登錄時,首先通過shirofiter進行過濾,使訪問請求可以到達用戶的請求訪問的系統地址。然后進入shiro身份認證系統進行身份認證,檢驗用戶是否登錄過要訪問系統,如果是,直接跳轉到用戶要訪問的系統首頁;如果否,校驗是否有token,如果有token,直接跳轉到用戶要訪問的系統首頁;如果沒有token,進入身份認證系統首頁。進入身份認證系統首頁后,攜帶回調地址重定向到uias進行key登錄,判斷該用戶是否有權限,如果有則登錄并產生token,并保存,同時返回到要訪問的系統。
用戶還可以通過身份認證系統進行系統登錄,登錄時,直接在身份認證系統的登錄頁進行key登錄,登錄成功后,身份認證系統向用戶展示可訪問的系統,用戶選擇進入。
本實施例提供了一種基于ukey認證的單點登錄實現方法,通過身份認證系統,實現key與系統用戶的綁定;通過jjsonwebtoken生成token.保存認證用戶信息。認證成功后,跳轉到要訪問的系統,在系統中取得對應的token進行驗證。token驗證成功在進入系統首頁,驗證認證跳轉回認證系統首頁。若直接訪問認證系統,則進入認證系統展示用戶可訪問的系統,用戶選擇進入。
結合附圖和具體實施例,對本發明作進一步說明。應理解,這些實施例僅用于說明本發明而不用于限制本發明的范圍。此外應理解,在閱讀了本發明講授的內容之后,本領域技術人員可以對本發明作各種改動或修改,這些等價形式同樣落于本申請所限定的范圍。
總結
以上是生活随笔為你收集整理的java 实现ukey身份认证_一种基于ukey认证的单点登录实现方法与流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vijos 1071 01背包
- 下一篇: nexus3.x批量上传jar包