-
Notifications
You must be signed in to change notification settings - Fork 26.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dubbo调用鉴权认证方案 #5461
Comments
提一个简单的方案,全局或者每个provider,可以指定allow_apps\deny_apps(block_apps) 备注一下:是控制app背后的ip访问限制 |
@amwei 嗯 你这个确实比较简单,实现也容易很多,基本靠一个provider端的filter会实现了,但是后续对于黑白名单的增加还得重启。上面说的方案引入了一个额外的系统,确实复杂度会提高,但是在安全性和扩展性方面都会有很大的改善,目前我们也在权衡。 |
鉴权服务和各个微服务之间是可信内网通信吗?如果外网负责环境的话是不是还要考虑下HTTPS和TLS的中间人攻击问题,AK/SK下发和更新过程中可能会被中间人截获。 |
当然这样考虑问题就会复杂了 |
我们最近也在做服务身份认证的方案,你这种实现是中心化的实现。 对于服务黑白名单,我们考虑直接用sentinel来做即可,这是 |
这里也贴下我们的方案吧,一起探讨下。 基本流程如上图,流程如下:
性能优化由于token的生成和校验用了非对称加密算法,在性能上有一定的影响,为了解决该问题,我们引入“预生成”和“预校验”,结合内存缓存一起使用。 “预生成”逻辑:(假设每小时产生一个新的token)
“预校验”逻辑:(假设token的缓存失效时间为客户端弃用半小时后)
通过以上两种方式结合:
总结该方案是基于去中心化设计的,而且只解决 |
定期更新可以改为握手时获取加监听变化,利用rpc服务发现的长链接信道。 |
您好,鉴权认证的方案在dubbo-2.7.6中,是否可以使用? |
基本需求:
方案设计:
细节说明
签名过程,调用方可选择签名策略,选择根据调用元信息签名(方法信息、接口信息)和混合参数签名方法。
验签过程:provider收到调用请求时,根据AK查询缓存的SK(如果没有对应的AK,则立刻同步一次鉴权服务),并用同样方法计算signature,检查signature是否相同, 通过则执行调用,否则抛出异常。
鉴权服务接口设计
鉴权服务是Dubbo的外部服务,进行统一管理AK/SK,并为Dubbo应用提供AK/SK下发。
接口地址
https://ip:80/secrets/{appName}
请求方式: GET
返回数据格式: JSON
返回数据定义:
The text was updated successfully, but these errors were encountered: