Je souhaite publier des couches de carte à l'aide d'OpenLayers et de GeoServer. Bien que cela soit assez facile à configurer, je suis un peu perdu en ce qui concerne les possibilités d'authentification. Ce que je veux, c'est créer différents utilisateurs qui, en se connectant avec leur propre nom d'utilisateur et mot de passe, seront dirigés vers leur propre fenêtre de carte. Comment cela peut-il être fait en toute sécurité afin qu'aucun de mes utilisateurs ne puisse accéder les uns aux autres?
J'ai compris qu'il est assez facile de "pirater" la configuration en faisant, par exemple, des requêtes au GeoServer où l'on lui demande simplement de lister toutes les couches disponibles.
Quelles sont mes options? Je suppose qu'apache pourrait être utile lors de sa configuration sur mon serveur Ubuntu? Des tutoriels sur ce sujet?
Vous pourriez jeter un œil à GeoPrisma
http://geoprisma.org/dist/build/html/introduction/index.html
J'aurais une analyse de la documentation - il peut être exagéré d'ajouter cela à un projet simple si vous n'avez que quelques couches / utilisateurs sur votre système. Si vous avez des centaines d'utilisateurs / groupes avec des droits d'édition sur différents jeux de données, il est probablement judicieux d'utiliser un projet existant tel que GeoPrisma.
Sinon, la sécurité standard du serveur Web construite autour de HTTP suffirait probablement.
la source
Veuillez déboguer cette déclaration
$ type = $ _ GET ['FORMAT'];
lorsque vous passez la valeur de FORMAT comme paramètres de l'URL, obtenez-vous la carte (image) du serveur, si vous l'obtenez, votre proxy devrait fonctionner correctement.
la source
Une approche consisterait à implémenter un proxy comme celui-ci qui pourrait vérifier les informations d'identification d'un utilisateur connecté en utilisant des variables de session et leur permettre uniquement d'accéder aux ressources auxquelles ils ont droit, c'est-à-dire: vérifier l'URL pour les couches appelées et refuser l'accès si l'utilisateur n'est pas autorisé à les consulter.
En ce qui concerne les données qu'ils peuvent voir, s'il s'agit d'un sous-ensemble d'un ensemble de données plus important, c'est un peu plus compliqué, mais je vois deux approches ..
Utilisez des vues SQL paramétrées pour contrôler les données que l'utilisateur verrait. Vous pouvez utiliser le proxy pour modifier l'URL avant qu'elle ne soit transmise à Geoserver avec les paramètres spécifiques à cet utilisateur. Vous pouvez également renvoyer les paramètres à Openlayers via un appel Ajax après que l'utilisateur est authentifié et fournir les paramètres dans le cadre de l'appel getMAP WMS dans OpenLayers. Les données réelles affichées peuvent être gérées par substitution de variable dans SLD pour filtrer les données affichées ou en utilisant des styles externes dans vos appels getMap WMS pour modifier le SLD qu'un utilisateur utilise pour afficher une couche donnée.
Utilisez un appel Ajax après l'authentification de l'utilisateur pour spécifier les extensions de carte afin de permettre uniquement à l'utilisateur de se déplacer dans une zone spécifiée. Vous pouvez également utiliser layerVisibility () pour restreindre les données pouvant également être affichées.
la source
la source