2013-10-10 84 views
13

儘管我之前使用過OAuth 2,但我是Open ID Connect的新手。OAuth 2 access_token vs OpenId Connect id_token

閱讀我所遇到的兩個的access_token教程和文檔和id_token其中的access_token是根據OAuth的生成的隨機唯一字符串2id_token是JSON網絡令牌包含了像的ID信息用戶,算法,發行者和可用於驗證它的各種其他信息。據我所知,API提供者同時提供了access_token和id_token,並且我知道它是爲了向後兼容。

我的問題是是否可以使用access_token和id_token來訪問受保護的資源?或者是僅用於驗證目的的id_token,access_token用於訪問受保護的資源?

回答

24

最初,OAuth和OpenId是爲不同目的設計的:OpenId用於身份驗證,OAuth用於授權。 OpenId Connect是兩者的統一,適用於兩者,但不會改變其原有功能。牢記這一點,你應該能夠發現自己。 ;-)

id_token用於標識已通過身份驗證的用戶,例如,爲SSO。必須使用access_token來證明受保護資源的訪問權限,例如用於OpenId Connect中的userinfo端點。

+0

我有點困惑這個開放的ID連接和oauth2實現。我有一個前端(html,angularjs)和後端 webservice.Now我想在登錄過程中實現基於令牌的機制,所以登錄用戶將發送clientid ,emailid,密碼和後端我會驗證客戶端ID其他憑據後,我會發出一個令牌給用戶,並在該令牌的幫助下用戶將維護該用戶會話。所以,openid連接到哪裏,以及它將如何使用請給我提供一些見解,因爲我真的很困惑請 –

+0

據我所知,你不需要授權,只需要認證。如果是這樣,那麼您應該簡單地使用OpenId或SSO解決方案,但根本不需要OAuth或OpenId Connect。 –

1

access_token可用於調用Auth0中的某些API(例如/ userinfo)或您在Auth0中定義的API。

id_token是智威湯遜,代表登錄用戶。它經常被你的應用使用。

是否可以同時使用access_token和id_token來訪問受保護的資源 ?

不完全,首先,你需要使用id_token登錄,
第二,你會得到一個的accessToken,
最後,使用的accessToken來訪問數據。