我有两个网站/服务器应该安全地在两个方向共享一些信息。例如,当访问者在站点A上执行某些操作时,数据将从服务器A发布到服务器B.当用户执行其他操作时,我可能需要从服务器B获取数据到服务器A.
我愿意使用http协议进行服务器之间的通信。两台服务器都使用Django。有什么概念可以进行安全连接?我应该查看哪些python和django库进行服务器端通信?
现在我想到的是RESTful Web服务,某种安全令牌或私钥和公钥。我应该搜索哪些概念?
答案 0 :(得分:2)
基于您希望坚持使用Django / Python的假设,每个应用程序上的休息Web服务端点都是合理的。
我建议使用Django Rest Framework并使用预先配置的“共享密钥”(您可以定期轮换)使用token based authentication。
使用基于令牌的身份验证,您的密钥将在HTTP标头中传递,因此您应该在安全HTTP连接下使用端点运行。有关如何安全设置此内容,请参阅Django docs on SSL/HTTPS。
如果传输数据的触发器是时间敏感的Web请求,那么您应该考虑使REST Web服务请求异步。您可以将Celery任务用于此目的。 Celery也会很不错,因为它会为你提供一些选项,例如自动重试,以及如何处理同步服务中的错误。