Réseau Moodle

Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Réseau Moodle et celle pour Moodle 3.x est consultable là : Réseau Moodle.

Moodle1.8


Le réseau Moodle (MNet) est la possibilité pour un administrateur de Moodle d'établir un lien avec un autre Moodle, et de partager des ressources avec les utilisateurs de ce Moodle. Cette fonctionnalité existe depuis Moodle 1.8.

Description

Le réseau Moodle est fourni avec un nouveau plugin d'authentification, qui permet une authentification unique (SSO) entre plusieurs Moodle. Par exemple, l'utilisateur ayant comme nom de connexion paul se connecte normalement à son Moodle, et clique sur un lien qui l'emmène sur une page d'un autre Moodle. Normalement, il devrait avoir uniquement les privilèges d'invité sur le Moodle distant, mais l'authentification unique jouant, une authentification complète sera faite pour paul sur le Moodle distant.

Sécurité

L'utilisation du réseau Moodle nécessite que votre serveur ait les extensions PHP Curl et OpenSSL installées et activées. Lorsque vous installez ou mettez à jour vers Moodle 1.8, votre système génèrera un nouveau certificat OpenSSL pour crypter les communications avec d'autres Moodles, et modifiera ensuite cette clé de cryptage tous les mois environ.

La communication utilise le protocole XML-RPC. Les documents sont signés électroniquement par XMLDSIG (XML digital signature), puis cryptés avec XMLENC (XML encryption). Le tout est réalisé en PHP et ne requiert pas de serveur HTTPS (SSL d'Apache).

Références :

Un mode spécial permet à une machine avec une adresse IP spécifique de faire des appels à la couche XML-RPC sans passer par le cryptage des données ou les signatures électroniques. Ce mode est fourni pour permettre à Moodle de communiquer avec d'autres applications qui intègrent difficilement ce système de cryptage et de signature électronique. Mais il n'est pas envisageable que le réseau entre plusieurs Moodle ne soit pas crypté.

Réseau serveur à serveur

C'est la base du système. Il peut être très utile d'avoir un Moodle par faculté ou département, chacun avec sa propre gestion d'utilisateurs, mais permettant aux utilisateurs de passer d'un Moodle à un autre, en fonction des permissions accordées naturellement.

Mise en place

Les instructions suivantes montrent le principe avec deux installations de Moodle : MoodleA et MoodleB. Les deux sont déjà installés correctement, et n'ont jamais été configurés pour le réseau Moodle.

Note : si vous rencontrez des problèmes, activez le débogage depuis Administration du site > Serveur > Débogage. Des messages supplémentaires de diagnostic peuvent être affichés (notamment à partir de Moodle 1.9.2).

  1. Faites les communiquer entre eux :
    1. Vérifiez que Administration > Serveur > Environnement indique que xmlrpc, curl et openssl soient installés et activés.
    2. Si MoodleA et MoodleB sont hébergés sur le même domaine, assurez vous qu'ils ont des préfixes de cookie différents, depuis Administration > Serveur > Gestion des sessions. Notez que changer ce préfixe vous déconnectera du Moodle !
    3. Sur les deux, allez sur Administration > Réseau > Réglages et activez le réseau (cliquez sur 'Enregistrer').
    4. Sur MoodleA, allez sur Administration > Réseau > Paires - saisissez l'URL de MoodleB (en commençant par http://, et en saisissant si nécessaire le nom de dossier de Moodle) sous "Ajouter un nouveau serveur" et cliquez sur Ajouter un serveur.
    5. Faites l'équivalent sur MoodleB.
  2. Autorisez la connexion à un serveur Moodle distant :
    1. Sur les deux, allez sur Administration > Utilisateurs > Authentification et activez l'Authentification réseau Moodle. Cliquez sur Paramètres et autorisez l'ajout automatique des utilisateurs distants (auto_add_remote_users).
    2. Sur MoodleA, allez sur Administration > Réseau > Paires, cliquez sur 'MoodleB', puis cliquez sur 'Services'. Autorisez SSO-IDP publier et s'abonner, et SSO-SP publier et s'abonner.
    3. Faites l'équivalent sur MoodleB.
    4. Sur les deux, allez sur Administration > Utilisateurs > Permissions > Définition des rôles, seuls les rôles possédant la capacité de "Accéder à un serveur Moodle distant moodle/site:mnetlogintoremote" pourront accéder à un serveur distant. Autorisez les droits sur cette capacité comme nécessaire.
    5. Sur les deux, allez sur la page d'accueil, activez le mode édition, et ajoutez le bloc 'Serveurs du réseau'.
    6. Pour tester, il est recommandé d'utiliser un navigateur différent (voir même un ordinateur différent) qui n'est connecté à aucun des Moodle. Connectez vous à MoodleA avec un compte non administrateur possédant la capacité d'accéder à un serveur Moodle distant. Vous devriez voir le bloc 'Serveurs du réseau', et cliquer dessus devrait vous mener sur MoodleB avec un nouveau compte automatiquement créé.
  3. Activez l'inscription par réseau Moodle -- ceci est optionnel. Cela permet aux administrateurs de MoodleB d'inscrire des utilisateurs "natifs" de MoodleB à des cours de MoodleA, et vice-versa.
    1. Sur les deux, allez sur Administration > Cours > Inscriptions et autorisez l'inscription par réseau Moodle (cliquez sur 'Enregistrer'). Cliquez sur 'Modifier' et activez 'allow_allcourses' ou sélectionnez les cours et/ou catégories de cours dans lesquels vous autorisez l'inscription distante.
    2. Sur MoodleA, allez sur Administration > Réseau > Paires, cliquez sur 'MoodleB', puis cliquez sur 'Services'. Autorisez pour l'inscription publier et s'abonner.
    3. Faites l'équivalent sur MoodleB.
    4. Pour l'utiliser, depuis MoodleA allez sur Administration > Réseau > Inscriptions et vous verrez MoodleB listé. Cliquez sur MoodleB et vous verrez une liste des cours que MoodleB offre pour une inscription distante. Choisissez le cours qui vous intéresse, et vous pourrez y inscrire les utilisateurs de votre choix.

Utilisation

Suivre les explications données à la fin de chacune des grandes étapes détaillées ci-dessus.

Se connecter à un serveur d'échanges MNet

Un serveur d'échanges MNet (à ne pas confondre avec le projet de concentrateur réseau (hub) introduit dans Moodle 2.0) est un serveur Moodle configuré pour accepter les connexions d'autres serveurs serveurs, et pour fournir certains services aux utilisateurs de ces autres serveurs. Ce guide vous montrera comment vous connecter à un serveur d'échanges MNet, évaluer les services qu'il offre, et autoriser ces services pour vos utilisateurs.

Mise en place

  1. Communiquer avec le serveur d'échanges MNet :
    1. Vérifiez que Administration > Serveur > Environnement indique que xmlrpc, curl et openssl soient installés et activés.
    2. Allez sur Administration > Réseau > Réglages et activez le réseau (cliquez sur 'Enregistrer').
    3. Allez sur Administration > Réseau > Paires et saisissez l'URL (en commençant par http://) du serveur d'échanges MNet sous "Ajouter un nouveau serveur" et cliquez sur Ajouter un serveur.
    4. Les détails pour le serveur d'échanges MNet devraient apparaitre, avec le champ "Nom d'hôte" déjà rempli. Saisissez un nom pour ce serveur, et cliquez sur Enregistrer.
    5. Les détails seront écrits dans la base de données interne, et deux nouveaux onglets apparaitront : "Services" et "Historiques". Cliquez sur Services
    6. Une liste des services apparaitra, chacun avec une case à cocher pour "Publier" et "S'abonner". Cochez les cases en fonction des services que vous souhaitez fournir ou auxquels vous souhaitez vous abonner, et cliquez sur Enregistrer.

Utilisation

Si le serveur d'échanges MNet a autorisé des services, une indication s'affichera après la case pour les services concernés. Par exemple : si le serveur d'échanges MNet a publié l'inscription via Réseau Moodle, alors après la case S'abonner s'affichera une petite coche pour ce service. Notez que pour permettre certaines fonctionnalités, comme l'authentification unique, vous devrez publier un service : "SSO (fournisseur d'identité)". Le serveur d'échanges MNet accèdera à ce service sur votre Moodle, lui demandant d'authentifier vos utilisateurs.

  1. Activez l'accès aux serveurs distants :
    1. Abonnez vous à SSO (fournisseur de service) en cochant la case.
    2. Publiez SSO (fournisseur d'identité) en cochant la case.
    3. Cliquez sur 'Enregistrer'.
    4. Allez sur Administration > Utilisateurs > Permissions > Définition des rôles, seuls les rôles possédant la capacité de "Accéder à un serveur Moodle distant moodle/site:mnetlogintoremote" pourront accéder à un serveur distant. Autorisez les droits sur cette capacité comme nécessaire.
    5. Allez sur Administration > Utilisateurs > Authentification et activez l'Authentification réseau Moodle.
    6. Allez sur la page d'accueil, activez le mode édition, et ajoutez le bloc 'Serveurs du réseau'.
    7. En utilisant un autre navigateur, connectez vous avec un compte ne possédant pas le rôle d'administrateur, mais un rôle ayant le droit d'accéder à un serveur Moodle distant.
    8. Notez que le serveur d'échanges MNet est listé dans le bloc 'Serveurs du réseau' sur la page d'accueil. Cliquez sur le lien vers ce serveur.
    9. Certains des détails de votre utilisateur seront transférés vers le serveur d'échanges MNet, et une session de navigation sera ouverte pour vous comme si vous vous étiez directement connecté sur ce serveur.
  2. Activez l'inscription par réseau Moodle :
    1. Retournez sur le navigateur internet que vous utilisiez comme administrateur.
    2. Allez sur Administration > Réseau > Paires et cliquez sur l'entrée correspondant au serveur d'échanges MNet.
    3. Cliquez sur l'onglet Services.
    4. Abonnez vous à Inscription via Réseau Moodle (cliquez sur 'Enregistrer').
    5. Allez sur Administration > Cours > Inscriptions et autorisez l'inscription par réseau Moodle (cliquez sur 'Enregistrer').
    6. Allez sur Administration > Réseau > Inscriptions pour voir la liste des serveurs Moodle qui vous offrent ce service.
    7. Cliquez sur le nom du serveur, pour voir la liste des cours que ce serveur offre à vos utilisateurs.
    8. Cliquez sur le nom du cours, pour voir la liste des utilisateurs que vous pourrez inscrire à ce cours.
    9. Inscrivez vos utilisateurs.
    10. Profitez !

Mettre en place un serveur d'échanges MNet

Un serveur d'échanges MNet est un site Moodle qui fonctionne dans un mode particulier. En tant qu'administrateur Moodle, quand vous ajoutez un autre Moodle à la liste de paires réseau de votre Moodle, votre Moodle va contacter celui ajouté pour connaître son nom et lui demander sa clé publique pour crypter leur communication. Normalement, le serveur à distance va fournir cette information sans enregistrer la transaction.

Un serveur d'échanges MNet est différent. Dès que vous créez une entrée pour un serveur d'échanges MNet dans votre système, le serveur d'échanges MNet créera une entrée pour votre serveur dans sa liste de sites, et pourra dès lors commencer à offrir des services aux utilisateurs de votre site.

Cette section vous guidera pour mettre en place un serveur d'échanges MNet, et choisir les services que vous offrirez à ceux qui se connecteront.

Mise en place

  1. Activez le réseau :
    1. Vérifiez que Administration > Serveur > Environnement indique que xmlrpc, curl et openssl soient installés et activés.
    2. Allez sur Administration > Réseau > Réglages et activez le réseau (cliquez sur 'Enregistrer').
    3. Allez sur Administration > Réseau > Paires et cochez 'Enregistrer tous les serveurs (mode hub)' puis cliquez sur 'Enregistrer'.
    4. Sur la même page, la première entrée des sites devrait être 'All hosts'. Cliquez sur ce lien.
    5. Cliquez sur l'onglet Services et activez les services que vous souhaitez offrir à tous les arrivants, puis cliquez sur 'Enregistrer'.

Voir aussi