Par Romain Tiennot le jeudi 7 juillet 2011, 21:25 - Actualité
Cet article montre comment créer une signature en PHP. Cela peut être très utile si vous voulez numéraux les accords pour des devis ou la remise d'objet par exemple.
Je n'ai aucune idée ci cela a une valeur niveau juridique, mais c'est très pratique puis on fait des économies de papier
Je me suis basé sur le code de Thomas J Bradley pour créer ce mini formulaire.
Le code se découpe en deux parties :
Le formulaire avec le nom de la personne et la signature
Le résultat de la validation de la signature
Il utilise du Jquery pour effectuer la signature. L'avantage de passer par du Jquery et non du Java, c'est que l'on peut utiliser cette solution sur les tablettes ou smartphone tactile.
Par Romain Tiennot le vendredi 27 mai 2011, 20:33 - Linux
Cette article va montrer comment activer et utiliser l'authentification LDAP pour un intranet par exemple.
Dans un premier temps, nous avons besoin :
Un domaine Windows avec une Active Directory
D'une machine Linux intégré au domaine
Un serveur LAMP (Linux Apache MySQL PHP) ou au minimum Apache et PHP.
Une fois votre linux intégré dans le domaine (Voir Article précedent) et votre serveur LAMP installé, vous devez télécharger et activer le module LDAP.
Télécharger et installer le module LDAP :
apt-getinstall php5-ldap
Activer le module :
a2enmod ldap
Puis relancer le serveur :
/etc/init.d/apache2 restart
Félicitation, vous pouvez utiliser l'authentification LDAP via PHP. Il ne vous reste plus qu'a coder quelque ligne en PHP.
Vu que je suis gentil, voici un petit exemple d'authentification.
Dans mon cas, nous avons 5 services :
Administration
Direction
Production 1
Production 2
Technique
Chaque service à une OU (Unité d'organisation) à son nom et deux sous OU nommé "Ordinateur" et "Utilisateur".
Seul les utilisateurs présent dans les OU's "Utilisateur" pourront se connecter via le LDAP et les autres se veront rejeté. Les utilisateurs présent dans l'OU "Technique","Utilisateur" auront des droits supplémentaire.
Pour cela, nous devons avoir deux Pages :
Une page d'authentification (index.php)
Une page qui se connecte au LDAP avec les identifiants (autorise.php)
La page "autorise.php" va récupérer les identifiants saisie (par exemple : "romain.tiennot"). Pour la connexion LDAP, on doit utiliser le "Nom" et non "identifiant de connexion" donc j'ai fait un "str_replace" pour remplacer le "." par " ".
Avec les identifiants, il va essayer de vérifier si l'utilisateur est bien présent dans les OU et si son mot de passe est correcte.
Voici la page index.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"lang="fr"><head><title>Intranet</title><metahttp-equiv="Content-Type"content="text/html; charset=windows-1252"/><metahttp-equiv="content-language"content="fr"/></head><body><FORMMETHOD="POST"ACTION="autorise.php"><TABLEWIDTH="100%"><TRALIGN="CENTER"><TD>Login</TD><TD><inputtype="texte"value=""name="login"/></TD></TR><TRALIGN="CENTER"><TD>Mot de passe</TD><TD><inputtype="password"value=""name="password"/></TD></TR><TRALIGN="CENTER"><TD></TD><TD><BR/><inputtype="submit"name="connection"value="Connection"</TD></TR></TABLE></FORM></body></html>
Voici la page autorise.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Intranet</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<meta http-equiv="content-language" content="fr" />
</head>
<body>
<?php// on récupère le login et le pass$user=$_POST['login'];$passwd=$_POST['password'];// Je remplace le "." (point) par " " (espace) car pour la verification LDAP il n'utilise pas les identifiants de connexion mais le "nom de connexion"$user=str_replace('.',' ',$user);// le nom de domaine facon : DC=DOMAIN,DC=LAN$ldap_base='dc=drinkevol,dc=lan';// le nom de domaine facon : DOMAIN.LAN$ldap_server='drinkevol.lan';// Le chemin de l'OU des utilsateurs de la direction avec la variable "$ldap_base" créé plus haut$ldap_direction=",ou=Utilisateurs,ou=Service Direction,".$ldap_base;// Le chemin de l'OU des utilsateurs de la production1 avec la variable "$ldap_base" créé plus haut$ldap_production1=",ou=Utilisateurs,ou=Production 1,ou=Service Production,".$ldap_base;// Le chemin de l'OU des utilsateurs de la production2 avec la variable "$ldap_base" créé plus haut$ldap_production2=",ou=Utilisateurs,ou=Production 2,ou=Service Production,".$ldap_base;// Le chemin de l'OU des utilsateurs de l'informatique avec la variable "$ldap_base" créé plus haut$ldap_informatique=",ou=Utilisateurs,ou=Service Informatique,".$ldap_base;// Le chemin de l'OU des utilsateurs de l'administration avec la variable "$ldap_base" créé plus haut$ldap_administratif=",ou=Utilisateurs,ou=Service Administratif,".$ldap_base;// le port pour la connexion LDAP (par defaut 389)$ldap_port='389';// Création de la variable "$connexion_serveur" ou l'on indique les informations pour questionner la base$connexion_serveur=@ldap_connect($ldap_server,$ldap_port);// Si la connexion au LDAP fonctionne avec les identifiants saisie et que l'utilisateur se trouve dans l'OU "Utilisateur","Technique" alors on l'authorise avec les droits administrateursif($connexion_user=@ldap_bind($connexion_serveur,'cn='.$user.$ldap_informatique,$passwd)){?>
<div class='news'>
<H1>Bienvenue, <?echoucwords($user).".";?><BR> Vous êtes administrateur</H1>
</div>
<?php$_SESSION['admin']=1;}// Sinon SI la connexion LDAP fonctionne avec les identifiants saisie et que l'utilisateur se trouve dans l'OU "Utilisateur", "Direction" ou "Utilisateur","Production2" etc... Alors on l'autorise avec les droits "Utilisateur"elseif(((($connexion_user=@ldap_bind($connexion_serveur,'cn='.$user.$ldap_production1,$passwd)) or ($connexion_user=@ldap_bind($connexion_serveur,'cn='.$user.$ldap_production2,$passwd))) or ($connexion_user=@ldap_bind($connexion_serveur,'cn='.$user.$ldap_direction,$passwd))) or ($connexion_user=@ldap_bind($connexion_serveur,'cn='.$user.$ldap_administratif,$passwd))){?>
<div class='news'>
<H1>Bienvenue, <?echoucwords($user).".";?>
</div>
<?php$_SESSION['admin']=2;}// Sinon, les identifiants sont peut etre mal saisie ou que l'utilisateur n'existe pas ou qu'il n'est pas dans la bonne OU. L'utilisateur se voit rejeter la connexion.else{?>
<div class='news'>
<H1><?echoucwords($user);?>, vous n'etes pas authorisé</H1>
<BR/><BR/><form><input type='button' value='Retour' onclick="self.location.href='index.php'"></form>
</div>
<?php$_SESSION['admin']=0;}?>
</body>
</html>