1 - Definição:

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.

2 - Integração:

Para configurar a Integração do Protheus com TOTVS Identity, siga os passos abaixo:

2.1 - HTTP e/ou HTTPS

 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:

http://IP:PORTA/time.apl

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.


2.2 No TOTVS Identity, faça um Clone do Aplicativo do Protheus ou crie um novo:
  2.2.1 - Como Clonar Aplicativo do Protheus:

  • Selecionar a opção Aplicativos;
  • Buscar pelo nome do Aplicativo já criado, no exemplo: Protheus2
  • Em visão geral, configurações, selecionar a opção Clonar









  2.2.2 - Editar o clone criado:

  • Clicar em Editar
  • Então renomear o Nome da aplicação para o desejado e salvar








2.3. Configurando Identity para Smartclient Local

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





3 - Configurando Identity para Smartclient HTML ou WEBAPP

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.

Arquitetura AppServer com Broker Identity Client e Identity HTML

Arquitetura AppServer sem Broker Identity Client e Identity HTML

Não é preciso fazer o provisionamento já possuindo a configuração Desktop realizada.

Os demais itens são semelhantes ao modo executável SAML.

4 - Provisionamento no Identity para o Protheus:

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:

  • Habilitar Provisionamento: Sim
  • Modo de Provisionamento: SCIM
    O Protocolo SCIM é um nível de aplicativo, onde utiliza o protocolo REST para provisionamento e gerenciamento de dados de identidade na web.
  • Modo Pull: Sim
    Não (Modo REST) | Sim (Modo PULL Request)
  • Tipo de Autenticação: HTTP Basic
  • URL rest: http://IPdaAplicação:PortaRest/Endpoint
  • Nome do usuário Administrador do Dominio: 
  • Senha Administrador do Dominio: 
  • Senha temporária do usuário: senha inicial para todo novo usuário cadastrado

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

  • Habilite a opção Resource Access Control
  • Modo RAC: Papel
  • Modelo RAC: Modelo Protheus
  • Limite de Caracteres no nome do Papel: 28
  • Limite de Caracteres na Descrição do Papel: 30







5 - Provisionamento no Protheus para o Identity:

  1.  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

      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

Nota sobre conceito de opcional x 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.

6 - Provisionamento:

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.

Nota sobre conceito de gerenciamento dos artefatos

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.

 

 

Nota sobre o conceito de manipulação dos Grupos e Privilégios

 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.

Autenticação Protheus com o TOTVS Identity sem utilização do provisionamento


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:

  1. 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


        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.


Resource Access Control

01. RAC - RESOURCE ACCESS CONTROL

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.


02. GRUPOS DE USUÁRIOS


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).



03. ITENS DE MENU



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:


04. PRIVILÉGIOS


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



Usuários replicados para o Protheus

É 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.