O documento fornece instruções para configurar uma instalação do RM para suportar múltiplos clientes (multi tenancy) utilizando um único banco de dados e ambientes compartilhados. As etapas incluem criar aliases de banco para cada cliente, configurar arquivos de configuração para mapear aliases a domínios/subdomínios e garantir que os serviços e aplicativos reconheçam automaticamente o alias/cliente correto.
1. 26/10/2022 16:13 Configurando o RM Multi Tenancy (Multi Alias) - Linha RM - TDN
https://tdn.totvs.com/pages/releaseview.action?pageId=287079669 1/3
Tempo aproximado para leitura: 7 minutos
Configurando o RM Multi Tenancy (Multi Alias)
Objetivo
O objetivo deste documento é auxiliar na configuração de uma instalação do RM para trabalhar no modelo multi tenancy, ou seja, ter apenas uma
instalação e atender várias bases/alias sem a necessidade do usuario selecionar alias no RM.exe e no portal. Alem disso a configuração permite que os web
services fornecidos pelo HOST trabalhem sem a configuração de alias default para atender as requisições.
Pre-requisitos
1. Configuração da infraestrutura para fornecer um nome de rede, dominio ou sudominio para cada Tenant.
Ex.: cliente1.totvs.com.br, cliente2.totvs.com.br, clienteN.totvs.com.br
Todos estes direcionando para o mesmo ambiente de instalação.
2. Utilizar o configurador global.
3. Utilizar o TOTVS Update.
Configurando o HOST como Multi Tenancy
1. Fazer a instalação do Server do RM no servidor e configurá-lo como servidor de atualização conforme documentação disponível neste link.
2. Criar um alias de banco para cada Tenant e dar um nome que possa ser inserido em um domínio, subdomínio ou nome de recurso de rede.
3. Criar o arquivo de configuração global contendo a tag SubDomainMask respeitando os seguintes critérios:
Vamos supor que você possui dois Tenants onde seus respectivos Alias são: cliente1 e cliente2.
- Se o seus subdomínios forem: cliente1.empresa.com e cliente2.empresa.com então a tag SubDomainMask deve ser [ALIAS].empresa.com
- Se o seus domínios forem: www.cliente1.come www.cliente2.com então a tag SubDomainMask deve ser www.[ALIAS].com
- Se o seus nomes de rede forem: cliente1e cliente2então a tag SubDomainMask deve ser somente [ALIAS]
4. Os arquivos de .config de cada aplicação devem conter apenas a tag configpath, conforme documentação acima relacionada.
5. Seguem exemplos de como devem ficar os arquivos de configuração: RM.AliasManager.exe.config, RM.exe.config
, RM.Host.exe.config, ConfiguracaoRM.config.
A partir da versão 12.1.28, o Multi Tenancy pode ser configurado com o novo formato de configuração global, em JSON: Leia mais.
Exemplo dos arquivos de configuração em formato JSON: RM.AliasManager.exe.config, RM.exe.config, RM.Host.exe.config, Global.config.json.
6. As tags UpdateServer e ServicesHostName devem direcionar para um endereço padrão válido, pois não faz nenhuma diferença, por ser uma tag
relacionada à ambiente e infraestrutura.
Atenção
Observação
Para a execução de TLS 1.1 e 1.2 no Windows 7 é necessário adicionar os registros abaixo, visto que são os protocolos de comunicação ativos
atualmente e que por padrão não são ativos na versão Windows7:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client]
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server]
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client]
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server]
"DisabledByDefault"=dword:00000000
Arquivo disponível para download: Arquivo.reg
Importante
As configurações de Portal e HOST são totalmente independentes, ou seja, uma não implica absolutamente nada na outra. Portanto pode-se utilizar
somente o multi tenancy do portal, sem nenhuma configuração adicional no host.
Atenção
Especificamente para a tag ServicesHostName recomendamos utilizar um endereço válido que exponha os serviços, mas sem um tenant
específico.
Exemplo: tenant.dominio.com
Ao utilizar o WSDL é importante que o cliente de consumo, SOAP UI por exemplo, consiga obter uma resposta deste endereço, mas o cliente
deverá obrigatoriamente trocar o tenant pelo nome correto do seu Alias para consumir o serviço.
ges /… / Smart Client RM
2. 26/10/2022 16:13 Configurando o RM Multi Tenancy (Multi Alias) - Linha RM - TDN
https://tdn.totvs.com/pages/releaseview.action?pageId=287079669 2/3
7. Os arquivos acima devem ficar no diretório de instalação do RM (RM.Net) no servidor.
8. Feito isso os domínios, subdomínios ou nomes de rede devem ser criados de forma compatível com a configuração acima.
9. Feito isso basta acessar normalmente as URLs de serviço, como por exemplo:
a. http://empresa1.totvs.com.br:8051/wsUpdate - Este para baixar o SmartClient e utilizar já com o alias correto de forma transparente.
b. http://empresa1.totvs.com.br:8051/wsReport - Este para gerar relatórios via web service.
c. Após baixar o Smart Client, basta executá-lo que ele já estará configurado corretamente para o Tenant correto.
Obs.: Ao baixar o Smart Client de ambiente Multi Tenancy, as telas de gerenciamento de Alias se comportam da seguinte forma:
- Se baixado na mesma máquina onde está o ambiente server: É possível visualizar e editar apenas o cadastro do Alias do Tenant.
- Se baixado em máquina diferente de onde está o ambiente server: É possível apenas visualizar o cadastro do Alias do Tenant.
Em ambos os casos, na tela de login não é possível alterar o Alias, pois ele carrega apenas o Tenant correto.
Configurando o Portal Corpore.NET e FrameHTML como Multi Tenancy
1. Fazer a instalação do Portal RM no servidor.
2. Criar um alias de banco para cada Tenant e dar um nome que possa ser inserido em um domínio, subdomínio ou nome de recurso de rede.
3. Em todos os alias será necessário deixar em branco o parâmetro URL do Portal em Parâmetros Globais.
4. Configurar a tag SubDomainMask nos arquivos Web.config dos diretórios Corpore.Net e FrameHTML respeitando os seguintes critérios:
Vamos supor que você possui dois Tenants onde seus respectivos Alias são: cliente1 e cliente2.
Ao adicionar o WSDL no SOAP UI, por exemplo teremos o seguinte nas requisições:
O trecho tenant deve ser trocado pelo nome do Alias que representa o tenant do cliente.
Não é possível expor WSDLs específicos por tenant.
Atualmente para o consumo do WebServices via Host através do software SoapUI, foi criada uma tag opcional que pode ser acrescentado no host
(com a porta de escuta do WebApi no TGM):
<add key="SERVICESPORT" value="9001" />
ges /… / Smart Client RM
3. 26/10/2022 16:13 Configurando o RM Multi Tenancy (Multi Alias) - Linha RM - TDN
https://tdn.totvs.com/pages/releaseview.action?pageId=287079669 3/3
- Se o seus subdomínios forem: cliente1.empresa.com e cliente2.empresa.com então a tag SubDomainMask deve ser [ALIAS].empresa.com
- Se o seus domínios forem: www.cliente1.come www.cliente2.com então a tag SubDomainMask deve ser www.[ALIAS].com
- Se o seus nomes de rede forem: cliente1e cliente2então a tag SubDomainMask deve ser somente [ALIAS]
5. A Tag dos arquivos web.config devem ficar desta forma, por exemplo: <add key="SubDomainMask" value="[ALIAS].totvs.com" />
6. A Tag FrameHtmlUrl do web.config do Corpore.Net deve ser preenchida normalmente, sem se preocupar com o tenant, por exemplo: <add
key="FrameHtmlUrl" value="http://localhost:8080/RM" />
7. Feito isso basta acessar os portais normalmente. O seletor de alias não estará mais disponível para selecionar o Tenant, pois o mesmo será resolvido de
forma transparente.
Como funciona?
Com o ambiente configurado, o Portal Corpore.NET, FrameHTML, Web Services (somente expostos pelo HOST, conforme recomendado) e RM.exe farão a
escolha do Tenant de forma transparente. Exemplo:
Criamos apenas UMA instalação do RM e configuramos a tag SubDomainMask com a informação [ALIAS].totvs.com.br nos arquivos de confguração,
confirme orientação acima.
Neste exemplo considero que temos os portais e o servidor de aplicação (HOST) instalado no ambiente.
O primeiro cliente vai utilizar o ambiente, então chamaremos ele de cliente1.
Criamos um alias de nome cliente1 no ambiente.
Criamos um subdomínio público, direcionado para o ambiente de instalação, chamado cliente1.totvs.com.br.
O cliente agora pode acessar o endereço http://cliente1.totvs.com.br:8051/wsUpdate para baixar o SmartClient.
O SmartClient não dará opção para selecionar alias, pois será resolvido de forma transparente.
Os WebServices podem ser listados através do endereço http://cliente1.totvs.com.br:8051/wsPageIndex.
Não será necessário configurar nenhum alias Default.
O portal pode ser acessado pelo endereçohttp://cliente1.totvs.com.br/Corpore.Net e também não terá opção para selecionar alias.
O segundo cliente vai utilizar o ambiente, então chamaremos ele de cliente2.
Criamos um alias de nome cliente2 no ambiente.
Criamos um subdomínio público, direcionado para o ambiente de instalação, chamadocliente2.totvs.com.br.
Basta isso e o cliente2 pode acessar da mesma forma que o cliente1, porem com o endereço cliente2.totvs.com.br.
Em resumo, os dois clientes estão utilizando o mesmo ambiente de forma tranparente e sem a necessidade de se preocupar em selecionar o alias.
Facilidade!
Para adicionar um novo tenant no ambiente de instalação, basta criar o Alias de banco e criar um
dominio, subdomínio ou nome de rede que respeite as regras definidas no parâmetro
SubDomainMask!!
Importante
As configurações de Portal e HOST são totalmente independentes, ou seja, uma não implica absolutamente nada na outra. Portanto pode-se utilizar
somente o multi tenancy do portal, sem nenhuma configuração adicional no host.
Os servidores de portal e servidor de aplicação (HOST) não precisam ser os mesmos, basta fazer as configurações devidas em ambientes separados e
criar os sudomínios dirrecionando-os corretamente.
Ao realizar a configuração no arquivo "hosts", é necessário que o "Nome do Alias" seja adicionado juntamente ao subdomínio.
Exemplo: [ALIAS].empresa.com
multitenancy rm smartclient portal host multi tenant
tenancy ambiente compartilhado servicos_gloabais
todos_paises squad_foundation versao_12_1_25
Política de
privacidade
Termos
de uso
ges /… / Smart Client RM