为了保证整个集群环境的安全,内部长连接采用基于IP地址的安全认证机制,服务端对握手请求消息的IP地址进行合法性校验:如果在白名单之内,则校验通过;否则,拒绝对方连接。
如果需要将服务开发给第三方非信任域的消费者,需要采用更加严格的安全认证机制,例如基于秘钥和AES加密的用户名+密码认证机制,也可以采用SSL/TSL安全传输。
对第三方开发的分布式服务框架的服务调用存在三种场景:
- 在企业内网,开放给内部其他模块调用的服务,通常不需要进行安全认证和SSL/TSL传输。
- 在企业内网,被外部其他模块调用的服务,往往需要利用IP黑白名单、握手登录等方式进行安全认证,认证通过之后双方使用普通的Socket进行通信,如果认证失败,则拒绝客户端连接。
- 开放给企业外部第三方应用访问的服务,往往需要监听公网IP(通常是防火墙的IP地址),由于对第三方服务调用者的监管存在诸多困难,或者无法有效管理,这些第三方应用实际是非授信的。为了有效应对安全风险,对于敏感的服务往往需要通过SSL/TLS进行安全传输。