【问题标题】:OAuth 2.0 and OpenID ConnectOAuth 2.0 和 OpenID 连接
【发布时间】:2016-12-06 05:32:55
【问题描述】:

我的问题是,实施 OAuth 2.0 身份验证是否使我能够针对 OpenID Connect 提供者进行身份验证?

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

提前致谢。

【问题讨论】:

    标签: oauth-2.0 openid-connect


    【解决方案1】:

    一般来说,是的,这就足够了,因为 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 功能。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2016-08-31
          • 1970-01-01
          • 2021-02-26
          • 2018-07-09
          • 1970-01-01
          • 2014-08-28
          • 1970-01-01
          • 2020-06-13
          • 1970-01-01
          相关资源
          最近更新 更多