Dalam sebuah proyek, pelanggan menginginkan gambar-gambar WMS diamankan dari akses yang tidak sah.
Apa solusi umum untuk menyadarinya?
Apakah mereka kompatibel dengan standar OGC?
sumber
Dalam sebuah proyek, pelanggan menginginkan gambar-gambar WMS diamankan dari akses yang tidak sah.
Apa solusi umum untuk menyadarinya?
Apakah mereka kompatibel dengan standar OGC?
Spesifikasi OGC hanya mengamanatkan penggunaan http. Jika sudah sesuai dengan http, seharusnya tidak apa-apa.
Beberapa metode yang mungkin:
Posting OGC ini dari tahun 2005 mengatakan:
Tidak ada aspek keamanan khusus yang merupakan bagian dari Spesifikasi Antarmuka OGC WMS / WFS / WCS. Sebaliknya, keamanan dan otentikasi paling baik ditangani pada lapisan lain di tumpukan pemrosesan.
Jika keamanan melalui ketidakjelasan cukup untuk tujuan Anda, Anda mungkin mengonfigurasi ekstensi palsu untuk layer:
Cukup gunakan koordinat di sisi lain Bumi. Lapisan masih akan muncul di daftar lapisan, permintaan masih akan mungkin tetapi jika pengguna cukup memilihnya dalam perangkat lunak GIS dan pilih "zoom to layer" dia tidak akan melihat apa-apa dan mungkin berpikir bahwa lapisan ini hanya kosong atau tidak kerja. Aplikasi yang mengetahui perluasan layer yang benar harus tetap dapat mengaksesnya.
Saya sudah melihat solusi ini diterapkan pada beberapa situs WMS, tetapi mungkin tidak sepenuhnya memenuhi standar OGC karena server mengembalikan perluasan yang salah.
Anda dapat meminta pengguna terhubung ke WMS melalui HTTP yang diamankan oleh VPN. Ini menempatkan lapisan keamanan pada tingkat jaringan IP, tetapi tentu saja menambah kompleksitas.
Ada juga kerangka kerja khusus seperti SecureOWS oleh CampToCamp: http://www.secureows.org/trac/secureows
Dengan asumsi Anda memiliki yang berikut ini:
Anda bisa membuat api_keys
tabel dengan access_token
dan expires_at
kolom. Kemudian tambahkan parameter querystring &api_key=my_unique_key
. Mapfile Anda untuk tileindex ( lihat contoh ) akan dikonfigurasikan seperti ini:
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
Idenya adalah aplikasi terpisah Anda yang mengotentikasi pengguna ke database akan memperbarui api_keys
tabel, mengatur access_token
hash MD5 dan menjaga expires_at
kolom diperbarui ke beberapa titik di masa depan.
Atau, Anda dapat mem-proxy lalu lintas ke kerangka kerja terpisah yang menangani otentikasi WMS / OWS dan proksi pengguna yang berwenang ke Mapserver internal. Berikut adalah daftar yang diperoleh dari pos ke milis mapserver-pengguna , yang merupakan daftar diperluas / diringkas dari apa yang orang lain telah jawab untuk pertanyaan ini.
Jika Anda pernah memutuskan untuk menggunakan Geoserver, lihatlah modul 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