Forum: Rails France Déconnexion d'une authentification Apache

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Noé F. (Guest)
on 2007-03-22 22:08
(Received via mailing list)
Bonsoir!

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:removed_email_address@domain.invalid/ 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!

Noé_______________________________________________
Railsfrance mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance
Simon P. (Guest)
on 2007-03-23 00:03
(Received via mailing list)
Salut,

Confronté au même problème, je n'ai pas trouvé mieux que ta solution du
http://logout:removed_email_address@domain.invalid/...

Simon
Lionel B. (Guest)
on 2007-03-23 01:16
(Received via mailing list)
removed_email_address@domain.invalid wrote the following on 22.03.2007 21:06 :
> Bonsoir!
>
> 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...
>

Je suis curieux, cette personne a donné une raison ? Parce que ça
revient quand même quinze ans en arrière et le problème du logout n'est
pas le seul rencontré. En pratique pour des raisons de sécurité on
préfére justement ne *pas* laisser le frontal web avoir accès à la base
utilisateur pour éviter de multiplier le nombre de composants
susceptibles d'être attaqués...
Noé F. (Guest)
on 2007-03-23 08:07
(Received via mailing list)
Bonjour,

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 :
Eric D. (Guest)
on 2007-03-23 11:18
(Received via mailing list)
Le Jeu 22 mars 2007 23:01, Simon P. a écrit :
>> 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.

--
Éric Daspet
http://eric.daspet.name/
Noé F. (Guest)
on 2007-03-24 11:25
(Received via mailing list)
Le 23 mars 07 à 10:16, Eric D. a écrit :
> - une entête "WWW-Authenticate" avec pour valeur 'Basic realm="My
> http://eric.daspet.name/
>
> _______________________________________________
> Railsfrance mailing list
> removed_email_address@domain.invalid
> http://lists.rubyonrails.fr/mailman/listinfo/railsfrance


Merci de la réponse!

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:removed_email_address@domain.invalid (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?

Bonne journée!
No
This topic is locked and can not be replied to.