單點登入(single sign on)是門戶產品的一大特點,可以為企業使用者提供統一的資訊資源認證訪問平台,通過實施單點登入功能,使各種使用者只需一次登入就可以根據相關的規則去訪問不同的應用系統,提高it系統的易用性、安全性、穩定性;在此基礎上進一步實現企業使用者高速協同辦公和企業知識管理 。
sso實現原理:
sso通常都是應用於web系統中。基於web的身份驗證的實質無外乎就是有乙個表單,表單裡面讓使用者輸入使用者名稱和密碼,然後提交給驗證的頁面,通過身份驗證後,通過session來儲存使用者的一些資訊,然後每次訪問頁面時,從session裡面讀這些資訊,如果存在,則進入登入後的介面,否則,就認為沒有登入。客戶端要支援cookie來儲存sessionid,與伺服器上建立的session來對應。
sso都要有乙個單一的登入點,由此登入點將建立的會話token傳遞給應用系統。sso需要建立乙個統一的認證,許可權資訊庫。但現實中,有的系統無法使用外部的認證,授權資訊庫,所以就需要在應用系統和portal server之間進行認證,同時進行授權資訊的資料同步。根據認證,授權實現的位置可以分為兩種實現方式:
第一類是通過agent的方式,即在後端為每個web應用系統都安裝乙個agent,由agent來接管該系統的身份驗證和訪問控制,portal中會存放自己的使用者資訊,以及這些使用者與其他系統的使用者對應資訊。這些agent能夠通過配置,輕鬆的接管了後面的系統的身份驗證和訪問控制。
第二類是通過proxy的方式,即具有乙個proxy server,由它來接管對於後端系統的訪問,提交請求和讀取資料,然後再返回給portal。同時portal可以存放使用者資訊以及使用者的對應關係。proxy server會通過儲存的使用者對應關係和使用者名稱和密碼,自動完成後端系統的登入,然後就象乙個瀏覽器一樣,提取資料,返回資料給後端系統。這樣的話後台系統不用做任何修改,身份認證和訪問控制仍然由各個系統自己管理。
jetspeed2.0中sso的實現:
jetspeed2.0中的sso支援基本的認證方式,支援基於cookies和form形式的認證。憑證資訊的儲存作為乙個元件實現,使用jetspeed2.0的安全模式儲存憑證資訊(即portal中的使用者憑證和其他系統的使用者憑證是存放在一起,使用同樣方式管理)。sso功能包含三個方面:
1、sso管理
管理sso的憑證資訊和建立portal使用者的對應關係。用admin登入,在「jetspeed管理portlets」下有「sso管理」,在這裡有兩個portlet:j2-admin::ssobrowserportlet和j2-admin::ssodetailsportlet。左側的是站點資訊管理,包括站點名稱,站點url,站點域,以及使用者名稱和密碼的引數名稱。管理的是要訪問站點的一些基本資訊。右側是管理此站點的使用者與portal使用者的對應關係。遠處的站點使用者資訊包括使用者帳號和憑證,可以同portal中的單個使用者對應也可以同使用者組對應。同乙個站點下可以有多個對應關係。
2、sso provider服務
3、sso proxy portlet
這個portlet為門戶與被認證的站點提供了乙個**。它的主要目的是在它訪問在配置引數中定義的目標位址之前認證所有sso使用者帳號的憑證。因為使用者事先並不知道可能選擇哪個目標位址。這樣登入提示將不會出現,因為乙個sso入口已經存在並且使用者已經被許可。sso proxy保留客戶端的cache以便認證只發生一次。
sso應用:
在jetspeed2.0中自帶了乙個簡單的例子程式sso iframe portlet。portlet根據目標位址獲得站點的憑證資訊,組成url字串,使用iframe形式提交訪問目標站點。注意:iframe由程式**自動生成。高度不能為百分比,否則ie6無法顯示。
ssowebcontentportle是獲取網頁資訊的portlet,也使用了sso。注意,需要將jetspeed/web-inf/lib/xerces-2.3.0.jar拷貝到demo/web-inf/lib目錄下。
總結:
jetspeed2.0
中提供了站點資訊和使用者憑證的管理,建立了門戶使用者與其他應用系統使用者的對應關係,並提供了獲得這些資料的介面。使用
proxy portlet
可實現預登入。通過這些方法完成了簡單的單點登入功能。但在實際應用中根據不同的系統需要做些二次開發工作。因為各系統的使用者認證都是在各系統的認證授權模組完成的,
portal
只是儲存了使用者憑證的對應關係,這樣就存在了系統間憑證資訊同步的問題。對此需要在實際應用中注意。
SSO單點登入之OAuth2 0登入認證
client 呼叫資源伺服器api的應用 oauth 2.0 provider 包括authorization server和resource server 1 authorization server 認證伺服器,進行認證和授權 2 resource server 資源伺服器,保護受保護的資源 u...
SSO單點登入之OAuth2 0登入認證
一 oauth中的角色 client 呼叫資源伺服器api的應用 oauth 2.0 provider 包括authorization server和resource server 1 authorization server 認證伺服器,進行認證和授權 2 resource server 資源伺服...
CAS單點登入 開啟OAuth2 0協議(七)
dependency groupid org.apereo.cas groupid artifactid cas server support oauth webflow artifactid version version dependency cas service cas.server.nam...