LoginP4 1.0

Catégorie / Domaine : Administration
Compatibilité SCOL Voy@ger : V 3.5 et supérieure
Mise à jour : 02/2003

Fonction

Ce module donne la possibilité de sécuriser l’accès aux pseudonymes des utilisateurs par le biais de mots de passe (avec un système de cryptage). Il utilise pour cela une base de données qui contient des informations relatives à chaque pseudonyme (login, mot de passe, adresse e-mail, etc.).
Le module gère aussi l’enregistrement des utilisateurs, la possibilité de changer de mot de passe, ou de se le faire rappeler en cas d’oubli.
Il est également possible de définir différents droits pour les utilisateurs via un item (typiquement pour l’administration du site). Une interface administrateur permet de changer ces droits dynamiquement.
Associé au module colorTerm 2.3, il devient possible de marquer le pseudonyme comme étant "[away]" (absent).

Le lien entre LoginP4 et la base de données s’effectue par ODBC et nécessite la présence de la DLL scolsql.dll dans le dossier scol\plugins. Cette dll n'est pas livrée avec le Scol Voy@ger car tous les systèmes ne supportent pas ODBC. Il fut donc l'installer manuellement avant l'utilisation de module.

Préalable

- Installation de la scolsql.dll :
Téléchargez-la si elle n'est pas inclus dans le package du SCS.
Placez-la dans le dossier scol\plugins
Editez le fichier usm.ini (ou cliquez droit sur l'icone scol dans la barre des taches, choisissez Avancé puis Mode Expert)
Ajoutez la ligne (respecter la casse du nom de la dll, le langage Scol y est sensible) :

plugin plugins\scolsql.dll SCOLloadSQL

Enregistrez cette modification
Editez le fichier usmRess.ini (ou cliquez droit sur l'icone Scol dans la barre des taches, choisissez Avancé puis Editeur de ressources)
Ajoutez les deux lignes suivantes :

odbc.nom_base.login admin
odbc.nom_base.password admin

où nom_base est le nom de votre base de données tel que défini dans le gestionnaire ODBC de Windows ; admin sont les login et mot de passe de l'administrateur de la base (admin par défaut). Note : L'alias ODBC ne peut pas contenir l'un des caractères suivant : ". * ?".
Enregistrez ces modifications et relancez Scol.

- Préparation de la base de données :
Pour mettre en œuvre le module loginP4, vous devez utiliser et mettre en place une Base de Données, compatible ODBC. Cette base de données contiendra toutes les informations relatives aux comptes utilisateurs gérés.
Le paramétrage et l’utilisation de ce module sont illustrés au travers d’un exemple : les pseudonymes et les mots de passe sont gérés par une table nommée member_description dans une base de données nommée ecomdb. La table member_description contient l’ensemble des informations de connexion pour chaque pseudonyme. Elle est structurée comme suit :

Nom de la colonne

Type

Longueur

Champ vide autorise

Valeur par defaut

Doublons autorisés

login

varchar

20

Non

Non

password

varchar

17

Non

Oui

userName (optionnel)

varchar

20

Non

Non

email

varchar

50

Oui

“”

Oui

passwordnumber

numeric

Non

Oui

clienttype

varchar

20

Oui

“”

Oui

nbsuccessfullconnections

numeric

Non

0

Oui

nbunsuccessfullconnections

numeric

Non

0

Oui

lastConnectionDate

varchar

25

Non

“”

Oui

 

Configuration


Figure 1 : Interface du module LoginP4

(1) : Les informations contenues dans la zone (1) permettent de créer le lien avec la base de données qui contient les pseudonymes et mots de passe sécurisés. Elle contient 3 champs :
- le nom de la source de données,
- le bouton Connexion
- le nom de la table contenant les pseudonymes.

Nom de la source de données Champ permettant d’indiquer la base de donnée utilisée avec le module ; il faut indiquer l’alias de la base tel qu’il est défini dans ODBC

Connexion Lorsque le nom de la source de données est renseigné, le bouton Connexion établit la connexion entre le module loginP4 et la base de données

Nom de la table Une liste déroulante indique les noms des tables de cette base : ce champ doit contenir le nom de la table qui contient les informations sur les pseudonymes des utilisateurs. Dans notre exemple, la table s’appelle member_description.
   
(2) : Les informations contenues dans la zone (2) permettent d’indiquer le nom des colonnes de la table des pseudonymes, dont le module loginP4 a besoin.
Le module loginP4 permet la gestion de différents types d’utilisateurs. Pour cela, le module charge le contenu de la colonne ‘type d’utilisateur’ de la base de données dans un item client nommé par défaut ‘userType’. Typiquement, on utilisera ce système pour gérer l’administration du site. Afin de faciliter l’intégration, deux évènements spécifiques ont été créés : loginChgIsAdmin et loginChgIsNotAdmin.
Si, pour un utilisateur donné, la colonne ‘type d’utilisateur’ n’est pas vide, l’item client ‘userType’ est rempli et l’évènement loginChgIsAdmin est déclenché. Il est ensuite possible d’exploiter l’évènement à l’aide de conditions sur les liens sur l’item ‘userType’ afin d’activer ou non d’autres modules en fonction du niveau d’administration. Un évènement loginChgIsNotAdmin existe aussi et permet de fermer les modules d’administration quand une personne ayant une colonne ‘type d’utilisateur’ vide se connecte.
Il est aussi possible d’utiliser les conditions directement sur l’événement loginChanged, événement déclenché dès qu’un utilisateur s’enregistre, quelque soit son type.

Colonne des pseudonymes Nom de la colonne contenant les pseudonymes (logins). Dans notre exemple, cette colonne s’appelle login.

Colonne mot de passe

Nom de la colonne contenant les mots de passe (crypté) des utilisateurs. Dans notre exemple, cette colonne s’appelle password.


Colonne des emails Nom de la colonne contenant les adresses E-mail des utilisateurs. Dans notre exemple, cette colonne s’appelle email.

Colonne numéro des mots de passe Nom de la colonne dans laquelle un nombre géré automatiquement par LoginP4 pour le cryptage des mots de passe est stocké. Dans notre exemple, cette colonne s’appelle passwordnumber.

Colonne type d'utilisateur Nom de la colonne définissant les types d’utilisateurs. Dans notre exemple, cette colonne s’appelle clienttype.

Ref de l’item ‘type d’utilisateur’ Spécifie l’item client qui définira le type d’utilisateur.

Colonne nombre de connexions réussies Nom de la colonne dans laquelle le nombre de connexions réussies depuis la première connexion est indiqué. Dans notre exemple, cette colonne s’appelle nbsuccessfullconnections.

Colonne nombre de connexions non réussies Nom de la colonne dans laquelle le nombre d’échecs de connexion depuis la dernière connexion réussie est indiqué. Dans notre exemple, cette colonne s’appelle nbunsuccessfullconnections.

Colonne date de la dernière connexion Nom de la colonne dans laquelle la date de la dernière connexion est indiquée. Dans notre exemple, cette colonne s’appelle lastConnectionDate.

Requête de validité des comptes Il est possible de valider ou invalider des comptes utilisateurs par l’intermédiaire d’une requête paramétrable. Par défaut, aucun test de validité n’est fait.
Exemple de requête de validité : « accountState=1 ».
Dans ce cas, quand un utilisateur essaie de se connecter et que la valeur de la colonne accountState est différente de 1, il se verra refuser la connexion



(3) : Les informations contenues dans la zone (3) permettent d’indiquer les seuils de tolérance de connexions sur le site, tels que le nombre de connexions autorisées pour un utilisateur, le nombre d’échecs de connections, etc… Lors de la première utilisation du module LoginP4, il est recommandé de conserver les valeurs par défaut.

Max de connexions réussies Ce champ permet de paramétrer le nombre maximal de fois que le mot de passe pourra être validé. La valeur par défaut est 10000

Max de connexions non réussies Ce champ permet de paramétrer le nombre maximal d’échecs de connexions. Une fois ce nombre atteint, le client n’a plus qu’un seul essai possible : s’il entre un mauvais mot de passe, il est directement déconnecté du site. La valeur par défaut est 5

Accepter les pseudonymes non enregistrés Si cette option est cochée, un pseudonyme inexistant dans la base de données pourra être utilisé sans mot de passe

Activer les cookies Si cette option est activée, les pseudos et les mots de passes seront mémorisés dans un « cookie ».

Seuil d’avertissement de l’expiration du mot de passe Indique un seuil à partir duquel un message s’affiche chez l’utilisateur lors de sa connexion pour indiquer que son mot de passe va expirer.
Une valeur de 1 % pour un maximum de 10000 connexions réussies signifie que l’utilisateur sera prévenu que son mot de passe va expirer à partir de sa 9900ème connexion réussie.

Utiliser le pseudonyme de connexion pour le nom ou un nom dans une autre colonne Champ activé si l’option « accepter les pseudonymes non enregistrés » n’est pas cochée ; il vous permet de spécifier un nom d’utilisateur différent pour le pseudonyme saisi lors de la connexion dans l’interface de LoginP4 et le pseudonyme vu par les autres utilisateurs du site



(4) : Les informations contenues dans la zone (4) permettent de définir les options de l’interface cliente. La confirmation de création de compte ou la récupération de mots de passe oubliés utilisent des mails. Pour cela, le module LoginP4 doit être relie au module MAIL via l’évènement sendPwdEmail.

Bouton "mot de passe oublié" Si cette option est cochée, un bouton ‘Mot de passe oublié’ est ajouté dans l’interface cliente de saisie du pseudonyme. Ce bouton permet à l’utilisateur de demander à recevoir un nouveau mot de passe par e-mail.

Bouton "modifier le mot de passe" Si cette option est cochée, un bouton ‘modifier le mot de passe’ est ajouté dans l’interface cliente de saisie du pseudonyme. Ce bouton permet à l’utilisateur de changer son mot de passe.

Bouton "devenir membre" Si cette option est cochée, un bouton ‘Devenir membre’ est ajouté dans l’interface cliente de saisie du pseudonyme. Ce bouton permet à l’utilisateur de s’enregistrer dans la base de données (il recevra un mot de passe par e-mail).

E-mail de l'expéditeur Adresse électronique de l’émetteur pour l’envoi des e-mails.

Max de pseudonymes par e-mail Utilisé pour définir le nombre maximal de pseudonymes possibles pour une adresse e-mail donnée ; une fois cette limite atteinte, il ne sera plus possible de créer de comptes avec cette même adresse email.



(5) : Les informations contenues dans la zone (5) permettent de gérer une « liste noire » de pseudonymes

Fichier des pseudonymes interdits Dans ce champ, le chemin d’accès au fichier contenant la liste de logins interdits est indiqué. (voir plus bas).



(6) : Les informations contenues dans la zone (6) permettent d’initialiser certains champs de la base lors de la création d’un compte utilisateur via l’interface cliente.

Requête d’initialisation des champs La requête indiquée dans ce champ sera exécutée à chaque création de compte via l’interface cliente.
Exemple : « SET accountState = 1 »
Dans ce cas, le champ accountState prendra la valeur de 1 lors de la création d’un compte.
(voir aussi l’explication précédente sur la ‘requête de validité des comptes’)



(7) : Enfin, la zone (7) permet d’indiquer la bitmap de fond qui sera utilisée pour l’interface cliente du module LoginP4.

Bitmap de fond Cette zone permet de choisir une image bitmap de fond pour l’interface cliente du module au format JPG. En cliquant sur la zone, la bitmap par défaut peut être remplacée par une bitmap de votre choix. Cette image doit avoir une taille de :
380 x 220 si toutes les options sont cochées
260 x 190 si aucune option n’est cochée
260 x 220 si l’option « accepter les pseudonymes non enregistrés» n’est pas cochée mais qu’une ou plus des autres options est cochée.

# Pour créer des comptes, deux solutions sont possibles :
- La création des comptes est automatique : dans l’interface cliente, l’utilisateur clique sur le bouton ‘devenir membre’. Un e-mail contenant un mot de passe lui est alors envoyé.
- Un nouveau compte est créé directement dans la base de données. Le mot de passe étant crypté, il est nécessaire de le rentrer via l’interface d’administration du module (action editAdmin).

# Fichier des pseudonymes interdits :
C'est un simple fichier texte que vous placez dans un sous-dossier de scol\partition.
Ouvrez ce fichier avec votre éditeur favori et respectez la syntaxe suivante :
- A chaque ligne correspond un mot
- pour une chaine (le pseudo) : STRING le_pseudo
- pour une sous-chaine (une partie d'un pseudo) : SUBSTRING la_partie_du_pseudo

Exemple :
STRING DUPONT
STRING MYSITE
SUBSTRING ADMIN

Les pseudonymes "dupont" et "mysite" seront interdits, mais pas "dupond" ou "monsite".
De même, les pseudonymes contenant "admin" seront rejetés : "administrateur", "siteadmin", ...

# En ligne, il est possible d'avoir une console d'administration :

- Nb d'enregistrements : nombre de pseudonymes dans la table.
- Pseudonyme : saisissez ici le pseudo recherché puis appuyez sur le bouton Chercher. Les autres champs seront alors automatiquement renseignés suivant les données de la table.
- Mot de passe : mot de passe actuel (crypté). Il est possible d'en entrer un nouveau puis de valider avec le bouton Changer.
- Email : Email correspondant au pseudonyme. Il est possible d'en entrer un nouveau puis de valider avec le bouton Changer.
- Niveau d'ADM : Possible administration level for the nickname. It is possible to edit a new one and validate it with the button Change.

Note : les mots étant cryptés, il est inutile de changer les mots de passe en éditant la table des pseudonymes.

Mise en oeuvre

Action Fonction
module.événement à LoginP4.start Démarre le module LoginP4 chez le client et affiche le nom du pseudonyme courant dans la zone LoginP4.text (mais pas l'interface de changement de pseudo)
module.événement à LoginP4.show Affiche l’interface de saisie des pseudonymes sur l’interface cliente (zone LoginP4.login)
module.événement à LoginP4.hide Cache l’interface de saisie des pseudonymes
module.événement à LoginP4.destroy Arrête le module LoginP4 sur le client.
module.événement à LoginP4.check Permet de vérifier si le couple pseudonyme/mot de passe est correct
module.événement à LoginP4.editAdmin Affiche une interface d’administration permettant de changer les mots de passe et e-mail de tous les utilisateurs
module.événement à LoginP4.Away
A relier à l'événement du même nom du colorTerm
module.événement à LoginP4.Back A relier à l'événement du même nom du colorTerm

Evénement Fonction
LoginP4.in à module Action Le démarrage du module sur le client engendre une action
LoginP4.destroyed à module Action L’arrêt du module sur le client engendre une action
LoginP4.hidden à module Action La disparition de l’interface du module LoginP4 sur le client engendre une action
LoginP4.shown à module Action L’affichage de l’interface du module LoginP4 engendre une action
LoginP4.loginRefused à module Action Le refus du pseudonyme (mot de passe incorrect, pseudonyme expiré ou déjà utilisé…) engendre une action
LoginP4.loginChanged à module Action Tout changement de pseudonyme d’un utilisateur engendre une action
LoginP4.loginChgIsAdmin à module Action Si le champ « type d’utilisateur » n’est pas vide, une action est engendrée (événement pour l’administration)
LoginP4.loginChgIsNotAdmin à module Action Si le champ « type d’utilisateur » n’est pas vide, une action est engendrée (événement pour l’administration)

Zone Fonction Interface Affectation
LoginP4.login Interface du module LoginP4 permettant à l’utilisateur de changer de pseudonyme Client Non
LoginP4.text Champ d'affichage du pseudonyme Client Non