Prezados leitores,
Em um post anterior, eu demonstrei como você pode configurar suas camadas e estilos a partir da API Rest do GeoServer. Neste post irei apresentar como você poder criar novos usuários, papéis e permissões de segurança através também da API Rest. Vamos lá então:
1. Criar uma workspace
Para iniciar, irei criar um workspace com o nome “teste”, onde realizaremos nossos testes. Para isso vou executar o comando abaixo no console utilzando o cURL:
curl -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d "<workspace><name>teste</name></workspace>" http://localhost:8080/geoserver/rest/workspaces
Se for executado corretamente, você deverá receber a seguinte mensagem:
< HTTP/1.1 201 Created ... < Location: http://localhost:8080/geoserver/rest/workspaces/teste
2. Criar usuário e senha
Vamos criar um usuário também denominado "teste" e senha "teste", para isso basta executar o comando abaixo no console, conforme realizado na etapa 1:
curl -v -u admin:geoserver -X POST http://localhost:8080/geoserver/rest/security/usergroup/users/ -H "accept: application/json" -H "content-type: application/xml" -d "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user>\t<userName>teste</userName>\t<password>teste</password>\t<enabled>true</enabled></user>"
3. Definir papéis (ROLES)
Nesse passo vamos definir apenas o nome do papel, em um passo posterior definiremos a permissão vinculada a ele. No nosso caso estamos criando um papel denominado "ROLES_TESTE", executando o seguindo comando:
curl -v -u admin:geoserver -X POST http://localhost:8080/geoserver/rest/security/roles/role/ROLE_TESTE -H "accept: application/json" -H "content-type: application/json"
4. Vincula o usuário ao papel (ROLE)
Para que o papel faça sentido, precisamos vinculá-lo a pelo menos um usuário/grupo, da seguinte forma:
curl -v -u admin:geoserver -X POST http://localhost:8080/geoserver/rest/security/roles/role/ROLE_TESTE/user/teste -H "accept: application/json" -H "content-type: application/json"
5. Definir as permissões
Aqui vamos definir que a ROLE_TESTE permitirá acesso de leitura a todas as camadas que estiverem no workspace teste. Veja:
curl -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d @rules.xml http://localhost:8080/geoserver/rest/security/acl/layers.xml
Perceba que no comando ali ele menciona um arquivo chamado @rules.xml, este arquivo tem que estar na mesma pasta que o comando for executando, caso contrário é necessário passar o caminho completo do arquivo.
O arquivo rules.xml deve conter as seguintes informações:
<?xml version="1.0" encoding="UTF-8"?> <rules> <rule resource="teste.*.r">ROLE_TESTE</rule> </rules>
Agora você já tem sua nova workspace, usuário, role e permissão criada, basta inserir seus dados. Espero que tenha gostado desse post, e tenha sido útil pra você.