İzinsiz erişime karşı WMS'in güvenliğini sağlama?


21

Bir projede müşteri, WMS imajlarının yetkisiz erişime karşı güvence altına alınmasını istiyor.

Bunu gerçekleştirmek için ortak çözümler nelerdir?

OGC standartlarıyla uyumlu mu?

Yanıtlar:


17

OGC spec, yalnızca http kullanımını zorunlu kılar. Uyumlu http ise, tamam olmalı.

Bazı olası yöntemler:

  • HTTP Temel Kimlik Doğrulama (düz metin olarak gönderilen şifre sınırlı müşteri desteğine sahip olabilir)
  • HTTP Özet Kimlik Doğrulaması (daha güvenli, sınırlı müşteri desteğine sahip olabilir)
  • İstemcinin IP adresini filtrele (uygulaması kolay ancak özellikle güvenli değil).
  • Gizli URL Tahmin edilemez bir URL oluşturmak için bir GUID kullanın . İstemcilerin URL’yi gizli tutacağını varsayar. Kullanıcıların şifre girişi yerine kullanımı çok daha kolaydır. Garantili müşteri desteği.

11

2005’ten bu OGC yazısı şöyle diyor:

OGC WMS / WFS / WCS Arayüz Spesifikasyonlarının bir parçası olan belirli bir güvenlik yönü yoktur. Bunun yerine, güvenlik ve kimlik doğrulama en iyi işlem yığınındaki başka bir katmanda gerçekleştirilir.


4

Müstehcenlik yoluyla güvenlik amaçlarınız için yeterliyse, katman için yanlış bir uzatma yapılandırabilirsiniz:

Sadece Dünya'nın diğer tarafındaki koordinatları kullanın. Katman, katman listesinde görünmeye devam edecek, istekler yine de mümkün olacak, ancak bir kullanıcı yalnızca GIS yazılımında seçip "katmana yakınlaştır" seçeneğini seçerse hiçbir şey görmeyecek ve bu katmanın yalnızca boş olduğunu ya da olmadığını düşünebilir iş. Katmanın doğru genişliğini bilen bir uygulama yine de erişebilmelidir.

Bu çözümü bazı WMS sitelerinde uygulanmış görmüştüm, ancak sunucu yanlış bir uzantı döndürdüğü için muhtemelen tam olarak OGC standartlarına uymuyor.


3

Kullanıcıların, VPN ile güvence altına alınan HTTP üzerinden WMS'ye bağlanmasını isteyebilirsiniz. Güvenlik katmanını IP ağı seviyesine yerleştirir, ancak kesinlikle karmaşıklık ekler.



2

Aşağıdakilere sahip olduğunuzu varsayarak:

Ve api_keysile bir tablo oluşturabilirsiniz . Sonra bir querystring parametresi ekleyin . Tileindex için Mapfile’iniz ( örneğe bakın ) şunun gibi bir şey yapılandırılır:access_tokenexpires_at&api_key=my_unique_key

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

Buradaki fikir, kullanıcıları veritabanına doğrulayan ayrı uygulamanızın, api_keystabloyu güncelleyeceği, access_tokenbir md5 karma değerinin ayarlanacağı ve expires_atsütunun gelecekte bir noktaya kadar güncellenmesini sağlayacak olmasıdır.

Alternatif olarak, trafiği, WMS / OWS kimlik doğrulamasını yöneten ve yetkilendirilmiş kullanıcıları dahili Mapserver'da proxy'lere ayıran ayrı bir çerçeveye proxy yapabilirsiniz. Burada, başkalarının bu soruya cevap verdiklerinin genişletilmiş / özetlenmiş bir listesi olan mapserver-users posta listesine gönderilen bir gönderiden elde edilen bir liste bulunmaktadır.

Geoserver'ı kullanmaya karar verirseniz, AuthKey modülüne bakın .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.