{"id":9138,"date":"2022-02-08T18:24:42","date_gmt":"2022-02-08T21:24:42","guid":{"rendered":"https:\/\/www.fernandoquadro.com.br\/html\/?p=9138"},"modified":"2022-02-08T18:25:18","modified_gmt":"2022-02-08T21:25:18","slug":"configurando-a-seguranca-do-geoserver-via-api-rest","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2022\/02\/08\/configurando-a-seguranca-do-geoserver-via-api-rest\/","title":{"rendered":"Configurando a seguran\u00e7a do GeoServer via API Rest"},"content":{"rendered":"<p>Prezados leitores,<\/p>\n<p>Em um <a href=\"https:\/\/www.fernandoquadro.com.br\/html\/2016\/01\/15\/configurando-o-geoserver-via-rest-api\/\" rel=\"noopener\" target=\"_blank\">post anterior<\/a>, eu demonstrei como voc\u00ea pode configurar suas camadas e estilos a partir da API Rest do GeoServer. Neste post irei apresentar como voc\u00ea poder criar novos usu\u00e1rios, pap\u00e9is e permiss\u00f5es de seguran\u00e7a atrav\u00e9s tamb\u00e9m da API Rest. Vamos l\u00e1 ent\u00e3o:<\/p>\n<p><strong>1.<\/strong> Criar uma workspace<\/p>\n<p>Para iniciar, irei criar um workspace com o nome \u201cteste\u201d, onde realizaremos nossos testes. Para isso vou executar o comando abaixo no console utilzando o <a href=\"http:\/\/curl.haxx.se\/\" rel=\"noopener\" target=\"_blank\">cURL<\/a>:<\/p>\n<pre>\r\ncurl -v -u admin:geoserver -XPOST -H \"Content-type: text\/xml\" -d \"&lt;workspace&gt;&lt;name&gt;<strong>teste<\/strong>&lt;\/name&gt;&lt;\/workspace&gt;\" http:\/\/localhost:8080\/geoserver\/rest\/workspaces\r\n<\/pre>\n<p>Se for executado corretamente, voc\u00ea dever\u00e1 receber a seguinte mensagem:<\/p>\n<pre>\r\n< HTTP\/1.1 201 Created\r\n...\r\n< Location: http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/teste\r\n<\/pre>\n<p><strong>2.<\/strong> Criar usu\u00e1rio e senha<\/p>\n<p>Vamos criar um usu\u00e1rio tamb\u00e9m denominado \"teste\" e senha \"teste\", para isso basta executar o comando abaixo no console, conforme realizado na etapa 1:<\/p>\n<pre>\r\ncurl -v -u admin:geoserver -X POST http:\/\/localhost:8080\/geoserver\/rest\/security\/usergroup\/users\/ -H  \r\n\"accept: application\/json\" -H  \"content-type: application\/xml\" \r\n-d \"&lt;?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?&gt;&lt;user&gt;\\t&lt;userName&gt;<strong>teste<\/strong>&lt;\/userName&gt;\\t&lt;password&gt;<strong>teste<\/strong>&lt;\/password&gt;\\t&lt;enabled&gt;true&lt;\/enabled&gt;&lt;\/user&gt;\"\r\n<\/pre>\n<p><strong>3.<\/strong> Definir pap\u00e9is (ROLES)<\/p>\n<p>Nesse passo vamos definir apenas o nome do papel, em um passo posterior definiremos a permiss\u00e3o vinculada a ele. No nosso caso estamos criando um papel denominado \"ROLES_TESTE\", executando o seguindo comando:<\/p>\n<pre>\r\ncurl -v -u admin:geoserver -X POST http:\/\/localhost:8080\/geoserver\/rest\/security\/roles\/role\/<strong>ROLE_TESTE<\/strong> -H \"accept: application\/json\" -H \"content-type: application\/json\"\r\n<\/pre>\n<p><strong>4.<\/strong> Vincula o usu\u00e1rio ao papel (ROLE)<\/p>\n<p>Para que o papel fa\u00e7a sentido, precisamos vincul\u00e1-lo a pelo menos um usu\u00e1rio\/grupo, da seguinte forma:<\/p>\n<pre>\r\ncurl -v -u admin:geoserver -X POST http:\/\/localhost:8080\/geoserver\/rest\/security\/roles\/role\/<strong>ROLE_TESTE<\/strong>\/user\/<strong>teste <\/strong>-H  \"accept: application\/json\" -H  \"content-type: application\/json\"\r\n<\/pre>\n<p><strong>5.<\/strong> Definir as permiss\u00f5es <\/p>\n<p>Aqui vamos definir que a ROLE_TESTE permitir\u00e1 acesso de leitura a todas as camadas que estiverem no workspace teste. Veja:<\/p>\n<pre>\r\n curl -v -u admin:geoserver -XPOST -H \"Content-type: text\/xml\" -d <strong>@rules.xml<\/strong> http:\/\/localhost:8080\/geoserver\/rest\/security\/acl\/layers.xml\r\n<\/pre>\n<p>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\u00e1rio \u00e9 necess\u00e1rio passar o caminho completo do arquivo. <\/p>\n<p>O arquivo rules.xml deve conter as seguintes informa\u00e7\u00f5es:<\/p>\n<pre>\r\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;rules&gt;\r\n   &lt;rule resource=\"<strong>teste.*.r<\/strong>\"&gt;ROLE_TESTE&lt;\/rule&gt;\r\n&lt;\/rules&gt;\r\n<\/pre>\n<p>Agora voc\u00ea j\u00e1 tem sua nova workspace, usu\u00e1rio, role e permiss\u00e3o criada, basta inserir seus dados. Espero que tenha gostado desse post, e tenha sido \u00fatil pra voc\u00ea.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prezados leitores, Em um post anterior, eu demonstrei como voc\u00ea pode configurar suas camadas e estilos a partir da API Rest do GeoServer. Neste post irei apresentar como voc\u00ea poder criar novos usu\u00e1rios, pap\u00e9is e permiss\u00f5es de seguran\u00e7a atrav\u00e9s tamb\u00e9m&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2022\/02\/08\/configurando-a-seguranca-do-geoserver-via-api-rest\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":9139,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[208,327,61],"class_list":["post-9138","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-geoserver","tag-rest-api","tag-seguranca"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=9138"}],"version-history":[{"count":16,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9138\/revisions"}],"predecessor-version":[{"id":9155,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9138\/revisions\/9155"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/9139"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=9138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=9138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=9138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}