Extension:GoogleLogin

This page is a translated version of the page Extension:GoogleLogin and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎français • ‎português do Brasil • ‎中文 • ‎日本語
Manuel des extensions MediaWiki
OOjs UI icon advanced.svg
GoogleLogin
État de la version : bêta
Googlelogin.PNG
Implémentation Identité de l'utilisateur , Page spéciale
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+
Modifie la base de données Oui
Licence Licence MIT
Téléchargement
README
  • $wgGLAPIKey
  • $wgGLAllowedDomainsStrict
  • $wgGLAppId
  • $wgGLAllowedDomainsDB
  • $wgGLAuthoritativeMode
  • $wgGLSecret
  • $wgGLEnableEchoEvents
  • $wgGLAllowedDomains
  • managegooglelogin
  • managegooglelogindomains
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 bogue

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+
  • Un 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/.
  • 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 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
  •   Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

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] '' 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 vaut true et example.com est un domaine autorisé.
test.example.com est autorisé si $wgGLAllowedDomainsStrict vaut 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' Contrôle le mode faisant autorité de 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.

Mode faisant autorité

Google Login prend en charge un mode dit faisant autorité, dans lequel, lorsqu'il est activé, un compte d'utilisateur est automatiquement créé lorsque le compte Google, qui a été utilisé pour se connecter, n'est pas déjà associé à un compte MediaWiki local. Cette option est désactivée par défaut et doit être activée avec une option de configuration. Cependant, veuillez lire les informations importantes suivantes avant de le faire. Cette fonctionnalité nécessite que la configuration du wiki prenne en charge strictement ceci :

  • GoogleLogin nécessite d'être le seul fournisseur primaire d'authentification
  • Le caractère @ doit être mis en liste blanche dans le paramètre $wgInvalidUsernameCharacters
  • La création automatique de compte doit être activée :

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

  • Le mode faisant autorité de GoogleLogin doit être activé

L'activation de cette fonctionnalité influe aussi sur les éléments suivants :

  • Le nom d'utilisateur du compte est le champs primaire du courriel de l'information retournée par Google. Ceci n'est pas configurable.
  • Si un compte local de wiki est déjà connecté, ce compte est utilisé pour se connecter, ce qui signifie qu'un compte déjà existant a la priorité sur la création d'un nouveau compte.
  • Le compte nouvellement créé sera automatiquement lié au compte Google.
  • GoogleLogin ne permet pas à l'utilisateur d'ajouter ou de supprimer d'autres connexions de comptes Google (ou le lien créé automatiquement) afin que l'utilisateur ait toujours la possibilité de se connecter.
  • GoogleLogin n'ajoute pas de mot de passe pendant la création de compte; si le mode faisant autorité est désactivé et que la connexion avec mot de passe doit être réexécutée, l'utilisateur doit modifier son mot de passe.

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

Notez bien que je prends en charge uniquement la dernière version de GoogleLogin. Ne sont plus maintenues: toutes les versions différentes de la version actuelle (c'est à dire la branche Mediawiki de déploiement actuelle - release branch), et de la version de développement courante du master.

Références

Relecture du code dans Gerrit