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

问题描述 投票:0回答:1

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

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

是否包含localhost和域以正确的方式执行此操作?

我认为这样会好,因为攻击者必须让我的客户端保密以便登录。或者更好的是设置两个单独的客户端(例如'client'和'client_local'),并在启动时请求相应的客户端?

identityserver4
1个回答
0
投票

有两种方法:

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.