springcloud之服务间权限实现(personal)

前景提要: 由于之前的工作项目无论是水平还是垂直都是单体架构的,稍微有微服务的影子的也仅仅是SOA 差分了,具体详见soa和微服务概念,没有真正使用过微服务,那就尝尝鲜吧,毕竟新环境也不能总舒适的copy之前项目 满足于实现功能吧,写本篇时已经抽离了RBAC,服务基于nacos注册中心和sentinel流量监控。今天在设计busi-provider涉及跨服务需要鉴权,网上搜索下普遍两种,

1)在gateway网关层做统一认证:通过用户校验后,传递用户信息到header中,后台做服务在收到header后进行解析,解析完后查看是否有调用此服务或者某个url的权限,然后完成鉴权

2)网关不做处理,各服务各自处理:provider借助拦截器或者AOP校验控制层的注解 或 从服务内部发出的请求,在出去时进行拦截,把用户信息保存在header里,然后传出去,被调用方取到header后进行解析和鉴权

3)设计对外访问的接口增加一个微服务,这个微服务只做查询聚合与数据转换,这样鉴权也只需要对这个微服务做处理。结构是 gateway -> api-provider -> micro1-provider 
                                              -> micro2-provider
 

 方案潜在问题:

1)在Zuul或者Gataway中进行校验统一认证有个现象,我没尝试过这个方案,不过仔细想会烦所,特别是网关的URL和后端Service的URL不同的情况,需要做很多判断来决定那些资源是否需要进行拦截,不如(2)利用redis每个服务单独成立一套体系。3) 可以尝试,不过我不想动RBAC代码了,留个技术债吧

代码待续~

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值