我的问题是,实施OAuth 2.0身份验证是否允许我对OpenID Connect提供程序进行身份验证?
例如,Vert.x提供OAuth 2.0身份验证。如果实现,是否足以启用针对OpenID Connect提供程序的身份验证?
提前致谢。
答案 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_token
和id_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/