服务认证
了解 dubbo3 服务认证
功能描述
像支付这样的安全敏感业务可能需要限制匿名调用。在安全增强方面,2.7.5 引入了基于 AK/SK 机制的认证和认证机制,并引入了认证服务中心。主要原理是,当消费者请求需要认证的服务时,会将 SK、请求数据、时间戳、参数等信息传递给服务端,生成对应的请求签名,通过 Dubbo 的 Attahcment 机制携带到对端进行签名验证,只有签名验证通过后才会进行业务逻辑处理。如下图所示
使用场景
如何使用
访问方式
用户需要在微服务网站上填写自己的应用信息,并为应用生成唯一的证书。
在管理网站上提交工单申请使用某个敏感业务服务的权限,由相应的业务负责人审批。审批通过后,会生成相应的 AK/SK 并发送到认证服务中心。
将证书导入到相应的应用并进行配置。配置方法也很简单,以注解方式为例
服务提供者
只需要将
service.auth
设置为 true,表示该服务的调用需要经过认证。param.sign
为true
,表示参数需要进行验证。@Service(parameters = {"service.auth","true","param.sign","true"}) public class AuthDemoServiceImpl implements AuthService { }
服务消费者
只需要配置相应的证书和其他信息,然后在调用这些需要认证的接口之前,会自动进行签名操作。通过与认证服务的交互,用户无需在代码中配置 AK/SK 等敏感信息,并无需重启应用即可刷新 AK/SK,达到动态发放权限的目的。
该方案已提交到 Dubbo 开源社区,基本框架已合并。除了 AK/SK 认证方式外,SPI 机制支持用户自定义认证和加密,适应公司内部基础设施的密钥存储。
上次修改时间:2023 年 2 月 23 日:更新 SEO / img alt (35090e3f9b4)