服务和外部世界的身份验证可以使用单点登录网关,比如可以通过位于服务和外部世界的网关来做一些验证。
(本图来自《微服务设计》一书)
那么微服务之间的身份验证大家都是怎么做的呢?在我所遇到的一个常见做法就是什么也不做,实时上无论是之前使用的dubbo或者现在使用的公司自研的rpc服务调用框架,都是默认边界内允许一切。认为在一个内部的安全网络中是无须验证的,大家彼此之间是可信的,只要进了这个门,就是一家人。
然而,如果攻击者入侵了你的网络,那么接下来就几乎没有任何防备了。这个时候,该怎么办呢?如果入侵者拦截并读取了你正在发送的数据,然后篡改了数据怎么办?
以下是《微服务设计》中给到一些解决方案:
1、https来传输。虽然保证了不被篡改,但内部网络中使用https?而且https的数据还不能被缓存。总是感觉有点奇怪。
2、使用SAML或OpenID Connect。
3、使用客户端证书。
4、HTTP之上的HMAC。
5、API秘钥(常用的是公钥私钥对)。
大家公司所使用的微服务框架中,有没有微服务之间的身份验证和授权?都是怎么做的?
欢迎大神们分享您宝贵的经验到留言区。
ps:今天先尝试下,如果效果好,以后我也搞送书什么的,甚至可以送一些电子科技产品,哈哈哈。
本文分享自 ImportSource 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!