Comment sécuriser les services WFS?

13

Je suis actuellement chargé de trouver un moyen de déployer les services WFS sur un certain nombre de clients. Les services pourraient être utilisés par les deux logiciels SIG de bureau, par exemple MapInfo / ArcGIS ou par des solutions SIG Web.

Est-il possible, pour un service WFS, de définir par exemple un nom d'utilisateur / mot de passe ou un jeton à transmettre pour la vérification des droits d'accès? (une sécurité de premier ordre n'est pas nécessaire)

J'ai cherché dans la spécification OGC WFS, mais je n'arrive pas à trouver d'informations pertinentes à ce sujet.

user2847
la source
1
Doit être défini au niveau du serveur / domaine. Un proxy inverse peut également être utilisé pour sécuriser des serveurs et services importants - en.wikipedia.org/wiki/Reverse_proxy
Mapperz
Voir également les réponses ici: gis.stackexchange.com/questions/5686/…
mwalker

Réponses:

11

WFS n'a pas de sécurité dans le standard, mais vous pouvez utiliser HTTPS sans problème. Le Service Web OpenGIS (WFS) spécification d' implémentation (04-094) [s. 6.3.4] dit:

L'utilisation de HTTPS n'affecte pas la description des demandes et des réponses décrites dans cette spécification, mais peut nécessiter des actions supplémentaires à la fois sur le client et le service afin d'initier la communication sécurisée.

Il vous appartient donc essentiellement de mettre en œuvre toute fonctionnalité HTTPS. Mapserver peut gérer HTTPS pour autant que je sache , mais je ne l'ai jamais essayé. En fait, je serais très intéressé de voir ce que vous proposez.

MerseyViking
la source
Merci pour votre réponse MerseyViking. Je reviendrai et publierai une mise à jour avec mes résultats.
user2847
7

Si vous souhaitez gérer l'accès à ce service de manière discrète, via une solution de connexion unique, vous pouvez implémenter les éléments suivants. Il n'existe actuellement aucun service open source qui implémente ce type de solution de sécurité.

La première partie est un service Web qui sert de médiateur entre le WFS et l'utilisateur. Ce service Web gérera l'accès utilisateur aux couches WFS et effectuera les vérifications croisées nécessaires avec un contrôle d'accès Active Domain ou Kerberos Authentication. Ce service transmettra au serveur WFS les demandes authentifiées et autorisées. Il s'agit d'un service Web Marshaling.

La deuxième partie consiste à appliquer le serveur WFS pour ne faire confiance qu'aux demandes du service Marshaling. Il s'agit d'une fonction de serveur Web qui limite les adresses IP à partir desquelles il acceptera les connexions / demandes.

Il existe des services Marshaling à vendre. J'ai personnellement écrit le mien pour sécuriser une instance GeoServer afin qu'elle puisse s'intégrer dans une très grande boutique Microsoft. Cela permettait d'affecter des utilisateurs à des groupes et de gérer l'accès aux ensembles de données via le service Marshaling.

Garanti pour être sécurisé et ne pas affecter les performances de la communication.

Si vous souhaitez des diagrammes de cette infrastructure pour une meilleure compréhension ou les noms de certains fournisseurs, faites le moi savoir (email). Je ne suis affilié d'aucune façon aux vendeurs, je connais juste leurs noms. Je préfère écrire le mien;)

Cela peut être un bon projet open source :) :)

OptimizePrime
la source
absolument d'accord, mais comme en 2018, personne ne s'en souciait :(
Ilya Yevlampiev
la seule solution possible est de sécuriser le servlet à partir de gwt-openlayers-server livré avec gwt-openlayers et de fournir en tant qu'authentification de base sécurisée du servlet au wfs-t (mais pas oauth et autres bonnes [pratiques du monde des nuages ​​de printemps ancré)
Ilya Yevlampiev