The Curity Identity Server supports multi-tenancy. A tenant can be assigned to each authentication profile, thus allowing to create a logical data silo per organization, subsidiary, customer etc. All data are stored in a single multi-tenant enabled data source which greatly reduces the complexity of database maintenance.
When a tenant ID is configured on an authentication profile then all linked profiles (token and user management profiles) will inherit this tenant. As a consequence, all accounts, credentials, devices, linked accounts, buckets and delegations will all be assigned the tenant ID when persisted. Moreover, a profile can only see and use the data for the tenant ID it is assigned to.
When multi-tenancy is configured, a given user is able to get an account with the same subject (user name, email etc) in a different tenant. However, a subject remains unique in a given tenant.
Before enabling multi-tenancy on a profile, the following requirements must be met:
Note
To check that the database schema is compatible with multi-tenancy, look for the tenant_id column in the accounts table. It is also possible to upgrade an existing database using migration scripts provided in misc/upgrade/9.1-to-9.2 directory. Database schema initialization scripts without multi-tenancy support are provided in Curity Identity Server releases under misc/database-schemas directory.
tenant_id
accounts
misc/upgrade/9.1-to-9.2
misc/database-schemas
Warning
When enabling multi-tenancy on a non-empty authentication profile, all existing data will not inherit the tenant ID and therefore will not be visible to the profile!
To enable multi-tenancy:
:tenantId
A profile without configured tenant ID will be assigned the default tenant.