IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Sécurité] De l'authentification externe [2.x]


Sujet :

Symfony PHP

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut [Sécurité] De l'authentification externe


    Interrogation du moment : comment faire une authentification externe ? J'arrive à afficher un formulaire de login basique (nom d'utilisateur et mot de passe). Cependant, je dois les faire valider par un autre serveur (pour unicité des mots de passe, c'est plus facile), c'est là que le bât blesse...

    Après lecture du chapitre du livre sur la sécurité (http://symfony.com/doc/current/book/security.html), je vois que je devrais créer un user provider moi-même. Je veux bien... mais la doc est bien vide à ce sujet (http://symfony.com/doc/current/cookb..._provider.html) !

    J'ai tenté de regarder du côté de FOSFacebookBundle, mais je dois bien dire que tout ça reste fort obscur pour moi... Google n'a pas non plus ramené d'exemple suffisamment simple pour ça.

    Déjà, je ne suis pas très sûr de la portée de ce provider : il ne fait que prendre les nom d'utilisateur et mot de passe pour renvoyer si l'utilisateur est bien authentifié, sans plus ? Dans ce cas, je crée une entité User à ce moment pour contenir toutes les infos nécessaires (je reçois aussi un ID - utile lors des changements de pseudo -, une adresse email et de quoi définir les tokens à attribuer) et la sérialise, pour récupérer les infos sur les jetons à donner dans l'authentication provider (http://symfony.com/doc/current/cookb..._provider.html) ? Ça ne me semble pas trop être son rôle, alors que le reste du code avec Sf2 me semble fort propre .

    Quelqu'un aurait-il un exemple très simple pour tout ça ? (Genre qui renvoie automatiquement que l'utilisateur est valide, peu importe les données fournies).



    Note : je n'utilise pas le FOSUserBundle, étant donné que ce qui est fourni par Sf2 devrait largement me suffire.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Salut,

    J'ai pas la réponse à la question, mais je peux te dire que tu n'es pas sur la bonne voie :p

    Un UserProvider ca sert pas à grand chose en fait, juste à charger l'utilisateur en fonction du username. La sécurité de sf s'occupe de l'identifier, puis après seulement de file un username et attend de toi en retour un User complet.

    C'est donc autre part qu'il faut chercher mais... je n'ai aucune idée de où !

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par winzou Voir le message
    J'ai pas la réponse à la question, mais je peux te dire que tu n'es pas sur la bonne voie :p
    C'est déjà ça !

    Citation Envoyé par winzou Voir le message
    Un UserProvider ca sert pas à grand chose en fait, juste à charger l'utilisateur en fonction du username. La sécurité de sf s'occupe de l'identifier, puis après seulement de file un username et attend de toi en retour un User complet.
    Là, je vais devoir les récupérer en fonction de leur id (sinon, impossible de changer de pseudo et c'est possible et ça se fait de temps en temps), que je ne peux récupérer qu'en fournissant au webservice le nom d'utilisateur et son mot de passe. (Si ça n'est pas prévu de base, m'est avis que ça va requérir des hacks monstrueux).

    Citation Envoyé par winzou Voir le message
    C'est donc autre part qu'il faut chercher mais... je n'ai aucune idée de où !
    Voilà qui m'avance beaucoup !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    il faudrait plutot partir sur un systeme de clé ou une authentification style CAS,
    il faut verifié si le serveur renvoie les bonnes donnés, t'as la main sur l'autre serveur ?

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    il faut verifié si le serveur renvoie les bonnes donnés, t'as la main sur l'autre serveur ?
    Je ne peux strictement pas toucher à l'autre serveur... Je reçois quelque chose du genre en fournissant pseudo et nom d'utilisateur :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1"?><resultat><ok>1</ok><id>282</id><pseudo>dourouc</pseudo><email>dourouc05@gmail.com</email><admin>0</admin><prenom>Thibaut</prenom><nom>Cuvelier</nom></resultat>

    <admin> sert à la gestion des droits, ça évolue potentiellement à chaque connexion (j'ai encore une flopée d'autres champs du genre pour les droits).

    En cas d'erreur, j'ai :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1"?><resultat><ok>0</ok><erreur>Identifiant ou mot de passe incorrect</erreur></resultat>
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pas trop le choix alors

  7. #7
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    . Je pars donc dans l'étude du CasBundle (https://github.com/sensio/CasBundle), à moins qu'il n'y ait de meilleur exemple ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pour CAS il faut le serveur qui va avec, mais la ta deja un serveur d'auth, de tout facon l'auth se fait coté serveur ca devrai aller ( sauf pour le iso )

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ( sauf pour le iso )
    Tu connais ces quatre lettres : amen ?

    Sinon, un truc que je ne comprends pas dans la configuration du CasBundle : dans l'aide https://raw.github.com/sensio/CasBun.../doc/index.rst, ils font référence à une classe My\FooBundle\Security\UserProvider. Le problème, c'est que je ne trouve pas d'autre trace d'un UserProvider à créer .

    En fait, tout ça me semble horriblement compliqué, à des années-lumières de ce qu'on pouvait faire avec la première version. Peut-être serait-il plus facile de bricoler un truc en se basant sur SsoAuthBundle http://symfony2bundles.org/jfsimon/SsoAuthBundle et en implémentant un autre système de SSO ? Ça semble être ajouter un peu de config à https://github.com/jfsimon/SsoAuthBu..._providers.xml, deux contrôleurs à définir comme https://github.com/jfsimon/SsoAuthBu...Controller.php et quatre classes comme https://github.com/jfsimon/SsoAuthBu...master/Sso/Cas. J'espère que c'est tout, auquel cas ça risquera d'être beaucoup plus simple que de tout refaire soi-même (let's climb on a giant's shoulders).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #10
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Le truc c'est que tu vas aussi être embêté par ton UserProvider, parce que symfony va te donner un username et pas autre chose si j'ai un peu compris la bête. Or toi tu veux récupérer les infos du User avec l'id c'est ca ?

  11. #11
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par winzou Voir le message
    Or toi tu veux récupérer les infos du User avec l'id c'est ca ?
    Je n'ai pas d'autre choix ...
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    Je ne sais pas si ça peut t'aider mais :

    http://brentertainment.com/other/doc...extension.html

    Une doc très claire sur la création d'auth custom.

    J'ai suivi et pu faire mon authentification NTLM sans aucun soucis

  13. #13
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Après avoir regardé un peu tout ce qui a été dit ici, dont tous les bundles qui font à peu près ça, je vois que c'est plus qu'impossible à comprendre...

    Je sens que c'est quelque chose comme http://symfony.com/doc/current/cookb..._provider.html qui est à réaliser, mais le document est suffisamment peu explicite à ce sujet que je n'en suis absolument pas sûr...

    Au final, je pensais prendre une approche tout à fait bourrine : écouter le bon événement qui a lieu lors du login (juste quand les identifiant et mot de passe arrivent), faire la popote interne de récupération de données, création des entités qui vont bien (l'utilisateur, ses groupes avec le FOSUserBundle), en settant le mot de passe à ce que je viens de recevoir (si le service externe me dit qu'il est correct), puis laisser Sf2 faire le reste.

    Cela pourrait-il fonctionner ? Quel événement faut-il écouter ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    Pour cette méthode je te conseille

    https://github.com/opensky/LdapBundle

    qui fait exactement ça.

    Après je pense que c'est fait pour si tu veut utiliser les mécanismes d'authentification complet de Symfony et ne pas gérer tes tokens et tout de A a Z.

    Le custom auth complet même si c'est la solution la plus complète pour faire tout ce que tu veux (pas sympa le -1 d’ailleurs :p) a l'air un peu trop complète pour tes besoins.

  15. #15
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    , , je regarde ça de plus près, ça me semble bon !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    Une fois que tu auras tout fait marché si tu trouve pour mon soucis de remember_me avec custom auth surtout n'hésite pas :p

  17. #17
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    J'ai fait un truc, avec le FOSUserBundle (qui semble avoir un Remember me par défaut, vu que ça a l'air de fonctionner sans que je n'aie rien fait de spécial), ce n'est pas propre, mais ça fonctionne du tonnerre.

    Comme précisé un peu plus tôt, j'utilise un listener qui se charge de créer l'entité utilisateur au besoin. J'ai pas mal trifouillé avec ça pour remarquer que l'injection de dépendances ne fonctionne bien qu'en XML, pas en YAML .

    En gros, c'est ça :

    LoginFormPreAuthenticateListener.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?php
     
    namespace Quiz\QuizBundle\Security;
     
    use Symfony\Component\Security\Core\SecurityContext;
    use Symfony\Component\EventDispatcher\EventDispatcher;
    use Symfony\Component\EventDispatcher\Event;
    use Symfony\Component\Security\Core\Exception\BadCredentialsException;
    use Symfony\Bundle\DoctrineBundle\Registry as Doctrine;
    use Quiz\QuizBundle\Entity\User;
     
    class LoginFormPreAuthenticateListener
    {
        private $em;  // Doctrine's entity manager
        private $um;  // FOSUserBundle's user manager
        private $sec; // Symfony2's encoder factory
        private $magicPassword;
        private $magicEncoded;
     
        public function __construct($em, $um, $sec)
        {
            $this->em  = $em;
            $this->um  = $um; 
            $this->sec = $sec;
            $this->magicPassword = 'What a shitty password you came up with! ';
        }
     
        public function handle(Event $event)
        {
            $rq = $event->getRequest()->request;
            if($rq->has('_password') && $rq->has('_username'))
            {
                // authentification externe
     
                // Si tout s'est bien passé, on a ok == 1
                // Dans ce cas, comme on utilise un plaintext comme encoder de mdp, 
                // on sette le mot de passe à ce qu'on attend ; si l'utilisateur
                // n'est pas bien identifié par le forum, on ne change pas le mot
                // de passe reçu et il ne passera pas. 
                if(0 != $xml->ok)
                {
                    $q = $this->em->createQuery('SELECT u FROM QuizQuizBundle:User u WHERE u.id = :id')
    //                              ->setParameter('id', 254882)
                                  ->setParameter('id', (int) $xml->id)
                                  ->getResult();
     
                    if(0 == count($q)) 
                    // pas d'utilisateur déjà en base, on devra le créer de zéro ; sinon, on laisse Sf2 et FOSUB gérer le tout
                    {
                        $user = $this->um->createUser();
                        $user->setUsername($pseudo);
                    }
                    else 
                    // déjà en base, on fait les modifications nécessaires pour que tout soit bien synchronisé
                    {
                        $user = $q[0];
                    }
     
                    $enc = $this->sec->getEncoder($user);
                    $this->magicEncoded = $enc->encodePassword($this->magicPassword, $user->getSalt()); 
                    $user->setPassword($this->magicEncoded); 
                    $rq->set('_password', $this->magicPassword);
     
                    $user->setEmail((string) $xml->email);
                    $this->em->persist($user);
                    $this->em->flush();
                }
            }
        }
    }
    Un peu de configuration :

    services.xml

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" ?>
    <container xmlns="http://symfony.com/schema/dic/services"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
        <services>
            <service id="kernel.listener.dvp_authentication_listener" class="Quiz\QuizBundle\Security\LoginFormPreAuthenticateListener">
                <tag name="kernel.event_listener" priority="100" event="kernel.request" method="handle" />
                <argument type="service" id="doctrine.orm.entity_manager" />
                <argument type="service" id="fos_user.user_manager" />
                <argument type="service" id="security.encoder_factory" />
            </service>
        </services>
    </container>

    Ça fonctionne, je comprends le truc, je me dis donc que ça suffira jusqu'à ce que ça fasse tout planter. Si ça peut t'aider . Le principe est juste de faire la tambouille interne avant que les rouages internes ne sachent qu'ils existent et leur fournir ce qu'ils attendent si tout se passe bien.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  18. #18
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Nice bien joué. Et pourquoi tu dis que le YML marche pas pour la config ?

  19. #19
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Je reçois des tableaux en paramètres dans le constructeur, tandis que la version XML me donne de beaux objets.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  20. #20
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Etrange, j'ai toujours réussi à avoir des objets avec du YML pour l'instant. Je me souviens avoir vu passer des cas où le XML était mieux mais je m'en souviens plus, d'où ma question en fait.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Connexion avec Authentification Externe
    Par agdid04 dans le forum Administration
    Réponses: 8
    Dernier message: 11/03/2010, 14h18
  2. Service d'authentification externe
    Par marcool18_fr dans le forum Services
    Réponses: 2
    Dernier message: 05/10/2008, 20h45
  3. Réponses: 2
    Dernier message: 13/06/2007, 23h35
  4. Réponses: 3
    Dernier message: 18/12/2006, 09h33
  5. [Sécurité] Recherche classes authentification
    Par php_de_travers dans le forum Langage
    Réponses: 7
    Dernier message: 11/05/2006, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo