Posted on 2011-07-29 11:19
瘋狂 閱讀(937)
評(píng)論(0) 編輯 收藏 所屬分類:
java 、
java安全
OAuth(開(kāi)放授權(quán))是一個(gè)開(kāi)放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問(wèn)該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源(如照片,視頻,聯(lián)系人列表),而無(wú)需將用戶名和密碼提供給第三方應(yīng)用。
OAuth允許用戶提供一個(gè)令牌,而不是用戶名和密碼來(lái)訪問(wèn)他們存放在特定服務(wù)提供者的數(shù)據(jù)。每一個(gè)令牌授權(quán)一個(gè)特定的網(wǎng)站(例如,視頻編輯網(wǎng)站)在特定的時(shí)段(例如,接下來(lái)的2小時(shí)內(nèi))內(nèi)訪問(wèn)特定的資源(例如僅僅是某一相冊(cè)中的視頻)。這樣,OAuth允許用戶授權(quán)第三方網(wǎng)站訪問(wèn)他們存儲(chǔ)在另外的服務(wù)提供者上的信息,而不需要分享他們的訪問(wèn)許可或他們數(shù)據(jù)的所有內(nèi)容。
OAuth是OpenID的一個(gè)補(bǔ)充,但是完全不同的服務(wù)。
認(rèn)證和授權(quán)過(guò)程
在認(rèn)證和授權(quán)的過(guò)程中涉及的三方包括:
- 服務(wù)提供方,用戶使用服務(wù)提供方來(lái)存儲(chǔ)受保護(hù)的資源,如照片,視頻,聯(lián)系人列表。
- 用戶,存放在服務(wù)提供方的受保護(hù)的資源的擁有者。
- 客戶端,要訪問(wèn)服務(wù)提供方資源的第三方應(yīng)用,通常是網(wǎng)站,如提供照片打印服務(wù)的網(wǎng)站。在認(rèn)證過(guò)程之前,客戶端要向服務(wù)提供者申請(qǐng)客戶端標(biāo)識(shí)。
使用OAuth進(jìn)行認(rèn)證和授權(quán)的過(guò)程如下所示:
- 用戶訪問(wèn)客戶端的網(wǎng)站,想操作用戶存放在服務(wù)提供方的資源。
- 客戶端向服務(wù)提供方請(qǐng)求一個(gè)臨時(shí)令牌。
- 服務(wù)提供方驗(yàn)證客戶端的身份后,授予一個(gè)臨時(shí)令牌。
- 客戶端獲得臨時(shí)令牌后,將用戶引導(dǎo)至服務(wù)提供方的授權(quán)頁(yè)面請(qǐng)求用戶授權(quán)。在這個(gè)過(guò)程中將臨時(shí)令牌和客戶端的回調(diào)連接發(fā)送給服務(wù)提供方。
- 用戶在服務(wù)提供方的網(wǎng)頁(yè)上輸入用戶名和密碼,然后授權(quán)該客戶端訪問(wèn)所請(qǐng)求的資源。
- 授權(quán)成功后,服務(wù)提供方引導(dǎo)用戶返回客戶端的網(wǎng)頁(yè)。
- 客戶端根據(jù)臨時(shí)令牌從服務(wù)提供方那里獲取訪問(wèn)令牌。
- 服務(wù)提供方根據(jù)臨時(shí)令牌和用戶的授權(quán)情況授予客戶端訪問(wèn)令牌。
- 客戶端使用獲取的訪問(wèn)令牌訪問(wèn)存放在服務(wù)提供方上的受保護(hù)的資源。
新浪oauth認(rèn)證說(shuō)明:
http://open.weibo.com/wiki/Oauth
豆瓣oauth認(rèn)證:
http://www.douban.com/service/apidoc/auth