Tempo aproximado para leitura: 00:02:00 min
Dúvida
Como funciona a autenticação nas requisições REST no protheus ?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 12
Solução
Quando inciamos um serviço REST em nosso ambiente, ao acessarmos a URL definida para o serviço , vão estar listadas todas as API's disponíveis no RPO, porém se o SECURITY não estiver ativo, qualquer pessoal pode acessar a lista de API's e fazer qualquer requisições.
Para evitar isso ativamos a chave SECURITY, exigindo que qualquer pessoa que queira usar nossas API's, precisam ter credencias para tal ação.
Para a ativar a segurança em sua API, para que só tenha acesso requisições autorizadas , você precisa ativar o SECURITY=1 no seu .ini
[HTTPREST]
Port=8040
URIs=HTTPURI
SECURITY=1
Obs.: A partir da LIB Label 20201019, a ser liberada em Outubro de 2020, o comportamento padrão de autenticação de WebServices SOAP e REST será alterado. A partir desta versão, caso a chave Security não seja informada no arquivo appserver.ini, os serviços serão iniciados exigindo autenticação de usuário. Caso seja necessário trabalhar sem autenticação, a chave deverá ser configurada com o valor 0 (Exemplo: Security=0).
Com isso as requisições vão começar retornar um erro HTTP 401 Unauthorized.
Depois de ativar o SECURITY se você fizer uma requisição no postman, você vai receber o erro mencionado acima, porém se você informar na autenticação básica do postman o Usuario e Senha do protheus (não precisa ser exclusivamente o admin), você vai perceber que sua requisição vai voltar a funcionar corretamente.
Temos também a autenticação com token JWT (saiba mais).
Com isso, você deve fazer primeiro a requisição do token, e depois de que tem o token em "mãos", fazer a requisição GET (exemplo) , informando no postman o Bearer: 'seu token'.
Saiba Mais:
JSON Web Token (JWT)?
Requisição para token JWT (Rest Protheus)
Requisição para refresh do Token JWT (Rest Protheus)
0 Comentários