【发布时间】:2019-02-09 07:52:27
【问题描述】:
我正在维护 SReview,这是一个基于 mojolicious 的 web 应用程序,它需要运行大量需要更改数据库状态的后台任务。这些作业需要大量的 CPU 时间,而且数量很多,因此根据安装的大小,让多台机器运行这些后台作业可能是明智的。尽管如此,可以访问数据库的机器数量还是相当有限的,所以目前我让它们直接访问数据库,使用直接的 PostgreSQL 连接。
这是可行的,但有时后台作业可能需要在恶意网络的另一端运行,因此可能不太需要一个额外的开放网络端口来访问数据库。因此,我正在考虑实现某种基于 Web 的 RPC 协议(可能使用 JSON),并使用 OAuth2 保护访问。但是,我以前从未详细使用过该协议,并且可以使用一些指导来确定使用哪个授权流。
可以通过两种方式向运行这些后台作业的机器提供所需的凭据:
- 作业调度程序能够为后台作业指定环境变量或命令行选项。然后,这些将被传递到实际运行作业的机器上,这些机器可以假定是安全的。但是,这意味着在某些情况下,作业调度程序本身也需要通过 OAuth2 进行身份验证,最好是可以随意重新启动它而无需一次又一次地进行身份验证。
- 由于运行作业的计算机数量可能相当有限,因此应该可以为每台计算机创建计算机凭据。但是,在这种情况下,能够在销售机器上并行运行多个会话非常重要。
哪种拨款流程最能支持这些模型中的任何一种?
【问题讨论】:
标签: perl oauth-2.0 mojolicious