如何在两个不同的环境(沙箱和生产)中共享相同的ClientId

时间:2017-04-18 21:42:39

标签: identityserver4

我正在使用IdentityServer4开发API进行身份验证。我已经将商店配置为使用EF Core,我也使用Asp.Net Identity。 为了改善用户体验,我们希望他们在注册后在沙盒上尝试我们的API,并为他们提供自动生成的ClientId和ClientSecret。一旦他们想要投入生产,我们就想为生产环境生成另一个ClientSecret。

换句话说,除了秘密之外,我们希望重用ASP.NET Identity用户和IdentityServer客户端。

我们为沙盒和制作提供了不同的网址,数据库等。目前我们使用两种不同的IdentityServer服务器和数据库,但我们正在考虑为这两种环境共享相同的IdentityServer服务器和数据库。

这种情况是否受到支持?

编辑1: 正如对travis.js响应的评论所述,环境应该被称为实时和沙箱而不是生产和沙箱,因为这两种环境都是为我的客户准备的。

编辑2: 嵌入IdentityServer和Asp.Net Identity的应用程序是管理注册的应用程序,因此live和sandbox API会要求此应用程序进行身份验证。

1 个答案:

答案 0 :(得分:0)

尝试在不同的网址下重复使用相同的IdentityServer app / db会遇到问题。 IdentityServer实例的主机名是使其独特且具有权威性的部分。据我所知,一个实例不能拥有两个不同的权威名称。

听起来像是一个基本的数据迁移问题,即您只需要将一些沙箱配置数据向上移动到生产数据库中。

无论什么应用程序处理用户注册和“上线”功能都可以完成这项工作。它只需要访问这两个数据库。