Tempo aproximado para leitura: 00:02:10 min
Dúvida
Como restringir o acesso aos Consoles Administrativos do JBoss?
Ambiente
Framework - Framework (Linha Datasul) - JBoss - Todas as versões.
Solução
Os consoles jmx-console e web-console são utilizados para tarefas administrativas. Todos os usuários que tenham acesso ao ambiente, podem acessar estes consoles e obter acesso administrativo no processo do JBoss do produto Datasul. Seguem abaixo as instruções para configurar a autenticação para esses dois monitores do JBoss:
1. Habilite um domínio de segurança no arquivo ..\deploy\management\console-mgr.sar\web-console.war\WEB-INF\jboss-web.xml: retire os comentários da tag <security-domain> conforme exemplo abaixo:
<xml version='1.0' encoding='UTF-8'>
<jboss-web>
<security-domain>java:/jaas/jmx-console</security-domain>
<!-- The war depends on the -->
<depends>jboss.admin:service=PluginManager</depends>
</jboss-web>
2. Habilite uma restrição de segurança no arquivo ..\deploy\management\console-mgr.sar\web-console.war\WEB-INF\web.xml: retire os comentários da tag <security-constraint>, alterando a tag <realm-name> para jmx-console; altere também as tags <role-name> para * conforme exemplo abaixo:
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<description>An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application
</description>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>jmx-console</realm-name>
</login-config>
<security-role>
<role-name>*</role-name>
</security-role>
3. Habilite um domínio de segurança no arquivo ..\deploy\jmx-console.war\WEB-INF\jboss-web.xml: retire os comentários da tag <security-domain> conforme exemplo abaixo:
<xml version='1.0' encoding='UTF-8' >
<jboss-web>
<security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>
4. Habilite uma restrição de segurança no arquivo ..\deploy\jmx-console.war\WEB-INF\web.xml: retire os comentários da tag <security-constraint>; altere a tag <realm-name> para jmx-console; altere também as tags <role-name> para * conforme exemplo abaixo:
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<description>An example security config that only allows users with the
role JBossAdmin to access the HTML JMX console web application
</description>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>jmx-console</realm-name>
</login-config>
<security-role>
<role-name>*</role-name>
</security-role>
5. Crie os arquivos ..\deploy\management\console-mgr.sar\web-console.war\WEB-INF\context.xml e ..\deploy\jmx-console.war\WEB-INF\context.xml com o conteúdo abaixo:
<Context>
<Realm className="org.apache.catalina.realm.JAASRealm"
appName="jmx-console"
allRolesMode="authOnly"
debug="1" />
</Context>
6. Altere a senha do usuário admin no arquivo ..\conf\props\ jmx-console-users.properties. Esta senha será utilizada para os dois monitores administrativos citados.
7. Inclua JNDIFactory, EJBInvokerServlet e JMXInvokerServlet no domínio de segurança, editando o arquivo ...\deploy\http-invoker.sar\invoker.war\WEB-INF\web.xml conforme exemplo abaixo:
<security-constraint>
<web-resource-collection>
<web-resource-name>HttpInvokers</web-resource-name>
<description>An example security config that only allows users with the role HttpInvoker to access the HTTP invoker servlets </description>
<url-pattern>/restricted/*</url-pattern>
<url-pattern>/JNDIFactory/*</url-pattern>
<url-pattern>/EJBInvokerServlet/*</url-pattern>
<url-pattern>/JMXInvokerServlet/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>HttpInvoker</role-name>
</auth-constraint>
</security-constraint>
8. No mesmo arquivo ...\deploy\http-invoker.sar\invoker.war\WEB-INF\web.xml defina o domínio de segurança acrescentando as linhas abaixo:
<jboss-web>
<security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>
9. Pare a execução do Serviço do JBoss.
10. Elimine as pastas temporárias da instância: data, farm, log, tmp e work.
11. Inicie novamente o Serviço do JBoss e teste o acesso aos monitores.
0 Comentários