我目前正在开发一个 Spring Boot 单体服务器,并计划使用 Spring Security 实现身份验证和授权流程。我研究过OAuth2,看到过认证服务器、资源服务器、客户端服务器分开开发的例子。
这三个服务器功能可以在一个单片服务器中同时实现吗?这样的结构会带来什么问题吗?
通常在 OAuth 中,您会分离关注点以实现未来的增长:
资源服务器
这些提供后端业务功能,您可能有很多,例如:
客户
客户端是您的前端应用程序,可提供出色的客户体验,例如:
通过使用 API,所有这些都可以访问相同的后端逻辑。
授权服务器
这提供了低级别的安全性。您只有其中之一,但它可以满足上述所有组件的需求。将其视为您插入的专业 API。AS 颁发令牌来保护 API 并支持多种方式来验证用户身份。
设计您的设置
如果您愿意,您可以开发一个单一的应用程序,但 AS 绝对应该是独立的。这将为您节省大量时间,因为正确支持标准的良好 AS 需要多年的时间来开发。要开始 OAuth 开发,我的博客文章可能会给您一些想法。