Extension:GoogleLogin/fr

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.36+
 * MySQL/MariaDB (pas de prise en charge de PostgreSQL ni de SQLite)
 * PHP 7.3+
 * Un accès développeur Google
 * API Credentials pour Webapplication (Client ID et Client Secret)
 * Pouvoir exécuter

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

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 (voir aussi la page d'aide de Google à ce sujet) :


 * 1) Ouvrez la console Google développeur
 * 2) Lire et accepter les termes du service
 * 3) Créez votre propre projet
 * 4) Allez dans APIs and services
 * 5) Cliquez sur + CREATE CREDENTIALS
 * 6) Choisir OAuth client ID
 * 7) Sélectionnez Web application, APPLICATION TYPE, Authorized JavaScript origins, entrez le nom de votre domaine (pas de joker autorisé, ni de répertoires !)
 * 8) Entrez votre Authorized redirect URI (URI de redirection autorisée) comme ceci par exemple :
 * Si votre domaine est example.com et que vous avez installé MediaWiki à la racine de votre domaine, l'URI de redirection est de la forme : https://example.com/index.php/Special:GoogleLoginReturn
 * 1) Cliquez sur create et copiez Client ID et Client Secret dans les variables de configuration de LocalSettings.php

Page spéciale "Special:GoogleLoginReturn"
L'URI de redirection autorisée dans la console Google developeur doit être dans la langue du contenu. Donc, si par exemple votre wiki a l'allemand comme langue de contenu, vous aurez. Si vous n'utilisez pas la bonne langue, toutes les demandes d'authentification vont échouer avec le code d'erreur redirect uri mismatch indiquant que 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 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. In this case, please add with value  in LocalSettings.php to see the complete Exception message. For a support request, please provide always the lines of the Exception.

Utilisation sur un wiki privé
Si vous avez déclaré votre wiki comme privé avec

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 :

The name of the special page must be in the wiki's content language. If your wiki was e.g. set to German as the content language, then use. In case you used the wrong language, all authentication requests will fail and redirect you to "Special:Login".

Domaines du wiki autorisés par l'administrateur
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  ). 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  à   dans votre fichier LocalSettings.php. Vous pouvez aussi assigner le nouveau droit utilisateur  à 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 :

Vous devez maintenant exécuter encore le script, 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  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.

Configuration parameter "$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.

Automatic account creation
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, déclarez par exemple
 * Le caractère @ doit être mis en liste blanche dans le paramètre  et adaptez en conséquence  comme par exemple
 * La création automatique de compte doit être activée :
 * Le mode faisant autorité de GoogleLogin doit être activé :
 * Le mode faisant autorité de GoogleLogin doit être activé :
 * 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 aux comptes Google (ou le lien créé automatiquement) afin que l'utilisateur puisse toujours 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.

Manual account creation
Google Login also supports a variant of the so called authoritative mode, in which, when configured, a user account is still manually created by the respective user but automatically mapped to the Google account, which was used when creating the account, if it is not already associated with a local MediaWiki account. Moreover only permissive Google accounts can register an account manually.


 * Creation of accounts needs to be enabled (also for private wikis):
 * If on a private wiki the following pages need to be accessible by everybody, e.g. for English language wikis:
 * If on a private wiki the following pages need to be accessible by everybody, e.g. for English language wikis:

Note that the special pages need to be added in the wiki language.
 * The primary authentication provider needs to be disabled, i.e. set

Enabling manual account creation has the same influence as automatic account creation does (see above), however with the following difference:


 * The user who creates the account is free in its naming, i.e. some sort of user name logic cannot be enforced.
 * If a local wiki account is already connected, an additional new account cannot be created manually, which means that an already existing account takes precedence over creating a new one.

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.

Maintenance script "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  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