API REST segura para disponibilizar ao cliente

Olá.
Estou desenvolvendo algumas APIs para disponibilizar para clientes para que eles tenham acesso de forma atualizada a lista de produtos e tabela de preço de cada um. Porem meu receio é que ele possa acessar as outras API’s que tem no Protheus.

Gostaria de restringir o acesso desse usuário (__cUserID) apenas as API’s que desenvolvi para ele.

Tentei utilizar o " user function loadrest()" porem ele trata na inicialização do serviço e aplica de forma global. Preciso de uma solução aplicada apenas nas APIs desejadas. há algum ponto de entrada de validação Antes de executar o WSRESTFUL nativo do protheus?
**Já tentei alterar o nivel de acesso do usuário para não permitir nada, deixei apenas o Modulo necessário para acessar o REST.

Alguem já fez algo similar ou tem uma solução para minha questão?

2 curtidas

Boa tarde @marco .

Não existe um limitador para isso, se liberar, ele terá acesso a todas as API’s, se vc colocar uma validação na sua api, ela valerá somente para ela, as outras serão acessadas normalmente.

1 curtida

Veja estes 2 links, provavelmente fazem o que você quer:

     https://tdn.totvs.com/display/tec/onBlock
     https://tdn.totvs.com/display/tec/OnAllow

Mas … funcionam com o REST nativo do binário (https://tdn.totvs.com.br/display/tec/REST).

Não sei se funcionam com o REST do Framework Protheus (WSRestful).
Se não funcionar com o WSRestful, seria o caso de abrir um chamado para eles implementarem.

1 curtida

Olá ZVS, eu havia feito testes já com o OnBlock e OnAllow. Elas funcionam para scripts em TLPP, da mesma forma que o LoadRest roda em ADVPL.
Porem infelizmente no meu scenário não tenho essa implementação ainda por conta da versão. Ainda não migramos totalemnte para o WebApp.

Eles tratam de forma global ao iniciar o serviço appRest. Oque eu quero é que tudo seja liberado para o ‘user administrador’, e quero fornecer para meus clientes um login com apenas 2 ou 3 apis liberadas… Mas não posso ter bloqueio total das API’s do protheus.

Olá @marco vejo que sua necessidade é muito importante, sugiro abrir uma solicitação na Central Colaborativa da Totvs, e posta aqui o link para gente também votar.

1 curtida

@marco Não sei se ajuda, existe o ponto de entrada PswSize - Digitação de usuário e senha - Frameworksp - TDN
que você talvez consiga fazer algumas validações no momento que está logando.

1 curtida

Apenas para titulo de curiosidade para quem interessar possa:

Aqui é um artigo que fala sobre esse controle de exposição de API…

Porem, resalto que o controle é na inicialização do serviço rest e de forma Global. no meu caso, eu necessito de forma individual uma validação de acesso para a API.