Catégorie / Domaine : | Administration |
Compatibilité SCOL Voy@ger : | V 3.5 et supérieure |
Mise à jour : | 02/2003 |
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.
- 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.
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 |