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

Autres composants PHP Discussion :

Connexion automatique sur un intranet depuis windows


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut Connexion automatique sur un intranet depuis windows
    Bonjour, je dois développer un petit programme avec Zend Framework et celui ci est sensé se connecter automatiquement (sans passer par un formulaire de connexion), en vérifiant l'identifiant dans l'active directory.

    Est-ce possible?? Parce que ayant regardé la documentation sur le sujet, je n'ai trouvé qu'en passant par un formulaire de connexion. Rien d'automatique . Je me demande même si cela est possible...

    Cordialement,
    Damien

  2. #2
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Salut,

    Il y a quelques temps, j'ai mis en place un système similaire pour un intranet.
    J'ai pu réaliser l'authentification de l'utilisateur en me connectant à un annuaire LDAP. Mais je n'ai pas trouvé le moyen de me passer d'un formulaire (impossible de récupérer la session du pc client).
    Voici ma class, si cela peut t'aider.
    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
     
    <?php
    class LDAPConnect{
    	private $username;
    	private $password;
    	private $ldap_server = "ldap://nomDuServeur.Domaine.com";
    	private $domaine = 'Domaine.com';
    	private $base_dn = "CN=Users, DC=domaine, DC=com";
    	private $filter;
    	private $connect;
     
    	public $msg;
    	public $is_connect = false;
    	/**
    	*/
    	function __construct(Message $m,$u, $p){
    		$this->msg = $m;
    		$this->username = $u;
    		$this->password = $p;
    	}
     
    	/**
    	*/
    	private function connectToServer(){
    		if (!($this->connect=@ldap_connect($this->ldap_server))) {
    			$this->msg->__set('type','error');
    			$this->msg->__set('msg','Impossible de se connecter au serveur LDAP');
    		}
    	}
     
    	/**
    	*/
    	public function bindToServer(){
    		self::connectToServer();
    		if (!($bind=@ldap_bind($this->connect, $this->username.'@'.$this->domaine, $this->password))) {
    			$this->msg->__set('type','error');
    			$this->msg->__set('msg','Nom d\'utilisateur et/ou mot de passe incorrect');
    		}else
    			$this->is_connect = true;
    	}
     
    	/**
    	*/
    	public function getSamaccountname(){
    		if ($this->is_connect){
    			$this->filter = '(&(objectClass=user)(objectCategory=person)(samaccountname='.$this->username.'*))';
    			if (!($search=@ldap_search($this->connect, $this->base_dn, $this->filter))) {
    				die("Recherche impossible sur le serveur LDAP");
    			}
    			$entries = ldap_get_entries($this->connect, $search);
    			return $entries[0]["samaccountname"][0];
    		}
    	}
    }
     
    $Oldap = new LDAPConnect($m,$_POST['username'],$_POST['password']);
    		$Oldap->bindToServer();
    		if ($Oldap->is_connect){
    			//Connexion réussie
    		}
    ?>
    INFO : $m est juste une instance d'une classe Message qui gère l'affichage des messages du système.

    ++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut
    Je te remercie pour ta réponse, ça peut en effet m’être utile. Pour ma part c'est également sur l'intranet que l'application servira, c'est pourquoi on n'est pas sensé rentrer ses informations dans un formulaire de connexion.

    S'il n'y a pas moyen avec Zend, savez vous s'il est possible de retrouver ses informations personnelles via PHP afin d'effectuer la connexion par la suite? Car une fois encore, je n'ai trouvé aucune info a ce sujet...
    Je sais que cela est possible avec d'autres langages, mais avec PHP ça reste un mystère!

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    Implicitement ça l'est.

    Lorsque qu'un utilisateur s'authentifie sur un réseau gérer avec un active directory, un script de démarrage s'exécute et il en va de même quand un utilisateur s'en va ...

    A vous d'aller authentifier votre utilisateur à ce moment ^^


    Je me souviens que du temps ou j'étais au lycée, les utilisateurs étaient authentifiés comme ça sur l'intranet ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut
    Oui mais étant identifié sur le réseau, comment récupérer toutes ses informations d'utilisateur au lancement de mon application par exemple? J'ai du mal à voir comment faire le lien entre les 2, c'est 2 choses totalement distinctes.

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    bonjour,

    Il s'agit aussi d'une recherche que j'ai effectué sans succès, de pouvoir authentifier mon utilisateur sur l'intranet sans qu'il ai besoin de ressaisir ses identifiant une seconde fois, un peu comme "l'authentification windows" quand je me connect via Microsoft SQL Server Management Studio sur mon serveur MsSQL.

    J'ai trouvé cette info : http://fr.wikipedia.org/wiki/NTLM.

    Mais n'ai pas encore creuser l'idée pour le mettre en place.

    quoiqu'il en soit la remarque de Méthylbro m'interesse :

    Implicitement ca l'est.
    Lorsque qu'un utilisateur s'authentifie sur un réseau gérer avec un active directory, un script de démarrage s'exécute et il en va de même quand un utilisateur s'en va ...
    A vous d'aller authentifier votre utilisateur à ce moment ^^
    Je me souviens que du temps ou j'était au lycée, les utilisateurs étaient authentifiés comme ca sur l'intranet ...
    aurais-tu d'autre information concernant cette méthodologie ?

    J'avais aussi utilisé le SSPI dans un programme en VB mais ce type d'authentification ne marche je crois que sur les outils microsofts.

    Je vais suivre ce post avec intéret en tout cas, car il serait intéressant pour l'intranet de mon entreprise

    Par contre qlimamax tu devrais mettre un titre de post plus explicite genre :
    Connection automatique sur un intranet depuis windows ou un truc du genre

    ++

Discussions similaires

  1. gerer la connexion multiple sur un intranet
    Par tortuegenie dans le forum ASP.NET
    Réponses: 5
    Dernier message: 16/10/2008, 17h48
  2. Réponses: 0
    Dernier message: 07/02/2008, 11h26
  3. Réponses: 1
    Dernier message: 23/11/2007, 10h57
  4. [PHP-JS] Connexion automatique sur un site
    Par valinor4 dans le forum Langage
    Réponses: 6
    Dernier message: 15/01/2007, 13h48
  5. Connexion automatique sur base SQL (Login/pass mémorisé)
    Par Fredo67 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/10/2005, 16h24

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