Sina SSO 登陸過程分析

來源:互聯網
上載者:User
近日研究了 Sina CAS 的登陸過程,發現其實 sina 的 sso 實現了 yale-CAS 並且添加一丁點新的東西,基本認證過程互動流程仍然未變。其獨創的一點是實現了 Ajax 單點登陸,算是比較牛。實現原理是 iframe+ javaScript 回呼函數。

一,初級 SSO

初級的 SSO ,就是在同一個頂級網域名稱下,通過種入頂級網域名稱的 Cookie ,來實現統一登陸。例如:

單點登陸地址: sso.xxx.com/login.jsp

應用 1 : web1.xxx.com/login.jsp

應用 2 : web2.xxx.com/login.jsp

應用 3 : web3.xxx.com/login.jsp

登陸流程:

情況一:(使用者從未登陸)

1, 使用者訪問 web1.xxx.com/login.jsp , web1 重新導向到 sso.xxx.com/login.jsp

2, 使用者輸入驗證,成功。 sso.xxx.com 種入 .xxx.com 域 Cookie 的 tokenid ,重新導向到 web1.xxx.com/login.jsp, web1.xxx.com 訪問 .xxx.com 域 Cookie 的 tokenid 判斷出已經登陸,系統登陸完成。

情況二:(使用者已經登陸)直接登陸。

二, Sina SSO

Sina 實現了跨網域名稱的統一登陸,本質也是基於 Cookie 的。如果使用者禁用 Cookie ,那麼無論如何也是登陸不了的。例如: Sina SSO 伺服器是 login.sina.com.cn/sso/login.php

,微博登陸地址為 weibo.com/login.php 。通過回呼函數和 iframe 實現了跨頂層網域的登陸。

認證過程具體流程:這裡只介紹使用者從未登陸過。

1, 使用者進入 weibo.com/login.php

2, 使用者輸入使用者名稱稱。輸入完畢後,當使用者名稱輸入框焦點失去的時候,頁碼通過 ajax 向伺服器login.sina.com.cn/sso/prelogin.php 發送請求,參數為 user (剛剛輸入的使用者名稱)。服務返回 server time 和nonce 認證,通過回呼函數寫入到 javascript 變數中。

3, 使用者輸入密碼,點擊登陸,頁面 POST 請求(注意是 ajax 請求,並不是 login.php 發送的 ),

login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.12) ,請求的發起的頁面是 weibo.com/login.php 中的一個不可見 iframe 頁面,參數為第二步得到的 server time 和 nonce ,已經使用者名稱稱和加密的密碼。返回種入Cookie tgt 在 login.sina.com.cn 下。同時修改 iframe 地址為 weibo.com/ajaxlogin.php?ticket=XXXXXX, 注意ticket 非常重要,這是使用者登陸和服務的憑證。

4, iframe 訪問 weibo.com/ajaxlogin.php?ticket=XXXXXX ,使用者登陸,返回種入 cookie 在 .weibo.com 下,記錄使用者登陸資訊。

5, 通過 js 再次訪問 weibo.com/login.php ,因為 cookie 已經寫入,登陸成功,伺服器發送 302 ,重新導向到使用者首頁面。 Weibo.com/userid 。

6, 至此,登陸過程完成。

重點:互動過程和密碼密碼編譯演算法分析。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.