O recurso de RBAC (Role Based Access Control) permite criações de perfies hierárquicos para gerenciamento do WildFly.
Essa funcionalidade é muito importante para ambientes que são gerenciados por diversas equipes, onde cada uma possuí uma responsabilidade perante ao ambiente.
Perfies padrões configurados no WildFly:
Monitor – Acesso restrito de leitura.
Operator – Todas permissões do Monitor, além de conseguir parar,pausar,subir,recarregar instancias. Parar e pausar filas JMS, executar flush em connection pools. Sem permissão para modificar estado persistente.
Maintainer – Todas permissões do Operador. Pode modificar estado persistente, deploy de aplicação e configurações de novos datasources e filas JMS.
Deployer – Todas permissões do Maintainer. Permissões restrita apenas para aplicações, não é possível alterar configurações de instancias.
Administrator – Todas permissões do Maintainer. Ver e modificar dados sensíveis, tais como controle de acesso ao sistema. Sem permissão ao sistema de log de auditoria administrativa.
Auditor - Todas as permissões de Monitor. Ver e modificar recursos para sistema de logs de auditoria administrativa. Não é possível modificar os recursos sensíveis, pode ler todos os dados sensíveis.
SuperUser - Todas as permissões. Equivalente ao administrador das versões anteriores.
1) Criando usuários no WildFly.
Em nosso exemplo criaremos 3 usuários, com perfies diferentes:
deploy - usuário com permissão restrita para deploy.
monitoracao – usuário com permissão somente de leitura.
jboss – usuário com perfil de administrador.
No exemplo abaixo, criamos o usuário “deploy”.
# cd $WILDFLY_HOME/bin
#./add-user.sh
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : deploy
Password requirements are listed below. To modify these restrictions edit the add-user.properties configuration file.
- The password must not be one of the following restricted values {root, admin, administrator}
- The password must contain at least 8 characters, 1 alphanumeric character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
- The password must be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'operacao' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'deploy' to file '/opt/middle/wildfly-8.0.0.CR1/domain/configuration/mgmt-users.properties'
Added user 'deploy' with groups to file '/opt/middle/wildfly-8.0.0.CR1/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? no
Faça o procedimento acima para todos os usuários.
2) Adicionar as roles via console.
Acesse a console http://127.0.0.1:9990 com usuário “jboss”, clique na aba “Administration”, selecione o sub-menu “USERS” e clique no botão “Add”.
Preencha os campos, seguindo as instruções abaixo.
User: operacao
Type: Include
Roles: Operator
Clique em “Save”
User: monitoracao
Type: Include
Roles: Monitor
Clique em “Save”
User: deploy
Type: Include
Roles: Deployer
Clique em “Save”
User: jboss
Type: Include
Roles: SuperUser
Clique em “Save”
3) Ativando o provider rbac.
Por padrão o WildFly vem configurado com o provider “simple” habilitado, configuração semelhante as versões anteriores do produto.
Sendo assim é necessário ativar o provider rbac.
# cd $WILDFLY_HOME/bin
# ./jboss-cli.sh --connect --controller=127.0.0.1
/core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
4) Reinicie o WildFly.
5) Faça um teste logando na console com os usuários criados e verifique se o mesmo esta com o perfil configurado.
Para verificar o perfil, basta clicar em cima do nome do usuário no canto superior direito e veja qual a Roles esta setada.
Obs: A feature de RBAC foi inclusa na versão 6.2.0 EAP, acredito que esse tutorial funcione para tal versão.
Abraços.
Eduardo Medeiros
eduardomedeiros.me
Comments