Capítulo 8. Autorização
jboss-web-policy padrão e a autorização jboss-ejb-policy, configurados no jboss-as/server/$PROFILE/deploy/security/security-policies-jboss-beans.xml, serão utilizados.
security-policies-jboss-beans.xml.
jboss.xml (for EJBs) e jboss-web.xml (para WAR).
Procedimento 8.1. Configuração das políticas de autorização para todos os componentes EJB e WAR
jboss-web-policy e jboss-ejb-policy.
Abra o bean de política de segurança
Navegue ao$JBOSS_HOME/server/$PROFILE/deploy/securityAbra o arquivosecurity-policies-jboss-beans.xml.Por padrão, o arquivosecurity-policies-jboss-beans.xmlcontém a configuração no Exemplo 8.1, “security-policies-jboss-beans.xml”.Exemplo 8.1. security-policies-jboss-beans.xml
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="urn:jboss:bean-deployer:2.0"> <application-policy xmlns="urn:jboss:security-beans:1.0" name="jboss-web-policy" extends="other"> <authorization> <policy-module code="org.jboss.security.authorization.modules.DelegatingAuthorizationModule" flag="required"/> </authorization> </application-policy> <application-policy xmlns="urn:jboss:security-beans:1.0" name="jboss-ejb-policy" extends="other"> <authorization> <policy-module code="org.jboss.security.authorization.modules.DelegatingAuthorizationModule" flag="required"/> </authorization> </application-policy> </deployment>Altere as definições da política do aplicativo
Para configurar uma política de autorização única para cada componente usando o JACC, anexe cada atributo<policy-module>codecom o nome do módulo de autorização JACC.<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="urn:jboss:bean-deployer:2.0"> <application-policy xmlns="urn:jboss:security-beans:1.0" name="jboss-web-policy" extends="other"> <authorization> <policy-module code="org.jboss.security.authorization.modules.JACCAuthorizationModule" flag="required"/> </authorization> </application-policy> <application-policy xmlns="urn:jboss:security-beans:1.0" name="jboss-ejb-policy" extends="other"> <authorization> <policy-module code="org.jboss.security.authorization.modules.JACCAuthorizationModule" flag="required"/> </authorization> </application-policy> <application-policy xmlns="urn:jboss:security-beans:1.0" name="jacc-test" extends="other"> <authorization> <policy-module code="org.jboss.security.authorization.modules.JACCAuthorizationModule" flag="required"/> </authorization> </application-policy> </deployment>Reinicie o servidor
Você configurou o arquivosecurity-policy-jboss-beans.xmlcom a autorização JACC ativada para cada política do aplicativo.Reinicie o servidor para garantir que a nova política de segurança tenha efeito.
Caso aplicativos solicitem políticas de segurança granular, você pode declarar políticas de segurança de autorização múltiplas para cada política de aplicativo. Os novos domínios de segurança podem herdar configurações base a partir de outros domínios de segurança e substituir configurações específicas tais como o módulo de política de autorização.
Procedimento 8.2. Configuração das políticas de autorização para domínios de segurança específicos
test-domain usa o módulo de logon UsersRolesLoginModule e usa a autorização JACC. O domínio de segurança test-domain-inherited herda a informação do módulo de logon a partir do test-domain, além de especificar que a autorização XACML deve ser usada.
Abra a política de segurança
Você pode especificar as configurações do domínio de segurança no arquivojboss-as/server/$PROFILE/conf/login-config.xmlou criar um arquivo descritor de implantação contendo as configurações. Escolha o descritor de implantação caso deseje empacotar as configurações do domínio de segurança com seu aplicativo.Localize e abra o login-config.xml
Navegue ao arquivologin-config.xmldo perfil do servidor sendo utilizado e abra o arquivo para edição.$JBOSS_HOME/jboss-as/server/$PROFILE/conf/login-config.xmlCrie o descritor jboss-beans.xml
Crie o descritor[prefix]-jboss-beans.xmlsubstituindo [prefix] por um nome significativo (por exemplo:test-war-jboss-beans.xml)Salve este arquivo no diretório/deploydo perfil do servidor que você está configurando.jboss-as/server/$PROFILE/deploy/[prefix]-jboss-beans.xml
Especifique o domínio de segurança do teste-domínio
No arquivo de destino escolhido no passo 1, especifique o domínio de segurançatest-domain. Este domínio contém a informação de autenticação, incluindo a definição <login-module> e a definição do módulo de política de autorização JACC.<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="urn:jboss:bean-deployer:2.0"> <application-policy xmlns="urn:jboss:security-beans:1.0" name="test-domain"> <authentication> <login-module code = "org.jboss.security.auth.spi.UsersRolesLoginModule" flag = "required"> <module-option name = "unauthenticatedIdentity">anonymous</module-option> <module-option name="usersProperties">u.properties</module-option> <module-option name="rolesProperties">r.properties</module-option> </login-module> </authentication> <authorization> <policy-module code="org.jboss.security.authorization.modules.JACCAuthorizationModule" flag="required"/> </authorization> </application-policy> </deployment>Anexe o domínio de segurança teste-domínio-herdado
Anexe a definição da política do aplicativotest-domain-inheritedapós a política do aplicativotest-domain.Configure o atributoextendsparaother, de forma que a informação do módulo de logon é herdada.Especifique o módulo de autorização XACML no elemento<policy-module>.<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="urn:jboss:bean-deployer:2.0"> <application-policy xmlns="urn:jboss:security-beans:1.0" name="test-domain"> <authentication> <login-module code = "org.jboss.security.auth.spi.UsersRolesLoginModule" flag = "required"> <module-option name = "unauthenticatedIdentity">anonymous</module-option> <module-option name="usersProperties">u.properties</module-option> <module-option name="rolesProperties">r.properties</module-option> </login-module> </authentication> <authorization> <policy-module code="org.jboss.security.authorization.modules.JACCAuthorizationModule" flag="required"/> </authorization> </application-policy> <application-policy xmlns="urn:jboss:security-beans:1.0" name="test-domain-inherited" extends="other"> <authorization> <policy-module code="org.jboss.security.authorization.modules.XACMLAuthorizationModule" flag="required"/> </authorization> </application-policy> </deployment>Reinicie o servidor
Você precisa configurar o arquivo de destino com os domínios de segurança que usam diferentes métodos de autorização.Reinicie o servidor para garantir que a nova política de segurança tenha efeito.
8.1. Delegação de Módulo
*-jboss-beans.xml) para especificar as políticas de autorização à autenticação padrão de sua implementação, uma vez que a autorização relata o tipo de componente (não a camada) que você protege.
org.jboss.security.authorization.modules.AuthorizationModuleDelegate fornece um número de sub-classes que permitem você implementar a delegação do módulo:
AbstractJACCModuleDelegateWebPolicyModuleDelegateEJBPolicyModuleDelegateWebXACMLPolicyModuleDelegateWebJACCPolicyModuleDelegateEJBXACMLPolicyModuleDelegateEJBJACCPolicyModuleDelegate
org.jboss.security.authorization.modules.AuthorizationModuleDelegate.
Exemplo 8.2. Declaração do Módulo de Delegação
<application-policy xmlns="urn:jboss:security-beans:1.0" name="test-domain" extends="other"> <authorization> <policy-module code="xxx.yyy.MyAuthorizationModule" flag="required"> <module-option name="delegateMap">web=xxx.yyy.mywebauthorizationdelegate,ejb=xxx.yyy.myejbauthorizationdelegate</module-option> </policy-module> </authorization> </application-policy>