具有两个(测试和生产)环境的一个 OAuth 应用程序

One OAuth application with two (test and prod) environments

考虑一个开发人员门户,开发人员可以在其中创建 OAuth2 应用程序 Acme Pay。开发人员获得 client_idclient_secretaccess_tokenrefresh_token,以及可以配置的 redirect_uri 字段。

应用程序的状态将处于 test/sandbox 环境中,开发人员可以在沙盒环境的约束下进行游戏。

作为下一步,一旦开发人员在本地实现了应用程序并希望将其推送到产品中,我正在构思一个流程,开发人员可以在该流程中简单地将应用程序的环境切换到开发人员的实时环境他们在其中获得同一应用程序的新令牌对以及特定于环境的访问权限和速率限制的门户。

我是一名项目经理,试图了解 OAuth2 是否可以实现这样的实现。

我的动机是防止开发人员创建两个用于测试和生产的 OAuth 应用程序。我注意到 Stripe 中有类似的流程。尽管在我的例子中,开发人员将能够在一个帐户下创建多个 OAuth 应用程序,因此我觉得每个应用程序最好有两个在应用程序级别并行共存的环境,以提供更好的开发人员体验。

OAuth 客户端配置是为部署管道的每个阶段单独创建的。有时在门户中,措辞是 Create Application 但这些只是与安全相关的配置设置。

每个管道阶段的单独配置使设置能够随着时间的推移可靠地进行版本控制并首先进行测试。此外,变更所有权通常由不同的人控制并在不同的时间完成。虽然部署通常以参数化和可靠的方式自动化。

不过,实际的应用程序代码只应构建到二进制文件中一次。然后将其下推到管道中,二进制文件与特定于阶段的配置相结合。