OAuth 2.0和OpenID Connect

时间:2016-08-01 08:00:59

标签: oauth-2.0 openid-connect

我的问题是,实施OAuth 2.0身份验证是否允许我对OpenID Connect提供程序进行身份验证?

例如,Vert.x提供OAuth 2.0身份验证。如果实现,是否足以启用针对OpenID Connect提供程序的身份验证?

提前致谢。

3 个答案:

答案 0 :(得分:2)

总的来说,是的,这已经足够了,因为OpenId Connect是OAuth 2.0规范的扩展。

OAuth 2.0和OpenId Connect之间的main difference是OAuth 2.0服务器最终(在get-token请求的响应中)发送access_token(通常是UUID字符串,但是可以是JWT)然后客户端应用程序可以使用它来访问OAuth 2.0服务器(REST)API。对此API的调用超出了OAuth 2.0规范(这就是Facebook,Google和其他人拥有自己的OAuth连接器的原因)。

OpenId Connect Provider最后发送access_tokenid_token,后者为JWT并包含用户数据(名字,姓氏,电子邮件等) 。或者,OpenId Connect Provider可能不会发送id_token,但希望调用将返回用户数据的UserInfo Endpoint

因此,您可以使用“原始”OAuth 2.0客户端,并从中获取OpenID Connect Provider的access_token。然后,您可以获取该令牌并对UserInfo端点运行其他HTTP请求,解码数据并实现OpenId Connect功能。

答案 1 :(得分:1)

是的,OpenID Connect在OAuth 2.0之上/向后兼容。因此,任何OAuth 2.0客户端库都可以针对OIDC服务器进行身份验证,如果需要,可以使用标准OAuth 2.0访问令牌从UserInfo Endpoint读取用户配置文件。

答案 2 :(得分:-1)

不,因为您无法使用(符合标准的)OAuth 2.0对用户进行身份验证。见http://oauth.net/articles/authentication/