MNet

移動先: 案内, 検索


Moodleネットワーク機能ではMoodle管理者が別のMoodleまたはMaharaサイトとの接続を確立してMoodleのユーザがリソースを共有できるようにすることができます。ユーザは最初のMoodleサイトからネットワークサーバブロック経由でリンクされているサイトに移動することができます。

Networkserversexample.png

概要

MNetの初期リリースはMoodle間のシングルサインオンを実現するために認証プラグインに同梱されていました。ユーザ名「jody」のユーザが通常通りMoodleサーバにログインしてリンクをクリックすることにより、彼女を別のMoodleサーバのページに連れて行きます。通常、彼女にはリモートMoodleサイトのゲスト権限のみ割り当てられますが、舞台裏ではリモートサイトで「jody」の完全な認証セッションが確立されています。

注意: MNetではxmlrpcの使用が必須です。あなたがxmlrpcの使用に興味があり「--with-xmlrpc」を確認したい場合、phpinfoページにアクセスしてください。PHPが設定オプション「--with-xmlrpc」でコンパイルされていない場合、あなたは最初にそれに取り組む必要があります! 現在のところはPEAR xmlrpcが動作しない旨、表示されます。

「管理 > サイト管理 > ユーザ > 認証 > Moodleネットワーク」のMNet設定

セキュリティ

MNet機能ではあなたのサーバに「Curl」および「OpenSSL」l拡張モジュールがインストールされている必要があります。あなたのシステムは他のMoodleと暗号化通信するためにOpenSSL証明書を生成して 約1ヶ月ごとに暗号化キーを交換 (ローテート) します。

通信はXML-RPCトランスポートで実現されます。XML-RPCドキュメントは最初にXMLDSIG (XMLデジタル証明書) エンベロープに入れられた後、XMLENC (XML暗号化) エンベロープに入れられます。すべてPHP内で暗号化されるため、https (Apache SSL) サーバを必要としません。

参考資料:

暗号化または署名エンベロープを使用せずに特定のIPアドレスのマシンからXML-RPCレイヤーをコールすることのできる特別モードを有効にすることができます。このモードは証明書および暗号化の統合が困難な他のシステムとMoodleを通信させるために提供されます。暗号化されていないMoodle間のネットワーキングを有効にすることは想定されていません。

ピアツーピアネットワーク (Peer to Peer Network)

これはシステムの基本レイアウトです。それぞれに独自にユーザ管理できる学部学科単位でMoodleを運用することができる点で非常に有用です。コースのパーミッションにもよりますが、ユーザはMoodle間を散策することもできます。

セットアップ

インストラクションでは2つのMoodleインストレーション (MoodleAおよびMoodleB) を取り上げます。両方とも正常にインストールされています。また、Moodleネットワークは設定されていません。

注意: あなたが問題を経験した場合、「管理 > サイト管理 > 開発 > デバッグ」ページで「デバッグメッセージ」を選択して「デバックメッセージを表示する」を有効にしてください。追加の診断メッセージが表示されます。

あなたは最初に「管理 > サイト管理 > 拡張機能」ページでネットワーキングを有効にする必要があります。これによりサイト管理メニューに「ネットワーキング」メニューが追加されます。

  1. それぞれを会話させる
    1. 「管理 > サイト管理 > サーバ > 動作環境」でcurlがインストールされていることを確認してください。
    2. MoodleAおよびMoodleBが同じドメインを使用している場合、両者が異なるクッキー接頭辞を使用していることを確認してください。クッキー接頭辞を変更することにより、あなたがログアウトさせられてしまうことに留意してください! あなたは「管理 > サイト管理 > サーバ > セッションハンドリング」でクッキー接頭辞を変更することができます。
    3. 両方で「管理 > サイト管理 > 拡張機能」に移動して「ネットワーキング」を有効にしてください。
    4. MoodleAで「管理 > サイト管理 > ネットワーク > ピアを管理する」ページで「新しいホストを追加する」の下にMoodleBのURLを入力して「追加」をクリックしてください。URLにはあなたのMoodleコードが置かれているディレクトリを含む必要があります。また、プロトコルを含むこともできます。例えば次のようになります: https://www.mymoodle.org/moodle
    5. 同様の作業をMoodleBでも実施します。
  2. ユーザに散策させる
  3. 両サーバで ([1] ) :
    1. 「管理 > サイト管理 > プラグイン > 認証 > 認証を管理する」に移動して「有効」アイコンをクリックすることにより「MNet認証」を有効にしてください。
    2. MoodleAで「管理 > サイト管理 > ネットワーキング > ピアを管理する」に移動して「MoodleB」をクリックした後、「サービス」タブをクリックしてください。SSO-IDP (SSO Identity Provider) の「公開」および「登録」を有効にして SSO-SP (SSO Service Provider) の「公開」および「登録」を有効にしてください。
    3. 同様の作業をMoodleBでも実施してください (両サーバの「公開」および「登録」により、あなたはユーザが2つのサーバを自由に移動できるようにすることができます。「公開」または「登録」のみ有効にした場合、あなたはサーバ間で1方向に移動することができます)。
    4. 両サイトの「管理 > サイト管理 > ユーザ > パーミッション > ロールを定義する」ページでケイパビリティ「MNet経由でリモートアプリケーションを散策する moodle/site:mnetlogintoremote」が許可にされているユーザのみ散策が許可されます。必要に応じて権限を付与してください。
      1. 例) 「認証済みユーザ」を有効にすることにより、すべての認証済みユーザがサーバ間を散策することができます。
    5. 両サーバでホームページに移動して「ネットワークサーバ」ブロックを追加してください。
    6. テストするため、どちらにもログインしていない別のブラウザ (さらに異なるマシン) の使用をお勧めします。MoodleAに散策できるパーミッションのある非管理者アカウントでログインします。ネットワークサーバブロックが表示されますので、クリックして新しいアカウントが作成されるMoodleBに移動してください。
  4. リモート登録できるようにする - これは任意です。MoodleBの管理者がMoodleBの「ネイティブ」 (native 本来) のユーザをMoodleAのリモートコースに登録することができるようになります。その逆も同じです。
    1. 両サイトで「管理 > サイト管理 > プラグイン > 登録 > 登録プラグイン管理」に移動して、「Mnetリモート登録」プラグインを有効にしてください。「編集」をクリックして「allow_allcourses」を有効にするか、リモートに登録されるコースまたはカテゴリを選択してください。
    2. あなたが登録を受信したサーバで
      1. 「管理 > サイト管理 > プラグイン > 登録 > 登録プラグイン管理」に移動してください。「有効」アイコンをクリックして「MNetリモート登録」を有効にしてください (「MNetリモート登録」に関してMNetリモート登録をご覧ください)。
    3. MoodleAで「管理 > サイト管理 > ネットワーク > ピア」に移動して、「MoodleB」をクリックした後、「サービス」タブをクリックしてください。登録公開または登録を有効にします。
    4. MoodleBでも同様に設定します。
    5. あなたはすべてのコースで登録を許可することができます:
      1. コースに入った後、「管理 > コース管理 > ユーザ > 登録方法」に移動してください。
      2. 「追加方法」ドロップダウンメニューから「MNetリモート登録」を選択してください。
      3. あなたが登録させたいリモートホストを新しい画面の「リモートホスト」で選択して登録されるユーザのロールを選択した後、「保存」をクリックしてください (注意: あなたは1コースあたり1つの「MNetリモート登録」方法のみ追加することができます)。

使ってみる

  1. MoodleAで「管理 > サイト管理 > ネットワーキング > リモート登録クライアント」に移動してください。あなたにはMoodleBが一覧表示されます。MoodleBの横にある「登録を編集する」ボタンをクリックしてください。MoodleBがリモート登録を提供しているコース一覧が表示されます。「登録を編集する」をクリックして、あなたが登録したいユーザを選択した後、「追加」をクリックすることによりユーザをコースに登録することができます。

MNetハブへの接続

MNetハブ (コミュニティハブと間違わないでください) は別のMoodleサーバからの接続を受け入れるよう設定されて、別のMoodleサーバのユーザに一連のサービスを提供するよう設定されたMoodleサーバです。このガイドラインによりMnetハブに接続して提供するサービスを決定してあなたのユーザのためにサービスを有効にするよう案内します。

セットアップ

  1. ハブと通信する
    1. 「管理 > サイト管理 > サーバ > 環境」ページでcurlおよびopensslがインストールされていることを確認してください。
    2. 「管理 > サイト管理 > 拡張機能」に移動してネットワーキングを有効にしてください。
    3. 「管理 > サイト管理 > ピア」に移動して「新しいホストを追加する」の下にMNetハブのURLを入力してください。「追加」をクリックしてください。
    4. MNetハブのホスト詳細がすでに追加されたサイト名フィールドと共に表示されます。「変更を保存する」をクリックしてください。
    5. あなたのデータベースに詳細が書き込まれた後、このウィンドウに新しい2つのタブ「サービス」「ログ」 が表示されます。「サービス」をクリックしてください。
    6. 「公開」および「登録」にチェックボックスの付いた一連のサービスが一覧表示されます。あなたが公開または登録したいサービスのチェックボックスをチェックしてください。

使ってみる

すでにMNetハブが有効にされている場合、適切なチェックボックスがチェックされた状態となります。例えば次のようになります: ハブがMoodleネットワーク登録を「公開」している場合、このサービスの「登録」チェックボックスの横にチェックされたチェックボックスが表示されます。いくつかの機能を有効にする場合 (特に「シングイルサイオン」)、あなたはサービスを「公開」する必要があります (例 「アイデンティティプロバイダ」サービス)。MNetハブはあなたのMoodleのサービスにアクセスして、あなたのユーザを認証するよう求めます。

  1. ローミングを有効にする
    1. チェックボックスをチェックして「SSO (サービスプロバイダ)」に登録してください。
    2. チェックボックスをチェックして「SSO (アイデンティティプロバイダ)」に公開してください。
    3. 「変更を保存する」をクリックしてください。
    4. 「管理 > サイト管理 > ユーザ > パーミッション > ロールを定義する」に移動して適切なロールに「MNet経由でリモートアプリケーションを散策する moodle/site:mnetlogintoremote」ケイパビリティを割り当ててください。
    5. 「管理 > サイト管理 > プラグイン > 認証 > 認証管理」に移動して「MNet認証」プラグインを有効にしてください。
    6. ホームページに移動して編集モードを有効にした後、「ネットワークサービス」ブロックを追加してください。
    7. あなたが散策するための権限を与えた非管理者を使用して異なるブラウザを使用してログインしてください。
    8. MNetハブはホームページのネットワークサーバブロックに一覧表示されることに留意してください。サーバのリンクをクリックしてください。
    9. あなたのユーザ詳細の一部はMnetハブサーバに転送されます。そして、あなたが直接ログインしているかのように閲覧セッションが開始されます。
  2. ネットワーク環境を有効にする
    1. あなたがサイト管理者として使用しているウェブブラウザに戻ってください。
    2. 「管理 > サイト管理 > ネットワーク > ピア」に移動してMnetハブのエントリをクリックしてください。
    3. 「サービス」タブをクリックしてください。
    4. 「Moodleネットワーク登録」に登録してください。
    5. 「管理 > サイト管理 > プラグイン > 登録 > 登録プラグイン管理」に移動して「MNetリモート登録」を有効にして「変更を保存する」ボタンをクリックしてください。
    6. ネットワーク登録の詳細を表示するには「編集」ボタンをクリックしてください。
    7. このサービスをあなたに提供しているMoodleサーバ一覧を表示するには「管理 > サイト管理 > ネットワーキング > 登録」に移動してください。
    8. あなたのユーザにサーバが提供するコース一覧を表示するにはサーバ名をクリックしてください。
    9. あなたがこのコースに登録できるユーザを一覧表示するにはコース名をクリックしてください。
    10. ユーザを登録してください。
    11. 以上です!

MNetハブを運用する

MNetハブは特別モードで動作する通常のMoodleサイトです。Moodle管理者として別のサイトをあなたのネットワークピア一覧に追加した場合、あなたのMoodleは提供されているものを探すためにそのサイトに接続して暗号化通信のためのパブリックキーをリクエストします。通常、リモートサーバはトランザクションレコードを作成せずにこの情報を単に提供します。

MNetハブは異なります。あなたのシステムにMNetハブのエントリを追加した場合、すぐにMNetハブのホスト一覧が作成されます。そしてすぐにあなたのサイトのユーザにサービスを提供することができます。

このセクションではMNetハブをセットアップしてユーザに提供するサービスの選択に関して説明します。

セットアップ

ネットワーキングを有効にする

  1. 「設定 > サイト管理 > サーバ > 環境」ページでcurlおよびopensslがインストールされていることを確認してください。
  2. 「設定 > サイト管理 > 拡張機能」に移動してネットワーキングを有効にしてください。
  3. 「設定 > サイト管理 > ネットワーキング > ピア」に移動して「すべてのホストを登録する」チェックボックスをチェックしてください。「変更を保存する」をクリックしてください。
  4. 同じページであなたのホスト一覧の最初のエントリは「すべてのホスト」になります。このリンクをクリックしてください。
  5. 「サービス」をクリックしてあなたがすべてのユーザに提供したいサービスを有効にしてください。

管理者ロールの割り当て

セキュリティ上の理由から、ユーザはMoodleインターフェース経由で管理者ロールを割り当てることはできません。代わりに管理ユーザIDをconfig.phpファイル内に記述してください。例)
$CFG->siteadmins = '2,45,67';

注意: ここでは管理パーミッションの割り当て設定が保存されているローカルデータベースをオーバーライドするため、ローカルの管理者と同時にリモートの管理者にも割り当てが適用されます。

関連情報