Extension:GoogleLogin

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:GoogleLogin and the translation is 86% complete.

Other languages:
Deutsch • ‎English • ‎français • ‎中文 • ‎日本語
Manuel des extensions MediaWiki
OOjs UI icon advanced.svg
GoogleLogin
État de la version : beta
Googlelogin.PNG
Implémentation User identity , Special page
Description Vous connecte à l'aide de votre compte Google.
Auteur(s) Florian Schmidt (Florianschmidtwelzowtalk)
Dernière version 0.4.0-git
MediaWiki 1.31+
PHP 5.6+
Changements
base de données
Oui
Licence MIT License
Téléchargement
README
Voir le cycle de vie des versions pour un aperçu de la compatibilité
Traduisez l’extension GoogleLogin sur translatewiki.net
Vérifiez la matrice des utilisations et des versions.
Problèmes Tâches ouvertes · Signalez un bug

L'extension GoogleLogin permet aux utilisateurs wiki de se connecter avec leur compte Google. L'extension utilise l'API Google pour demander à Google les informations de base du profil (tel que l'identifiant du compte, le nom complet et l'adresse courriel).

Prérequis

Pour utiliser cette extension vous devez avoir au moins :

  • MediaWiki 1.31+
  • MySQL (pas de prise en charge de PostgreSQL ni de SQLite pour l'instant !)
  • PHP 5.6+
  • Accès développeur Google
  • API Credentials pour Webapplication (Client ID et Client Secret)
  • Pouvoir exécuter composer update --no-dev

Installation

  • Téléchargez et placez le(s) fichiers (s) dans un répertoire appelé GoogleLogin dans votre dossier extensions/.
  • 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 T173141 pour des complications potentielles.)
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
    wfLoadExtension( 'GoogleLogin' );
    
  • Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Configurer les paramètres nécessaires
  • Vous assurer que l'utilisateur du serveur web a le droit d'écrire dans ./wiki/extensions/GoogleLogin/cache
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Pour les utilisateurs de MediaWiki 1.24 ou précédents :

Les instructions ci-dessus décrivent la nouvelle procédure pour installer cette extension en utilisant wfLoadExtension(). Si vous avez besoin d'installer cette extension sur les précédentes versions de MediaWiki (1.24 ou antérieur), à la place de wfLoadExtension( 'GoogleLogin' );, vous devez utiliser :

require_once "$IP/extensions/GoogleLogin/GoogleLogin.php";

Configuration

L'extension fournit deux variables de configuration pour mettre le Client ID et le Client Secret (vous obtenez cette paire dans la console développeur Google, en enlevant '<' et '>').

$wgGLSecret = '<your-client-secret>';
$wgGLAppId = '<your-client-id>';

Paramètres de configuration supplémentaires

Variable de configuration valeur par défaut Description
$wgGLAllowedDomains[gerrit 1] '' Un tableau de domaines de courriels, autorisés à utiliser GoogleLogin, par exemple array( 'example.com' );. Défaut: tous les domaines sont autorisés. Si initialisé, vous devez exécuter le script de maintenance updatePublicSuffixArray.php .
$wgGLAllowedDomainsDB[gerrit 2] false Si fixé à true, GoogleLogin utilise la base de données pour vérifier si un domaine de courriel de l'adresse courriel primaire d'un compte Google est autorisé à se connecter.
$wgGLAllowedDomainsStrict[gerrit 1] false Pris en compte seulement si $wgGLAllowedDomains est un tableau. Si fixé à true, le domaine de courriel sera vérifié complètement avec les domaines autorisés (au lieu du TLD uniquement), par exemple :

test.example.com n'est pas autorisé si $wgGLAllowedDomainsStrict est true et example.com est un domaine autorisé.
test.example.com est autorisé si $wgGLAllowedDomainsStrict est à false et example.com est un domaine autorisé.

$wgGLAPIKey[gerrit 3] '' Clé pour l'accès public à l'API. Utilisé seulement pour les actions administrateur pour vérifier, si l'utilisateur a un profile Google Plus ou pas.
$wgGLAuthoritativeMode[gerrit 4] 'false' Controls the Authoritative mode of GoogleLogin.

Déclarations dans la console développeur de Google

Pour utiliser cette extension vous devez disposer d'un compte Google développeur et avoir accès à la console developpeur. Ceci est un guide pas à pas (très) simple (utilisez le Step 1 de l' exemple pas à pas officiel avec ces paramètres) :

  1. Ouvrez la console Google développeur
  2. Lisez et acceptez les termes du services
  3. Créez votre premier project
  4. Allez sur APIS & AUTH
  5. Allez sur Credentials
  6. Dans la section OAuth cliquez sur Create new Client ID pour créer un identifiant de client
  7. Selectionnez Web application pour l' APPLICATION TYPE; pour Authorized JavaScript origins, entrez votre nom de domaine (sans caractères joker, ni de répertoires!)
  8. Entrez votre Authorized redirect URI pour définir l'URI de redirection comme dans cet exemple:
    si votre domaine est example.com et que vous avez installé MediaWiki à la racine de votre domaine, l'URI de redirection s'écrit ainsi : http://example.com/index.php/Special:GoogleLoginReturn
  9. Cliquez pour créer et recopiez les valeurs de Client ID et de Client Secret dans les variables de configuration de LocalSettings.php

"Special:GoogleLoginReturn" ou (en allemand par exemple) "Spezial:GoogleLoginReturn"

L'URI de redirection autorisée dans la console Google developeur doit être dans la langue du contenu. aussi, si votre wiki a l'allemand comme langue de contenu par exemple, alors vous utiliserez Spezial:GoogleLoginReturn. Si vous n'utilisez pas la bonne langue, toutes les demande d'authentification vont échouer avec le code d'erreur L'URI de redirection ne correspond pas.

Debogage

Normalement, vous pouvez voir le message d'erreur sur toutes les pages d'erreur génériques. Quelques fois apparaissent des erreurs internes appelées exceptions. Dans ce cas, veuillez ajouter dans LocalSettings.php $wgShowExceptionDetails initialisé à true pour voir le message complet de l'exception. Pour une demande de support, veuillez toujours fournir le contenu du message affiché par l'exception.

Utilisation sur un wiki privé

Si vous avez déclaré votre wiki comme privé avec

$wgGroupPermissions['*']['read'] = false;

vous devez mettre en liste blanche la page « Special:GoogleLoginReturn » , de sorte que les utilisateurs anonymes puissent accéder à l'URL de callback après avoir été redirigés du fournisseur d'authentification. Vous pouvez faire cela en ajoutant la ligne suivante à votre LocalSettings.php :

$wgWhitelistRead = array( 'Special:GoogleLoginReturn' );

Domaines du wiki autorisés par l'administrateur

Interface utilisateur pour gérer la liste des domaines autorisés.

GoogleLogin fournit une fonctionalité pour restreindre la connexion avec Google à des domaines d'adresses courriel spécifiques (comme gmail.com, googlemail.com ou tout autre (propre) domaine). Cette fonction est particulièrement intéressante pour les entreprises qui utilisent leur propre nom de domaine avec Google Apps. La liste des domaines, qui sont autorisés pour la connexion avec Google, est gérée sous forme de tableau dans LocalSettings.php (option de configuration $wgGLAllowedDomains ). Depuis la version 0.4.0, GoogleLogin fournit aussi un moyen pour gérer la liste des domaines autorisés sur le wiki lui-même. Les domaines autorisés sont enregistrés dans la base de données quand cette fonctionalité est activée et peuvent être modifiés (supprimés/ajoutés) via une interface utilisateur graphique (page spéciale) ou via l'API MediaWiki.

Note: la liste des domaines autorisés ne peut plus être gérée dans LocalSettings.php, une fois que l'administration des domaines dans la base de données est activée.

Pour activer cette fonctionalité afin de pouvoir gérer les domaines autorisés dans la base de données, il suffit de fixer la variable de configuration $wgGLAllowedDomainsDB à true dans votre fichier LocalSettings.php. Vous pouvez aussi assigner le nouveau droit utilisateur managegooglelogindomains à un groupe dont vous êtes membre (mais rappelez-vous, que tous les utilisateurs qui ont ce droit seront autorisés à modifier la liste des domaines autorisés, donc veillez à ajouter ce droit à un groupe de niveau administrateur uniquement!). Une configuration d'exemple serait :

$wgGLSecret = 'your-secret';
$wgGLAppId = 'your-app-id';
$wgGLAllowedDomainsDB = true;
$wgGroupPermissions['sysop']['managegooglelogindomains'] = true;

Vous devez maintenant exécuter encore le script update.php , afin d'appliquer les modifications nécessaires à la base de données. Après que la procédure de mise à jour se soit terminée, vous pouvez aller sur la page spéciale Special:GoogleLoginAllowedDomains de votre wiki. Vous obtiendrez une page où vous pourrez ajouter de nouveaux domaines, qui sont autorisés pour vous connecter avec un compte Google et vous pourrez ensuite éventuellement les supprimer.

$wgGLAPIKey

Cette option de configuration existe encore, mais elle est utilisée maintenant plus largement que pour la page spéciale Special:ManageGoogleLogin. Elle sert dorénavant pour obtenir le nom d'un utilisateur sur Special:RemoveCredentials afin de rendre plus facile à l'utilisateur l'identification du compte Google correct (au lieu d'afficher simplement l'ID Google). Si la clé n'est pas correcte ou n'est pas fournie, GoogleLogin va afficher seulement l'ID Google. Pour une bonne expérience utilisateur, il est fortement suggéré de fournir cette clé d'API maintenant.

Authoritative mode

Google Login supports a so called authoritative mode, in which, when enabled, a user account is automatically created when the Google account, which was used to login, is not associated with a local MediaWiki account already. This option is disabled by default and needs to be enabled with a configuration option. However, please read the following important information before doing so. This feature requires that the wiki's configuration strictly supports the following:

  • GoogleLogin needs to be the only primary authentication provider
  • The @ sign needs to be whitelisted in the $wgInvalidUsernameCharacters configuration
  • Autocreation of accounts needs to be enabled:

$wgGroupPermissions['*']['autocreateaccount'] = true;

  • The GoogleLogin authoritative mode needs to be enabled

Enabling this feature also has the following influence:

  • The username of the account is the primary e-mail field of the returned information from Google. This is not configurable.
  • If a local wiki account is already connected, this account is used to login, which means that an already existing account takes precedence over creating a new one.
  • The new created account will automatically being linked with the Google account.
  • GoogleLogin will not let a user add or remove any further Google account connections (or the automatically created link) to prevent a user from being not able to login anymore.
  • GoogleLogin does not add a password during the account creation, if the authoritative mode is disabled and password login shall be enabled again, the user needs to reset their password.

Client PHP de l'API Google

Cette extension utilise le client de API PHP Google (inclu dans les versions avant la 0.2.1), distribué sous la licence Apache 2.0. Le client peut être téléchargé de GitHub.

updatePublicSuffixArray.php

Le script de maintenance updatePublicSuffixArray.php télécharge une liste de noms de domaines sont valides pouvant être utilisés dans le monde entier. Ceci est nécessaire pour que GoogleLogin autorise les sous-domaines d'un domaine d'adresses courriel donné, lorsque vous avez restreint la connexion avec GoogleLogin pour des domaines spécifiques. Nécessaire que si $wgGLAllowedDomainsStrict vaut false (valeur par défaut).

Cycle de vie des versions

Please note that I support only the latest version of GoogleLogin. Any versions apart from the current release (which means the current MediaWiki release branch) and the current development version (aka master) are not supported anymore.

Références

Relecture du code dans Gerrit