Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ajout authentification dans une application simple #170

Open
aschlegle opened this issue Feb 3, 2023 · 6 comments
Open

Ajout authentification dans une application simple #170

aschlegle opened this issue Feb 3, 2023 · 6 comments
Assignees

Comments

@aschlegle
Copy link

Contexte:

On essaye d'ajouter un système l'authentification à une application simple (juste du front).
Pour cela on voudrait atteindre l'api userhub, avec la route auth/login.
(Pour rappel je travaille en local et j'essaye d'atteindre des serveurs à distances)

Pistes:

On a 3 pistes pour appeler cette route:

  1. Appeler depuis angular directement: http://url_serveur:5001/pypn/auth/login
    Une option interressante car elle nous permettrait de faire au plus simple avec juste angular en front.
    Cependant cette route est protégé en cors: No 'Access-Control-Allow-Origin'

ou

  1. Créer un backend flask pour l'application, et lui ajouter auth/login via https://github.com/PnX-SI/UsersHub-authentification-module/blob/master/README.md

ou

  1. Utiliser le geonature sur le même serveur : http://url_serveur:8000/auth/login
    Contrairement au 1, pas d'erreur cors dans ce cas là.

Laquelle de ces options semble la meilleure?
Je ne suis pas sûr d'avoir bien compris pourquoi la 1 à une erreur "cors" et pas la 3.

@bouttier
Copy link
Contributor

bouttier commented Feb 3, 2023

Je ne comprend pas trop ce que tu cherches à sécuriser, en particulier s’il s’agit d’une application « juste du front » ?? Compliqué de répondre sans cette information.

Pour 1., je pense que cela vient simplement du fait que la requête OPTIONS déclenche une 500 sur UsersHub, ce qui fait planter la vérification CORS.

Dans tous les cas UsersHub est un outil vieillissant construit en dehors des standards d’authentification établie, et je ne peux que décourager à l’utiliser pour tous nouveau projet.

Une solution pour exploiter la base de données des utilisateurs de GeoNature (c’est bien ça le but ?) peut être le module mod_authn_dbd d’Apache.

@aschlegle
Copy link
Author

aschlegle commented Feb 3, 2023

Au départ on avait un projet pur js-html-css, et on en a fait un projet Angular.
Cela nous a permis d'ajouter un routing: seule la page de base est accessible de tous, les autres pages ne sont accessibles que si on est authentifié.

Mais du coup comme notre projet est un angular simple, on a envisagé de pouvoir directement appeler "/pypn/auth/login" depuis le front (et de ne pas implémenter de backend du tout pour cette application).
Il faut noter que j'ai réussi à interroger userhub (http://url_serveur:5001/pypn/auth/login) avec postman. Mais l'erreur cors apparaît lorsque je fais cette requête depuis mon front angular.

Au final notre but est d'interroger la base utilisateur geonature, pour savoir si un utilisateur peut se connecter à l'application ou non.

@bouttier
Copy link
Contributor

bouttier commented Feb 3, 2023

Si je comprend bien, les informations à protéger sont contenu dans l’application front elle-même. Auquel cas, que celle-ci refuse de les afficher n’est qu’une illusion de sécurité : finalement les informations confidentielles sont déjà sur le navigateur du visiteur, et un peu de bidouille suffira pour y accéder.

Protéger l’accès à l’application elle-même me semble encore le plus raisonnable, et cela doit être faisable en utilisant les identifiants de GeoNature grâce à mod_authn_dbd d’Apache.

@RNF-SI
Copy link

RNF-SI commented Feb 3, 2023

Pour préciser, on est pas sur de l'info avec de la haute sensibilité. C'est d'ailleurs actuellement déjà en ligne mais on souhaite limiter la visualisation à des personnes à qui on autorise l'accès.
Après c'est le même principe que GeoNature du coup en terme d'illusion de sécurité.

@camillemonchicourt
Copy link
Member

Après c'est le même principe que GeoNature du coup en terme d'illusion de sécurité.

Ben non, justement.
Si tu n'as pas l'autorisation d'accéder à un contenu dans GeoNature, le serveur ne te l'autorise pas et renvoie pas, donc pas d'illusion...

@RNF-SI
Copy link

RNF-SI commented Feb 3, 2023

parce que ces informations sont contenues dans le back en effet ;) je viens de comprendre

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants