定义要与localhost vs域一起使用的客户端的最佳方法

时间:2017-12-19 04:31:45

标签: identityserver4

所以我启动并运行了我的Identity Server项目,并设置了要发布的项目。现在,当我在IS4的配置中定义我的客户端时,我想我必须将我的重定向URL设置为我的发布域,如下所示:

new Client{
    ...
    RedirectUris = { "localhost:5002/signin-oidc", "myclient.com/signin-oidc" }
    ...
}

是否包含localhost和domain正确的方法?

我认为没关系,因为攻击者必须拥有我的客户端密码才能登录。或者最好是设置两个独立的客户端(例如'client'和'client_local'),并在启动时请求相应的客户端?

1 个答案:

答案 0 :(得分:0)

有两种方法:

1)使用配置文件:您可以将客户端存储在JSON文件中并在启动期间加载它们。对不同的环境使用不同的JSON文件。

实施例。 clients.Development.json for Development and clients.Production.json in production environment;但是,客户端将在内存客户端中,客户端配置中的任何更改都需要重新启动应用程序。

2)使用永久存储:使用数据库服务器存储配置和操作数据。用于开发的本地数据库和用于生产的数据库。

请参阅此docs,该示例使用Entity Framework进行持久存储,但您已绑定到Entity Framework或任何ORM。您可以选择为IdentityServer编写自己的数据访问层。这将允许您在不重新启动应用程序的情况下更改客户端配置,因为将从数据库中检索数据。