PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 14-02-2014 00:18:43

pascalpa
Membre
Inscription : 02-02-2014
Messages : 3

Restreindre l’accès à un site: SSO, filtrage par REFERER, autres ?...

Bonjour tout le monde,

En quelques mots : Je souhaiterais faire en sorte qu’un site ne soit accessible que depuis un lien figurant sur un autre site (sur une page sécurisée), et qu'il ne soit pas visible (ou du moins, qu’il soit difficile à trouver…) par un internaute "lambda". J’aimerais connaître les différentes approches envisageables pour arriver à ce résultat. Je précise que je suis débutant en développement web et PHP.

Voici les caractéristiques des 2 sites :

a) Le site A est un site institutionnel. Il a été développé en ASP.NET et est hébergé chez un prestataire, sous Windows/IIS. Il s'agit d'un système propriétaire, sur lequel nous n'avons que partiellement la main.

b) Le site B (celui que j’ai prévu de créer) est un mini-site consistant en un dictionnaire scientifique spécialisé. Il sera hébergé sur un autre serveur (peut-être en local) et sera associé à un sous-domaine. J'ai déjà pas mal travaillé sur les données, j'ai créé la base MySQL et j'ai fait une première ébauche d'interface de recherche. Le projet me paraît assez facile, à un détail près…

Voici le problème :

Je pensais pouvoir mettre ce site B en accès libre (ou au pire, mettre en place un système d'inscription et d'authentification distinct de celui du site A) mais mon directeur voit les choses autrement : il souhaite que le site B ne soit accessible qu’aux utilisateurs authentifiés sur le site A (via un lien sur une page sécurisée) et que ces utilisateurs n'aient pas à s'authentifier une 2e fois sur le site B. En même temps, il reconnaît que l'accès au site B n'a pas besoin d'être très sécurisé. En fait, il veut simplement qu'un internaute "lambda" ne puisse pas y accéder facilement (ni évidemment, tomber dessus via Google), mais il ne jugerait pas très grave qu'une minorité de gens arrive à contourner le système.

En résumé : il doit y avoir une porte pour dissuader la "masse" des gens d'entrer, mais si la porte n'est pas fermée à clé, ce n'est pas très grave.

Voici mes questions :

Compte tenu de ces demandes, j'imagine plusieurs possibilités :

a) Mise en place d'un SSO entre les 2 sites : je ne me rends pas compte de la faisabilité et de la complexité de ce genre de développement. Savez-vous ce que ce que ça impliquerait techniquement de mon côté (site B) et éventuellement du côté du prestataire (site A) ?

b) "Camouflage" du site B via diverses techniques : je pense que cela pourrait largement suffire (car on n'a pas besoin d'un niveau de sécurité élevé), mais je ne sais pas dans quelle mesure c’est faisable. Dans la configuration des htaccess, j'ai lu qu'il était possible de mettre en place un filtrage par REFERER, de façon à n'autoriser que les visiteurs en provenance du site A : est-ce une bonne solution ? Je m'interroge aussi sur la possibilité de faire en sorte que le site B soit associé à une URL complexe, difficile à deviner par une personne lambda, mais je ne sais pas si c'est réalisable… 

Voilà. Savez-vous si ces solutions sont réalistes, si elles sont faciles à mettre en œuvre, ce qu'elles impliquent comme difficultés, etc. ? Sinon, existe-t-il d'autres solutions ?

Un grand merci d'avance à celles et ceux qui pourront m'éclairer !

Pascal

Dernière modification par pascalpa (14-02-2014 00:21:29)

Hors ligne

#2 15-02-2014 11:20:10

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Restreindre l’accès à un site: SSO, filtrage par REFERER, autres ?...

Bonjour,

Pour que cela reste simple à mettre en place, il faut que les deux sites soient alimentés par la même base de données en local (pour le moins dans le même Datacenter).

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 15-02-2014 15:37:42

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Restreindre l’accès à un site: SSO, filtrage par REFERER, autres ?...

Bonjour,

Je vais peut être être un peu plus explicite pour la forme wink
Il est facile d'occulter complètement l'accès à des personnes étrangères à l'application A en passant par exemple par un système de token généré dynamiquement à chaque demande d'accès à l'application B. L'idéal donc est que les deux applications travaillent sur la même base de données, mais dans l'absolu chacune peut avoir la sienne. Cependant dans ce dernier cas, je vois deux façons de faire niveau bd.

Tout d'abord, dans les deux cas, il est nécessaire que la table gérant les identifiants de connexion soit présente au niveau des deux applications.

Pour le 1er cas, on passe par un algorithme spécifique - global ou à chaque utilisateur - qui vérifie que le token généré est un token qui le vérifie pour authoriser l'accès.
Pour le 2e cas, on génère une table de n tokens en statique que l'on installe des deux côtés, et on vérifie au niveau de l'application B que le token utilisé existe dans la table des tokens et qu'il n'a pas déjà été utilisé, l'inconvénient du 2e cas de figure est qu'il faille rallonger la liste avant qu'elle soit épuisée.

++

Dernière modification par Jc (15-02-2014 15:40:10)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#4 20-02-2014 18:06:06

pascalpa
Membre
Inscription : 02-02-2014
Messages : 3

Re : Restreindre l’accès à un site: SSO, filtrage par REFERER, autres ?...

Merci pour ta réponse et désolé d'y répondre si tardivement !

Le problème est que mes deux sites n'auront pas la même BDD et que je ne peux rien modifier sur le site d'origine sans faire appel au prestataire. :-( C'est pourquoi je pensais à un truc vraiment basique (basé sur un id, voire sur le referer). Cela dit, l'idée de la table de token statique me paraît pas mal... je retiens, merci !

Hors ligne

Pied de page des forums