Microsoft Passport & Windows Live ID Service

來源:互聯網
上載者:User
Microsoft Passport

統一的登入認證服務,MS維護使用者的帳號、密碼,提供登入認證服務
認證機制:
1. 網站加入Passport Network時,得到公開金鑰。網站與Passport Server之間的通訊可以使用數位簽章、加密方式,數位簽章和加密參考http://www.cnblogs.com/RicCC/archive/2007/03/11/WSE-Security.html
2. 網站將登陸認證委託給Passport Server
3. Passport Server對使用者登入認證成功之後,將PUID(Passport Unique ID)、認證時間等資訊打包產生ticket(票據),發送給網站(簽名、加密)
4. 網站解開票據得到認證結果
需要處理的方面:
1. 網站不能每次都向Passport Server驗證登陸資訊,因此將ticket存在cookie中緩衝。Passport Server無法訪問網站的cookie,所以存cookie的動作必須由網站操作
2. ticket需要有有效期間的管理。例如30分鐘的有效時間,ticket到期需要重新到Passport Server請求新的ticket
3. 多網站登入問題。比如使用者已經通過網站A進行了Passport認證,Passport Server會在用戶端記錄自己的cookie資訊,使使用者在訪問加入了Passport Network的網站B而又需要登入認證時,可以實現後台自動登入
4. 退出登入。在cookie中儲存各個已登入網站,退出時對每個網站調用登出處理頁面
Passport Server的cookie資訊:
MSPAuth: MS Passport Authentication,儲存加密的ticket,其中包括:最後重新整理時間、最後手動登入時間(與自動登入區別)、密碼標記以及其他標記
MSPSec: MS Passport Security,支援SSL的瀏覽器會儲存該cookie值,使用HTTPS協議,內容包括用SSL編碼的PUID和密碼,用於自動登入
MSPVis: MS Passport Visited Sites,儲存當前登入之後訪問過的,退出登入時需要回call的網站列表,存放的是網站ID列表,不加密

詳細處理流程:
   
1. 第一次登入
a). 使用者在網站1請求需要登入認證的頁面,網站1檢查cookie發現沒有登入,給使用者顯示一個登陸提示資訊
b). 使用者點擊登入按鈕,登入認證請求直接委託給Passport Server
c). 因為是第一次登入,Passport Server向使用者顯示登入頁面(Passport Server讀取自己的cookie可以判斷使用者在Passport Server上的登入認證情況)
d). 使用者向Passport Server提交帳號、密碼等認證資訊
e). Passport Server進行登入驗證,驗證成功後產生2份票據(票據包含使用者的PUID、時間戳記等資訊),1份以QueryString方式傳給網站1(這份使用網站的祕密金鑰加密),1份儲存在Passport Server網域名稱的cookie中(MSPAuth,這份使用Passport Server的祕密金鑰加密)。另外也在Passport Server網域名稱的cookie中產生MSPSec、MSPVis項。最後將使用者介面重新導向到網站1
f). 網站1將票據記錄到cookie,正常顯示使用者請求的頁面
說明:
設計Passport時,在步驟a的時候,網站1有2種處理方式
一是直接顯示一個網站1自己的登入介面,讓使用者提供帳號、密碼,由網站1自動向Passport的登入認證頁面提交,這種方式存在一個問題,即使用者將帳號、密碼暴露給了網站1
另外一個是上面描述的流程,網站1僅顯示一個登陸提示資訊的介面,使用者點擊登入按鈕後重新導向到Passport的登入認證頁面去,這樣使用者的帳號、密碼僅提供給Passport Server
關於Passport Server將票據返回給網站1,也可以有2種處理方式。一是每個網站定義一個登入成功後的處理頁面,接受票據寫入cookie,然後再重新導向到最初請求的頁面;另一種是直接由最初請求的頁面進行登入成功後的處理操作,可以採用公用處理方法實現,Passport認證成功後就直接將票據傳給最初請求的頁面
後續的認證驗證,網站1直接讀取cookie可以判斷出來,如果有票據到期策略,則網站需要處理票據到期,重新請求票據

2. 單點登入
   
結合1中第一次登入,單點登入的處理是比較好理解的。不同之處在於Passport Server接收到登陸認證請求之後,從Passport Server的cookie中讀取資訊,知道使用者已經登入,因此不需要再向使用者顯示Passport的登入介面,直接使用cookie中Passport Server的票據,為網站2產生票據並發送給他
說明:
設計Passport實現SSO,單點登入網站2時,網站2不可避免需要向Passport Server進行一次認證請求的互動處理,因為Passport Server和網站2之間都無法互訪問cookie,而網站2的cookie中沒有票據資訊
只是類似1.第一次登入中的說明,在介面流程設計上可以有些變化,例如網站2可以不用向使用者顯示登入資訊介面,直接將登陸請求委託給Passport Server,因為對於網站2來說,其處理方式就是一個第一次登入的處理流程

3. 退出登入
   
詳細處理流程:
a). 使用者在某個網站,例如網站2點擊退出按鈕,退出登入的操作直接委託給Passport Server
b). Passport Server從cookie讀取已登入網站列表,逐個網站執行退出登入操作(包括清除網站自己的cookie票據資訊等),另外Passport Server也需清除自己的cookie(與本次登入相關的)
c). 重新導向到網站2退出登入後的返回介面

4. 到期策略
給每個網站產生的票據,其中可以包含到期策略資訊
票據中包含使用者最後一次輸入密碼登陸的時間戳記,票據最後一次在Passport Server上重新整理的時間戳記。如果網站票據到期,網站重新向Passport Server提交認證請求,Passport Server驗證登陸情況,重新整理時間戳記,重建票據發送給網站
對於Passport Server的票據資訊,也可以定義到期策略(Time Window,時間窗),當Passport Server的票據到期時,會要求使用者重新輸入帳號密碼進行登入。考慮Passport Server的票據是否設計重新整理機制等,否則一般的情況可能是在瀏覽器關閉時將Passport Server票據置為到期

5. 安全登入、自動登入
登入認證可以採用SSL方式,這將要求網站的返回地址也是基於SSL的,使用SSL時在Passport Server的cookie中記錄MSPSec項
使用MSPSec中的資訊可以進行自動登入,MSPSec的儲存時間長

Widnows Live ID Service

Live ID Service在Passport的基礎上進行了擴充,定義了Resource Provider、Application Provider等,不僅僅是登陸認證服務,而成為一個多方的資源、應用的整合平台

概念:
1. Application provider: 應用提供者
2. Consent token: 許可標記,內容包括delegation token、refresh token、可用資源和操作、到期時間等,他是使用者通過Live ID Service,給Application Provider提供的授權許可檔案,指示某個Application Provider可以使用該使用者的哪些資源,可以進行哪些操作等。consent token有到期時間,到期之後使用refresh token重新從Live ID Service重新整理
3. Delegation token: Live ID Service提供給Application Provider,作為Application Provider向Resource Provider請求服務時的認證資訊,內容包括使用者ID、Applicatio ID、使用者許可的Offer詳細資料、到期資訊等。Application Provider無法解開delegation token,只有Resource Provider才可解開。delegation token同樣包含到期資訊,使用refresh token重新整理
4. Refresh token: 可以說他是使用者對某個Application Provider許可的一個唯一標記,在使用者的整個授權期間都有效,可以用來重新整理consent token、delegation token,他只能被Live ID Service的renewal service解開使用
5. Resource Provider: 資源提供者
6. Offer: 包括一系列資源,以及對每個資源可以進行的巨集指令清單

整體過程分為頒發許可(Granting Consent)和使用許可(Using Consent)2個方面
Granting Consent需要使用者互動,即由使用者決定某個Application Provider可以對自己的哪些資源做什麼操作,使用許可不需要使用者互動,Application Provider根據Consent token在後台自動使用Resource Provider提供的offer(即資源服務)
   

參考:
Microsoft Passport 101

Introduction to Windows Live ID

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.