Version 1

    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