天天看點

CAS 實作單點登入 .NET MVC

單點登入

    Single Sign On,簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,使用者隻需要登入一次就可以通路所有互相信任的應用系統。 

單點登入原理

  • 存儲信任
  • 驗證信任 

CAS

  Central Authentication Service  是 Yale  大學發起的一個企業級的、開源的項目,旨在為 Web  應用系統提供一種可靠的單點登入解決方法(屬于 Web SSO)。CAS  開始于 2001  年, 并在 2004  年 12  月正式成為 JA-SIG  的一個項目。 

CAS執行身份驗證

  

CAS 實作單點登入 .NET MVC

  下面是這個身份驗證協定中的主要步驟。

  • 使用者嘗試使用應用程式的 URL 通路應用程式。使用者被重定向到 CAS 登入 URL,采用的是 HTTPS 連接配接,他請求的服務的名稱作為參數傳遞。這時向使用者顯示一個使用者名/密碼對話框。
  • 使用者輸入 ID 和密碼,CAS 對他進行身份驗證。如果身份驗證失敗,目标應用程式根本不會知道這個使用者曾經試圖通路它 —— 使用者在 CAS 伺服器上就被攔住了。
  • 如果身份驗證成功,CAS 就将使用者重定向回目标應用程式,并在 URL 中附加一個稱為 ticket 的參數。然後,CAS 嘗試建立一個稱為 ticket-granting cookie 的記憶體 cookie。這是為了以後進行自動的重新驗證;如果存在這個 cookie,就表示這個使用者已經成功地登入了,使用者就不需要再次輸入他的使用者名和密碼。
  • 應用程式要檢查這個 ticket 是否正确,以及是否代表一個有效使用者;檢查的方法是,打開一個 HTTPS 連接配接來調用 CAS serviceValidate URL,并作為參數傳遞 ticket 和服務名稱。CAS 檢查這個 ticket 是否有效,以及是否與請求的服務相關聯。如果檢查成功,CAS 就将使用者名傳回給應用程式。

CAS服務搭建

環境準備:

  • Tomcat7.2  http://apache.fayea.com/tomcat/tomcat-7/v7.0.63/bin/apache-tomcat-7.0.63.exe
  • JDK6         
  • CAS Service 版本    cas-server-3.4.8-release   http://download.csdn.net/detail/zhu_r_d/5487373 
  • Win7 虛拟機   

配置服務端 

  • 解壓CAS Service,将解壓後的檔案中modules檔案夾中的cas-server-webapp-3.4.8.war檔案拷貝的%TOMCAT_HOME%\webapps下,并修改檔案名為:cas.war  
    CAS 實作單點登入 .NET MVC
  • 配置host  
CAS 實作單點登入 .NET MVC

  配置完成後,啟動tomcat ,浏覽器輸入 https://test.cas.com:8080/cas    

CAS 實作單點登入 .NET MVC

  對于提示,必須使用HTTPS,不用理會,如果你有證書也可以配置在tomcat下,不要嘗試使用keytool生成,利用keytool生成的證書,用戶端在調用時無法保證有效的連結。  

CAS 實作單點登入 .NET MVC
CAS 實作單點登入 .NET MVC

  輸入使用者名admin和密碼admin登入則會出現

CAS 實作單點登入 .NET MVC

  至此,說明服務端配置成功。

CAS用戶端搭建  

  下載下傳.NET CAS client  https://wiki.jasig.org/display/CASC/.Net+Cas+Client    http://downloads.jasig.org/cas-clients/dotnet/dotnet-client-1.0.2-bin.zip  

  源碼下載下傳 https://github.com/Jasig/dotnet-cas-client/tree/master/DotNetCasClient  建議下源碼,友善調試與測試  

  用戶端服務配置:https://wiki.jasig.org/display/CASC/.Net+Cas+Client  

  建立項目  TestMvcCas MVC4.0架構

CAS 實作單點登入 .NET MVC

  安裝DotNetCasClient NuGet  http://www.nuget.org/packages/DotNetCasClient

CAS 實作單點登入 .NET MVC

  也可以将源碼附加到項目中,友善調試

CAS 實作單點登入 .NET MVC

  配置web.config

  參見  https://wiki.jasig.org/display/CASC/.Net+Cas+Client   每個節點配置 這上面有詳細的介紹

   

CAS 實作單點登入 .NET MVC

配置頁面權限驗證

CAS 實作單點登入 .NET MVC

運作解決方案,會看到未登陸的使用者,會自行跳轉到cas登陸界面

CAS 實作單點登入 .NET MVC

登陸成功之後,則會正常跳轉,也可以看到站點下存在相應的COOKIE

CAS 實作單點登入 .NET MVC

目前登陸使用者采用預設的admin賬号,如果需要內建資料庫,可以參考下

http://my.oschina.net/indestiny/blog/200768

下一篇争取能實作資料庫內建和自定義傳回資料

參考資料

  http://blog.csdn.net/cutesource/article/details/5838693

  http://www.coin163.com/java/cas/cas.html

  http://www.ibm.com/developerworks/cn/web/wa-singlesign/

  http://www.cnblogs.com/zhenyulu/archive/2013/01/27/2878935.html 

作者:釋迦苦僧

出處:http://www.cnblogs.com/woxpp

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。

生活不易,五行缺金,求打點

CAS 實作單點登入 .NET MVC