作者:禅与计算机程序设计艺术
1.简介
OAuth(开放授权)是一个开放标准,它允许用户提供一个标识符让应用得以安全地请求特定的服务(如照片,视频或联系人数据)。该标准由 IETF 管理,并得到了行业的广泛支持。OAuth 允许用户直接授权给第三方应用其需要的权限,而无需将用户名和密码等敏感信息暴露给这些应用。
OAuth2 是 OAuth 的最新版本,具有更好的安全性、更强的可伸缩性和易用性。它允许第三方应用获得仅限特定资源的访问权,并且不会向资源所有者授予超过所需的权限。
本文会介绍 Spring Security 在使用 OAuth2 时,一般涉及到的一些术语,并结合具体的代码案例,介绍如何通过 Spring Security 来对接 OAuth2 。
2.基本概念术语说明
OAuth2 协议流程
上图为 OAuth2 协议的一个典型流程图。客户端(Client)需要通过认证服务器申请一个令牌(Token),然后通过资源服务器(Resource Server)获取自己需要的资源。其中,认证服务器就是颁发令牌的服务器,通常部署在互联网的某个位置。资源服务器则是托管需要保护资源的服务器,也是可以访问受保护资源