multi-tenant 相关问题

软件体系结构中的一个原则,其中单个软件实例在服务器上运行,为多个客户组织(租户)提供服务。

使用 C++ 代码访问 RAD Server 的多租户模式

Embarcadero C++ Builder 11.2 架构师。 我尝试以编程方式访问 RAD 服务器中的多租户信息。没有通过 EMSInternalAPI 提供访问权限来获取该信息,所以我...

回答 1 投票 0

Pgbouncer 在具有多个 DB 的多租户应用程序中的使用场景

到目前为止,根据我的经验,我见过 pgbouncer 用于多客户端、单个 DBMS、单个 DB 场景:即许多主机运行相同的应用程序,连接到单个 DBMS 主机上的相同数据库,.. .

回答 1 投票 0


如何从每个子域rails 1 个数据库切换到1 个数据库

我有一个多租户应用程序,其中所有内容都存储在 1 个 Postgres 数据库中。所有模型都有一个account_id,因此客户可以看到的数据是基于他的account_id的。这很完美,但由于

回答 1 投票 0

在多租户 Azure AD 应用程序中配置的自定义 SAML 声明不会复制到另一个租户中的此应用程序

我们正在使用 WS-Federation 对应用程序的用户进行身份验证。到目前为止,我们使用单租户应用程序,通过应用程序注册在 Azure AD 中创建。我们的应用程序期望获得 user.employeeid

回答 1 投票 0

Quarkus 中的多租户:从 SecurityIdentity 获取租户 ID,而不是请求路径

我正在 Quarkus 中试验 OIDC 多租户。 官方文档中的示例使用请求路径来推断租户 ID,然后根据该路径选择 OIDC 配置。 我想要什么...

回答 1 投票 0

通过 Keycloak 中动态创建的领域确定 Spring Security 中的发行者

我在Keycloak中实现了多个领域的多租户。按照计划,前端应该向 Spring Boot 3 上的后端到前端微服务发出请求,然后通过 Spring Securi...

回答 1 投票 0

Java Spring Data MongoDB 在运行时更改数据库(多租户)

我想在多个数据库中拥有相同的集合结构,如下所示 数据库A: 集合A 集合B 数据库B: 集合A 集合B 假设我使用

回答 1 投票 0

如何使用 firebase admin SDK 创建具有社交提供商的租户?

我在文档中发现只能使用控制台。那是真实的?我认为应该存在一种可以通过 api 做到这一点的方式,不是吗? 参考:https://cloud.google.com/identity-platform/docs...

回答 3 投票 0

当我必须连接到不同租户的 API 时,使用 IHttpClientFactory(在请求之间重用 HttpClientHandlers)是否安全?

我的用例:我正在编写一个需要连接到多租户 API 的应用程序。每个请求的基地址、标头和身份验证将因请求而异。 我遇到了这个想法...

回答 1 投票 0

将表存储到CDB或PDB中?

将表存储在容器数据库或可插拔数据库中有什么区别吗?我是 Oracle 数据库的新手。我有 Enterprise Edition 21。我只是将其用于测试目的。 我已经

回答 1 投票 0

从消费者 Whatsapp 企业帐户(多租户)发送和接收消息

我想构建一个多租户应用程序,消费者必须连接他们的 Whatsapp 开发者帐户并从此应用程序发送 Whatsapp 消息。可以用whatsapp clo 来做吗...

回答 1 投票 0

Quarkus:使用 multitenant=DATABASE 时未指定租户标识符

我正在尝试使用 Quarkus 实现多租户,如此处所述。我添加了 quarkus.hibernate-orm.multitenant=DATABASE 到 application.properties 文件并实现 io.quarkus.hibernate.orm.runt...

回答 2 投票 0

如何在一次请求中查询hibernate6的多个租户?

我在Quarkus中使用了hibernate6中的TenantResolver来进行多租户过滤,当然,在springboot中使用CurrentTenantIdentifierResolver也是同样的问题。我发现 TenantResolve...

回答 1 投票 0

如何在 AWS Cognito 中添加应用程序客户端元数据?

我对AWS Cognito完全陌生,但我们的目标是为租户创建一个API GW端点,以安全的方式将数据上传到带有租户目录前缀的s3存储桶(每个租户都有一个单独的

回答 2 投票 0

如何使用单个电子邮件帐户在 Azure AD B2C 中创建多个帐户?

我需要在 Azure AD B2C 中使用相同的电子邮件地址创建多个用户帐户。处理来自多次登录的用户。两者将被视为不同的用户。我的问题是 可以吗

回答 4 投票 0

Spring Boot - 如何管理同一微服务上的多个租户的配置

如何管理多个租户的 Spring Boot 应用程序中的配置?使用 spring 配置服务器可以实现这一点吗? 例如

回答 1 投票 0

所有租户中的用户都是唯一的[ABP.IO]

有人知道是否可以在所有租户中创建唯一的用户吗? 解释。 User1 在租户1 中创建 User1 在租户2 中创建。 这种方法是框架的“默认”方法...

回答 1 投票 0

迁移多租户.net 5 到 7

我想将多租户从 5 更新为 7 例子 city-a.site.com city-b.site.com 语境 公共类 MemoryDbContext :DbContext { 公共 MemoryDbContext(DbContextOptions 我想将多租户从 5 更新为 7 示例 city-a.site.com city-b.site.com 背景 public class MemoryDbContext : DbContext { public MemoryDbContext(DbContextOptions<MemoryDbContext> options) : base(options) { } protected MemoryDbContext() { } public DbSet<Tenant> Tenants { get; set; } } 租户属性类 public class TenantAttribute : ActionFilterAttribute { private readonly MemoryDbContext _memoryDbContext; public TenantAttribute(MemoryDbContext memoryDbContext) { _memoryDbContext = memoryDbContext; } public override void OnActionExecuting(ActionExecutingContext actionExecutingContext) { var fullAddress = actionExecutingContext.HttpContext?.Request? .Headers?["Host"].ToString()?.Split('.'); if (fullAddress.Length < 2) { //Redirect WWW var redirectUrl = "https://www.example.com"; actionExecutingContext.Result = new RedirectResult(redirectUrl, true); } else { var subdomain = fullAddress[0]; var tenant = _memoryDbContext.Tenants .SingleOrDefault(t => string.Equals(t.Host, subdomain, StringComparison.OrdinalIgnoreCase)); if (tenant != null) { actionExecutingContext.RouteData.Values.Add("tenant", tenant); base.OnActionExecuting(actionExecutingContext); } else { //Redirect WWW var redirectUrl = "https://www.example.com"; actionExecutingContext.Result = new RedirectResult(redirectUrl, true); } } } } 型号 public class Tenant { public int Id { get; set; } public string Name { get; set; } public string Host { get; set; } //City Or Group public int Cog { get; set; } public int MainId { get; set; } public string SubId { get; set; } } 定制服务 services.AddScoped(typeof(TenantAttribute)); 配置服务 services.AddDbContext<MemoryDbContext>(options => options.UseInMemoryDatabase("MemoryDb")); 曾在 .net 5 工作过 public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var context = services.GetRequiredService<MemoryDbContext>(); context.Database.EnsureCreated(); if (!context.Tenants.Any()) { context.Tenants.Add(new Tenant() { Name = "City1", Host = "city-a", Cog = 2, MainId = 1, SubId = "1" }); context.Tenants.Add(new Tenant() { Name = "City2", Host = "city-b", Cog = 2, MainId = 2, SubId = "2" }); context.SaveChanges(); } } host.Run(); } 我在 .NET 7 中尝试过: var builder = WebApplication.CreateBuilder(args); ConfigureLogging(builder.Logging, builder.Environment, builder.Configuration); ConfigureServices(builder.Services, builder.Configuration, builder.Environment); var host = Host.CreateDefaultBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { scope.RunScopedServicec<MemoryDbContext>(); var services = scope.ServiceProvider; var context = services.GetRequiredService<MemoryDbContext>(); context.Database.EnsureCreated(); if (!context.Tenants.Any()) { context.Tenants.Add(new Tenant() { Name = "City1", Host = "city-a", Cog = 2, MainId = 1, SubId = "1" }); context.Tenants.Add(new Tenant() { Name = "City2", Host = "city-b", Cog = 2, MainId = 2, SubId = "2" }); context.SaveChanges(); } } host.Run(); var webApp = builder.Build(); 错误 系统无效操作异常 H结果=0x80131509 消息=未注册类型“Site.DataLayer.Context.MemoryDbContext”的服务。 来源=Microsoft.Extensions.DependencyInjection.Abstractions 堆栈跟踪: 在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider 提供程序,类型 serviceType) 在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider 提供程序) 在计划中。 试试这个: var builder = WebApplication.CreateBuilder(args); ConfigureLogging(builder.Logging, builder.Environment, builder.Configuration); ConfigureServices(builder.Services, builder.Configuration, builder.Environment); var webApp = builder.Build(); using (var scope = webApp.Services.CreateScope()) { scope.RunScopedServicec<MemoryDbContext>(); var services = scope.ServiceProvider; var context = services.GetRequiredService<MemoryDbContext>(); context.Database.EnsureCreated(); if (!context.Tenants.Any()) { context.Tenants.Add(new Tenant() { Name = "City1", Host = "city-a", Cog = 2, MainId = 1, SubId = "1" }); context.Tenants.Add(new Tenant() { Name = "City2", Host = "city-b", Cog = 2, MainId = 2, SubId = "2" }); context.SaveChanges(); } } webApp.Run();

回答 1 投票 0

多租户 ASP .NET 应用程序中的隔离

我正在构建一个多租户 ASP .NET 应用程序。鉴于每个租户都可以动态配置其应用程序(这可能涉及将动态自定义程序集加载到内存中),我需要...

回答 4 投票 0

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