Настройте IdentityServer4 ConfigurationStore и OperationalStore в мультитенантной среде - PullRequest
0 голосов
/ 19 сентября 2018

У нас есть веб-API, который использовал IdentityServer4 для аутентификации.Я пытаюсь изменить службу аутентификации для поддержки мультитенантности путем сохранения существующих БД.Таким образом, есть отдельные БД для каждого арендатора.

В настоящее время я пытаюсь настроить ConfigurationStore и OperationalStore.

Опция 01: поскольку у нас есть отдельная БД для каждого арендатора, в эти БД могут быть добавлены связанные таблицы ConfigurationDb и PersistedGrantDb.

Опция 02: использовать общую БД для хранения таблиц, связанных с ConfigurationDb и PersistedGrantDb.

Какой будет наилучший подход?

services.AddIdentityServer()
    // this adds the config data from DB (clients, resources, CORS)
    .AddConfigurationStore(options =>
    {
        options.ConfigureDbContext = builder =>
            builder.UseSqlServer(connectionString,
                sql => sql.MigrationsAssembly(migrationsAssembly));
    })
    .AddOperationalStore(options =>
    {
        options.ConfigureDbContext = builder =>
            builder.UseSqlServer(connectionString,
                sql => sql.MigrationsAssembly(migrationsAssembly));

        // this enables automatic token cleanup. this is optional.
        options.EnableTokenCleanup = true;
        options.TokenCleanupInterval = 30; // interval in seconds
    });

1 Ответ

0 голосов
/ 16 ноября 2018

Не удалось найти способ настроить ConfigurationStore и OperationalStore в отдельных БД.После этого мы настроили их в нашей общей БД.Итак, окончательная структура БД выглядит следующим образом:

  • TenantDB: Общая БД для всех арендаторов.Содержит конфигурации арендатора, такие как имя арендатора, сведения о хосте / домене, строки подключения.И конфигурации ConfigurationStore и OperationalStore.
  • Tenant01DB: Данные об арендаторе 01
  • Tenant02DB: Данные об арендаторе 02
  • Tenant03DB: Данные об арендаторе 03
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...