微服务常见的认证方案
分布式Session
传统的单体应用的session
,在Spring cloud
微服务架构下,可以采用分布式session机制
,可以将用户的认证信息存储在共享存储(如redis)中,用户会话作为key实现简单的分布式哈希映射,当用户访问微服务时,用户数据可以从共享存储中获取。Spring Session
对分布式Session提供了支持,也与Spring Boot/Cloud
无缝集成。
API Tokens
随着 Restful API
、微服务
的兴起,基于 Token 的认证现在已经相当普遍了。
Token
一般会包含用户的相关信息,其它微服务可以从Token里提取出用户、权限等信息完成鉴权。
基于Token认证的典型流程:
- 用户使用包含用户名和密码的credential从客户端发起资源请求。
- 后端接受请求,通过授权中心,生产有效token字符串,返回给客户端。
- 客户端获得token后,再次发出资源请求。
- 后端接受带token的请求,通过授权中心,获取相关资源,返回给客户端。
优点:
- 服务端无状态:服务端不需要存储Session,因为Token已携带用户的相关信息
- 性能好:校验Token不需要访问远程服务或数据库
- 支持移动端
- 支持跨程序、跨域调用
缺点:
- 每次用户请求需要携带有效token,与Auth服务进行交互验证
- Auth服务可能需要处理大量的生产token的操作,可能存在性能问题
基于Token的认证方案,业界推荐使用 JSON Web Tokens(JWT),它足够简单且支持程度也比较好
分类:
后端
标签:
SpringCloud
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix