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

71 天前
 limyel

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

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

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

2672 次点击
所在节点    程序员
25 条回复
fkdog
70 天前
像 OAuth 这种流程可以自己实现,原理也不难。

这种认证授权最大的难点在与安全两个字,大部分开发不是很少涉猎安全领域,自己实现的登陆功能往往都是漏洞百出。很多公司内网系统,随便扫扫,什么 xss 、csrf 、session fixation 都能扫出来。所以对于安全类的功能,不要自己造轮子。

事实上微服务压根就不需要什么 OAuth 。
你单体架构里的 Service 替换成 RPC 调用就是微服务了,用不用 OAuth 跟是不是微服务没有任何关系。
Ashe007
69 天前
一群若知,完全不懂装懂
Ashe007
69 天前
1.从业年龄<3 年
选 Spring Security 方案实现,作用于网关(SpringClou d 的 Gateway/Netflix 的 Zuul),微服务系统的请求都是通过网关同一进入系统内的,在此处进行鉴权&授权。tips:认证授权的核心与 AOP 没有关系
2.从业年龄≥3 年
建议辞职,把岗位让给有能力的人,还自研都出来了 你理解 Oauth2 协议吗?
totoro52
69 天前
我选了 Spring Security ,我单独设计了一个认证服务, 网关去调认证, 写了个注解去扫描每一个控制器的 path ,自动配置入库,分配权限时就是分配这个 path , 一个请求进来了就取 path 去判断, 判断这块也是拿 Spring Security 去做,它自带一大堆 filter 和 handler ,改改就可以轻松完成这些需求,就这样就完成了认证和鉴权。 认证那块我没使用 Security 的 oauth2 ,慎用他, 坑非常多。
totoro52
69 天前
另外你说的 Oauth2 ,这个和微服务有直接关联吗。。。Oauth2 是用来连通两个站点之间的账号体系的授权,好像和微服务没啥关系吧,或者说你的微服务没有网关,每个服务单独一个域名? 为了做域名之间的认证? 那也和 Oauth2 没啥关系,应该和单点登录有关系

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

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

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

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

© 2021 V2EX