Java 微服务场景下的认证授权,大家是用现成的框架还是自研呢

47 天前
 limyel

如题,最近一直在搞微服务场景下的认证授权,总是感觉力不从心。

我们公司技术很垃圾,所以我想请教一下大家在生产中是用什么呢?

自己写一套合适吗(感觉就是利用过滤器和 AOP ),如果自己写的话需要注意哪些地方(特别是微服务场景下)呢?

2554 次点击
所在节点    程序员
25 条回复
LPJD
47 天前
自己写,问下 chatgpt ,Spring Security 复杂度直线下降 80%。写好后能用几年
zzmark06
47 天前
理论应当框架化,实际自研比重相当大
微服务场景,插件化更重要,让各个服务能尽可能便捷接入。
不过公司内技术垃圾,更推荐丢了煞笔的微服务,

给别人打个广告,权限问题可以看一眼 casbin 这个库,功能比较全面,接入尚且算简单。单点登录(第三方登录)还有它家八竿子打不到的 casdoor ,都挺强悍
ilovey482i
47 天前
采用现成的 API 网关不香吗?你可以看看现成的 API 网关
limyel
47 天前
@zzmark06 真的想丢了微服务,我们公司是一个人负责好几个服务😂,单体架构下 Spring Security 也是眉清目秀,上了所谓的微服务一下子把开发成本拉上去了哎
limyel
47 天前
@LPJD 多谢提醒,我去试试哈
limyel
47 天前
@ilovey482i 意思是说用其他网关吗
521jx123OvO
47 天前
我们使用了 SpringSceurity+SpringAuthonizationServer 技术难度直线提升,现在看 satoken 很眉清目秀
wxw752
47 天前
目前用的是 Spring Security OAuth2.0
lmq2582609
47 天前
sa-token 可以吗
Stevenv
47 天前
satoken 看文档要 star 不用了。
Akitora
47 天前
前段时间刚趟过这坑,建议是要么自己写简单的过滤器拦截器,并且自己签发 token ,验证 token 。

要么引入 Spring Security ,配置成 Resource Server ,配合一个正儿八经的 Oauth2 Authorization Server ,也不一定非得用 Spring Authorization Server ,事实上我嫌弃它太耗内存,用 Go 糊了一个勉强能用的。

这两种方式都不算太麻烦,就怕你非得引入 Spring Security 又想自己签 token 验 token ,那你得把 Spring Security 内部流程理清然后重写好一部分接口实现,真心不推荐。
winRain
47 天前
我有一套完整的微服务认证、鉴权、支持 OAuth2 、SAML 、且可拓展、安全性高的方案,直接开箱即用,要不贵司考虑一下让我直接过去?哈哈哈
dlmy
47 天前
我司 ToB 系统用 Spring Security ,ToC 系统用自研的组件( ToC 系统一般不会使用重量级的框架)。

自研组件就 30 多个类,以微内核 + 插件化 + SPI 的方式组成了过滤器链,可快速插拔。
BarackLee
47 天前
用 JWT 吧,面试的时候还能吹吹水,什么分布式 session 一致之类的,token refresh 这种
gongquanlin
47 天前
sa-token 的文档按 f12 里面有注释,可以去掉 star 限制
limyel
47 天前
@lmq2582609 在用了,目前用 satoken 在网关认证,在各个服务做鉴权,比 Spring Security 上手快...
zzmark06
46 天前
授权是个麻烦玩意,尤其是既要又要,还不想遵循现有标准,更麻烦了
spring security 就是个超级大一统框架,要啥有啥,要啥都麻烦,毕竟起夜级定制太多,也能理解
小项目,这些都屌用没有,找个新一些热门一些的库按基本流程去掉一切定制想法,差不多就是 OK 的了
tairan2006
46 天前
自己写
limyel
46 天前
@Stevenv 钱难挣屎难吃😂,虽然恶心但还是用了
limyel
46 天前
@Akitora 我们现在就是最后一种状态😂,看了一下别人用的 Spring Security Oauth2 ,感觉实现了很多自定义的东西但是不知道为什么要这么做...不过自己写的话上生产会不会有什么安全问题,因为感觉认证授权这套东西要考虑的东西会比较多?框架会不会做的更全面一些

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1029492

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX