Authentication OAuth与身份验证

Authentication OAuth与身份验证,authentication,oauth-2.0,Authentication,Oauth 2.0,根据这里()和我遇到的许多其他事情。OAuth不是用来处理最终用户身份验证的。在搜索的同时通读上面的文章和其他文章,从如此多的角度一次提供了如此多的信息,以至于很难看透所有这些信息。好的 这是否意味着… A)协议本身不用于处理身份验证,因此,OAuth客户端应用程序应检查“谁”可以根据OAuth提供商授权用户 如果只有用户可以授权第三方应用程序,那么从OAuth提供商接收授权本身不就是身份验证的证据吗?(如果是这样的话,那么OAuth是否可以从Google和Facebook这样的地方访问令牌作为

根据这里()和我遇到的许多其他事情。OAuth不是用来处理最终用户身份验证的。在搜索的同时通读上面的文章和其他文章,从如此多的角度一次提供了如此多的信息,以至于很难看透所有这些信息。好的

这是否意味着…

A)协议本身不用于处理身份验证,因此,OAuth客户端应用程序应检查“谁”可以根据OAuth提供商授权用户

如果只有用户可以授权第三方应用程序,那么从OAuth提供商接收授权本身不就是身份验证的证据吗?(如果是这样的话,那么OAuth是否可以从Google和Facebook这样的地方访问令牌作为身份验证呢?)

B)OAuth客户端应用程序无法信任使用OAuth对用户进行身份验证,因此必须在其旁边提供另一种声音验证机制

如果是这样的话,那么我点击的每一个网站“登录[提供商]”(没有其他补充认证方案)的认证都是错误的

在我看来,如果只使用受信任的特定OAuth提供者,那么这个流就可以推断身份验证

  • 应用程序请求使用受信任的提供商登录
  • 用户被定向给提供商进行授权(只有用户可以授权)
  • 然后,应用程序从提供商处请求并接收令牌,并在必要时将用户添加到应用程序数据库中

  • 令牌被放入安全cookie或JWT中,并返回给用户,以便在后续访问中显示


  • OAuth2访问令牌的目的是将一些访问权限(作用域)从用户委托给客户端应用程序。因此,应用程序将用户重定向到身份验证提供商(OAuth2服务器),该提供商对用户进行身份验证,并询问用户(同意步骤)是否希望将某些访问权限(应用程序请求的范围)委托给应用程序

    如果客户端应用程序接收到访问令牌,它可以在以下位置获取元数据-例如用户(资源所有者)的用户名。这样,OAuth2就可以用于身份验证。但是访问令牌的主要目的是委派一些权限。例如,如果第三方应用程序希望将其数据保存到用户的Google Drive,则需要Google发布的访问令牌,其作用域允许其访问Google Drive


    如果只想在客户端应用程序中使用OAuth2进行身份验证(以获取用户身份),则可以使用(OAuth2扩展)及其ID令牌,该令牌采用JWT格式,并包含有关通过身份验证提供程序验证的用户的信息。这更适合于“使用…登录”功能。

    OAuth2访问令牌的目的是将一些访问权限(范围)从用户委托给客户端应用程序。因此,应用程序将用户重定向到身份验证提供商(OAuth2服务器),该提供商对用户进行身份验证,并询问用户(同意步骤)是否希望将某些访问权限(应用程序请求的范围)委托给应用程序

    如果客户端应用程序接收到访问令牌,它可以在以下位置获取元数据-例如用户(资源所有者)的用户名。这样,OAuth2就可以用于身份验证。但是访问令牌的主要目的是委派一些权限。例如,如果第三方应用程序希望将其数据保存到用户的Google Drive,则需要Google发布的访问令牌,其作用域允许其访问Google Drive


    如果只想在客户端应用程序中使用OAuth2进行身份验证(以获取用户身份),则可以使用(OAuth2扩展)及其ID令牌,该令牌采用JWT格式,并包含有关通过身份验证提供程序验证的用户的信息。这更适合于“使用…登录”功能。

    回答不错,但据我所知,令牌内省应该只由受保护的资源(或资源服务器)使用,而不是由客户端使用。允许客户端检索令牌详细信息可能导致泄漏敏感数据。感谢Florent的评论。诚然,自省RFC只讨论了可以调用它的受保护资源。但我没有发现对其他客户有任何限制。例如,谷歌将其
    /tokeninfo
    公开。尽管如此,最好记住,根据配置的不同,某些客户端可能无法访问内省端点。回答不错,但据我所知,令牌内省应该仅由受保护的资源(或资源服务器)使用,而不是由客户端使用。允许客户端检索令牌详细信息可能导致泄漏敏感数据。感谢Florent的评论。诚然,自省RFC只讨论了可以调用它的受保护资源。但我没有发现对其他客户有任何限制。例如,谷歌将其
    /tokeninfo
    公开。尽管如此,最好记住,根据配置的不同,某些客户端可能无法访问内省端点。