OpenID 和 OAuth 有什么區(qū)別?
時(shí)間:2024-01-19 08:42:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2024-01-19 08:42:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
OpenID 和 OAuth 有什么區(qū)別?: OpenID是Authentication
OAuth是Authorization
前者是網(wǎng)站對(duì)用戶進(jìn)行認(rèn)證,讓網(wǎng)站知道“你是你所聲稱的URL的屬主”
后者其實(shí)并不包括認(rèn)證,只不過(guò)“只有認(rèn)證成功的人才能進(jìn)行授權(quán)”,結(jié)果類(lèi)似于“認(rèn)證+授權(quán)”了。OAuth相當(dāng)于:A網(wǎng)站給B網(wǎng)站一個(gè)令牌,然后告訴B網(wǎng)站說(shuō)根據(jù)這個(gè)令牌你可以獲取到某用戶在A網(wǎng)站上允許你訪問(wèn)的所有信息
如果A網(wǎng)站需要用B網(wǎng)站的用戶系統(tǒng)進(jìn)行登錄(學(xué)名好像叫federated login),它可以
- 選擇OpenID認(rèn)證,然后通過(guò)attribute exchange獲取用戶的昵稱或其他通過(guò)OpenID暴露出來(lái)的用戶屬性,或者
- 選擇OAuth認(rèn)證,獲取到token后再用token獲取用戶昵稱或其他允許被訪問(wèn)的信息
關(guān)于OAuth的授權(quán),不能說(shuō)是濫用,是OAuth Service Provider對(duì)OAuth的權(quán)限沒(méi)有細(xì)分。好比我只需要用戶的昵稱性別,你卻把修改昵稱性別的權(quán)限也授權(quán)給我了(雖然我不一定會(huì)去用)。這個(gè)錯(cuò)在OAuth Service Provider