O Protheus possui integração com o TOTVS Identity, que visa aumentar a segurança e produtividade ao diminuir as tarefas e custos atrelados a esta atividade.
O Provisionamento consiste na passagem de informações do ERP Protheus para o portal do TOTVS Identity feita através de uma sincronização de dados. Tais informações são efetuadas separadamente por grupo de empresa e contém informações como: Item de menu, Consulta Rápida, Cadastro de Grupos e Cadastro de Usuário.
Para a realização da sincronização, é importante que o usuário cadastrado no Protheus, tenha um e-mail configurado para ele.
Para configurar a Integração do Protheus com TOTVS Identity, siga os passos abaixo:
Configure a seção [HTTP] ou [HTTPS]no arquivo appserver.ini do Servidor de Aplicação do Protheus, conforme exemplo:
Exemplo HTTP - Seção [HTTP] - TOTVSTEC - TDN
* Importante que a porta esteja entre 8000 e 9999.
* Configurar a chave ENVIRONMENT com o nome do Ambiente do Protheus
[HTTP]
Enable=1
port=8080
PATH=C:\P12\Protheus_Data\http-root
XFrameOptions = ALLOW-FROM http://hostname:8080
ENVIRONMENT=P12
Um bom truque para verificar se o servidor HTTP do Protheus está respondendo é, usando um computador que não seja o servidor, digitar o seguinte endereço no navegador de Internet:
Em nosso exemplo, o IP do servidor Protheus será 172.18.0.175. A porta do HTTP é 8080. Logo, a chamada ficaria assim:
http://172.18.0.175:8080/time.apl
Ao fazer a chamada, deverá ser retornada uma página com a hora do servidor Protheus. Se ocorreu um erro, o servidor HTTP não respondeu ou a mensagem não chegou ao destino. Isso pode ser devido a alguma restrição de rede, como portas bloqueadas por exemplo.

Para maiores informações sobre como configurar o recurso de HTTP do Protheus, acesse: Seção HTTP - TOTVSTEC
Exemplo HTTPS - Seção [HTTPS] - TOTVSTEC
O primeiro passo é configurar a seção [HTTP] de forma apropriada
[HTTP]
Enable=1
port=8080
PATH=C:\P12\Protheus_Data\http-root
XFrameOptions = ALLOW-FROM *
ENVIRONMENT=P12
Após garantirmos que temos acesso HTTP funcional no nosso localhost na porta 8080 (e conseguimos, por exemplo, acessar uma página web denominada default.htm criada no path acima configurado, via qualquer browser, digitando http://localhost:8080 ou http://localhost:8080/default.htm), podemos passar a configurar a seção [HTTPS] propriamente dita, que em uma de suas formas mais simplificadas é:
[HTTPS]
ENABLE=1
PORT=8081
PATH=C:\P12\Protheus_Data\http-root
ENVIRONMENT=P12
XFRAMEOPTIONS=ALLOW-FROM *
EnableCors=1
Desta forma habilitamos acesso HTTPS na porta 8081.
Podemos configurar também a chave DEFAULTPAGE=<file>, onde <file> é o nome do arquivo que será carregado ao acessar a URL do servidor (http://localhost:8080 ou https://localhost:8081, por exemplo). No nosso caso, seria DEFAULTPAGE=default.htm . O arquivo indicado em DEFAULTPAGE deve existir fisicamente no caminho apontado pela chave PATH.
Além disso, para configuração via HTTPS precisamos adicionalmente configurar a seguinte seção:
[SSLConfigure]
Verbose=0
SSL2=0
SSL3=0
TLS1_0=0
TLS1_1=0
TLS1_2=1
TLS1_3=1
CertificateServer=Certificado de origem
KeyServer=Key do certificado de origem
Debug=0
Bugs=1
State=1
CacheSize=0
Atenção
Clientes com contratos Cloud devem utilizar o DNS.
Solicitar via abertura de chamado a liberação do DNS:HTTP para acesso externo.




Acesse o Aplicativo e faça a configuração:



Diferente da configuração com Smartclient.exe, o sincronismo para Smartclient HTML deve possuir o modo de login tipo SAML. No exemplo abaixo estou utilizando a porta 9090 configurada na sessão HTTP do meu appserver.ini dedicado.

Nota-se que não existe nenhum campo para informar o caminho do Smartclient nesta configuração.
O Smartclient HTML ou WEBAPP é chamado no appserver.ini utilizado para configurar o TOTVS Identity, criando a sessão SAML conforme exemplo:
[SAML]
SMARTCLIENTHTML=http://Ipdamaquina:8080/
Importante
A URL do SMARTCLIENTHTML deve possuir a barra no final, conforme demonstrado acima
No exemplo estou chamado meu Smartclient HTML na porta 8080. Quando chamado via Dashboard automaticamente será direcionado a esta URL.
É obrigatório possuir um AppServer dedicado para configurar o Identity HTML e um para o Identity Desktop, devido às gravações diferentes na pasta SSO.


Não é preciso fazer o provisionamento já possuindo a configuração Desktop realizada.
Os demais itens são semelhantes ao modo executável SAML.
O Provisionamento consiste na passagem de informações do ERP Protheus para o portal do Identity feita através de uma sincronização de dados.
O provisionamento é muito útil quando já se tem um ERP Protheus ativo e deseja-se transferir as informações de usuários, menus e acessos para o Identity de forma automática e manipulá-los através do RAC (Resource access control) do Identity.
Existem dois modos de utilização para esse recurso, o primeiro seria utilizando o servidor REST do Protheus para que o Identity possa enviar todas as alterações que forem feitas no RAC, a segunda maneira seria utilizando o modo PULL request aonde o Protheus se comunica com o Identity para buscar as alterações que tenham sido feitas no RAC.
A grande diferença entre esses 2 modos é que para o REST é necessário que seja aberta uma porta pública no servidor para que o Identity possa se comunicar, e para o PULL não há nenhuma configuração ou liberação de portas.
Servidor REST - 01. Configuração - Framework Sp - TDN
Para utilizar o modo com servidor REST, é necessário ativá-lo.
Lembrando que o REST, assim como o SOAP. é um modelo de transferência de informações via WebServices.
Requisitos Mínimos
Configurar o arquivo .INI do TOTVS | AppServer. Como demonstraremos a seguir:
Seção ‘OnStart’: Seção Padrão Protheus responsável por iniciar o Job.
Seção ‘HTTPJOB’:
Main= Nome configurado para o Job
Environment = Nome do ambiente protheus (configurado no AppServer).
Seção HTTPV11: responsável pela configuração do protocolo HTTP versão 1.1
Enable= Habilita a Seção
AddressFamily=1 Obtém a família de endereço de Socket.
Sockets= Nome da chave onde serão configurados os sockets
Ex: Sockets=HTTPREST, HTTPREST2
TimeOut= Define qual será o tempo, em segundos, de timeout da thread criada e mantida, no servidor do Sistema (ERP), para atender a uma requisição de página dinâmica AdvPL através de uma URL/link com extensão .APL
Seção ‘HTTPREST’ – Configuração dos Sockets.
Port= Especifica a porta em que o HTTP responderá
IPsBind= Valores válidos de IP para estabelecer a conexão.
Veja a seguir os valores válidos para a chave:
<0.0.0.0> - Define que o servidor utilizado fará o bind de todas as interfaces disponíveis (padrão)
<127.0.0.1> - Define que o servidor utilizado fará o bind da interface cujo IP é 127.0.0.1
<IP do Servidor> - Define que o servidor utilizado fará o bind da interface cujo IP é <IP do Servidor>
Seção MaxQueue: Quantidade máxima de requisições que ficam na fila dos sockets
Esses 3 atributos são referentes ao protocolo HTTPS. Para mais informações: Configuração SSL no TOTVS | Application Server.
SSLPublicKey
SSLPrivateKey
SSLPassWord
Seção ‘HTTPURI’:
URL=/scim/v2/extensions - URL REST
PrepareIn=ALL - Quando estiver configurado por 'ALL', será preparado ambiente para todos os grupos de empresa.
OnStart=REST_START
OnConnect=REST_CONNECT
OnExit=REST_EXIT
Instances=1,3,0,1 - Instances - TOTVSTEC
Exemplo abaixo:
[HTTPV11]
Enable=1
Sockets=HTTPREST
[HTTPREST]
Port=9998
URIs=HTTPURI
SECURITY=1
[HTTPURI]
URL=/rest
PrepareIn=All
Instances=1,1,1,1
Stateless=1
[ONSTART]
jobs=HTTPJOB
RefreshRate=30
[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=P12
;Habilita a gravação de logs detalhados para o Identity
TRACE=0
;Habilita a gravação de logs detalhados para o Identity em uma pasta \fluiglog no rootpah
TRACEFILE=0
Alerta de risco
Fique atento ao utilizar o parâmetro de configuração com a chave Security=0, pois isso fará com que as integrações (APIs) não exijam autenticação, consequentemente dados do seu ambiente poderão ser consultados sem qualquer controle de autorização.
PULL Request
Para utilizar o modo PULL Request, apenas será necessário ativá-lo na configuração de provisionamento no aplicativo do Protheus no Identity, o qual será demonstrado:
Ainda no Aplicativo, vá em: Configurações de provisionamento
E vincule da seguinte maneira:
Em Recurso de Controle de Acesso:
O Resource Access Control, ou mais conhecido por RAC, é um sistema de segurança que fornece a funcionalidade de controle de acesso e auditoria



2. Acesse o Configurador
3. Acesse a rotina Configurador > Usuário > Senhas > Config Identity

4. No Configurador, preencha o endereço do TOTVS Identity (URL de acesso ao Identity), insira o Token de Configuração (que é obtido no site do TOTVS Identity), e clique em Configurar
A partir da lib 20260302, visando maior fluidez da tela, o tempo de atualização do status da sincronização passa de 3 para 10 segundos. Para forçar a atualização pontual antes desse intervalo, foi disponibilizado o botão "Verificar Status". |
5. Após a sincronização, as informações da aba Configurações serão preenchidas, clique em Confirmar
6. Acesse Configurador > Usuário > Senhas > Política

7. No campo Habilitar single sign-on, altere para Obrigatório
Na aba 'Regras de senha' habilite o Single Sign-On alterando o valor do campo do formulário para Opcional ou Obrigatório.
Quando o campo 'Single Sign-On' está configurado como obrigatório, somente será admitido o acesso ao sistema pelo Identity, exceto os módulos de Administração (Exemplo: Configurador) que continuam com a forma de acesso padrão habilitada.
Na regra como “Obrigatório”, todo o gerenciamento será feito pelo Identity após integração, tornando assim um processo de centralização na configuração.
Ainda estará disponível a manipulação dos grupos e privilégios no Protheus, porém não é o recomendado, pois as alterações não serão levadas ao identity após sua gravação, tornando assim a obrigatoriedade de configurações via Identity.
Caso o campo 'Single Sign-On' seja configurado como Opcional, o acesso ao sistema poderá ser realizado pelo Identity ou pelo Protheus de forma tradicional.
8. No campo Modalidade de Single Sign-on, altere para SAML

9. Para o correto funcionamento é obrigatório o aplicativo Desktop Launcher instalado em cada computador. Link para download:
https://SeuEnderecoFluig/cloudpass/asset/desktoplauncher/
Atenção - Desktop Launcher somente será utilizado para versão com Desktop local, sendo assim, não existe a necessidade de utilização para a Release 2410 do Protheus.
Para configurar o Provisionamento de Usuários do TOTVS Identity com o Protheus, utilize o link abaixo:
Totvs Identity - Usuários replicados para o Protheus
Para a sincronização das empresas com o TOTVS Identity, é necessário que os seguintes campos estejam preenchidos no sigamat.emp (Cadastro de Filiais): M0_CGC (CNPJ), M0_INSC (Inscrição Estadual), M0_ESTENT (Estado Fiscal).
Configurando o Single SignOn na modalidade SAML, ao abrir o SmartClient Desktop, será aberta uma janela interna de navegador para efetuar o login via SAML. Após efetuar o login, você poderá continuar com o uso do SmartClient Desktop.
Observação: ao abrir a janela interna de navegador, se aparecer uma tela em branco ao invés de abrir a tela de login, deve-se inserir a linha XFrameOptions na seção [HTTP] do arquivo appserver.ini do servidor de aplicação para adicionar uma configuração de XFrame. Exemplo:
A tela pode aparecer em branco devido a um problema de CORS na abertura da página, pois a página de autenticação do TOTVS Identity será aberta dentro de uma TAG iFrame, e o servidor pode bloquear a requisição. Essa chave no servidor HTTP irá fazer com que seja enviado um header indicando a permissão de execução em um iFrame. O conteúdo informado na chave é fixo, como ALLOW-FROM (em maiúsculo), seguido do Hostname (ou IP) e a Porta do seu servidor HTTP.
Este recurso permite utilizar o login via SAML em estações MAC OSX e Linux.
Disponível a partir de:
• Binário Lobo Guará
• LIB 20191007
Testar o Provisionamento:
Para testar o Provisionamento, acesse o ERP Microsiga Protheus e cadastrar um usuário que contenha um e-mail configurado para o usuário, e atrelar ao grupo de Administrador.
Acessar a rotina de Configuração do TOTVS Identity através do caminho de menu: Usuário \ Senhas \ Config. Identity.
Nessa etapa, deve ser realizada a Sincronização. Na seção 'Estado', clique em 'Sincronização'. No próximo passo, clique em 'Avançar' para validação dos Menus.
ATENÇÃO
Quando utilizar o provisionamento para enviar os menus para serem gerenciados no Identity deverá seguir a regra de que toda nomenclatura deverá ser igual a do padrão, ou seja, poderá utilizar rotinas customizadas dentro de cada menu, porém deverá manter o nome de cada menu igual ao padrão, para que a funcionalidade seja devidamente configurada e sincronizada com o Identity, caso contrário não serão enviados ao TOTVS Identity;


O andamento do processo de sincronização será mostrado no assistente de Configuração do TOTVS Identity.

Ao clicar em confirmar e utilizar o modo PULL request, será informado uma mensagem referente a um agendamento (schedule).

Em Aplicativos no TOTVS Identity, clicar em ‘Recursos’. Pode-se verificar que todos os grupos cadastrados no Protheus serão listados. Como pode ver a figura a seguir:

Clique em 'Gerenciar'. Em seguida, no Gerenciamento de Papéis, serão apresentadas as Empresas do grupo de Administradores que possuem acesso.

Em seguida, clique em 'Itens de Menu'. E serão apresentados Itens de Menu que o Usuário Administrador possui acesso.


ATENÇÃO
Assim como a manipulação via Grupos e Privilégios, ainda estará disponível a manipulação dos menus no Protheus, porém não é recomendado, pois as alterações não serão levadas ao identity após sua gravação, tornando assim a obrigatoriedade de configurações via TOTVS Identity.
Quando algum item (grupos, menus, empresas) for alterado, esta alteração será sincronizada com o Protheus.
Para o modo utilizando o servidor REST, essa alteração será enviada pelo TOTVS Identity para o Protheus no momento que a alteração for realizada.
Já o modo PULL request, essas alterações poderão ser sincronizadas em 2 momentos, primeiro, uma vez tendo cadastrado o agendamento (schedule) e os agentes estiverem sido iniciados, esse agendamento irá buscar todas as alterações feitas no TOTVS Identity, a segunda forma é toda vez que um usuário efetuar o login no Protheus, será feita a sincronização dessas alterações.
Para a utilização do Protheus x TOTVS Identity somente para a autenticação e continuar com o controle de Usuários, Grupos, Privilégios e Menus via Protheus, efetue a configuração conforme abaixo:
Exemplo HTTP - Seção [HTTP] - TOTVSTEC - TDN
* Importante que a porta esteja entre 8000 e 9999.
* Configurar a chave ENVIRONMENT com o nome do Ambiente do Protheus
[HTTP]
Enable=1
port=8080
PATH=C:\P12\Protheus_Data\http-root
XFrameOptions = ALLOW-FROM http://hostname:8080
ENVIRONMENT=P12
2. No TOTVS Identity, faça um Clone do Aplicativo do Protheus, ou crie um novo

3. Acesse o Aplicativo e faça a configuração
Caso Smartclient Local, escolha a opção Executável SAML
Caso Smartclient HTML (Webapp), Escolha a opção SAML


4. Em PROVISIONAR, mantenha a opção como Desabilitado.

5. Acesse o Configurador
6. Acesse a rotina Configurador > Usuário > Senhas > Config Identity

7. Abra a pasta bin/Appserver do servidor de Aplicação do Protheus, clique com o botão direito sobre a pasta SSO, desmarque a opção Somente leitura e clique em OK

8. No Configurador, preencha o endereço do TOTVS Identity, insira o Token de Configuração (que é obtido no site do TOTVS Identity), e clique em Configurar

9. Após a sincronização, as informações da aba Configurações serão preenchidas
10. Acesse Configurador > Usuário > Senhas > Política
11. No campo Habilitar single sign-on, altere para Opcional
12. No campo Modalidade de Single Sign-on, altere para SAML

O Smartclient HTML ou WEBAPP é chamado no appserver.ini utilizado para configurar o TOTVS Identity, criando a sessão SAML conforme exemplo:
[SAML]
SMARTCLIENTHTML=http://10.172.78.51:8080/
Importante
o url do smartclienthtml deve ter a barra no final, conforme demonstrado acima
No exemplo estou chamado meu Smartclient HTML na porta 8080. Quando chamado via Dashboard automaticamente será direcionado a esta URL.
Configurando o Single SignOn na modalidade SAML, ao abrir o SmartClient Desktop, será aberta uma janela interna de navegador para efetuar o login via SAML. Após efetuar o login, você poderá continuar com o uso do SmartClient Desktop.
Observação: ao abrir a janela interna de navegador, se aparecer uma tela em branco ao invés de abrir a tela de login, deve-se inserir a linha XFrameOptions na seção [HTTP] do arquivo appserver.ini do servidor de aplicação para adicionar uma configuração de XFrame. Exemplo:
[HTTP] Enable=1 port=8080 PATH=C:\P12\Protheus_Data\http-root XFrameOptions = ALLOW-FROM http://hostname:8080 ENVIRONMENT=P12 |
A tela pode aparecer em branco devido a um problema de CORS na abertura da página, pois a página de autenticação do Fluig será aberta dentro de uma TAG iFrame, e o servidor pode bloquear a requisição. Essa chave no servidor HTTP irá fazer com que seja enviado um header indicando a permissão de execução em um iFrame. O conteúdo informado na chave é fixo, como ALLOW-FROM (em maiúsculo), seguido do Hostname (ou IP) e a Porta do seu servidor HTTP.
Este recurso permite utilizar o login via SAML em estações MAC OSX e Linux.
Após configurado a Experiência #1 com provisionamento é possível controlar o RAC de usuários do Protheus diretamente no FLUIG.
Pré-requisitos:
- Utilizar somente menus com nomes padrões. Exemplo, sigacom.xnu, sigacb.xnu
- Gerenciar Usuários através de Grupos
- Gerenciar Acessos através de Privilégios
Caso não atenda estes requisitos, será preciso reconfigurar os acessos de usuários para esta experiência de uso. Rotinas customizadas são carregadas na carga inicial desde que configuradas em menu padrão.
Grupos de Usuários do Protheus são chamados Papéis dentro do TOTVS Identity. Para acessar, edite o aplicativo dentro do Identity e selecione a guia Recursos:


Em Recursos estarão disponíveis todos os Grupos já herdados do Protheus, provenientes da carga inicial.

(Rotina Carga Inicial)
No Identity, clique em Criar um Papel:

O Nome do Papel é gravado apenas no Fluig. A descrição é gravada no sigapss.spf no Cadastro de Grupos de usuários do Protheus. Após criado, clique em Gerenciar:

Nesta tela é apresentado o Grupo de Empresas com nome (TOTVS). É possível associar ao grupo apenas Grupos de Empresa. Para as Filiais é preciso alterar diretamente no Configurador (SIGACFG), no Cadastro de Grupos.
Para a sincronização das empresas com o Fluig, é necessário que os seguintes campos estejam preenchidos no sigamat.emp (Cadastro de Filiais): M0_CGC (CNPJ), M0_INSC (Inscrição Estadual), M0_ESTENT (Estado Fiscal).

São apresentados primeiramente os itens para permissão da consulta rápida, Experiência #5:
http://tdn.totvs.com/pages/viewpage.action?pageId=185741525

Na sequência, os itens de menu do Protheus:

Toda configuração realizada em itens de Menu e associada ao Grupo é exportada via Schedule ao Protheus como Privilégio:

Caso deseje limitar as propriedades de Incluir, Excluir, Pesquisar e as demais de uma AxCadastro, é possível criar um Privilégio e associar ao Grupo via SIGACFG.
Configurar Privilégio para controlar acesso a rotinas

É possível efetuar uma configuração onde os usuários criados no TOTVS Identity são replicados para o Protheus. Abaixo detalharemos o passo a passo do procedimento.
1. Acesse o TOTVS Identity
2. Acesse o cadastro de Usuários

3. Clique em Adicionar usuário

4. Preencha os dados do usuário, e clique em Salvar

Atenção
A partir da lib 20221010 o nome do usuário a ser criado no protheus (Nome + Sobrenome) será truncado para caber no campo da tabela de usuários, aceitando até 40 caracteres.
5. Após este processo, o usuário irá receber um e-mail solicitando cadastrar sua senha
6. Para associar um usuário, abra o aplicativo do Protheus configurado no TOTVS Identity

7. Clique no botão Usuários, depois em Adicionar usuários

8. Será exibida uma listagem de usuários criados no TOTVS Identity. Ao lado do usuário, clique no botão Provisionar

9. Após ter concluído este processo, o usuário será criado automaticamente no Protheus na próxima execução do schedule, que por padrão ocorre a cada 2 minutos.