Extension:CentralAuth/fr
CentralAuth allows merging several existing separate account systems into one global account system.
Installation
Pour connaître les conditions d'utilisation de CentralAuth, voir le paragraphe sur la configuration. Suivez ensuite ces instructions lorsque vous êtes prêt à activer CentralAuth :
- Téléchargez la dernière image et développez-la dans votre répertoire
extensions
. - Choisissez une base de données et créez les tables de la base de données CentralAuth. Vous pouvez utiliser une base de données existante ou en créer une nouvelle; l'extension utilise par défaut une base de données nommée
centralauth
(voir$wgCentralAuthDatabase
ci-dessous). Utilisez cette base de données puis exécuteztables-generated.sql
.- Si vous utilisez Extension:AntiSpoof/fr vous devrez créer une table globale
spoofuser
(pour bloquer les nouveaux noms d'utilisateur qui ressembleraient à des noms d'utilisateurs déjà existants sur les wikis). Une manière de faire ceci est de vider la tablespoofuser
à partir de la base de données locale du wiki et de l'importer dans le nouveau$wgCentralAuthDatabase
.
- Si vous utilisez Extension:AntiSpoof/fr vous devrez créer une table globale
- Ajoute
wfLoadExtension( 'CentralAuth' );
à LocalSettings.php à chacun de vos wikis, ou dans un autre fichier PHP inclus dansLocalSettings.php
de chacun de vos wikis. - L'extension doit être active à cet instant.
Voici des exemples de commandes shell et SQL pour créer la base de données centralAuth, copiez la table spoofuser à l'intérieur, et migrez-y les données utilisateur. Remplacez $wgDBname et $wgDBuser par les valeurs concernant l'installation de votre propre wiki.
Créez la nouvelle base de données (notez que cette étape est facultative, vous pouvez utiliser à la place l'une de vos bases de données existantes, et dans ce cas passez directement à l'étape de création des tables) :
$ cd extensions/CentralAuth
$ mysql -u root -p
(enter password for root SQL user)
CREATE DATABASE centralauth;
USE centralauth;
GRANT all on centralauth.* to '$wgDBuser'@'localhost';
quit
Dans ce qui suit on suppose que votre répertoire de travail actuel est celui de votre installation MediaWiki (et non pas celui de CentralAuth).
Créez les tables central auth (il est préférable d'utiliser sql.php
.
php maintenance/sql.php --wikidb centralauth extensions/CentralAuth/schema/<type_de_base_de_données>/tables-generated.sql
Si AntiSpoof est installé, créez la table avec la commande suivant (par ailleurs vous pouvez copier une table AntiSpoof existante si vous voulez conserver les entrées précédentes) :
php maintenance/sql.php --wikidb centralauth extensions/AntiSpoof/sql/<type_de_base_de_données>/tables-generated.sql
Exécutez les scripts de migration des utilisateurs
$ php extensions/CentralAuth/maintenance/migratePass0.php
$ php extensions/CentralAuth/maintenance/migratePass1.php
Upgrading
CentralAuth is designed for large wiki farms who run database updates manually in order to enable zero-downtime upgrades. For that reason, the CentralAuth database will not be updated with the usual upgrade process. Third-party users are expected to follow CentralAuth development and apply database migrations manually instead.
Configuration
D'abord il faut configurer votre famille de wikis en utilisant $wgConf
, sinon CentralAuth ne peut être utilisé pour votre famille de wikis.
Cela comprend la définition de $wgLocalDatabases
et son initialisation à $wgConf->wikis
, et $wgConf->settings
(le minimum est $wgCanonicalServer
, $wgServer
et $wgArticlePath
).
Suivez les exemples soigneusement.
Si vous créez une nouvelle famille de wiki, gardez à l'esprit que cela peut être plus facile si les bases de données des wikis de chaque groupe ont le même suffixe (par exemple avec les bases de données hypothétiques enwiki
, dewiki
, frwiki
, etc., appartenant aux wikis d'un même groupe, elles ont toutes le même suffixe wiki
).
Après avoir installé l'extension, vous devez réunir quelques données dans la base de données de CentralAuth. Pour déclarer des comptes globaux a posteriori, vous devrez exécuter les scripts migratePass0.php et migratePass1.php . Le premier range les informations concernant vos wikis dans la base de données de CentralAuth, alors que le second utilise les heuristiques de migration automatique pour générer les comptes globaux. Les utilisateurs peuvent fusionner leur compte manuellement via Special:MergeAccount. Les exécutions à vide (dry runs) peuvent être utilisées à des fins de tests.
Pour autoriser les groupes globaux vous devrez créer une entrée dans la table global_group_permissions
de votre base de données CentralAuth, avec ggp_group='steward'
et (pour l'accès à l'interface de gestion des groupes) ggp_permission=globalgrouppermissions
.
Un exemple d'utilisation de requête que l'on recommande est : INSERT INTO global_group_permissions (ggp_group,ggp_permission) VALUES ('steward','globalgrouppermissions'), ('steward','globalgroupmembership');
.
Ensuite exécutez migrateStewards.php
pour promouvoir les stewards locaux à l'état de stewards globaux.
Il existe différents paramètres que vous pouvez modifier (par exemple si vous voulez fournir la connexion unique à travers tout le domaine) listés dans CentralAuth.php.
En particulier, vous pouvez remplacer la valeur par défaut de $wgCentralAuthDatabase
si votre base de données CentralAuth a un nom différent de 'centralauth'
.
Assurez-vous de mettre ce type de paramètre après la ligne wfLoadExtension
de LocalSettings.php
, par exemple :
wfLoadExtension( 'CentralAuth' );
$wgCentralAuthDatabase = 'mycentralauthdatabase';
Comportement « SUL2 »
Cette page est obsolète. |
Veuillez développer cette page. |
En juillet 2013 la Fondation Wikimedia a modifié son approche pour connecter les utilisateurs sur des wikis multiples.
Lorsqu'il est configuré pour cette nouvelle approche, après une connexion et une création de compte réussie, CentralAuth redirige vers Special:CentralLogin/start?token=somevalue
sur un wiki central de connexion, qui crée les cookies sur ce wiki puis redirige à nouveau vers le wiki à partir duquel vous vous êtes connecté.
Il supprime la page de « connexion / création réussie de compte » et à la place redirige l'utilisateur sur « retour vers » la page où il se trouvait intialement.
Il insère des images de 1 x 1 pixel dans le pied de page de cette page, à la place des icônes utilisées antérieurement sur la page de « connexion / création réussie de compte ».
Les paramètres pour ceci sont en gros :
# General CentralAuth configuration
$wgCentralAuthCookies = true;
$wgCentralAuthDatabase = 'centralauthDatabaseName'; // default is 'centralauth'
$wgCentralAuthAutoMigrate = true;
#$wgCentralAuthCookieDomain = '.example.org';
$wgCentralAuthAutoLoginWikis = array(
# Mapping from domain name to wiki id for other wikis to automatically login into
);
# Activates the redirect to the "central login wiki"
$wgCentralAuthLoginWiki = 'WikiIdOfLoginWiki';
$wgCentralAuthLoginWiki
is the id (usually the database-name) of the wiki to which CentralAuth will redirect on login and create account.
Problèmes du cache
Pour de meilleurs résultats, il est recommandé d'utiliser le cache mémoire.
Si vous n'avez qu'un seul serveur, les caches d'accélération (CACHE_ACCEL
) tels que APCu peuvent également fonctionner, mais il ne faut pas les utiliser si vous avez plusieurs serveurs.
Si vous utilisez aucun cache (par exemple CACHE_NONE
) pour $wgMainCacheType
, ou si vous utilisez CACHE_DB
, alors assurez-vous que tous vos wikis utilisent la même table de cache.
Par défaut, tous les wikis de votre ferme de wikis vont utiliser la table objectcache
dans leur propre base de données (avec leur propre préfixe de base de données) lorsque $wgMainCacheType
est initialisé à CACHE_NONE
ou CACHE_DB
.
Pour que cela fonctionne avec CentralAuth, nous devons dire aux wikis d'utiliser une table centrale en cache.
Si vous voulez créer une table centrale de cache dans la base de données centralauth
(et en supposant que l'un de vos wikis existant possède une base de données de nom enwiki
), exécutez un code similaire au suivant pour copier la table dans cette autre base :
CREATE TABLE centralauth.objectcache LIKE enwiki.objectcache
Puis ajoutez la configuration suivante à tous les wikis pour leur dire d'utiliser la table centrale au lieu de leur table locale :
$wgSharedDB = 'centralauth'; // or whatever database you use for central data
$wgSharedTables = array( 'objectcache' ); // remember to copy the table structure's to the central database first
$wgCentralAuthSessionCacheType = CACHE_DB; // Tell mediawiki to use objectcache database for central auth.
HTTP and HTTPS
Since 2023, CentralAuth does not support mixed-protocol HTTP/HTTPS wikis, only pure-HTTPS wikis (with $wgForceHTTPS set to true) and pure-HTTP wikis (primarily for local testing).phab:T348852
Configuration
paramètre | par défaut | commentaire |
---|---|---|
$wgCentralAuthDatabase
|
'centralauth'
|
Nom de la base de données qui héberge les données de centralAuth.
Si elle ne correspond pas à la connexion de la base de données primaire, n'oubliez pas de définir également Pour utiliser une base de données avec un préfixe de table, initialisez cette variable avec « |
$wgCentralAuthAutoMigrate
|
false
|
Si true , les comptes existants non attachés seront automatiquement migrés à la première connexion, si cela est possible.
Toute création de nouveau compte devra s'attacher. Si |
$wgCentralAuthAutoMigrateNonGlobalAccounts
|
false
|
Si true , les comptes non attachés existants pour lesquels il n'y a pas de compte global seront comparés pour voir si une fusion peut être faite sans problème, sur la base des mots de passe et des adresses courriels (fusion de tous les comptes).
Ceci était initialement contrôlé par |
$wgCentralAuthStrict
|
false
|
Si true , il ne sera pas possible de se connecter avec les comptes restants non encore attachés, tant qu'ils n'auront pas été résolus.
|
$wgCentralAuthDryRun
|
false
|
Si true , la fusion ne sera pas actuellement possible par l'interface Special:MergeAccount.
|
$wgCentralAuthCookies
|
false
|
Si true , la session globale ainsi que les cookies des jetons seront créés au fur et à mesure des sessions par wiki et des jetons de connexion, lorsque les utilisateurs se connecteront avec leur compte global.
Ceci permet de se connecter de manière transparente aux autres wikis du même domaine. |
$wgCentralAuthLoginWiki
|
false
|
Nom de la base de données d'un wiki à connexion centralisée. C'est une alternative à la déclaration directe de cookies inter domaines pour chaque wiki de $wgCentralAuthAutoLoginWikis . S'il est initialisé, un wiki unique de connexion va utiliser une session (un cookie) pour gérer les sessions universelles de connexion sur tous les chaque wikis.
A la connexion, les utilisateurs seront redirigés vers la page Special:CentralLogin/login du wiki de connexion, puis vers Special:CentralLogin à nouveau, sur le wiki d'origine. Dans le processus, le cookie et la session du wiki de connexion centrale sont définis. Au fur et à mesure que l'utilisateur accède à d'autres wikis, le wiki de connexion sera vérifié par JavaScript afin de connaître l'état de la connexion et pour définir la session locale ainsi que les cookies. Cela nécessite |
$wgCentralAuthCookieDomain
|
''
|
Domaines pour les cookies globaux.
Par exemple, |
$wgCentralAuthCookiePrefix
|
'centralauth_'
|
Préfixe pour les cookies d'authentification globale CentralAuth. |
$wgCentralAuthCookiePath
|
'/'
|
Chemin pour les cookies d'authentification globale CentralAuth. Initialisez cette variable si vous souhaitez restreindre les cookies à un certain chemin à l'intérieur du domaine spécifié par $wgCentralAuthCookieDomain .
|
$wgCentralAuthAutoLoginWikis
|
[]
|
Liste des ID de wikis qui doivent être appelés lors de la connexion pour essayer de définir les cookies tiers pour l'état de la session globale.
L'ID du wiki est typiquement le nom de la base de données, sauf quand les préfixes de table sont utilisées, auquel cas il s'agit du nom dela base de données, un tiret séparateur, puis le préfixe de la table. Ceci permet à une ferme de wikis avec plusieurs domaines de second ordre d'établir une session globale sur chacun d'eux en accédant à l'un des wikis de chaque domaine (en.wikipedia.org, en.wikinews.org, etc). Fait en accèdant à S'il est vide, aucun autre wiki ne sera atteint. La clé doit être initialisée avec le nom de domaine du cookie. |
$wgCentralAuthAutoCreateWikis
|
[]
|
Liste des ID des wikis sur lesquels un compte local attaché doit être créé automatiquement quand le compte global est créé.
L'ID du wiki est typiquement le nom de la base de données, sauf quand vous utilisez un préfixe de table, auquel cas il correspond au nom de la base de données suivi d'un tiret séparateur et du préfixe de la table. |
$wgCentralAuthLoginIcon
|
false
|
Le chemin de l'icône, dans le système de fichiers local rendu par Special:CentralAutoLogin , doit être celui d'un PNG de 20x20 pixels.
|
$wgCentralAuthPrefsForUIReload
|
[ 'skin', 'language', 'thumbsize', 'underline', 'stubthreshold', 'showhiddencats', 'justify', 'numberheadings', 'editondblclick', 'editsection', 'editsectiononrightclick', 'usenewrc', 'extendwatchlist' ]
|
Préférences utilisateur pour lesquelles il faut recommander le rechargement de la page après une requête réussie de connexion centrale.
Si vous souhaitez faire quelque chose de plus compliqué qu'uniquement |
$wgCentralAuthRC
|
[]
|
Tableau de paramètres pour envoyer les événements CentralAuth vers les flux RC.
@example $wgRCFeeds['example'] = array( 'uri' => "udp://localhost:1336", ); |
$wgCentralAuthWikisPerSuppressJob
|
10
|
Taille des wikis gérés dans une tâche de supression d'utilisateur. Gardez à l'esprit qu'un wiki nécessite ~10 requêtes.
|
$wgCentralAuthReadOnly
|
false
|
Comme $wgReadOnly , utilisé pour que l'extension mette la base de données en mode lecture seule.
@var bool |
$wgCentralAuthEnableGlobalRenameRequest
|
false
|
Drapeau de fonctionnalité pour Special:GlobalRenameRequest .
@var bool |
$wgCentralAuthGlobalPasswordPolicies
|
[]
|
Règles pour le mot de passe global. Celles-ci sont appliquées comme les règles concernant les mots de passe locaux, la règle la plus forte applicable à un utilisateur est utilisée. Les règles peuvent s'appliquer soit à un groupe local (si l'utilisateur est membre de ce groupe quelque soit le wiki, elles s'appliqueront à cet utilisateur) soit à un groupe global.
@var array |
$wgGlobalRenameDenylist
|
null
|
A list of users who won't be allowed to create new global rename requests through Special:GlobalRenameRequest.
There are two ways to set it:
You can use the exact names or regular expressions. @var Title|string|null |
$wgCentralAuthGlobalBlockInterwikiPrefix
|
"global"
|
When globally suppressing a user, a block against this user is inserted in all wikis. CentralAuth will set the author of theses blocks as $wgCentralAuthGlobalBlockInterwikiPrefix>(user-who-made-the-suppression's nickname) . For example, if $wgCentralAuthGlobalBlockInterwikiPrefix = "Admins"; , and Joe suppresses John, all wikis will show in BlockList a block against John made by Admins>Joe .
@var string |
Utilisation
Permet au système de connexion unique des utilisateurs (SUL) d'utiliser le système AuthPlugin de MediaWiki. La création des utilisateurs ainsi que leurs connexions sont gérées globalement en utilisant une table centralisée des utilisateurs pour tous les wikis. Notez néanmoins que les comptes des utilisateurs locaux sont créés automatiquement à la création de compte ou à la connexion.
Cette extension implémente également les groupes d'utilisateurs globaux, auxquels les comptes globaux peuvent appartenir.
Droits utilisateur
CentralAuth définit plusieurs nouveaux droits utilisateur :
Droit utilisateur | Capacité | Groupe par défaut | Etat |
---|---|---|---|
centralauth-createlocal
|
Force la création d'un compte local pour un compte global. | Stewards et administrateurs système | Actif dans MW 1.36+ |
centralauth-lock
|
Empêche les utilisateurs de se connecter sur tout wiki. | Stewards | Actif |
centralauth-suppress
|
Supprimer ou démasquer les comptes globaux | Stewards | Actif |
centralauth-rename
|
Renommer les comptes globaux | Stewards | Actif |
centralauth-unmerge
|
Extraire les comptes globaux d'un compte local | Stewards | Active |
centralauth-merge
|
Fusionner tous les comptes CentralAuth de manière globale | Tous utilisateurs | Actif; automatique habituellement |
globalgrouppermissions
|
Gérer les autorisations pour les groupes globaux | Stewards globaux | Actif; par défaut, non assigné aux stewards locaux |
globalgroupmembership
|
Modifier l'appartenance aux groupes globaux | Stewards globaux | Actif; par défaut, non assigné aux stewards locaux |
Fonctions
Connexion unique de l'utilisateur (SUL)
Les utilisateurs ayant un compte sur plusieurs wikis peuvent utiliser Special:MergeAccount pour créer leur compte global qui pourra ensuite être utilisé sur tout wiki. Les utilisateurs ayant les droits centralauth-unmerge
(attribués par défaut aux stewards) peuvent annuler une fusion de compte global et remettre les mots de passe aux valeurs qu'ils avaient avant l'opération de fusion.
Les comptes utilisateur peuvent maintenant aussi être renommés globalement.
Blocage et masquage des utilisateurs globaux
Un compte global peut être bloqué (locked) ou masqué (hidden) par un utilisateur qui a respectivement les droits centralauth-lock
et centralauth-suppress
, attribués par défaut au groupe 'stewards' local.
Un compte global verrouillé est déconnecté immédiatement de toute session, quelque soit le wiki sur lequel il se trouve actuellement connecté.
Un nom d'utilisateur global masqué n'apparaît dans aucun journal sauf dans le journal des comptes globaux.
Ensembles de wikis
Un ensemble de wikis (wiki set) est un groupe de wikis spécifié par un utilisateur ayant les droits globalgrouppermissions
.
Les valeurs sont opt-in (si les wikis ne sont pas dedans par défaut) et opt-out (si les wikis sont inclus à moins d'en avoir été sortis).
Groupes globaux d'utilisateurs
Une fois les groupes d'utilisateurs globaux activés comme décrit dans la section installation, un steward migré peut utiliser l'interface Special:GlobalGroupPermissions pour configurer les groupes d'utilisateurs globaux, avec leurs droits associés.
Un groupe d'utilisateurs globaux est actif par défaut sur tous les wikis (les utilisateurs de ce groupe possèdent partout les droits qui lui sont attribués) sauf si ce groupe a été spécifié comme étant actif sur un ensemble prédéfini de wikis (les utilisateurs du groupe n'ont alors les droits que sur le wiki prédéfini où ils se trouvent).
Les droits des groupes globaux ne sont pas listées sur Special:ListUsers, mais plutôt sur Special:GlobalUsers.
Ils sont assignés par un utilisateur ayant les droits globalgroupmembership
(par défaut il s'agit du groupe global stewards
), et donnent les droits spécifiques à l'utilisateur même si les droits locaux définis par $wgGroupPermissions
ne les donnent pas.
Licences et téléchargements
L'extension est disponible sous la licence publique générale GNU 2.0 ou supérieure, et peut être téléchargée de Git, ou accédée via l'interface web.
Le logiciel est fourni en l'état. Les mises à jour seront faites en fonction des besoins des wikis Wikimedia; ou là où des points sensibles au niveau sécurité seront découverts.
API
Voir Extension:CentralAuth/API .
Références
Voir aussi
- Spécifications de la connexion unique sur Meta-Wiki
- Connexion unifiée sur Meta-Wiki
- CentralAuth authentication features
$wgSharedDB
- User:Legoktm/evil-plans2.txt (2015 plan to phase out CentralAuth at WMF)
- Global session threat assessment
- Listes de suivi intégrées
- Contrôle de flux de CentralAuth
- wikitech:Stuck global renames
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
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. |