Réseau Moodle

La fonctionnalité réseau Moodle permet à un administrateur Moodle d'établir un lien avec un autre Moodle ou un site Mahara et de partager certaines ressources avec les utilisateurs de ce Moodle. Les utilisateurs vont du premier Moodle au site lié via le bloc Serveurs réseau.


Réseau.png


Vue d'ensemble

La version initiale du Réseau est livrée avec un plugiciel d'authentification, qui rend possible l'ouverture d'une session unique entre Moodle. Un utilisateur dont le nom d'utilisateur est jody se connecte à son serveur Moodle comme d'habitude, et clique sur un lien qui l'amène à une page sur un autre serveur Moodle. Normalement, elle n'aurait que les privilèges d'un visiteur anonyme sur le Moodle distant, mais dans les coulisses, la connexion unique a établi une session entièrement authentifiée pour Jody sur le site distant.

AVERTISSEMENT : Le Réseau requiert l'utilisation de xmlrpc. Veuillez vous rendre sur votre page phpinfo si vous êtes intéressé à l'utiliser et rechercher --with-xmlrpc. Si votre php n'a pas été compilé avec xmlrpc, vous devez d'abord y remédier ! À l'heure actuelle, il semble que PEAR xmlrpc ne fonctionnera pas.

Réseau Moodle dans Administration > Utilisateur > Authentification > Réseau Moodle
.

Sécurité

La fonction Réseau Moodle nécessite que les extensions Curl et OpenSSL soient installées sur votre serveur. Votre système générera un certificat OpenSSL pour la communication cryptée avec d'autres Moodle, et fera la rotation des clés de cryptage sur une base mensuelle (environ).

La communication s'effectue via un transport XML-RPC et les documents XML-RPC sont d'abord enveloppés dans une enveloppe XMLDSIG (signature numérique XML), puis dans une enveloppe XMLENC (cryptage XML). Le cryptage se fait en PHP, et ne nécessite pas de serveur https (Apache SSL).

Reférences:

Un mode spécial peut être activé pour permettre à une machine avec une adresse IP spécifiée d'effectuer des appels vers la couche XML-RPC sans utiliser d'enveloppe de cryptage ou de signature. Ce mode est fourni pour permettre à Moodle de communiquer avec d'autres systèmes logiciels dans lesquels l'intégration des signatures et du cryptage pourrait être prohibitive. Il n'est pas prévu que le réseautage inter-Moodle non crypté soit un jour possible.

Réseau Peer to Peer

Il s'agit de la structure de base du système. Il peut être très utile d'exécuter un Moodle par faculté ou département, chacun avec sa propre gestion des utilisateurs, tout en permettant aux utilisateurs de parcourir les installations Moodle... sous réserve de permissions bien sûr.

Configuration

Les instructions couvriront 2 installations Moodle : MoodleA et MoodleB. Les deux sont correctement installés et n'ont jamais eu de configuration Réseau Moodle.

Remarque : Si vous rencontrez des problèmes, assurez-vous que le débogage est activé dans Administration du site > Serveur > Débogage. Des messages de diagnostic supplémentaires peuvent être affichés.

Vous devez d'abord activer la mise en réseau dans Administration du site > Fonctions avancées. Le menu "Mise en réseau" est alors ajouté au menu Administration du site.

  1. Faites-les communiquer.
    1. Assurez-vous que Administration du site > Serveur > Environnement indique que vous avez installé curl.
    2. Si MoodleA et MoodleB sont hébergés dans le même domaine, assurez-vous qu'ils ont un préfixe de cookie différent. Notez que changer le préfixe du cookie vous déconnectera ! Vous pouvez modifier le préfixe du cookie via Administration > Server > Session Handling.
    3. Sur les deux, allez dans Administration du site > Fonctions avancées et activez la mise en réseau.
    4. Sur MoodleA allez dans Administration du site > Réseau > Gérer les pairs mettez l'URL de MoodleB sous "Ajouter un nouvel hôte" et cliquez sur Ajouter. L'URL doit inclure le répertoire où se trouve votre code Moodle et peut également inclure le protocole, par exemple" "https://www.mymoodle.org/moodle".
    5. Faites l'équivalent sur MoodleB.
  2. Mettez l'itinérance des utilisateurs en marche [1]. Sur les deux serveurs :
      1. Allez dans Administration du site > Plugins > Authentification > Gérer l'authentification. Activez Authentification Réseau en cliquant sur l'icône "activer".
    1. Sur MoodleA, allez dans Administration du site > Réseautage > Gérer les pairs, cliquez sur "MoodleB" et cliquez sur l'onglet "Services". Activez SSO-IDP (SSO Identity Provider) pour publier et vous abonner, et SSO-SP (SSO Service Provider) pour publier et vous abonner.
    1. Faites l'équivalent sur MoodleB. (En publiant et en vous abonnant, vous permettez aux utilisateurs de se déplacer librement entre les deux serveurs. En ne publiant ou en vous abonnant qu'entre serveurs, vous créez une traversée à sens unique)
    1. Dans les deux cas, allez dans Administration du site > Utilisateurs > Permissions > Définition des rôles, seuls les rôles ayant "Parcourir vers un Moodle éloigné moodle/site:mnetlogintoremote" seront autorisés à parcourir. Accordez le privilège comme il convient.
      1. Par exemple, l'activation de Utilisateur authentifié permet à n'importe quel utilisateur authentifié de se déplacer entre les serveurs.
    2. Sur les deux serveurs, allez sur la page d'accueil, et ajoutez le bloc "Serveurs réseau".
    3. Pour tester, il est recommandé d'utiliser un navigateur différent (même sur une machine différente) qui n'est connecté à aucun des deux. Connectez-vous à MoodleA avec un compte non-administrateur qui a les permissions de parcourir. Vous devriez voir le bloc Serveurs réseau, et en cliquant dessus, vous devriez aller sur MoodleB avec un compte nouvellement créé automatiquement.
  1. Obtenir des inscriptions à distance, c'est facultatif. Il permet à un administrateur de MoodleB d'inscrire des utilisateurs "natifs" de MoodleB à des cours à distance dans MoodleA, et vice versa.
    1. Sur les deux, allez dans Administration du site > Plugins > Inscriptions > Gérer les plugins d'inscription et activez le plugin d'inscription à distance Mnet (cliquez sur Enregistrer). Cliquez sur "Modifier" et activez "autoriser tous les cours" ou sélectionnez certains cours ou catégories à inscrire à distance.
    2. Sur le serveur sur lequel vous voulez recevoir les inscriptions :
      1. Allez dans Administration du site > Plugins > Inscriptions > Gérer les plugins d'inscription. Activez Inscriptions à distance au Réseau en cliquant sur l'icône "activer". (Pour plus d'informations sur les paramètres de configuration du "Réseau d'inscription à distance", voir Enregistrements à distance du MNet).
    3. Sur MoodleA, allez dans Administration > Réseautage > Pairs, cliquez sur "MoodleB", et cliquez sur l'onglet "Services". Activer l'inscription Publier et/ou s'abonner.
    4. Faire l'équivalent sur MoodleB.
    5. Sur chaque cours auquel vous voulez autoriser les inscriptions :
        1. Entrez dans le cours et allez à Administration du site > Cours > Utilisateurs > Méthodes d'inscription.
      1. Dans le menu déroulant "Ajouter une méthode", sélectionnez "Inscriptions à distance au Réseau".
      2. Dans le nouvel écran, sélectionnez l'hôte distant à partir duquel vous voulez autoriser les inscriptions, le rôle des utilisateurs inscrits et cliquez sur Enregistrer. (Remarque : vous ne pouvez ajouter qu'une seule méthode d'inscription à distance au Réseau par cours.)

Comment l'utiliser ?

  1. Dans MoodleA, allez dans Administration > Réseautage > Inscriptions client à distance. Vous verrez la liste MoodleB s'afficher. Cliquez sur le bouton "Modifier les inscriptions" à côté de MoodleB et vous verrez une liste des cours que MoodleB offre pour l'inscription à distance. Cliquez sur "Modifier les inscriptions", sélectionnez les utilisateurs que vous souhaitez inscrire, puis cliquez sur "Ajouter" pour les inscrire au cours.

Connexion à un hub Mnet

Un hub Mnet (à ne pas confondre avec le Hub communautaire) est un serveur Moodle qui est configuré pour accepter les connexions d'autres serveurs Moodle et fournir un ensemble de services aux utilisateurs de ces autres serveurs. Cette directive vous indiquera comment vous connecter à un hub Mnet, évaluer les services qu'il a à offrir, et activer ces services pour vos utilisateurs.

Configuration

Activer la mise en réseau

  1. Assurez-vous que la page Paramètres > Administration du site > Serveur > Environnement indique que vous avez installé curl et openssl.
  2. Allez dans Paramètres > Administration du site > Fonctions avancées et activez l'option Mise en réseau
  3. Allez dans Paramètres > Administration du site > Réseau > Pairs et cochez la case Enregistrer tous les hôtes. Cliquez sur Enregistrer les modifications.
  4. Sur la même page, la première entrée de votre liste d'hôtes doit être Tous les hôtes. Cliquez sur ce lien
  5. Cliquez sur Services et activez tous les services que vous voulez offrir à tous les visiteurs

Attribuer le rôle d'administrateur

Pour des raisons de sécurité, les utilisateurs ne peuvent pas se voir attribuer le rôle d'administrateur via l'interface Moodle. Au lieu de cela, les ID d'utilisateur administrateur doivent être listés dans config.php, par exemple
$CFG->siteadmins ='2,45,67';
.

Remarque : Ceci s'applique aussi bien aux administrateurs locaux qu'aux administrateurs distants, car cela remplace tous les paramètres stockés dans la base de données locale qui attribuent des autorisations administratives.

Voir aussi