J’ai fait une application Web avec une authentification Apache.
J’aurais voulu la faire directement en ruby dans l’application, mais
la personne qui s’occupe de la sécurité informatique où je vais
installer cette application voulait que ce soit Apache qui fasse
l’authentification par LDAP…
Jusque là, tous va bien! J’arrive même à récupérer le nom de
l’utilisateur avec @request.env[‘REMOTE_USER’] dans mon application
RubyonRails .
Mais… Je n’arrive pas à faire un bouton de déconnexion (logout).
Cela est dû au fait que l’on ne peut pas par exemple effacer la
variable ‘REMOTE_USER’ qu’à créé Apache d’après ce que j’ai lu sur
d’autres forums/blogs.
Malgré cela, j’ai vu quelques solutions comme par exemple rediriger
sur une page du style "http://logout:[email protected]/ où le
login/mondepasse est faux donc Apache redemande une authentification
(donc ça réaffiche la demande de login mais ce qui n’est pas très
“élégant” comme solution de déconnexion où on veut simplement se
déconnecter, pas ce réauthentifier…).
Quelqu’un a déjà été confronté à ce problème? Ou aurait une idée de
solution?
Merci de votre lecture et de votre éventuelle réponse!
Mais… Je n’arrive pas à faire un bouton de déconnexion (logout).
Cela est dû au fait que l’on ne peut pas par exemple effacer la
variable ‘REMOTE_USER’ qu’à créé Apache d’après ce que j’ai lu sur
d’autres forums/blogs.
Il suffit de renvoyer une entête d’authentification :
un code de retour 401 (le message a peu d’importance)
une entête “WWW-Authenticate” avec pour valeur ‘Basic realm=“My Realm”’
(attention à changer le “My Realm” pour utiliser ton realm habituel)
Le navigateur verra une demande d’auth pour le même domaine sur le même
realm et redemandera une authentification.
Le “realm” c’est bien ce qu’on a défini comme “AuthName” dans la
config du VirtualHost d’Apache?
Donc avec cette solution, on arrive à la même finalité qu’avec un http://logout:[email protected] (même si celle-ci est beaucoup
plus élégante) ? On ne peut pas définir une page comme quoi on est
délogué sans avoir la fenêtre de login qui revient?
Sa raison était qu’il pouvait lui-même avoir accès à la partie qui
prend le mot de passe. Si je l’aurais mis dans l’application Ruby on
Rails, il aurait du faire une vérification de tout le code… (il
avait peur d’un backdoor en gros…).
Meilleures salutations,
Noé
Le 23 mars 07 à 00:15, Lionel B. a écrit :
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.