假设我正在构建一个具有端点的Spring Boot REST服务
/users/myself
/users/myself/books
我有用户和书籍存储在数据库中。
当然,您需要通过身份验证才能访问这些资源,但是每当我搜索“ Spring Rest安全性”时,它基本上就为您提供了三种选择
您几乎看不到有人提议使用会话进行身份验证,这对我来说毫无意义,尤其是在小型独立服务中。这就是原因:
那为什么不使用会话进行身份验证呢?
答案 0 :(得分:0)
通常,动机是围绕API客户端的安全性以及它们与API的连接方式。尤其是当他们是公共客户时,现代安全可能成为热门话题。
OAuth技术可以潜在地简化和外部化您的安全性,例如在我的initial tutorial中,UI或API中的安全代码几乎为零。该API是无状态的,并且状态已外部化为低成本和高可用性的Cloud Authorization Server。
采用正确的设计,令牌的寿命很短(不需要撤销),并且您编写的代码将比使用会话时简单得多。它将支持集群环境中的现代托管,并且更加便携。
在架构上还有很多其他好处-尽管您认为技术上存在挑战是正确的。因此,通常情况下是选择时间进行这种跨越并与您的利益相关者达成共识。