第 8 章 保护 REST 服务
本章内容:
- 使用 OAuth 2 保护 API
- 创建授权服务器
- 将资源服务器添加到 API
- 使用 OAuth 2 安全 API
您有没有使用过代客泊车服务?这是一个简单的概念。当您去去商店、酒店、剧院或餐厅,把车钥匙递给门口的服务人员,他们会给您找个停车位。然后,当您回来时,他们会把您的车还给您。大概是因为我看了太多次“春天不是读书天”电影,我总是不愿意把我的车钥匙交给一个陌生人,怕他们不能替我好好保管我的车。
尽管如此,代客泊车涉及到信任他人照看您的汽车。许多的较新的汽车提供“代客泊车钥匙”,这是一种只能用来打开车门和启动发动机的特殊钥匙。这样,您授予的信任的数量在范围上是有限的。泊车人员不能用专用钥匙打开手套箱或行李箱。
在分布式应用程序中,软件系统之间的信任至关重要。即使是在一个简单的情况下,当客户端应用程序使用后端 API 时,重要的是客户端是可信的,并且任何其他未授权人试图使用 API 都将被阻止。和泊车人员一样,您授予客户的信任仅限于履行其职责所需的功能。
保护 REST API 与保护基于浏览器的 web 应用程序不同。在本章中,我们将研究 OAuth2,一个专门为 API 创建的授权规范。在此过程中,我们将了解 Spring Security 对 OAuth2 的支持。首先,让我们先看看 OAuth 2 是如何工作的。