2016-08-01 167 views
2

我的問題是,實施OAuth 2.0身份驗證是否使我能夠通過OpenID Connect提供程序進行身份驗證?OAuth 2.0和OpenID Connect

例如,Vert.x提供OAuth 2.0身份驗證。如果實現它將足以啓用對OpenID Connect提供者的身份驗證?

在此先感謝。

回答

1

是的,OpenID Connect分層在OAuth 2.0之上/向後兼容。因此,任何OAuth 2.0客戶端庫都將能夠根據OIDC服務器進行身份驗證,並根據需要使用標準OAuth 2.0訪問令牌從UserInfo Endpoint中讀取用戶配置文件。

1

一般來說,這已經足夠了,因爲OpenId Connect是OAuth 2.0規範的擴展。

的OAuth 2.0和OpenID連接之間的main difference的是,在端部的OAuth 2.0服務器(在get-token請求的響應)發送access_token(通常是一個UUID字符串,但也可以是JWT),然後在客戶端應用程序可以使用它訪問OAuth 2.0服務器(REST)API。對API的調用超出了OAuth 2.0規範(這就是爲什麼Facebook,Google和其他人都有自己的OAuth連接器)。

的ID連接提供程序發送到底兩者access_tokenid_token,後者正在JWT和包含用戶數據(名字,姓,電子郵件等)。或者,OpenId Connect提供商可能不會發送id_token,但期望調用UserInfo Endpoint來返回用戶數據。

因此,您可以使用「原始」OAuth 2.0客戶端,並從OpenID Connect Provider獲取access_token。然後,您可以獲取該令牌並向UserInfo端點運行其他HTTP請求,解碼數據並實現OpenId Connect功能。