Let us first discuss what Multitenancy is and why it is useful, then we will jump into how Alfresco supports this Multi-Tenancy and how we can use that feature.
Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). One of the salient features of Cloud is its adoption of Multitenancy architecture. Let us understand this with example there is software which is customizable now different customers wants different types of customization in any particular software. Now typically what is followed is multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations but there is one more option a multitenant architecture, where a software application is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application instance.
Earlier customers were reluctant to accept this because of security concerns but with adoption of cloud it has been proved that it can provide ample security and that leads to acceptance of multi-tenancy architecture.
As far as Alfresco is concerned it supports this feature both on cloud as well as on-premise instance. The Alfresco instance is logically partitioned such that it will appear to each tenant that they are accessing a completely separate instance of Alfresco. Recently Alfresco started to provide its services on cloud where small organization can create its account and use it on cloud which is basically as SaaS. On the other hand you can also use this feature in your on premise instance.
From version 4.1 the multi-tenancy feature is pre-configured out-of-the-box, although it is not enabled by default. It is automatically enabled when the first tenant is created and only admin can manage tenants through Tenant Administration Console.
http://localhost:8080/alfresco/faces/jsp/admin/tenantadmin-console.jspCreate Tenant by following commandcreate <tenant domain> <tenant admin password> [<root contentstore dir>].
Ex. create testmutlit.com @dmin@123 /usr/tenantstores/testmultit
It will create tenant with administrator user having username as email@example.com and password as @dmin@123 which is mentioned in command. All users that the administrator creates can login using <username>@<tenant domain>. The root of the content store directory can be optionally specified; otherwise it defaults to the repository default root content store (as specified by the dir.contentstore property).
New tenant is created and you can see its details by this command
show tenant <domain name>
Now your setup is ready and you can create multiple tenants this way. All the tenants will be isolated from each other and each tenant has its own admin who can create new user and manage other things.