Extension:WSOAuth
WSOAuth État de la version : stable |
|
---|---|
Implémentation | Identité de l'utilisateur , Droits utilisateur |
Description | Etend l'extension PluggableAuth pour fournir l'authentification en utilisant un fournisseur OAuth |
Auteur(s) | Xxmarijnw (Wikibase Solutions) and others |
Dernière version | 9.0.0 (2023-06-16) |
Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
MediaWiki | 1.35+ |
PHP | 7.3+ |
Modifie la base de données |
Oui |
Licence | Licence MIT |
Téléchargement | |
|
|
Téléchargements trimestriels | 98 (Ranked 57th) |
Traduire l’extension WSOAuth | |
Rôle Vagrant | wsoauth |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension WSOAuth (Wikibase Solutions OAuth) permet l'authentification à l'aide d'un fournisseur OAuth. Elle fournit une couche au-dessus de l'extension PluggableAuth pour permettre l'authentification via OAuth.[1]
Les fournisseurs OAuth suivants sont actuellement disponibles par défaut :
- MediaWiki (instance de MediaWiki qui exécute OAuth )
WSOAuth facilite l'ajout de nouveaux fournisseurs AOuth. D'autres informations sur la façon d'ajouter un nouveau fournisseur OAuth sont disponibles sur WSOAuth pour les développeurs .
Compatibilité
WSOAuth | PluggableAuth | MediaWiki | ||
---|---|---|---|---|
9.0+ | 7.0+ |
| ||
6.0-8.x | 6.0-6.x |
| ||
1.0-5.x | 5.7 |
|
Configuration
Les valeurs doivent être fournies pour les variables de configuration obligatoires suivantes :
Drapeau | Valeur par défaut | Description | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$wgPluggableAuth_Config (voir Extension:PluggableAuth#Configuration)
|
[]
|
Tableau obligatoire de tableaux spécifiant les fournisseurs OAuth et leur configuration. Le champ data du tableau doit être un tableau avec les clés suivantes :
|
De plus les variables de configuration optionnelles suivantes sont fournies :
Drapeau | Valeur par défaut | Description |
---|---|---|
$wgOAuthCustomAuthProviders |
false |
Tableau contenant une liste de fournisseurs OAuth avec leur nom de classe (voir WSOAuth pour les développeurs pour plus d'informations). |
$wgOAuthAutoPopulateGroups |
[] |
Tableau contenant une liste des noms de groupes MediaWiki qui doivent être attribués automatiquement à l'utilisateur après son authentification. Depuis WSOAuth 9.0, cela vous oblige également à configurer la synchronisation des groupes. |
$wgOAuthMigrateUsersByUsername |
false |
Indique si l'usurpation des comptes existants est permise ou pas. Si un utilisateur est déjà enregistré sur votre wiki avant que WSOAuth ne soit installé et qu'il a le même nom d'utilisateur qu'un utilisateur qui se connecte via OAuth, ce paramètre détermine si ce compte existant sera attribué à l'utilisateur qui se connecte (true), ou si l'utilisateur qui se connecte via OAut sera empêché de le faire parce qu'il existe déjà (false). Une fois qu'un compte a été migré, l'utilisateur associé à ce compte pourra toujours s'inscrire via OAuth, même si ce paramètre est changé en false. Il est plus sûr de laisser cette valeur à false et laisser l'utilisateur se connecter son compte à distance manuellement via Special:Preferences.
|
$wgOAuthDisallowRemoteOnlyAccounts |
false |
Indique si on permet ou pas que les comptes n'aient pas de contrepartie locale. |
$wgOAuthUseRealNameAsUsername |
false |
Indique s'il faut utiliser le nom réel comme nom d'utilisateur. |
Exemple de $wgPluggableAuth_Config
pour un seul fournisseur :
$wgPluggableAuth_Config['nlwiki'] = [
'plugin' => 'WSOAuth',
'data' => [
'type' => 'mediawiki',
'uri' => 'https://nl.wikipedia.org/wiki/Special:OAuth',
'clientId' => '...',
'clientSecret' => '...'
],
'buttonLabelMessage' => 'dutch-wikipedia-login-button-label'
];
nlwiki
) utilisée pour identifier le fournisseur OAuth en interne et NE DOIT PAS être changée.Exemple de $wgPluggableAuth_Config
pour plusieurs fournisseurs :
$wgPluggableAuth_Config['nlwiki'] = [
'plugin' => 'WSOAuth',
'data' => [
'type' => 'mediawiki',
'uri' => 'https://nl.wikipedia.org/wiki/Special:OAuth',
'clientId' => '...',
'clientSecret' => '...'
],
'buttonLabelMessage' => 'dutch-wikipedia-login-button-label'
];
$wgPluggableAuth_Config['facebook'] = [
'plugin' => 'WSOAuth',
'data' => [
'type' => 'facebook',
'clientId' => '...',
'clientSecret' => '...',
'redirectUri' => '...'
],
'buttonLabelMessage' => 'facebook-login-button-label'
];
Synchronisation de groupe
Pour configurer la synchronisation de groupe, vous devez ajouter un tableau groupsyncs
dans le tableau $wgPluggableAuth_Config
.
Ce tableau doit contenir zéro sous-tableau (ou plus) spécifiant la manière dont les groupes sont synchronisés.
Pour des informations détaillées, voir PluggableAuth.
Le cas d'utilisation le plus courant est la synchronisation de tous les groupes, ce qui peut être réalisé à l'aide de l'algorithme syncall
de synchronisation des groupes.
La configuration ci-dessous réalise la fonction équivalente mais pour des versions plus anciennnes de WSOAuth (c'est à dire 8.0.0-).
$wgPluggableAuth_Config['nlwiki'] = [
'plugin' => 'WSOAuth',
'data' => [
'type' => 'mediawiki',
'uri' => 'https://nl.wikipedia.org/wiki/Special:OAuth',
'clientId' => '...',
'clientSecret' => '...',
'autoPopulateGroups' => ['mygroups' => ['sysop', 'bureaucrat']]
],
'groupsyncs' => [
'mygroupsync' => [
'type' => 'syncall',
'groupattributename' => 'mygroups'
]
]
'buttonLabelMessage' => 'dutch-wikipedia-login-button-label'
];
Fournisseurs OAuth
Actuellement, les fournisseurs AOuth suivants sont pris en charge :
- MediaWiki OAuth (instance de MediaWiki exécutant OAuth )
OAuth MediaWiki
Suivez les étapes ci-dessous pour activer l'authentification et l'autorisation via MediaWiki OAuth.
- Enregistrez une nouvelle application OAuth 1.0a sur le wiki auquel vous déléguez l'accès.
- Par exemple pour s'enregistrer avec Wikimedia, voir : https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration/propose
- N'utilisez pas de paire de clés RSA pour l'authentification et laissez MediaWiki générer le secret pour vous. Utilisez
https://<local wiki url>/wiki/index.php?title=Special:PluggableAuthLogin
comme URL[3] OAuth de callback. SélectionnezVérifier uniquement l'identité de l'utilisateur, sans pouvoir lire les pages ni agir pour le compte d'un utilisateur.
sous Types de droits demandés.
- Écrivez la clé et le secret que vous avez reçus de MediaWiki.
- Dans votre fichier LocalSettings.php initialisez :
$wgPluggableAuth_Config['mywikiauth'] = [ 'plugin' => 'WSOAuth', 'data' => [ 'type' => 'mediawiki', 'uri' => 'https://<central wiki>/w/index.php?title=Special:OAuth', 'clientId' => '<The client ID (key) you received from MediaWiki when you registered your app>', 'clientSecret' => '<The secret you received from MediaWiki when you registered your app>' ] ];
clé de configuration (mywikiauth
dans l'exemple ci-dessus) est utilisée pour identifier le fournisseur OAuth en interne et NE DOIT PAS être modifiée.
Pour utiliser exclusivement MediaWiki comme système de connexion et pour vous connecter automatiquement lors de la visite du wiki, définissez également ceci dans LocalSettings.php :
$wgPluggableAuth_EnableAutoLogin = true;
$wgPluggableAuth_EnableLocalLogin = false;
Pour les applications OAuth qui utilisent un préfixe de callback, un URI[2] de redirection doit être fourni par la clé $1. Cet URI redirigé doit contenir le préfixe spécifié.
Suivez les étapes ci-dessous pour activer l'authentification et l'autorisation via Facebook.
- Créer une nouvelle application sur Facebook pour les développeurs.
- Dans Ajouter un produit, sélectionnez Connexion Facebook.
- Dans le menu à gauche, sélectionnez Paramètres sous Connexion à Facebook.
- Ajoutez le domaine de votre wiki à la liste des URIs de redirection d'autorisation valides et cliquez sur sauvegarder.
- Dans le menu à gauche, cliquez sur Paramètres, puis sur Paramètres et notez le App ID ainsi que le App Secret.
- Définissez ceci dans votre LocalSettings.php :
$wgPluggableAuth_Config['myfacebookauth'] = [ 'plugin' => 'WSOAuth', 'data' => [ 'type' => 'facebook', 'clientId' => '<The App ID>', 'clientSecret' => '<The App Secret>', 'redirectUri' => 'https://<wiki domain>/index.php/Special:PluggableAuthLogin' ] ];
Clé de configuration (dans l'exemple ci-dessusmyfacebookauth
) utilisée pour identifier le fournisseur OAuth en interne et NE DOIT PAS être modifiée.
Pour utiliser exclusivement Facebook comme système de connexion et pour vous connecter automatiquement lors de la visite du wiki, définissez également ceci dans LocalSettings.php :
$wgPluggableAuth_EnableAutoLogin = true;
$wgPluggableAuth_EnableLocalLogin = false;
Mise à jour des versions 6.0-
Pour les versions 6.0+, le schéma de la base de données a dû être modifié pour prendre en compte plusieurs fournisseurs d'authentification. Si vous exécutez une instance MediaWiki avec une version de WSOAuth plus ancienne que la 6.0, vous devez migrer vos utilisateurs externes existants vers le nouveau schéma de base de données si vous souhaitez vous mettre à niveau.
Vous pouvez utiliser le script de maintenance multiAuthMigrate.php
situé dans le dossier maintenance
de l'extension pour migrer :
$ php extensions/WSOAuth/maintenance/multiAuthMigrate.php --provider=mywikiauth
L'option provider
dans l'exemple ci-dessus détermine le fournisseur vers lequel seront migrés les utilisateurs existants.
Messages système
Voici quelques messages système utiles liés à cette extension, et pouvant être personnalisés :
Titre du message | Message par défaut | Position | Indication |
---|---|---|---|
wsoauth-user-already-exists-message |
Le nom d'utilisateur "{{{1}}}" est déjà pris. | Texte affiché comme message d'erreur de l'écran de connexion lorsqu'un utilisateur tente de se connecter avec OAuth, et qu'un utilisateur de ce wiki possède déjà ce nom d'utilisateur. | Cela se produit quand un utilisateur s'inscrit d'abord sur le wiki via l'enregistrement standard des utilisateurs et qu'il tente ensuite de se connecter via OAuth. Si cela se produit dans votre wiki, vous pouvez personnaliser ce message pour inviter les utilisateurs à autoriser les connexions à distance à partir de leurs préférences. Capture d'écran :[upref 1] |
- ↑ selon le poste
MediaWiki:Message title
de votre wikiInstallation
- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
WSOAuth
dans votre dossierextensions/
.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WSOAuth - Seulement lorsque vous installez à partir de Git, exécutez Composer pour installer les dépendances PHP, en entrant
composer install --no-dev
après vous être positionné dans le répertoire de l'extension. (Voir tâche T173141 pour des complications potentielles.) - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
$wgGroupPermissions['*']['autocreateaccount'] = true; wfLoadExtension( 'PluggableAuth' ); wfLoadExtension( 'WSOAuth' );
- Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
- Configurez si nécessaire.
- Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Installation Vagrant :
- Si vous utilisez Vagrant , installez avec
vagrant roles enable wsoauth --provision
Notes
Galerie
-
Pages de connexion avec authentification locale et distante activée.
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |
- PluggableAuth plugins/fr
- Stable extensions/fr
- User identity extensions/fr
- User rights extensions/fr
- MIT licensed extensions/fr
- Extensions in Wikimedia version control/fr
- LoadExtensionSchemaUpdates extensions/fr
- PluggableAuthPopulateGroups extensions/fr
- GetPreferences extensions/fr
- All extensions/fr
- Extensions requiring Composer with git/fr
- Extensions included in Canasta/fr
- Extensions included in Open CSP/fr
- Extensions included in ProWiki/fr
- Extensions included in WikiForge/fr
- Extensions by Wikibase Solutions/fr