




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Domino單點登錄LTPAtoken生成原理一、 WebSphere與Domino之間的SSO首先讓我們來了解一下Websphere與Domino之間是怎么完成SSO的: 1、 Web用戶向Websphere發起一個登錄請求。2、 Websphere判斷為合法用戶,登錄成功。3、 生成ltpatoken,將ltpatoken寫入cookie。 這樣,當Web用戶后續向Domino發起登錄請求時,Domino會找到存放在cookie信息中的ltpatoken信息,并且認為這個ltpatoken有效,完成在domino的登錄過程
2、。那么這里會有2個疑問。第1個,Domino怎么會找的到Websphere存放的cookie,這就是為什么配置SSO的時候需要2個系統是在同一個DNS域下面,因為瀏覽器cookie共享的限制,跨域不能共享cookie嘛(當然也能用一些其他的手段生成跨域的cookie,這樣其實通過一定的開發是可以讓LTPATOKEN跨域的,本案例不討論這個問題)。第2個問題,domino找到這個token之后,憑什么認識這個ltpatoken,并且認為它有效呢,所以要求domino和Websphere在生成ltpatoken的時候就有某種約定。這就是為什么配置Domino SSO文檔的時候需要引入Websphe
3、re的密鑰了。有了這些前提Domino和Websphere之間就能互相認識對方生成的ltpatoken,并且從中讀出需要登錄的用戶名,只要用戶名匹配得上(這就是為什么W和D需要用同一個LDAP目錄),該用戶就完成登錄了。 以上就是簡單的Websphere與Domino之間SSO的原理。當然其實SSO過程還沒有這么簡單,比如還需要驗證ltpatoken的有效期等。現在我們知道實現SSO的關鍵在于LtpaToken,Websphere與Domino之間采用LtpaToken來共享認證信息。那么基本上任何一個系統只能要完成以下2件事情,它就有可能參與LtpaToken認證的SSO方案了:1、
4、0; 能生成一個有效的LtpaToken提供給別人。2、 能解析一個別人生成的LtpaToken。另外,可能還有一些要求:1、 參與SSO的系統使用同樣的密鑰生成LtpaToken,稱為公鑰。2、 參與SSO的用戶帳號名稱在各系統中一致,因為每個系統從Token中讀出了用戶名之后必須要正確關聯到本地對應的用戶進行登錄。3、 參與SSO的系統必須在同一個DNS域下面(跨域的問題前面提過)。4、 最后當然需要采用B/S方式,瀏覽器必須支持Cookies了。 一、 LtpaToken組成原理通過了解LtpaToken的
5、組成原理,我們就可以自己編碼生成和解析LtpaToken了。首先一個LtpaToken的合成公式如下:token = BASE64(headercreation timeexpiration timeusernameSHA-1 hash)解釋:n Header: LtpaToken 版本(長度4),Domino的固定為0x000x010x020x03n Creation time: 創建時間戳(長度8),
6、格式為Unix time比如2010-03-12 00:21:49為4B99189Dn expiration time:過期時間戳(長度8) 同上n username: 用戶名(長度不定) n SHA-1 hash:SHA-1校驗和(長度20)如下圖: 上面的SHA-1校驗和,又是由前面所
7、說的密鑰和其余的Token資料合并而成,合成公式如下:SHA-1 hash = SHA-1(headercreation timeexpiration timeusernameshared secret)所以,如果有人篡改了Token,那校驗和就與修改后的Token匹配不上了,這樣Token一旦生成,有人想要修改它的信息,比如改成別的用戶名,是不可能的。二、 Domino如何處理LtpaToken查看一下domino的Web SSO配置文檔:1、 Domino生成LtpaToken的密鑰存放在LTPA_DominoSecret字段2、 LTPA_TokenE
8、xpiration字段存放失效分鐘數。3、 LTPA_TokenName字段存放Token表示在cookie的name.如下圖: 再加上上面分析過的LtpaToken組成原理,我們大概可以知道domino是怎么生成LtpaToken的了。詳細的debug信息可以通過在notes.ini里面配置條目DEBUG_SSO_TRACE_LEVEL=2之后去查看日志。Domino解析LtpaToken步驟:1、 Base64解碼LtpaToken。2、 截取最前面20字節,最后面20字節,中間部分就是用戶名。如果用戶名在本系統中不正確,返回無效的LtpaTo
9、ken。3、 截取最后面20字節,是SHA-1校驗和。用Token中的其余部分和本系統中的密鑰生成新的SHA-1校驗和,如果2個校驗和不匹配。返回無效的LtpaToken。4、 當前服務器時間必須大于創建時間,小于失效時間。否則返回無效的LtpaToken。5、 最后解析通過了,完成用戶的登錄 6、 在Java應用上實現生成和解析LtpaToken的測試2.1 生成LtpaToken的測試 文件列表:Base64.javabase64編碼和解碼的類Bundle.jav
10、aproperties資源文件的處理類LtpaConfig.javaToken資料配置類。LtpaToken.java產生和解析LtpaToken的類LtpaConfig_zh_CN.properties配置文件 第一步,配置LtpaConfig_zh_CN.properties,填好ltpaSecret。這個值本身是base64編碼。如果是和domino做sso。需要從domino的web sso文檔中獲取,見上一張圖。tokenDomain信息是生成bbb cookie的時候用的,本測試中暫不用到。tokenExpiration是生成LtpaToken時用的,本測試中暫也不用。&
11、#160;第二步,添加一個測試的類:在main函數中輸入以下測試代碼: Date date = new Date();String user="CN=Admin/O=S3D"LtpaToken generate = LtpaToken.generate(user, date, new Date(date.getTime() + 20*60000); System.out.println(generate); 以上代碼為CN=Admin/O=S3D生成一個20分鐘有效期的LtpaToken。輸出: 到domino去驗證Token的有效
12、性:1、 復制上面產生的Token.2、 打開IE,輸入Domino服務器的首頁位置:bbb:/devp.s3daaa/3、 出現登錄頁面,這里不輸入用戶名和密碼。直接在IE位置欄里面輸入:javascript:alert(document.cookie="LtpaToken=AAECAzRCOTlEOTQxNEI5OURERjFDTj1BZG1pbi9PPVMzRKb6cFIxqIX+lGjQhDDWaeN4IvXe");以上紅色部分是復制的Token4、 彈出對話框,cookie設置成功,按F5刷新頁面,成功以Admin身
13、份登錄Domino主頁,LtpaToken測試成功。 2.2 解析LtpaToken的測試下面測試解析一個由Domino產生的LtpaToken。1、 打開一個新的IE窗口,輸入Domino服務器的首頁位置:bbb:/devp.s3daaa/2、 輸入一個普通用戶的帳號/密碼,正常進入首頁。3、 在IE位置欄輸入:javascript:document.write(document.cookie)4、 復制出Cookie中的LtpaToken的值,如:AAECAzRCOTlEQTZGNEI5QTgzM
14、kZDTj1saXVnYW5nMi9PPWVzc2VuY2VzZNmGPcgH0NQxnrhgnn1/JrPkHgg= 在測試類中添加以下測試代碼:LtpaToken ltpa = new LtpaToken("AAECAzRCOTlEQTZGNEI5QTgzMkZDTj1saXVnYW5nMi9PPWVzc2VuY2VzZNmGPcgH0NQxnrhgnn1/JrPkHgg="); /從token中取出用戶名 System.out.println(ltpa.getUser(); /驗證一個token是否有效 if(ltpa.isValid() System.out.println(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 宣傳部合同管理制度
- 家具安裝部管理制度
- 家電售后部管理制度
- 待付款合同管理制度
- 德克士供應管理制度
- 快消品內控管理制度
- 快遞網點誰管理制度
- 總公司資質管理制度
- 總經辦經費管理制度
- 感知網安全管理制度
- 中醫藥師承考試卷及答案
- 2025年上海奉賢區初三二模中考數學試卷試題(含答案詳解)
- 汽車維修工(汽車車身涂裝修復工)理論知識考核要素細目表
- 2025年企業安全生產知識競賽全套復習題庫及答案(完整版)
- 新大學語文試題及答案
- 長沙市望城區2024年八年級《數學》下學期期末試題與參考答案
- 人際關系與有效溝通培訓課件
- 動漫人物教學課件
- 深基坑土方開挖專項施工方案專家論證
- 2025年部編版語文六年級下冊期末復習計劃及全冊單元復習課教案
- 電大本科《人文英語4》期末題庫及答案
評論
0/150
提交評論