Quero publicar camadas de mapa usando o OpenLayers e o GeoServer. Embora isso seja fácil de configurar, estou um pouco perdido no que diz respeito às possibilidades de autenticação. O que eu quero é criar usuários diferentes que, entrando com seu próprio nome de usuário e senha, sejam direcionados para sua própria janela do mapa. Como isso pode ser feito com segurança para que nenhum dos meus usuários possa acessar as camadas um do outro?
Eu entendi que é muito fácil "hackear" a instalação, por exemplo, fazendo consultas ao GeoServer, onde simplesmente se pede para listar todas as camadas disponíveis.
Quais são as minhas opções? Suponho que o apache possa ser útil ao configurá-lo no meu servidor ubuntu? Algum tutorial sobre esse assunto?
Você pode dar uma olhada no GeoPrisma
http://geoprisma.org/dist/build/html/introduction/index.html
Eu teria uma varredura da documentação - pode ser um exagero incluir isso em um projeto simples se você tiver apenas algumas camadas / usuários em seu sistema. Se você possui centenas de usuários / grupos com direitos de edição em diferentes conjuntos de dados, provavelmente faz sentido usar um projeto existente, como o GeoPrisma.
Caso contrário, a segurança padrão do servidor da Web criada em torno do HTTP provavelmente seria suficiente.
fonte
Por favor, depure esta declaração
$ type = $ _ GET ['FORMAT'];
Quando você passa o valor de FORMAT como os parâmetros da URL, você obtém o mapa (imagem) do servidor. Se você o obtiver, seu proxy deverá estar funcionando bem.
fonte
Uma abordagem seria implementar um Proxy como este que pudesse verificar as credenciais de um usuário como logado usando variáveis de sessão e permitir que eles acessassem apenas os recursos aos quais têm direito, ou seja: verifique o URL para as camadas que estão sendo chamadas e negue acesso se o usuário não está autorizado a visualizá-los.
Em termos de quais dados eles podem ver, se for um subconjunto de um conjunto de dados maior, isso é um pouco mais complicado, mas vejo duas abordagens.
Use Exibições SQL parametrizadas para controlar quais dados o usuário visualizaria. Você pode usar o Proxy para alterar o URL antes que ele seja passado para o Geoserver com os parâmetros específicos para esse usuário. Você também pode enviar os parâmetros de volta aos Openlayers por meio de uma chamada Ajax após o usuário ser autenticado e fornecer os parâmetros como parte da chamada getMSAP do WMS no OpenLayers. Os dados reais exibidos podem ser manipulados pela substituição de Variável no SLD para filtrar os dados exibidos ou pelo uso de Estilos externos nas chamadas getMap do WMS para alterar o SLD que o usuário usa para exibir uma determinada camada.
Use uma chamada Ajax após a autenticação do usuário para especificar as extensões de mapa para permitir apenas que o usuário se mova em torno de uma área especificada. Você também pode usar layerVisibility () para restringir quais dados também podem ser exibidos.
fonte
fonte