單點登入SSO 概述與示例

2022-02-01 02:03:23 字數 2975 閱讀 2606

目錄

零改造實施單點登入

單點登出

整合ad認證

客戶端單點登入

移動端單點登入

單點登入即single sign on(sso)。它是大型**oa、企事業單位oa的標配解決方案。它概言之就是在多個web、桌面或移動應用系統中,使用者只需要登入一次,就可以訪問所有的應用系統。

從業十多年,為**、電信、跨國公司顧問和實施的單點登入解決方案無數,深諳其痛點與關鍵。

和很多人直觀猜測相反,單點登入方案的定製性很強。很多企業的單點登入,實施是有問題的。尤其是被一些軟體產品的銷售人員牽著走的企業,它的單點登入方案實施,從產品方案選型起就存在根本性問題。這些方案常常要求大量現有業務系統的改造(基於統一身份認證服務,採用openid,oauth,saml等技術建立和傳遞認證憑據),或者只是體驗較差的類似瀏覽器自動填充賬號密碼的功能(如oracle的esso)。它們要麼改動面大、周期長,要麼服務端和客戶端侷限性多,使用者體驗也達不到最佳。

事實上,單點登入的實施環境與需求千差萬別:有純web的(常見又分跨域不跨域的),有桌面應用的,有移動平台的,有要結合windows登入憑據的,有整合了標準方案的,有不能改動現存系統的,等等等等。最適合企業的方案,一定需要結合企業應用種類、各系統**商狀況、終端要求、後期擴充套件性需求、實施成本工期來具體確定。

很多單點登入解決方案的實施,由於顧問的經驗、視野或產品傾向性原因,往往導致了這些結果:

這個是很多開源免費或者商用的單點登入產品,在實施時最普遍遇到的情況。它們往往基於統一身份認證服務,採用openid,oauth,saml等技術建立和傳遞認證憑據,要求各個被整合應用按照相應介面開發。對於不同廠商在不同技術平台、不同維護時間、不同業務場景下構造的多個系統,要求統一按照方案介面標準做改造,其難度可想而知。見過不止一家廠商,他們的業務系統在客戶那邊已經上線執行,客戶後來提出單點登入的整合要求,於是為了快速完工,完全不遵循業界安全規範,採用最簡單暴力的方式進行整合,結果導致嚴重的安全漏洞。

有一家跨國公司,選型某知名軟體做單點登入解決方案,它的優點是對被整合系統可以零改造,但只支援windows終端,因為它有乙個windows程式要安裝到每個使用者機器上。我作為實施顧問參與時,發現其中絕大部分使用者常用的系統都是幾個web系統,完全可以通過實施服務端零改造的sso方案,避免向他們機器推送乙個要按終端數購買授權的應用。這類應用不但授權費用高昂(每終端數千元),而且部署維護成本高、很多裝置環境和個性化瀏覽器下會出相容性問題。

sso和這兩者在應用場景和一些實施方案上有交集,使得很多實施顧問會利用這點,讓很多企業不明就裡的「明明只想剪個頭髮,結果買了美容保養年卡,而且頭髮還剪得不好」。

統一身份認證,往往和多個web應用基於服務端做sso的方案繫結銷售。對於有多個web應用要做服務端sso的,尤其是包含多個跨一級網域名稱應用的,常常被推薦部署獨立的統一身份認證服務產品,然後讓各個應用針對它的介面做開發整合。讓各個web或桌面、移動應用,整合、識別並認可其認證憑據,還要和該伺服器安全交換使用者身份資訊,是乙個不小的挑戰。現有各個系統的服務商是否還會及時的配合開發本身已是乙個大問題,即使他們配合,在乙個環節出現問題就會是嚴重的安全漏洞。

統一身份管理主要是針對企業賬戶安全領域。它的主要作用,簡而言之就是在乙個地方管理所有系統賬號的建立和終止,避免乙個員工離職要到多個應用管理部門做賬號刪除,很容易出現漏刪賬號,導致企業資訊保安問題。針對很多大型組織架構來講,它確實也非常必要,我個人實施顧問的很多企業確實也非常需要,後面我會撰文詳述這一塊的經驗心得。這方面現成產品有諸如oracle的oim,ibm的tivoli im,都是光買授權就動輒上百萬的產品(具體費用和使用者數、伺服器等相關),它們的特點是針對很多大型應用諸如sap、lotus notes等等都有現成的聯結器來做賬號資源的推拉(provision/reconciliation)。但對於沒有現成聯結器的產品,需要定製開發,這塊對於實施人員要求很高,而且後期的維護、新應用的整合基本都完全依賴第三方,成本高昂。

sso實施和業務系統開發不同,它是技術點密集但工作量少的業務。如果你的開發人員還要為「如何跨域傳token」、「如何讀寫ad」之類現學摸索,那實施結果往往存在較大安全漏洞,也會導致工期不可**。這一塊的很多現成產品都有特定的實施要求和侷限性(本人曾填坑oracle的oim 和 esso),加之實施人員對產品熟悉程度不一,導致企業稍有自身特定的情況,就會要花費大量工時研究調整,甚至最終無法按需交付。

先來幾組單點登入方案演示吧,本系列後繼文章會深入它們的具體實現方式以及適用場景。 

單點登入-sso:概述與示例

單點登入-sso:圖示和講解

單點登入-sso:一鍵執行的完整**

本作品採用知識共享署名-非商業性使用-相同方式共享 2.5 中國大陸許可協議進行許可。

如您有任何疑問或者授權方面的協商,請給我郵件。 

專欄:百寶門-sso顧問

單點登入系統SSO概述 單點登入講解(1)

本專案主要講解的是單點登入系統的原理及其實現。本章主要講解的是單點登入系統的概述部分。單點登入顧名思義就是從乙個系統進行登入操作,就可以訪問其他附近的系統。單點登入避免了使用者重複的登入過程,在整個核心業務中起到了乙個基層的輔助作用。關鍵步驟 當使用者對業務系統發起訪問請求的時候,我們將其攔截下來,...

SSO單點登入

單點登入sso single sign on 就是在多個系統共存的環境下,使用者在一處登入 就不用在其他系統中登入,也就是使用者的一次登入就可以得到其他所有系統的信任。要點 儲存信任 驗證信任 最簡單實現sso的方法就是cookie,實現流程 然而cookie有如下缺點 1 cookie不安全 2 ...

sso單點登入

一 什麼是單點登入sso single sign on sso是一種統一認證和授權機制,指訪問同一伺服器不同應用中的受保護資源的同一使用者,只需要登入一次,即通過乙個應用中的安全驗證後,再訪問其他應用中的受保護資源時,不再需要重新登入驗證。二 單點登入解決了什麼問題 解決了使用者只需要登入一次就可以...