Em um projeto, o cliente deseja que as imagens do WMS sejam protegidas contra acesso não autorizado.
Quais são as soluções comuns para perceber isso?
Eles são compatíveis com os padrões OGC?
fonte
Em um projeto, o cliente deseja que as imagens do WMS sejam protegidas contra acesso não autorizado.
Quais são as soluções comuns para perceber isso?
Eles são compatíveis com os padrões OGC?
A especificação do OGC exige apenas o uso de http. Se for http compatível, tudo bem.
Alguns métodos possíveis:
Se a segurança através da obscuridade for suficiente para seus propósitos, você poderá configurar uma extensão falsa para a camada:
Basta usar coordenadas do outro lado da Terra. A camada ainda aparecerá na lista de camadas, as solicitações ainda serão possíveis, mas se um usuário simplesmente selecioná-la em um software GIS e escolher "aplicar zoom à camada", ele não verá nada e pode pensar que essa camada está simplesmente vazia ou não trabalhos. Um aplicativo que sabe a extensão correta da camada ainda deve poder acessá-lo.
Eu já vi essa solução aplicada em alguns sites WMS, mas provavelmente não está totalmente em conformidade com os padrões OGC, pois o servidor retorna uma extensão incorreta.
Você pode exigir que os usuários se conectem ao WMS sobre HTTP protegido por uma VPN. Ele coloca a camada de segurança no nível da rede IP, mas certamente adiciona complexidade.
Também existem estruturas especializadas como o SecureOWS da CampToCamp: http://www.secureows.org/trac/secureows
Supondo que você tenha o seguinte:
Você pode criar uma api_keys
tabela com access_token
e expires_at
colunas. Em seguida, adicione um parâmetro querystring &api_key=my_unique_key
. Seu Mapfile para o tileindex ( veja o exemplo ) seria configurado assim:
DATA "geom FROM (
SELECT
my_table.geom,
my_table.gid,
api_keys.access_token
FROM my_table
CROSS JOIN api_keys
WHERE ST_Intersects(geom, !BOX!) and api_keys.expires_at > now()
) AS subquery USING UNIQUE gid USING SRID=4326"
FILTER "access_token = '%api_key%'
VALIDATION
'api_key' '^[a-zA-Z0-9\_\-]{33}$'
'default_api_key' ''
END
A idéia é que seu aplicativo separado, que autentica os usuários no banco de dados, atualize a api_keys
tabela, definindo access_token
um hash md5 e mantenha a expires_at
coluna atualizada em algum momento no futuro.
Como alternativa, você pode proxy de tráfego para uma estrutura separada que lida com autenticação WMS / OWS e proxies de usuários autorizados para o Mapserver interno. Aqui está uma lista obtida de uma postagem para a lista de discussão mapserver-users , que é uma lista expandida / resumida do que os outros responderam a esta pergunta.
Se você decidir usar o Geoserver, dê uma olhada no módulo AuthKey .
http://52north.org/communities/security/general/user_guide.html http://geoprisma.org/site/index.php
http://www.opengeospatial.org/projects/groups/geormwg
src: http: //www.delicious.com/based2/bundle: comp.infosystems.gis