Spring boot 开发的微服务相互间的调用通信用什么方式保证安全
一. 背景
微服务架构下,我们的系统根据业务被拆分成了多个职责单一的微服务。
每个服务都有自己的一套 API 提供给别的服务调用,那么如何保证安全性呢?
不是说你想调用就可以调用,一定要有认证机制,是我们内部服务发出的请求,才可以调用我们的接口。
需要注意的是我们这边讲的是微服务之间调用的安全认证,不是统一的在 API 官网认证,需求不一样,API 网关处的统一认证是和业务挂钩的,我们这边是为了防止接口被别人随便调用。
二. 方案
OAUTH2
Spring Cloud 可以使用 OAUTH2 来实现多个微服务的统一认证授权
通过向 OAUTH2 服务进行集中认证和授权,获得 access_token
而这个 token 是受其他微服务信任的,在后续的访问中都把 access_token 带过去,从而实现了微服务的统一认证授权。
JWT
JWT 是一种安全标准。基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息信息的合法性;如果验证成功,会产生并返回一个 Token,用户可以使用这个 token 访问服务器上受保护的资源。
感觉这 2 种好像没多大区别呀,其实是有区别的:OAuth2 是一种授权框架 ,JWT 是一种认证协议
无论使用哪种方式切记用 HTTPS 来保证数据的安全性。
三. 用哪种
常用用建议用 JWT, 轻量级,简单,适合分布式无状态的应用
用 OAUTH2 的话就麻烦点,各种角色,认证类型,客户端等等一大堆概念
展开阅读全文
版权声明:
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。