Árvore de páginas

Objetivo


Este guia tem como finalidade demonstrar os passos necessários para realizar a encriptação sobre a senha de acesso ao banco de dados.

Esse procedimento pode ser realizado para encriptação da senha de todos os bancos de dados homologados pela Matriz de portabilidade do TOTVS Fluig Plataforma.


Encriptação de senha


A encriptação de senha do banco de dados da plataforma é um procedimento muito importante, para evitar o acesso não autorizado à base de dados e com isso aumentar a segurança das suas informações.

Para realizar esse procedimento, é necessário seguir as etapas abaixo, que consistem em gerar a senha criptografada e, em seguida, criar a política de autenticação da aplicação com essa senha.

oculto

Informação interna:

Este passo a passo foi duplicado para o artigo: https://centraldeatendimento.fluig.com/hc/pt-br/articles/360033268194

Se for feita alguma atualização, lembrar de repassar pra lá.


Encriptação da senha da base de dados (DataSource)


Nessa etapa, a senha da base de dados é encriptada usando o método principal da classe SecureIdentityLoginModule, passando como parâmetro a senha em texto plano do banco de dados utilizado. Para fazer a configuração, siga os passos abaixo:

    Navegue até a pasta raiz de instalação, e acesse a pasta appserver.

    Linux              ==> /opt/fluig/appserver

    Windows        ==> c:\fluig\appserver

    Gere a senha encriptada.

    Linux:

    A partir da atualização 1.7
    ../jdk-64/bin/java -cp modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.3.0.Final.jar:modules/system/layers/base/org/picketbox/main/picketbox-5.0.3.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#banco@123!
    Até a atualização 1.6.5
    ../jdk-64/bin/java -cp modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.3.0.Final.jar:modules/system/layers/base/org/picketbox/main/picketbox-4.9.6.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#banco@123!


    Windows:

    A partir da atualização 1.7
    java -cp modules/system/layers/base/org/picketbox/main/picketbox-5.0.3.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#banco@123!
    Até a atualização 1.6.5
    java -cp modules/system/layers/base/org/picketbox/main/picketbox-4.9.6.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#banco@123!

    Neste caso senha#do#banco@123!, será a senha de acesso ao banco de dados, e o resultado será:

    Encoded password: -73d03118655333edb6cf7435bc02950441a847c51697cc6c


    Criar a política de autenticação da aplicação com a senha encriptada


    Nessa etapa é mostrado onde fica o arquivo de configuração para acesso ao banco de dados (domain.xml), a aplicação da política de autenticação pelo aplicativo e a sua respectiva configuração.

    Importante!

    Antes de fazer qualquer alteração, é importante manter uma cópia do arquivo domain.xml original, caso seja necessário retornar alguma configuração.

      Navegue até a pasta raiz de instalação do TOTVS Fluig Plataforma e acesse a pasta de configuração onde está o arquivo domain.xml. Abra esse arquivo em modo administrador ou root.


      Linux              ==> /opt/fluig/appserver/domain/configuration

      Windows        ==> c:\fluig\appserver\domain\configuration

      Edite o arquivo domain.xml incluindo o bloco que contém a política de autenticação e a senha encriptada gerada na etapa anterior. Ao abrir o arquivo domain.xml, procure pela tag:

      <subsystem xmlns="urn:jboss:domain:security:1.2">

      Dentro da tag <security-domains> é necessário inserir os seguintes blocos:

      A partir da versão 1.6.5-190514
      <security-domain name="encrypted-FluigDS" cache-type="default">
          <authentication>
              <login-module                code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                  <module-option name="username" value="admin"/><!-- usuario do banco -->
                  <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
                  <!-- senha encriptada -->
                  <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=FluigDS"/>
              </login-module>
          </authentication>
      </security-domain>
      
      
      <security-domain name="encrypted-FluigDSRO" cache-type="default">
          <authentication>
              <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                  <module-option name="username" value="admin"/><!-- usuario do banco -->
                  <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
                  <!-- senha encriptada -->
                  <module-option name="managedConnectionFactoryName" value="jboss.jca:service=NoTxCM,name=FluigDSRO"/>
              </login-module>
          </authentication>
      </security-domain>
      
      <security-domain name="encrypted-AppDS" cache-type="default">
          <authentication>
              <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                  <module-option name="username" value="admin"/><!-- usuario do banco -->
                  <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
                  <!-- senha encriptada -->
                  <module-option name="managedConnectionFactoryName" value="jboss.jca:service=NoTxCM,name=AppDS"/>
              </login-module>
          </authentication>
      </security-domain>
      Até a versão 1.6.5-190507
      <security-domain name="encrypted-FluigDS" cache-type="default">
          <authentication>
              <login-module                code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                  <module-option name="username" value="admin"/><!-- usuario do banco -->
                  <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
                  <!-- senha encriptada -->
                  <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=FluigDS"/>
              </login-module>
          </authentication>
      </security-domain>
      
      
      <security-domain name="encrypted-FluigDSRO" cache-type="default">
          <authentication>
              <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                  <module-option name="username" value="admin"/><!-- usuario do banco -->
                  <module-option name="password" value="-73d03118655333edb6cf7435bc02950441a847c51697cc6c"/>
                  <!-- senha encriptada -->
                  <module-option name="managedConnectionFactoryName" value="jboss.jca:service=NoTxCM,name=FluigDSRO"/>
              </login-module>
          </authentication>
      </security-domain>
      

      Os atributos  security-domain name, serão usados posteriormente na configuração de acesso ao banco de dados.


      Edite o arquivo domain.xml alterando o bloco de acesso ao banco de dados. Ao abrir o arquivo, procure pelas tags:

      A partir da versão 1.6.5-190514
      <subsystem xmlns="urn:jboss:domain:datasources:4.0">
          <datasources>
              <datasource enabled="true" jndi-name="java:/jdbc/FluigDS" jta="true" pool-name="FluigDS" use-java-context="false">
              <datasource enabled="true" jndi-name="java:/jdbc/FluigDSRO" jta="false" pool-name="FluigDSRO" use-java-context="false">
      		<datasource enabled="true" jndi-name="java:/jdbc/AppDS" jta="false" pool-name="AppDS" use-java-context="false">
      Até a versão 1.6.5-190507
      <subsystem xmlns="urn:jboss:domain:datasources:4.0">
          <datasources>
              <datasource enabled="true" jndi-name="java:/jdbc/FluigDS" jta="true" pool-name="FluigDS" use-java-context="false">
              <datasource enabled="true" jndi-name="java:/jdbc/FluigDSRO" jta="false" pool-name="FluigDSRO" use-java-context="false">
      


      No primeiro datasource cujo pool-name é FluigDS, é necessário eliminar o seguinte bloco:

      <security>
      <user-name>admin</user-name>
      <password>senhaDeTextoPlano</password>
      </security>

      Após remover o bloco acima, substituí-lo pelo bloco abaixo:

      <security>
           <security-domain>encrypted-FluigDS</security-domain>
      </security>

      No segundo datasource cujo pool-name é FluigDSRO, é necessário eliminar o seguinte bloco:

      <security>
      <user-name>admin</user-name>
      <password>senhaDeTextoPlano</password>
      </security>

      Após remover o bloco acima, substituí-lo pelo bloco abaixo.

      <security>
           <security-domain>encrypted-FluigDSRO</security-domain>
      </security>

      A partir da versão 1.6.5-190514

      No terceiro datasource cujo pool-name é AppDS, é necessário eliminar o seguinte bloco:

      <security>
      <user-name>admin</user-name>
      <password>senhaDeTextoPlano</password>
      </security>

      Após remover o bloco acima, substituí-lo pelo bloco abaixo.

      <security>
           <security-domain>encrypted-AppDS</security-domain>
      </security>


      Pronto!


      Após estes procedimentos, sua plataforma pode ser iniciada e passa a operar com a senha do banco encriptada, evitando acessos não autorizados e trazendo mais segurança para as suas informações.