区分认证和授权

上文我们所知,OAuth 解决了代理授权的问题,但是它没有提供一个认证用户身份的标准方法。你可以这样认为:

  • OAuth2.0 用于授权
  • OpenID Connect 用于认证

如果你无法区分这些术语,则以下是它们之间的区别:

  • 认证(Authentication)是确保通信实体是其所声称的实体。
  • 授权(Authorization)是验证通信实体是否有权访问资源的过程。

换言之,认证关注的是你是谁,授权关注的是你有什么权限。

OpenID Connect

OpenID Connect 是在 OAuth2.0 协议之上的标识层。它拓展了 OAuth2.0,使得认证方式标准化。

OpenID是在OAuth基础上的一个扩展,扩展出了一个ID Token。流程上与OAuth并无明显差异,只是从AS(OAuth中的授权服务器)多返回了一个id_token。这个ID Token 就是 JWT

参考资料

https://betterprogramming.pub/the-complete-guide-to-oauth-2-0-and-openid-connect-protocols-35ebc1cbc11a
https://cloud.tencent.com/developer/news/661655

Logo

Authing 是一款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务

更多推荐