Extension:SimpleSAMLphp/fr

L’extension SimpleSAMLphp utilise l’extension pour fournir une authentification en utilisant SimpleSAMLphp. Il est principalement conçu pour prendre en charge les flux d'authentification initiés par SP en renseignant à la demande, les comptes utilisateur.

Configuration
Les valeurs doivent être renseignées obligatoirement pour les variables de configuration obligatoires :

Variables de configuration optionnelles :

Ajouter le greffon à  :



Champs de


Ne pas convertir les noms d'utilisateur en minuscules
Par défaut, les noms d'utilisateur sont passés en minuscules. La casse initiale peut être conservée en déclarant :



Définir le fournisseur d’informations utilisateur personnalisé
Si vous souhaitez modifier l'un des champs,   ou   avant la connexion, par exemple, si votre source SAML ne fournit pas d'attribut de nom d'utilisateur explicite et que vous souhaitez utiliser l'adresse e-mail sans le domaine pour le nom d'utilisateur, vous pouvez configurer un rappel personnalisé pour. Pour créer l'objet, une spécification valide de ObjectFactory doit être paramètrée.

Pour des cas d'utilisation simples, on peut utiliser, en supposant que votre attribut email s'appelle   (s'il s'appelle autre chose, changez les deux instances de   en  ):

Assurez-vous d'avoir aussi initialisé  dans   du champ   :



Mappage groupe
Cas d'utilisation : votre IdP SAML lit les groupes à partir de LDAP ou de la base de données et stocke ces informations dans un attribut de la réponse SAML. Vous voulez l'utiliser pour mapper les groupes MediaWiki aux utilisateurs appartenant à certains groupes connus donnés par votre IdP.

Exemple:


 * Votre IdP envoie un attribut nommé "groupes" avec une liste de noms tels que "administrateur", "étudiant", "enseignant", ... dans la réponse SAML après authentification.
 * Tous les utilisateurs qui ont la valeur "administrator" dans l'attribut "groups" doivent être mappés au groupe "sysop" de MediaWiki pour leur donner des droits d'administrateur au sein de votre instance de MediaWiki.
 * Créez une carte de groupe dans votre LocalSettings.php comme suit:

Vous pouvez proposer des mappages assez complexes qui correspondent à vos besoins. Si vous avez plusieurs attributs de SAML, ajoutez-les simplement au tableau avec le tableau de valeurs que vous souhaitez mapper.

Si un groupe MediaWiki n'existe pas, il sera créé "à la volée" lors du premier mappage réussi d'un utilisateur.



Mappage groupe 2
Depuis la version 4.3, on peut également configurer un mécanisme de synchronisation de groupe alternatif. Outre les "MapGroups" par défaut, on peut utiliser "SyncAllGroups", qui prend tous les groupes de la réponse SAML et leur attribue l'utilisateur.

Pour ce faire, ajoutez ce qui suit au :

Si l'IdP renvoie des noms de groupe qui ne conviennent pas au wiki, on peut mettre en place un callback pour modifier les noms de groupe. Par exemple. certaines configurations IdP peuvent renvoyer des LDAP-DN comme "CN = Admin, OU = Groups, DC = SomeDomain". On pourrait alors préciser en :



Traitement des données arbitraires de la réponse SAML
Les "processeurs d'attributs" peuvent également être utilisés pour traiter des données arbitraires de la réponse SAML. Dans ce cas, il faut d"abord créer une nouvelle classe PHP qui implémente l'interface Pour plus de commodité, la classe de base   peut être utilisée, qui a un rappel de personnalisation approprié et un constructeur implémenté. Un exemple

Il doit ensuite être instancié en utilisant le.

Compatibilité


Notes des versions

 * Version 5.0.1
 * Corriger la synchronisation de groupe
 * Version 5.0.0
 * Version stable
 * Version 5.0.0-beta
 * Ajouter la compatibilité avec PluggableAuth version 6
 * Version 4.5.2
 * bug corrigé: les groupes ne sont pas supprimés dans MW si l'attribut n'existe pas (T246351)
 * Version 4.5.1
 * correction d'avertissement: $wgSimpleSAMLphp_GroupMap n'est pas un tableau
 * amélioration du chargement des informations utilisateur et des groupes
 * tests améliorés
 * Version 4.5
 * Ajout de la prise en charge des fournisseurs d'informations utilisateur personnalisés
 * mis à jour vers la version 2 du manifeste
 * Version 4.4
 * Signature fixe de la fonction populateGroups pour correspondre au hook
 * Version 4.3
 * Ajout de la prise en charge des processeurs d'attributs
 * Correction d'un bug dans le traitement des attributs SAML
 * Ajout d'un espace de noms compatible PSR-4
 * Suppression du support pour MW <1,31
 * Version 4.2
 * Les fonctions de nom d'utilisateur, de vrai nom et de courrier électronique ont été supprimées afin qu'elles puissent être remplacées dans une sous-classe pour permettre des règles personnalisées
 * Style de codage et répertoires
 * Débogage amélioré
 * Version 4.1
 * Implémente l'accroche pour remplir les groupes MediaWiki à partir des attributs SAML. Merci à Poikilotherm d'avoir contribué à cette fonctionnalité.
 * Version 4.0
 * Ajout d'un message d'erreur facultatif à authenticate
 * Numéro de version bossé à synchroniser avec les extensions PluggableAuth et OpenID Connect

Débogage
L'authentification unique peut être difficile à configurer correctement, en particulier pour les nouveaux administrateurs système chargés de connecter leur nouvelle instance MediaWiki au fournisseur d'identité de la société. Les extensions PluggableAuth et SimpleSAMLphp elles-mêmes sont très stables, et les problèmes principaux sont habituellement liés au paramètrage.

Pour commencer à déboguer, affectez à un chemin de fichier sur votre système local. Vous n'avez pas besoin de définir $wgShowExceptionDetails à true ; en fait, vous ne devriez probablement pas le faire, pour des raisons de sécurité.

Visitez votre wiki et essayez de vous connecter avec PluggableAuth. Une fois que vous avez rencontré votre erreur, consultez le fichier de débogage et cherchez des lignes qui commencent par  et.

En cas de problème d'authentification, le journal de débogage indique quelque part.

L'extension SimpleSAMLphp fonctionne ainsi :


 * 1) L'utilisateur clique sur le bouton de connexion SSO sur wiki.
 * 2) L'utilisateur est dirigé vers Special : PluggableAuthLogin. Il détecte que le wiki utilise Extension : SimpleSAMLphp. SimpleSAMLphp (le logiciel, pas l'extension) détecte qu'aucune session de connexion n'a encore été définie.
 * 3) Special:PluggableAuthLogin appelle la fonction   de SimpleSAMLphp, qui appelle l'API de SimpleSAMLphp pour commencer le processus d'authentification.
 * 4) SimpleSAMLphp redirige l'utilisateur vers la page de connexion du fournisseur d'identité.
 * 5) Une fois que l'utilisateur s'est authentifié avec IDP, il génère une assertion et redirige vers l'URL ACS (service client d'assertion) de votre instance SimpleSAMLphp locale, qui redirige ensuite vers le Special:PluggableAuthLogin du wiki.
 * 6) Special:PluggableAuthLogin reconnaît maintenant le cookie de session et gère la connexion de l'utilisateur.

Si vous rencontrez une boucle de redirection de connexion, le processus d'authentification n'aura jamais la chance de consigner un message d'erreur ou de réussite. Cela indique que l'appel à la méthode  de SimpleSAMLphp ne se termine jamais, ce qui signifie que SimpleSAMLphp essaie de recommencer le processus d'authentification. Ceci est généralement dû au fait qu'il ne détecte pas la session de connexion malgré sa définition. Assurez-vous de na pas faire les erreurs courantes, telles que laisser store.type dans votre configuration SimpleSAMLphp en tant que phpsession au lieu de le modifier en une autre méthode, ou mette votre instance SimpleSAMLphp dans un domaine différent de celui de votre wiki sans proxy adapté. (Par exemple, si votre instance de SimpleSAMLphp se trouve dans le domaine canonique  mais que votre wiki est situé à , la session ne sera jamais stockée sur   et Special:PluggableAuthLogin redirigera vers le fournisseur d'identité au lieu de connecter l'utilisateur, créant ainsi une boucle de connexion.)

Si vous rencontrez un message d'erreur sur Special:PluggableAuthLogin après une redirection réussie du fournisseur d'identité, il y a probablement une erreur de configuration PluggableAuth/SimpleSAMLphp dans votre LocalSettings.php. Vérifiez si vous avez correctement configuré vos attributs. Les attributs peuvent parfois devoir être des URL (comme si vous utilisez Azure Active Directory).



Bogues connus


Collision dans le gestionnaire de session entre MediaWiki et le fournisseur de service de SimpleSAML
Si vous utilisez MediaWiki 1.27 ou version ultérieure avec PluggableAuth 2.0 ou version ultérieure, des problèmes ont été observés lorsque SimpleSAMLphp est configuré pour utiliser phpsession pour store.type. Cela peut être dû T147161. Pour résoudre ce problème, utilisez un type de magasin différent dans la configuration du [logiciel https://simplesamlphp.org/ SimpleSAMLphp] en ajustant simplesamlphp/config/config.php (voir https://simplesamlphp.org/docs/stable/simplesamlphp-maintenance#section_2_3). Par exemple, pour SQLite, utilisez:

'store.type' => 'sql', 'store.sql.dsn' => 'sqlite:/path/where/the/apache/user/can/write/sqlitedatabase.sq3',

Pour MySQL, utilisez:

'store.type' => 'sql', 'store.sql.dsn' => 'mysql:host=xxx;port=xxx;dbname=xxx', 'store.sql.username' => 'xxx', 'store.sql.password' => 'xxx', 

Message d'erreur à la déconnexion
Depuis MediaWiki 1.35 par défaut (habillage Vector) la déconnexion n'est plus réalisée en appelant Special:Logout, mais par une requête POST XHR. Ceci n'est pas compatible avec la manière dont SAML fonctionne et résulte en un message d'erreur (voir la capture d'écran).

Voir aussi

Comme solution de contournement, vous pouvez modifier le lien de déconnexion et le faire pointer vers Special:Logout à nouveau, en ajoutant :

au fichier.