Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleMatriz de Evolução
Versão/ReleaseFuncionalidade
12,.1,.27
  • Liberação da autenticação de serviços Rest com Json Web Token (JWT).
  • Disponibilizado a validação do JWT com o certificado WSO2.
  • Disponibilizado a geração e validação do token JWT com base em um certificado incluso no produto.
12.1.29
  • Inclusão da parametrização de utilizar um certificado específico na validação do token JWT.
Aviso
titleAtenção

O produto TOTVS Datasul disponibiliza a autenticação Json Web Token (JWT) para integração seguindo os padrões de mercado. Para integrações que utilizem de ferramentas APIs Gateways (ex:WSO2) é de inteira responsabilidade dos provedores de tais ferramentas o suporte para esse tipo de configuração e uso.

No entanto, para o produto TOTVS Datasul, esse documento define o que é necessário para que a comunicação aconteça de forma adequada.

...

  • Utilização do API Manager (WSO2).
  • Configuração API Manager para uso do JWT token JWT 
    • O Token token deve conter o email do usuário que deve existir no cadastro de usuário do produto.

...

Com a API Manager previamente configurado, deve-se importar o certificado que deve conter a chave pública no cacert do Java que inicializou o JBoss com um alias do certificado específico: "jwtWSO2"no cacert do "Java" no qual o servidor de aplicação foi inicializado, com o alias cadastrado previamente em "Propriedades JWT" (apresentado posteriormente).

Os comando deve ser executado na estrutura de diretórios ../lib/security do Java correspondente.

Dica
titleDica

Para localizar o Java que iniciou o

...

Apache Tomcat (servidor de aplicação), basta localizar por "Java Home" no arquivo "catalina.YYYY-MM-DD.log".

Exemplo:

...

Java Home: c:\Program Files\

...

java\jdk1.

...

8.0_

...

101\jre

...

O diretório onde estão os cerificados está

...

em c:\Program Files\

...

java\jdk1.

...

8.0_

...

101\jre\lib\security

Bloco de código
titleComandos para interação com o cacerts
# Verifica se existe o alias
keytool -v -list -alias "<ALIAS_CERTIFICADO>" -keystore cacerts -storepass changeit

# Importação para o cacerts
keytool -v -import -noprompt -trustcacerts -alias "<ALIAS_CERTIFICADO>" -file <ARQUIVO_CERTIFICADO> -keystore cacerts -storepass changeit

# Exclui o certificado do cacert
keytool -delete -noprompt -alias "<ALIAS_CERTIFICADO>" -keystore cacerts -storepass changeit 

Utilização geração e validação "nativas" do produto DatasulDatasul 

A partir da release 12.1.27, o produto Datasul disponibiliza a geração do token JWT e sua validação no acesso aos endpoints. Para isto, basta que seja efetuado uma requisição ao endpoint http://<SERVIDOR>:<PORTA>/api/auth/accesstoken, passando como parâmetros a autenticação por "Basic Authentication" um usuário e senha de acesso ao produto Datasul. Caso seja um usuário válido e autorizado a entrar no produto, será retornado o token JWT.

...

De posse a este token JWT (com prazo de utilização por 1 hora), é permitido o acesso as requisições onde o token gerado deve ser repassado com a Header de Authorization via "Bearer Token".

Exemplo de acesso a endpoint via Token com token JWT:

...

...

Caso já possua as configurações do JWT WSO2 configuradas, a validação do token será múltipla, ou seja, é possível efetuar o acesso com  um token gerado pelo WSO2 ou nativamente pelo produto Datasul.

Importação certificado específico

A partir da release 12.1.29 da linha Datasul, foi disponibilizado a parametrização de um uma tela (Propriedades JWT) para o cadastro dos "alias" específico para específicos na resolução de um token JWT externo, no qual onde o certificado deve estar previamente importado no cacerts (Java).

Para informar este "alias", deve-se incluir no arquivo "josso_config.properties" o parâmetro "josso.jwt.cert.alias", que conterá o "alias" informado previamente na importação do certificado, caso configurado, O campo "Alias Default" apresenta as opções passiveis de seleção, que por sua vez, pertencem a lista de Alias da própria tela. Em conjunto com a chave "Utilizar este Alias como default" ativam a validação do token JWT será realizada exclusivamente por este certificado.

Image Removed

.

Image Added


Caso a opção "Utilizar este Alias como default" esteja desabilitado, o token JWT será validado por todos os alias cadastrados na lista.

Image Added


Informaçõestip
titleDicaInformação

Com os dados cadastrados na tela de "Propriedades JWT", a validação pelo certificado "nativo" do Datasul será realizada somente quando a chave "Utilizar este Alias como default" estiver desativada.O arquivo josso_config.properties pode ser encontrado na estrutura de diretórios ...\deploy\datasul-sso-ear-<RELEASE>-SNAPSHOT.ear\datasul-sso-war-<RELEASE>-SNAPSHOT.war\WEB-INF\classes

Funcionamento

Abaixo temos como funciona o processo de autenticação com JWT:

...