天天看點

OpenID 和 OAuth 的差別

使用者希望通路其在example.com的賬戶

example.com (在openid的黑話裡面被稱為“relying party”) 提示使用者輸入他/她/它的openid

使用者給出了他的openid,比如說”http://user.myopenid.com”

example.com 跳轉到了使用者的openid提供商“mypopenid.com”        (example.com向myopenid.com請求憑證)

使用者在”myopenid.com”(openid provider)提示的界面上輸入使用者名密碼登入        (myopenid.com驗證使用者身份)

“myopenid.com” (openid provider) 問使用者是否要登入到example.com           (向使用者确認是否向example.com提供憑證)

使用者同意後,”myopenid.com” (openid provider) 跳轉回example.com        (example.com驗證myopenid.com的憑證)

example.com 允許使用者通路其帳号

使用者在使用example.com時希望從mycontacts.com導入他的聯系人

example.com (在oauth的黑話裡面叫“consumer”)把使用者送往mycontacts.com (黑話是“service provider”)      (向mycontact.com發送授權請求)

使用者在mycontacts.com 登入(可能也可能不用他的openid)    (驗證使用者身份)

mycontacts.com問使用者是不是希望授權example.com通路他在mycontact.com的聯系人       (mycontact.com向使用者确認是否授權)

使用者确定                                                                            (使用者确認授權)

mycontacts.com 把使用者送回example.com                  (mycontacts.com向example.com授權)

example.com 從mycontacts.com拿到聯系人            (通常,拿到使用者資訊就意味着證明了使用者身份)

example.com 告訴使用者導入成功

認證不一定授權,但授權必然包含了認證。

繼續閱讀