身份服务器多租户,每个租户数据库的身份表

时间:2019-04-26 10:40:33

标签: identityserver4

我们目前正在构建多租户应用。我们希望拥有一个具有常规configDB和多个Tenant DB的应用程序。我们正在基于http上下文获取租户信息,因此我们编写了自己的连接字符串提供程序。

我们希望每个租户都有身份表。但是我们很难正确设置身份服务器。

我们以前在不需要多租户时使用了此功能,每个APP仅拥有一个数据库

.AddConfigurationStore(options =>
                {
                    options.DefaultSchema = Schemas.Identity;
                    options.ConfigureDbContext = builder =>
                        builder.UseSqlServer(connectionStringProvider.DbConnectionString,
                            sqlOptions => sqlOptions.MigrationsAssembly(migrationsAssembly));
                })
                .AddOperationalStore(options =>
                {
                    options.DefaultSchema = Schemas.Identity;
                    options.ConfigureDbContext = builder =>
                        builder.UseSqlServer(connectionStringProvider.DbConnectionString,
                            sqlOptions => sqlOptions.MigrationsAssembly(migrationsAssembly));
                });

设置身份服务器。现在,仅当我们使用通用的ConfigDB时,它才起作用。但是我们希望将用户存储在租户数据库中。

所以现在打电话给:

app.UseIdentityServer()

有对options.ConfigureDbContext的调用,该尝试尝试设置Db上下文,但是此时我们没有http上下文信息,因此我们无法提供正确的租户连接字符串。

所以问题主要是:如何为每个租户设置多个配置和操作存储,以及如何使用身份服务器进行初始设置?

0 个答案:

没有答案