这是场景。防火墙外的用户在浏览器中执行UI操作。浏览器对系统A进行REST API调用(并在通过防火墙的入口点或附近进行身份验证和授权)。系统A(在公司网络防火墙内)对系统B(也在公司网络防火墙内)进行REST API调用。
考虑到在系统A的入口点已经发生了身份验证和授权,从系统A到系统B的“内部”REST API调用有多少安全性?
答案 0 :(得分:6)
与其他任何事情一样,它取决于所涉及数据的敏感程度,以及风险水平与组织希望花费的金额。
通常,使用强大的SSL(https连接)被认为是足够好的。您可能需要包含身份验证机制,如果您需要审核哪个System A
提交了请求 - 为此您可以使用以下任何一种:客户端证书,HTTP身份验证(基本或摘要),用户名/密码作为请求参数,IP地址映射,API密钥等。
对于system->系统调用,如果客户端系统没有更改(即不是Web浏览器或主动更改客户端库),您甚至不需要“真正的”证书 - 强大的自签名证书是好的足够了,因为你将它分发给你的客户端系统,他们都知道源没有第三方签名就有效。
如果数据非常敏感,您可以使用物理上分离的网络或VPN来专用客户端和服务器之间的连接。
答案 1 :(得分:2)
对于初学者来说,如果两者都在私有子网中,那么已经有了相当大的安全性。如果您有任何理由相信外面的人可以连接到该API,那么请在允许执行任何调用之前检查一个安全的API密钥。
答案 2 :(得分:0)
新的(2018+)最佳实践将是以与保护外部服务完全相同的方式保护内部服务。
为什么?
因为超过60%的数据披露来自内部来源。内部系统与外部系统一样可能破坏数据,因此您需要具有与外部系统相同的控件。