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.
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: 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! |
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:
java -cp modules/system/layers/base/org/picketbox/main/picketbox-5.0.3.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule senha#do#banco@123! |
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.
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: <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> |
<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: <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"> |
<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.
<script>
$("b:contains('oculto')").parent().parent().hide();
</script> |