Extension:PluggableAuth/fr

L'extension PluggableAuth fournit un cadre pour la création d'extensions d'authentification et d'autorisation.

L'authentification est le processus qui consiste à prouver qu'un utilisateur est bien celui qu'il prétend être. Cela peut être fait, par exemple, en fournissant un nom d'utilisateur et un mot de passe ou un jeton ou un élément biométrique.

Les extensions d'autorisation suivantes peuvent être utilisées avec PluggableAuth :


 * - utilise LDAP
 * - utilise le logiciel de gestion d'association Naylor
 * - utilise OpenID Connect
 * - utilise Shibboleth
 * - utilise SAML
 * - utilise l'authentification Steam
 * - utilise OAuth

Autorisation est le processus permettant de déterminer si un utilisateur authentifié particulier doit avoir accès à une ressource particulière. Cela peut être fait, par exemple, en vérifiant une liste d'adresses électroniques autorisées ou en vérifiant les valeurs des attributs d'utilisateur fournis par un serveur d'identité.

Dans le cas de PluggableAuth, les extensions d'autorisation déterminent si un utilisateur authentifié peut continuer à se connecter à un wiki. Cependant, les extensions « d'authentification » (plutôt que les extensions d'autorisation) prennent en charge les groupes d'utilisateurs pour lesquels un utilisateur doit être autorisé, en fonction des attributs transmis par le fournisseur d'identité (IdP).

Les extensions d'autorisation suivantes peuvent être utilisées avec PluggableAuth :


 * - utilise une liste d'adresses email et de domaines
 * - utilise LDAP

Cette extension peut utilisé un plugin d'authentification, zéro ou plusieurs plugins d'authentification Si aucun plugin d'autorisation n'est utilisé, tous les utilisateurs authentifiés sont autorisé à utiliser le wiki.

PluggableAuth definit deux accroches importantes:


 * - permet aux greffons d'autorisation de fournir du code pour prendre une décision d'autorisation
 * - utilisé pour compléter les informations de groupe de MediaWiki avec celles d'un fournisseur externe

Créer des nouveaux greffons d'authentification
Les greffons d'authentification sous-classe la classe abstraite  fournie par PluggableAuth. Un plug-in d'authentification doit définir  sur le nom de cette sous-classe et doit implémenter les fonctions suivantes :


 * Appelé pour authentifier l'utilisateur.
 * Les paramètres sont utilisés pour renvoyer l'identifiant utilisateur, le nom d'utilisateur, le vrai nom et l'adresse e-mail de l'utilisateur authentifié et, si l'utilisateur ne peut pas être authentifié, un message d'erreur facultatif.  est un entier et les autres paramètres sont toutes des chaînes. Si l'utilisateur ne peut pas être authentifié et qu'aucune valeur n'est définie pour , un message d'erreur par défaut s'affiche.
 * doit être défini sur  si l'utilisateur est nouveau, auquel cas   ajoutera l'utilisateur à la base de données.
 * Doit retourner true si l'utilisateur a été authentifié et false dans le cas contraire.
 * Si le retour à l'URL, le nom de la page ou les paramètres de requête de la page à partir de laquelle la connexion a été initiée sont nécessaires dans la fonction authenticate, ils peuvent être consultés comme suit :


 * Appelé après qu'un nouvel utilisateur a été authentifié et ajouté à la base de données pour ajouter des informations supplémentaires à la base de données requises par le mécanisme d'authentification.


 * Appelé lorsque l'utilisateur se déconnecte pour informer le fournisseur d'identité, si nécessaire, que le nettoyage, tel que la suppression de la session de l'utilisateur, doit être effectué.

Special:UserLogin et champs supplementaires login
La page  ne sera affichée à l'utilisateur pendant l'authentification que s'il y a des champs sur ce formulaire que l'utilisateur doit remplir.

Autrement dit, si un greffon d'authentification n'ajoute pas de champs supplémentaires au formulaire  en utilisant   et si la connexion locale (qui active les champs de nom d'utilisateur et de mot de passe sur le formulaire  ) n'est pas activée par un administrateur de site en utilisant , la page   ne sera pas affichée.

Même si  n'est pas affiché, il peut être nécessaire pour un plugin d'authentification de recueillir l'entrée utilisateur à l'aide d'une page Web fournie par un système d'authentification d'entreprise. Ceci serait réalisé par une redirection, souvent à partir de la bibliothèque d'authentification utilisée par le greffon d'authentification.

Si aucune bibliothèque de ce type n'existe et que vous devez mettre en oeuvre le mécanisme d'authentification à partir de zéro, la redirection ne doit pas aller à. Au lieu de cela, il devrait aller à une page spéciale personnalisée, non répertoriée basée sur. Enfin, s'il n'y a pas d'entrée utilisateur requise par l'utilisateur dans le cadre de l'authentification à partir de  ou du système d'authentification à distance, cliquer sur le lien "Se connecter" rendra simplement la page actuelle dans un état connecté.

Si un plug-in d'authentification ajoute des champs supplémentaires au formulaire  en utilisant , les champs sont accessibles dans la fonction   dans un plug-in d'authentification comme suit :

Cela retournera un tableau de valeurs de champ indexées par le nom du champ du tableau descripteur de champ.

Créer des nouveaux greffons d'authentification
Les crochets d'autorisation utilisent le crochet pour enregistrer une implémentation de la fonction suivante :


 * est l'objet Utilisateur pour l'utilisateur demandant l'autorisation
 * doit avoir la valeur true si l'utilisateur est autorisé et false dans le cas contraire.
 * Retourne true pour appeler d'autres implémentations de hook d'autorisation et false pour les ignorer.

Notes des versions

 * Version 5.7
 * Ajout d'un message d'erreur lorsqu'il y a une erreur de session fatale rare


 * Version 5.6
 * Correction de l'ouverture de session automatique pour qu'elle retourne à la page correcte après l'authentification.


 * Version 5.5
 * Correction d'un problème avec le crochet.


 * Version 5.4
 * Ajout de  et.
 * Corrections de style de codage.


 * Version 5.3
 * Ajout de.


 * Version 5.2
 * Connexion automatique convertie en PHP à partir de JavaScript


 * Version 5.1
 * Ajout d'un crochet. Merci à Poikilotherm d'avoir contribué à cette fonctionnalité.


 * Version 5.0
 * Ajout de  et suppression de l'utilisation de editmyprivateinfo
 * Instruction debug ajoutée lorsque return ntourl n'est pas défini


 * Version 4.2
 * Exception corrigée lorsque return toquery n'est pas défini.


 * Version 4.1
 * Ajout de variables de session pour contenir le nom de la page et les paramètres de requête de la page à partir de laquelle la connexion a été initiée pour être utilisée dans


 * Version 4.0
 * Ajout d'un message d'erreur facultatif à
 * Numéro de version bossé à synchroniser avec les extensions SimpleSAMLphp et OpenIDConnect


 * Version 2.2
 * Confirmer les adresses de messagerie provenant de sources d'authentification externes


 * Version 2.1
 * Mettre à jour les conventions de dénomination des fichiers


 * Version 2.0
 * Presque entièrement réécrit pour prendre en charge le nouveau cadre d'authentification et de gestion de session MediaWiki 1.27
 * Basculé vers l'enregistrement d'une nouvelle extension
 * Noms de variables de configuration modifiés pour ajouter le préfixe $wg
 * supprimé
 * renommé en
 * ajouté pour prendre en charge la connexion locale par mot de passe au wiki en plus de PluggableAuth


 * Version 1.2
 * Déplacé l'ajout d'un nouvel utilisateur à la base de données wiki après une autorisation réussie de l'utilisateur
 * Validation  ajouté


 * Version 1.1
 * Ajout d'un appel à la déconnexion lorsque la session expire pour s'assurer que la fonction deauthenticate dans les classes d'implémentation est appelée


 * Version 1.0
 * Version initiale