Jump to content

Extension:CentralAuth

From mediawiki.org
This page is a translated version of the page Extension:CentralAuth and the translation is 100% complete.
Outdated translations are marked like this.
Manuel des extensions MediaWiki
CentralAuth
État de la version : stable
Implémentation Identité de l'utilisateur , Base de données , Page spéciale , API
Description Permet de fusionner des comptes en comptes globaux
Auteur(s) Brooke Vibberdiscussion
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
Modifie la base
de données
Oui
Domaine virtuel virtual-centralauth
Tables globalnames
localnames
globaluser
localuser
global_user_groups
global_group_permissions
wikiset
global_group_restrictions
renameuser_status
renameuser_queue
users_to_rename
global_edit_count
global_user_autocreate_serial
Licence Licence publique générale GNU v2.0 ou supérieur
Téléchargement
  • $wgCentralAuthAutoLoginWikis
  • $wgCentralAuthCookiePath
  • $wgCentralAuthEnableSul3
  • $wgCentralAuthAutomaticVanishPerformer
  • $wgCentralAuthReadOnly
  • $wgCentralAuthAutoMigrate
  • $wgCentralAuthFallbackAppealUrl
  • $wgCentralAuthBlockAppealWikidataIds
  • $wgCentralAuthSul3SharedDomainRestrictions
  • $wgCentralAuthEnableGlobalRenameRequest
  • $wgCentralAuthRestrictSharedDomain
  • $wgCentralAuthGlobalPasswordPolicies
  • $wgCentralAuthCookieDomain
  • $wgCentralAuthWikisPerSuppressJob
  • $wgCentralAuthFallbackAppealTitle
  • $wgCentralAuthCookies
  • $wgCentralAuthAutomaticVanishWiki
  • $wgCentralAuthRC
  • $wgCentralAuthGlobalBlockInterwikiPrefix
  • $wgCentralAuthAutoMigrateNonGlobalAccounts
  • $wgCentralAuthDatabase
  • $wgCentralAuthDryRun
  • $wgCentralAuthAutomaticGlobalGroups
  • $wgCentralAuthCentralWiki
  • $wgCentralAuthSharedDomainCallback
  • $wgCentralAuthLoginIcon
  • $wgCentralAuthStrict
  • $wgCentralAuthOldNameAntiSpoofWiki
  • $wgCentralAuthLoginWiki
  • $wgCentralAuthWikidataApiUrl
  • $wgCentralAuthSessionCacheType
  • $wgGlobalRenameDenylist
  • $wgCentralAuthCookiePrefix
  • $wgCentralAuthRejectVanishUserNotification
  • $wgCentralAuthAutoCreateWikis
  • $wgCentralAuthPrefsForUIReload
  • centralauth-createlocal
  • centralauth-merge
  • centralauth-unmerge
  • centralauth-lock
  • centralauth-suppress
  • globalgrouppermissions
  • globalgroupmembership
  • centralauth-rename
Traduire l’extension CentralAuth sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

CentralAuth permet de fusionner plusieurs systèmes de comptes distincts existants dans un seul système de comptes global.

Avertissement Avertissement : CentralAuth a été conçu tout particulièrement pour les projets Wikimedia qui avaient déjà des millions de comptes à fusionner dans une table globale.

Si vous commencez une nouvelle ferme de wiki à partir de rien et que vous n'avez pas de comptes à fusionner dans une table globale, il est beaucoup plus facile de définir les comptes globaux en utilisant $wgSharedDB plutôt que CentralAuth.[1][2]

Néanmoins, $wgSharedDB n'est utile que pour empêcher les conflits de création des noms d'utilisateur, et ne génère rien qui serait une connexion universelle (à la place, les utilisateurs doivent se connecter sur chaque wiki), ou des droits utilisateur inter-grappe ou de gestion. Cette extension fournit la fonctionnalité annoncée, au prix de la difficulté.

Si vous utilisez cette extension sur un wiki tiers, il est probable que vous aurez à résoudre des problèmes complexes qui nécessitent potentiellement de se plonger dans le code source pour les résoudre.

Vous avez été averti.
Avertissement Avertissement : CentralAuth ne fonctionne pas correctement avec les configurations basées sur SQLite telles que Quickstart . Voir T382432.

Installation

Pour connaître les conditions d'utilisation de CentralAuth, voir ci-dessous le paragraphe sur la configuration. Suivez ensuite ces instructions lorsque vous êtes prêt à activer CentralAuth :

  1. Installez Extension:AntiSpoof/fr , car c'est une dépendance requise.
  2. Téléchargez la dernière image et développez-la dans votre répertoire extensions .
  3. 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 par défaut utilise la base de données locale du wiki, ce qui est pratique pour les tests automatisés mais n'a pas vraiment de sens sur une vraie ferme wiki (car elle sera différente pour chaque wiki quand le but de CentralAuth est de partager des données entre les wikis) alors vous devrez reconfigurer cela. Voir $wgVirtualDomainsMapping['virtual-centralauth'] ci-dessous). Utilisez cette base de données puis exécutez tables-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 table spoofuser à partir de la base de données locale du wiki et de l'importer dans le nouveau $wgVirtualDomainsMapping['virtual-centralauth'].
  4. Ajoutez wfLoadExtension( 'CentralAuth' ); à votre LocalSettings.php pour chacun de vos wikis, ou dans un autre fichier PHP inclus dans LocalSettings.php de chacun de vos wikis.
  5. L'extension CentralAuth doit maintenant être active.

Créer une nouvelle base de données

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 existantes. 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
(entrer le mot de passe de l'utilisateur SQL racine)
CREATE DATABASE centralauth;
USE centralauth;
GRANT all on centralauth.* to '$wgDBuser'@'localhost';
quit

Exécuter les scripts de maintenance

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/run.php sql --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 suivante (par ailleurs vous pouvez copier une table AntiSpoof existante si vous voulez conserver les entrées précédentes) :

php maintenance/run.php sql --wikidb centralauth extensions/AntiSpoof/sql/<type_de_base_de_données>/tables-generated.sql

Exécutez les scripts de migration des utilisateurs

$ php maintenance/run.php CentralAuth:migratePass0.php
$ php maintenance/run.php CentralAuth:migratePass1.php

Mise à jour

CentralAuth est conçu pour les grandes fermes de wiki qui exécutent manuellement des mises à jour de base de données afin de permettre des mises a jour avec un temps de panne à zéro. Pour cette raison, la base de données CentralAuth ne sera pas mise à jour avec le processus de mise à niveau habituel. A la place, les utilisateurs tiers doivent suivre le développement de CentralAuth et appliquer les migrations de la base de données manuellement.

Configuration

Avertissement Avertissement : Un wiki de connexion centralisée (voir #SUL2) ou un domaine d'autorisation partagé (voir #SUL3) est nécessaire si vous voulez avoir une connexion universelle sur les différents domaines primaires (par exemple lorsque vos wikis ne sont pas dans les sous-domaines d'un même domaine).

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');

Puis déclarez quelques utilisateurs comme stewards :

INSERT IGNORE INTO global_user_groups (gug_user, gug_group) VALUES ((SELECT gu_id FROM globaluser WHERE gu_name='Admin'), 'steward');

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 initialiser la valeur de $wgVirtualDomainsMapping['virtual-centralauth']. Assurez-vous de mettre ce type de paramètre après la ligne wfLoadExtension de LocalSettings.php, par exemple :

wfLoadExtension( 'CentralAuth' );
$wgVirtualDomainsMapping['virtual-centralauth'] = [ 'db' => 'centralauth' ];

SUL2

Avertissement Avertissement : Tant que tous les utilisateurs connectés ont une session dans le wiki central de connexion, il vous est recommandé de configurer les nouveaux wikis avec aussi peu d'extensions installées que possible (dans ce but il ne faut pas utiliser un wiki existant). Ceci va réduire le risque d'attaque XSS.
Avertissement Avertissement : La connexion universelle peut s'interrompre avec les versions les plus récentes de Google Chrome à cause des règles présentes sur les cookies SameSite. Pour le corriger, vous devez ajouter :
$wgCookieSameSite = "None";
$wgUseSameSiteLegacyCookies = true;
En plus il faudra exécuter votre site sous HTTPS.


En juillet 2013 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 :

# Configuration générale de CentralAuth
$wgCentralAuthCookies = true;
// la valeur par défaut est d'utiliser la base de données locale du wiki
$wgVirtualDomainsMapping['virtual-centralauth'] = [ 'db' => 'centralauthDatabaseName' ];
$wgCentralAuthAutoMigrate = true;
$wgCentralAuthAutoLoginWikis = [
    # Correspondance entre le nom du domaine et l'id du wiki pour les autres wikis viennent se connecter automatiquement
    'enwiki.mediawiki.mwdd.localhost' => 'enwiki',
];

# active la redirection vers le "wiki central de connexion"
$wgCentralAuthLoginWiki = 'WikiIdOfLoginWiki';

$wgCentralAuthLoginWiki est l'id (généralement le nom de la base de données) du wiki vers lequel CentralAuth va rediriger lors de la connexion ou de la création d'un compte.

SUL3

En 2025 la configuration de la grappe Wikimedia a été modifiée pour que l'authentification ait lieu sur un domaine partagé (par exemple les utilisateurs entrent leur mot de passe), plutôt qu'individuellement sur chacun des domaines du wiki. Le domaine partagé peut être configuré pour servir chacun des wikis de la ferme. Cela a été motivé par des modifications apportées dans le traitement des cookies du navigateur qui pourraient empêcher les cookies d'être définis lors de la redirection via un wiki central. Voir SUL3 pour d'autres détails.

Pour configurer votre ferme de wikis, utiliser SUL3 :

  1. Assurez-vous que votre ferme de wikis est configurée en utilisant soit la table sites ou $wgConf (voir la section Configuration). $wgCentralAuthLoginWiki et $wgLocalDatabases doivent également être initialisés. D'autres parties de CentralAuth sont tolérantes si ceci est absent mais SUL3 va échouer.
    • Ceci est nécessaire même lors de la mise en place d'un environnement local de développement avec un seul wiki, mais il peut être grandement simplifié, voir ci-dessous.
  2. Configurer votre serveur de sorte à ce qu'il serve un de vos wikis sous un autre domaine. Si SUL2 est configuré, utiliser le wiki de connexion, sinon choisissez-en un.
    • Si vous configurez un environnement local pour le développement, et que vous hébergez votre seul wiki sur http://localhost (optionnellement avec un port), notez que tous les sous-domaines de localhost se résolvent sur votre machine, de sorte que vous pouvez commencer à utiliser par exemple http://auth.localhost et http://wiki.localhost sans configuration particulière.
  3. Définir $wgCentralAuthSharedDomainCallback pour revenir à votre nouveau domaine. Notez que c'est une fonction de rappel, pas une chaîne.
  4. Définir $wgCentralAuthEnableSul3 = true;

Vous devrez peut-être ajuster certains paramètres de configuration MediaWiki pour prendre en charge ceci :

  • $wgServer et $wgCanonicalServer doit être défini conditionnellement sur le domaine auth lors de l'accès à votre wiki via le domaine auth, sinon vous obtiendrez une boucle de redirection quand vous essayez de vous connecter. CentralAuth lit le serveur canonique réel de la configuration de la ferme de wikis définie à l'étape 1.
  • Pour servir plus d'un wiki du domaine auth, mettre à jour $wgCentralAuthSharedDomainCallback pour ajouter un préfixe de chemin après le nom du domaine duquel le wiki dépend, configurer votre serveur à desservir le bon wiki en fonction de ce préfixe, et adapter conditionnellement $wgScriptPath, $wgArticlePath etc. si nécessaire. C'est difficile à faire, donc si vous configurez un environnement local de développement, ne vous en faites pas.
  • Relire les paramètres de vos cookies MediaWiki pour vous assurer que le wiki peut définir des cookies lors de l'accès à travers le domaine auth, et qu'ils ne seront pas en conflit avec les cookies normaux du wiki. La définition conditionnelle de $wgCentralAuthCookiePrefix lors de l'accès à votre wiki via le domaine auth est un bon moyen pour éviter les conflits de noms de cookies.

Vous trouverez ci-dessous une configuration minimale pour exécuter CentralAuth avec SUL3 et une ferme avec un seul wiki sur votre machine de développement :

// Configuration minimale pour une ferme à un seul wiki
$wgConf->wikis = [ $wgDBname ];
$wgConf->suffixes[] = '';
$wgConf->settings = [
	'wgServer' => [ 'default' => 'http://wiki.localhost:8080' ],
	'wgArticlePath' => [ 'default' => '/wiki/$1' ],
];
// Différents paramètres requis par CentralAuth
$wgCentralAuthLoginWiki = $wgDBname;
$wgLocalDatabases = [ $wgDBname ];

// Activer CentralAuth SUL3
$wgCentralAuthSharedDomainCallback = fn () => 'http://auth.localhost:8080'; 
$wgCentralAuthEnableSul3 = true;

// Fait pointer $wgServer sur le domaine par lequel le wiki a été accédé
$wgCanonicalServer = $wgServer = MediaWiki\Request\WebRequest::detectServer( true );
if ( $wgServer === 'http://auth.localhost:8080' ) {
	// Mettre ici la configuration conditionnelle du domaine auth partagé
}


Problèmes du cache

Pour de meilleurs résultats, il est recommandé d'utiliser le cache mémoire ou un cache plus persistant. 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 (en supposant que vous ayez un wiki installé avec une base de données appelée « enwiki » et une autre base de données appelée « centralauth ») :

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'; // ou tout autre base de données que vous utiliser pour les données centralisées
$wgSharedTables = [ 'objectcache' ]; // rappelez-vous de copier la structure de la table dans la base de données centrale d'abord
$wgCentralAuthSessionCacheType = CACHE_DB; // dites à Mediawiki d'utiliser la base de données de l'objet en cache pour CentralAuth.

Lorsque vous exécutez les tests unitaires PHP localement avec votre ferme de wikis et que vous ne voulez pas qu'ils échouent lors d'une tentative de clônage des tables de la base de données avec la configuration des tables partagées ci-dessus, utilisez :

if ( defined( 'MW_PHPUNIT_TEST' ) ) {
	$wgSharedTables = [];
} else {
	$wgSharedTables = [ 'objectcache' ];
}


HTTP et HTTPS

Depuis 2023, CentralAuth ne prend pas en charge les wikis à protocole mixte HTTP/HTTPS, mais uniquement les wikis HTTPS purs (avec $wgForceHTTPS valant true) et les wikis HTTP purs (principalement pour les tests locaux). See issue T348852.

Correspondance des domaines virtuels de la base de données

Depuis MediaWiki 1.41, vous pouvez configurer la correspondance des domaines virtuels de la base de données pour CentralAuth, et ceci a remplacé $wgCentralAuthDatabase. Pour configurer la correspondance des domaines virtuels avec CentralAuth, utiliser :

// 'centralauth' est le nom de votre base de données CentralAuth.
$wgVirtualDomainsMapping['virtual-centralauth'] = [ 'db' => 'centralauth' ];

Configuration

Paramètres de la $1
paramètre par défaut commentaire
(deprecated) $wgCentralAuthDatabase null 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 $wgDBservers pour avoir une entrée avec un paramètre groupLoads pour le groupe 'CentralAuth'. Vous pouvez par ailleurs utiliser $wgLBFactoryConf pour déclarer un objet LBFactoryMulti.

Pour utiliser une base de données avec un préfixe de table, initialisez cette variable avec « {$database}-{$prefix} ».

Ce paramètre est obsolète, utiliser la correspondance des domaines virtuels comme décrit ci-dessus.
$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 false, les comptes non attachés ne seront pas perturbés à moins que le compte individuel a choisi la migration.

$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 $wgCentralAuthAutoMigrate

$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 $wgCentralAuthCookies.

$wgCentralAuthSharedDomainCallback false Fonction de rappel qui prend un ID de wiki ID et renvoie le préfixe de l'URL du domaine d'authentification partagé sans la barre oblique de fin. Utiliser ici le même domaine et le même schéma sur chaque wiki de la ferme de wiki CentralAuth, avec un préfixe de chemin représentant le wiki fourni. Une URL locale ajoutée à ce préfixe doit être routée de la même manière qu'une URL locale sur le wiki actuel. Ceci est utilisé pour partager un cookie central entre les wikis tout en permettant à l'interface utilisateur liée aux cookies (comme la page de connexion et d'inscription) de se comporter comme n'importe quel wiki spécifique de la ferme. Si non initialisé, ce mécanisme ne sera pas utilisé.
$wgCentralAuthEnableSul3 false Active le mode SUL3 . Nécessite que $wgCentralAuthSharedDomainCallback soit d'abord configuré.
$wgCentralAuthRestrictSharedDomain false Limite la fonctionnalité du wiki à l'authentification uniquement lorsque le domaine actuel correspond au domaine de CentralAuthSharedDomainCallback. Activer lors de l'utilisation d'un domaine de connexion partagé. Désactiver lorsque le domaine de connexion est un wiki autonome.
$wgCentralAuthSul3SharedDomainRestrictions complex array Les fonctionnalités supplémentaires autorisées ou non lorsqu'elles sont utilisées dans le domaine de connexion central SUL3. Les valeurs par défaut sont enregistrées dans SharedDomainHookHandler::DEFAULT_RESTRICTIONS.
$wgCentralAuthCookieDomain '' Domaines pour les cookies globaux.

Par exemple, '.wikipedia.org' pour fonctionner sur tous les sous-domaines wikipedia.org au lieu du sous-domaine courant simplement. Laisser vide pour définir le cookie pour le domaine actuel uniquement, comme si tous vos wikis étaient hébergés dans le même sous-domaine.

Cela ne fonctionne pas en SUL3 . Voir phab:T391358 pour d'autres informations.
$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 à Special:CentralAutoLogin/start sur chaque wiki.

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 $userOptionsLookup->getOption( $user, $pref ) !== $userOptionsLookup->getDefaultOption( $pref ), utilisez l'accroche CentralAuthIsUIReloadRecommended.

$wgCentralAuthRC [] Tableau de paramètres pour envoyer les événements CentralAuth vers les flux RC.

@example $wgRCFeeds['example'] = [ '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 liste d'utilisateurs qui ne seront pas autorisés à créer de nouvelles demandes de renommage globaux via Special:GlobalRenameRequest.

Il existe deux manières de le déclarer :

  • Utilisation d'une page wiki : utilisez un objet Title pour obtenir une page wiki (MediaWiki:GlobalRenameDenylist par exemple) comme liste interdite. La page wiki doit être une liste avec un élément par ligne, et doit exister sinon Special:GlobalRenameRequest va générer un MWException.
    Exemple : $wgGlobalRenameDenylist = Title::makeTitle( NS_MEDIAWIKI, 'GlobalRenameDenylist' );.
  • Utilisation d'une URL : mettre une URL complète qui doit renvoyer en utilisant HTTP, une liste en texte clair des utilisateurs interdits (et rien d'autre).
    Par exemple, avec une URL qui pointe sur une page wiki : $wgGlobalRenameDenylist = "https://yourwiki/yourpath/index.php?title=MediaWiki:GlobalRenameDenylist&action=raw";

Vous pouvez utiliser les noms exacts ou des expressions régulières.

@var Title|string|null

$wgCentralAuthGlobalBlockInterwikiPrefix "global" Lorsqu'on supprime un utilisateur globalement, le blocage de cet utilisateur est inséré dans tous les wikis. CentralAuth définira l'auteur de ces blocages comme $wgCentralAuthGlobalBlockInterwikiPrefix>(pseudo de l'utilisateur qui fait la suppression).. Par exemple, si $wgCentralAuthGlobalBlockInterwikiPrefix = "Admins";, et Joe supprime John, tous les wikis afficheront dans BlockList un bloc contre John fait par 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 Actif
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

Capture d'écran de l'interface Special:CentralAuth de Meta-Wiki, montrant l'interface de verrouillage/masquage .

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.

Compte disparaissant

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