Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Identityserver4 如何在两个不同的环境(沙箱和生产环境)中共享相同的ClientId_Identityserver4 - Fatal编程技术网

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

Identityserver4 如何在两个不同的环境(沙箱和生产环境)中共享相同的ClientId,identityserver4,Identityserver4,我正在开发一个使用IdentityServer4进行身份验证的API。我已经将商店配置为使用EF Core,我也在使用Asp.Net标识。 为了改善用户的体验,我们希望他们在注册后在沙盒上尝试我们的API,并为他们提供自动生成的ClientId和ClientSecret。一旦他们想要投入生产,我们就要为生产环境生成另一个ClientSecret 换句话说,我们希望重用ASP.NET Identity用户和IdentityServer客户端,但机密除外 我们有不同的网址,数据库等沙箱和生产。目前,

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

换句话说,我们希望重用ASP.NET Identity用户和IdentityServer客户端,但机密除外

我们有不同的网址,数据库等沙箱和生产。目前,我们正在使用两个不同的IdentityServer服务器和数据库,但我们正在考虑为这两个环境共享相同的IdentityServer服务器和数据库

是否以任何方式支持此场景

编辑1: 正如在对travis.js的回复的评论中所述,环境应该称为live and sandbox,而不是production and sandbox,因为这两个环境对我的客户来说都是生产就绪的

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

尝试在不同URL下重用相同的IdentityServer应用程序/db时会遇到问题。IdentityServer实例的主机名是唯一性和权威性的一部分。据我所知,一个实例不能有两个不同的权限名称

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


任何处理用户注册和“上线”功能的应用程序都可以做到这一点。它只需要访问两个数据库。

也许我不应该将生产和沙盒分开,而是将live和沙盒分开,因为它们都是为我的客户准备好生产的。sandbox和live都应该为用户使用相同的数据(电子邮件和密码),但每个环境(live和sandbox)的客户端凭据不同。