Habilitando RBAC no WildFly.

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

What type of user do you wish to add? 
a) Management User (mgmt-users.properties) 
b) Application User (application-users.properties)
(a): a

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.
  1. 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”

  1. 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)
  1. Reinicie o WildFly.

  2. 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.

Qualquer duvida, deixe um comentário eu respondo assim que puder.

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.

Show Comments