MST

星途 面试题库

面试题:安全认证之中等难度:OAuth与OpenID Connect的基本安全特性差异

请阐述OAuth和OpenID Connect在基本安全特性方面存在哪些差异,比如在身份验证、授权范围等方面的不同之处。
16.0万 热度难度
后端开发安全认证

知识考点

AI 面试

面试题答案

一键面试

身份验证

  • OAuth:主要专注于授权,本身并不直接处理身份验证。它允许资源所有者授权第三方应用访问其资源,而不暴露其凭据。例如,用户通过OAuth授权微博应用访问自己的照片,OAuth解决的是“应用能否访问资源”的问题。
  • OpenID Connect:构建在OAuth之上,明确处理身份验证。它提供了一种标准方式,让依赖方(RP)能够确认最终用户的身份,并获取关于用户的基本信息,如姓名、电子邮件等。例如,用户使用微信账号登录某网站,OpenID Connect能让该网站确认用户确实是微信账号所有者,并获取一些基本资料。

授权范围

  • OAuth:授权范围主要围绕对资源的访问权限。例如,一个应用可能被授权只读访问用户的文件,或者读写访问用户的社交媒体发布内容。范围定义了应用对资源的操作能力。
  • OpenID Connect:除了包含类似OAuth的资源访问授权范围,还增加了与身份信息相关的范围。如“openid”是必须的范围,表示请求进行身份验证,“profile”范围可获取用户基本个人资料,“email”范围可获取用户邮箱等。

令牌类型

  • OAuth:通常使用访问令牌(Access Token)来允许第三方应用访问资源,可能还包括刷新令牌(Refresh Token)用于获取新的访问令牌。访问令牌是应用访问资源的凭证。
  • OpenID Connect:在OAuth令牌基础上,引入了ID令牌(ID Token)。ID令牌是一个安全的JSON Web Token(JWT),包含有关用户身份验证的信息,用于依赖方确认用户身份。

交互流程

  • OAuth:典型流程涉及资源所有者、客户端应用、授权服务器和资源服务器。客户端向授权服务器请求授权,授权服务器引导资源所有者确认授权,然后返回授权码,客户端用授权码换取访问令牌,凭此访问资源服务器资源。
  • OpenID Connect:流程在OAuth基础上,依赖方除了获取访问令牌外,还会获取ID令牌。授权服务器在颁发令牌时,会对ID令牌进行签名,依赖方通过验证签名来确认令牌的真实性和完整性,进而确认用户身份。