1. 程式人生 > >單點登入SSO:可一鍵執行的完整程式碼

單點登入SSO:可一鍵執行的完整程式碼

單點登入方案不同於一個普通站點,它的部署比較繁瑣:涉及到好幾個站點,要改host、安裝證書、配置HTTPS。

看到的不少這方面示例都是基於HTTP的,不認同這種簡化:

1. 它體現不出混合HTTP/HTTPS時,單點登出要注意處理的問題;

2. 做單點登入一定要有絕不能走HTTP傳遞使用者登入資訊的基本安全意識。自己“加密”使用者登入資訊之類的方案,大都是不堪一擊的;

為了讓大家可以快速安裝體驗,專門開發了一個一鍵部署執行的小程式。大家在http://file.baibaomen.com/sso/BaibaomenSsoLesson.zip下載解壓完整示例壓縮包到任意盤根目錄,執行其中的 “一鍵配置執行.exe”,即會自動完成所有相關部署配置工作,並開啟瀏覽器訪問相應站點。測試賬號是baibaomen,密碼123456。

注意:因為該程式執行涉及修改host、安裝證書等操作,可能出現安全警告甚至誤刪。可以自行單獨編譯其中OneKeyRunner工程原始碼,會自動重新生成本exe,此時不會再告警,執行即可。

我本地的測試環境是Windows10,IIS 10,.NET4.6。最低配置環境要求IIS7,.NET4.6。

出爐!可一鍵執行的SSO完整程式碼|手把手教單點登入系列三

單點登出已在程式碼中實現。先不在本文著重講解了,有興趣的同學請閱讀程式碼,疑問在評論中交流。如果大家都比較關心該業務,本系列後繼文章會考慮做個專題。

單點登入是一個涉及技術面非常廣泛的領域。本系列第二篇和本文程式碼所提供的方案,屬於一類最基本也最標準的跨域Web單點登入方案。

在具體的SSO實施中,該類方案有兩個明顯的短板:

  1. 只涵蓋了Web應用的單點登入場景。企業的很多客戶端程式、移動端程式也有單點登入需求,比如SAP、Lotus或者企業自身業務應用。像本系列第一篇演示的 VPN、QQ客戶端程式單點登入 就是非Web的單點登入場景。
  2. 要求被整合的子站點做改造。子站必須理解支援本SSO方案的介面和協議。這個對於非常多實際的SSO實施場景來說難以做到,因為大量要整合的站點都是已經上線運行了很久的,甚至都已經找不到對應維護人員的系統,改造風險太大。本系列第一篇演示的 零改造實現百度、CSDN單點登入 就是此例,SSO實施方是無法改造待整合站點的。

網上的單點登入教程和介紹,大部分是止於該類基本的標準方案。很多標準化的產品方案,像

IdentityServer,也都屬於該範疇。

對該類方案的充分理解,是實施SSO的基本功。在此基礎上,後繼文章會結合我的顧問實施經驗,和大家探討如何演化變通,實現真實場景下的各種複雜單點登入需求。

本文主要作為問題回覆貼。執行中有問題的,請在本文回覆交流。

希望成功執行的童鞋也積極回覆反饋,看到你們有所收穫是我最大的動力:)

本文原文地址:http://www.cnblogs.com/baibaomen/p/sso-full-code.html 。轉載請註明。

本系列各篇連結:

單點登入-SSO:概述與示例 http://www.cnblogs.com/baibaomen/p/sso.html

單點登入-SSO:圖示和講解 http://www.cnblogs.com/baibaomen/p/sso-sequence-chart.html

單點登入-SSO:一鍵執行的完整程式碼 http://www.cnblogs.com/baibaomen/p/sso-full-code.html

我的部落格歡迎複製共享,但在同時,請保留原文地址以及我的署名權百寶門-SSO顧問,並且,不得用於商業用途。

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

我的公眾號“百寶門”