「MNet」の版間の差分

提供:MoodleDocs
移動先:案内検索
(done.)
 
(同じ利用者による、間の229版が非表示)
1行目: 1行目:
{{認証}}
{{認証}}


作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]] ([[利用者・トーク:Mitsuhiro Yoshida|トーク]])
Moodleネットワーク機能ではMoodle管理者が別のMoodleまたはMaharaサイトとの接続を確立してMoodleのユーザがリソースを共有できるようにすることができます。ユーザは最初のMoodleサイトから[[ネットワークサーバブロック]]経由でリンクされているサイトに移動することができます。
 
Moodleネットワーク機能ではMoodle管理者が別のMoodleまたはMaharaサイトとの接続を確立して、Moodleのユーザがリソースを共有できるようにすることができます。ユーザは最初のMoodleサイトから[[ネットワークサーバブロック]]経由でリンクされているサイトに移動することができます。


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


'''WARNING:'''  MNetでは'''xmlrpc'''の使用が必須です。あなたが'''xmlrpc'''の使用に興味があり「--with-xmlrpc」を確認したい場合、phpinfoページにアクセスしてください。PHPが設定オプション「--with-xmlrpc」でコンパイルされていない場合、あなたは最初にそれに取り組む必要があります! 現在のところ、 PEAR xmlrpcが動作しない旨、表示されます。
'''注意:'''  MNetでは'''xmlrpc'''の使用が必須です。あなたが'''xmlrpc'''の使用に興味があり「--with-xmlrpc」を確認したい場合、phpinfoページにアクセスしてください。PHPが設定オプション「--with-xmlrpc」でコンパイルされていない場合、あなたは最初にそれに取り組む必要があります! 現在のところはPEAR xmlrpcが動作しない旨、表示されます。
[[Image:Administration Block Users Authentication MoodleNetwork.jpg|thumb|MNet setting in ''Admin > User > Authentication > Moodle Network]]
[[Image:Administration Block Users Authentication MoodleNetwork.png|thumb|「管理 > サイト管理 > ユーザ > 認証 > Moodleネットワーク」のMNet設定]]


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


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


参考資料:
参考資料:
22行目: 20行目:
*[http://www.w3.org/TR/xmlenc-core/ XML Encryption]
*[http://www.w3.org/TR/xmlenc-core/ XML Encryption]


暗号化または署名エンベロープを使用せずに特定のIPアドレスのマシンからXML-RPCレイヤーをコールすることのできる特別モードを有効にすることができます。This mode is provided to enable Moodle to communicate with other software systems in which the integration of signatures and encryption might be prohibitively difficult. It is not envisioned that unencrypted inter-Moodle networking will ever be enabled.
暗号化または署名エンベロープを使用せずに特定のIPアドレスのマシンからXML-RPCレイヤーをコールすることのできる特別モードを有効にすることができます。このモードは証明書および暗号化の統合が困難な他のシステムとMoodleを通信させるために提供されます。暗号化されていないMoodle間のネットワーキングを有効にすることは想定されていません。


==ピアツーピアネットワーク (Peer to Peer Network)==
==ピアツーピアネットワーク (Peer to Peer Network)==
 
これはシステムの基本レイアウトです。それぞれに独自にユーザ管理できる学部学科単位でMoodleを運用することができる点で非常に有用です。コースのパーミッションにもよりますが、ユーザはMoodle間を散策することもできます。
This is the basic layout of the system. It can be very useful to run one Moodle per faculty or departments, each with its own user management, and yet permit users to roam across the Moodle installs... subject to permissions of course.


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


The instructions will cover 2 Moodle installations: MoodleA and MoodleB. Both are installed correctly and have never had a Moodle Network configuration.
注意: あなたが問題を経験した場合、「管理 > サイト管理 > 開発 > デバッグ」ページで「デバッグメッセージ」を選択して「デバックメッセージを表示する」を有効にしてください。追加の診断メッセージが表示されます。


Note: If you experience problems, ensure debugging is turned on in ''Administration > Site administration > Server > Debugging''. Extra diagnostic messages may be displayed.
あなたは最初に「管理 > サイト管理 > 拡張機能」ページでネットワーキングを有効にする必要があります。これによりサイト管理メニューに「ネットワーキング」メニューが追加されます。


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


# Get them to talk to each other
===使ってみる===
## Ensure ''Administration > Site administration > Server > Environment'' indicates you have curl installed
# MoodleAで「管理 > サイト管理 > ネットワーキング > リモート登録クライアント」に移動してください。あなたにはMoodleBが一覧表示されます。MoodleBの横にある「登録を編集する」ボタンをクリックしてください。MoodleBがリモート登録を提供しているコース一覧が表示されます。「登録を編集する」をクリックして、あなたが登録したいユーザを選択した後、「追加」をクリックすることによりユーザをコースに登録することができます。
## If MoodleA and MoodleB are hosted in the same domain, ensure they have a different cookie prefix. Note that changing the cookie prefix will log you out! You can change the cookie prefix via ''Admin > Server > Session Handling''.
## On both, go to ''Administration > Site administration > Advanced Features'' and turn Networking ON.
## On MoodleA go to ''Administration > Site administration > Network > Manage peers'' - put the URL of MoodleB under "Add New Host" and click Add. The URL should include the directory where your Moodle code is located and may include the protocol as well, for example ''https://www.mymoodle.org/moodle''.
## Do the equivalent on MoodleB.
# Get user roaming going
[http://moodle.org/mod/forum/discuss.php?d=141491] ). On both servers:
### Go to ''Administration > Site administration > Plugins > Authentication > Manage authentication''. Enable ''MNet Authentication'' by clicking the 'enable' icon.
## On MoodleA go to ''Administration > Site administration > Networking > (Manage) Peers'', click on 'MoodleB', and click on the 'Services' tab. Enable SSO-IDP (SSO Identity Provider) publish and subscribe, and SSO-SP (SSO Service Provider) publish and subscribe.
## Do the equivalent on MoodleB. (By both publishing and subscribing you allow users to move freely between the two servers. By only publishing or subscribing between servers you create a one way traversal)
## On both, go to ''Administration > Site administration > Users > Permissions > Define Roles'', only roles that have "Roam to a remote Moodle moodle/site:mnetlogintoremote" will be allowed to roam. Grant the privilege as appropriate.
### eg. enabling for ''Authenticated user'' allows any authenticated user to roam between servers.
## On both servers, go to the homepage, and add the 'Network Servers' block.
## To test, it is recommended to use a different browser (even on a different machine) that is logged in to neither. Login to MoodleA with a non-administrator account that has the permissions to roam. You should see the Network Servers block, and clicking on it you should go to MoodleB with a newly autocreated account.
# Get remote enrolments going -- this is optional. It allows an administrator of MoodleB to enrol users that are "native" to MoodleB in remote courses in MoodleA, and viceversa.
## On both, go to ''Site administration > Plugins > Enrolments > Manage enrol plugins'' and enable the Mnet remote enrolments plugin (click Save). Click on 'Edit' and enable 'allow_allcourses' or select some courses or categories to be remotely enrolled.
## On the server you want to receive enrolments:
### Go to ''Site administration > Plugins > Enrolments > Manage enrol plugins''. Enable ''MNet remote enrolments'' by clicking the 'enable' icon. (For ''MNet remote enrolments'' settings info see [[MNet_remote_enrolments|MNet remote enrolments]])
## On MoodleA go to ''Admin > Network > Peers'', click on 'MoodleB', and click on the 'Services' tab. Enable Enrolment publish and/or subscribe.
## Do the equivalent on MoodleB.
## On every course you want to allow enrolments into:
### Enter course and go to ''Administration > Course administration > Users > Enrolment methods''
### From ''Add method'' drop-down select ''MNet remote enrolments''
### On the new screen select the ''Remote host'' you want to allow enrolments from, the Role for the enrolled users, and click save. (Note: you can only add a single ''MNet remote enrolments'' method per course.)


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


# In MoodleA go to ''Admin > Networking > Remote enrolments client''. You will see MoodleB listed. Click on ''Edit enrolments'' button beside MoodleB and you will see a list of courses that MoodleB offers for remote enrolment. Click 'Edit enrolments'', select the users you want to enroll, and then click Add to enroll them in the course.
===セットアップ===
# ハブと通信する
## 「管理 > サイト管理 > サーバ > 環境」ページでcurlおよびopensslがインストールされていることを確認してください。
## 「管理 > サイト管理 > 拡張機能」に移動してネットワーキングを有効にしてください。
## 「管理 > サイト管理 > ピア」に移動して「新しいホストを追加する」の下にMNetハブのURLを入力してください。「追加」をクリックしてください。
## MNetハブのホスト詳細がすでに追加されたサイト名フィールドと共に表示されます。「変更を保存する」をクリックしてください。
## あなたのデータベースに詳細が書き込まれた後、このウィンドウに新しい2つのタブ「サービス」「ログ」 が表示されます。「サービス」をクリックしてください。
##「公開」および「登録」にチェックボックスの付いた一連のサービスが一覧表示されます。あなたが公開または登録したいサービスのチェックボックスをチェックしてください。


==MNetハブへの接続 Connecting to a Mnet hub==
===使ってみる===
A Mnet hub (do not confuse it with the [[Community hub]]) is a Moodle server that is configured to accept connections from other Moodle servers, and to provide a set of services to users of these other servers. This guideline will direct you to connect to a Mnet hub, assess the services it has to offer, and enable those services for your users.


===セットアップ Setup===
すでにMNetハブが有効にされている場合、適切なチェックボックスがチェックされた状態となります。例えば次のようになります: ハブがMoodleネットワーク登録を「公開」している場合、このサービスの「登録」チェックボックスの横にチェックされたチェックボックスが表示されます。いくつかの機能を有効にする場合 (特に「シングイルサイオン」)、あなたはサービスを「公開」する必要があります (例 「アイデンティティプロバイダ」サービス)。MNetハブはあなたのMoodleのサービスにアクセスして、あなたのユーザを認証するよう求めます。
# Get talking to the Hub
## Ensure that the ''Admin > Server > Environment'' page indicates you have curl and openssl installed
## Go to ''Admin > Advanced Features'' and turn Networking on
## Go to ''Admin > Network > Peers'' and enter the URL of Mnet Hub under "Add New Host". Click <em>Add</em>
## The host details for the Mnet Hub should appear with the Site Name field already populated. Click <em>Save changes</em>
## The details will be written to your database and two new tabs will appear in this window: 'Services' and 'Logs'. Click <em>Services</em>
##A list of services will appear, each with a checkbox for 'publish' and 'subscribe'. Check the checkboxes for any services you want to publish or subscribe to


===使ってみる Using it===
# ローミングを有効にする
If the Mnet Hub has already enabled a service for you, there will be a tick alongside the appropriate checkbox, for example: if the Hub is <em>publishing</em> Moodle Networked Enrolment, then a tick will appear alongside the <em>subscribe</em> checkbox for this service. Note that in order to enable some functionality, prominently <em>single-sign-on</em>, you may have to <em>publish</em> a service, e.g. the <em>Identity Provider</em> service. The Mnet Hub will access this service on your Moodle, asking it to authenticate your users.
## チェックボックスをチェックして「SSO (サービスプロバイダ)」に登録してください。
# Enable Roaming
## チェックボックスをチェックして「SSO (アイデンティティプロバイダ)」に公開してください。
## Subscribe to <em>SSO (Service Provider)</em> by checking the box
## 「変更を保存する」をクリックしてください。
## Publish <em>SSO (Identity Provider)</em> by checking the box
## 「管理 > サイト管理 > ユーザ > パーミッション > ロールを定義する」に移動して適切なロールに「MNet経由でリモートアプリケーションを散策する moodle/site:mnetlogintoremote」ケイパビリティを割り当ててください。
## Click <em>Save changes</em>
## 「管理 > サイト管理 > プラグイン > 認証 > 認証管理」に移動して「MNet認証」プラグインを有効にしてください。
## Go to ''Admin > Users > Permissions > Define Roles'', and grant the capability <em>Roam to a remote Moodle moodle/site:mnetlogintoremote</em> to an appropriate role
## ホームページに移動して編集モードを有効にした後、「ネットワークサービス」ブロックを追加してください。
## Go to ''Administration > Plugins > Authentication > Manage authentication'' and enable the <em>Moodle Network authentication</em> plugin
## あなたが散策するための権限を与えた非管理者を使用して異なるブラウザを使用してログインしてください。
## Go to your homepage, turn on editing, and add the 'Network Servers' block
## MNetハブはホームページのネットワークサーバブロックに一覧表示されることに留意してください。サーバのリンクをクリックしてください。
## Using a different web-browser, log on as a non-admin user who inhabits the role you granted the roaming capability to
## あなたのユーザ詳細の一部はMnetハブサーバに転送されます。そして、あなたが直接ログインしているかのように閲覧セッションが開始されます。
## Note that the Mnet Hub is listed in the Network Servers block on the homepage. Click on the link to that server
# ネットワーク環境を有効にする
## Some of your user details will be transferred to the Mnet Hub server, and a browsing session will be started for you as if you had logged on there directly
## あなたがサイト管理者として使用しているウェブブラウザに戻ってください。
# Enable Networked Enrolment
## 「管理 > サイト管理 > ネットワーク > ピア」に移動してMnetハブのエントリをクリックしてください。
## Return to the web browser you've been using as the site administrator
## 「サービス」タブをクリックしてください。
## Go to ''Admin > Network > Peers'' and click on the entry for the Mnet Hub.
## 「Moodleネットワーク登録」に登録してください。
## Click on the Services tab
## 「管理 > サイト管理 > プラグイン > 登録 > 登録プラグイン管理」に移動して「MNetリモート登録」を有効にして「変更を保存する」ボタンをクリックしてください。
## Subscribe to <em>Moodle Networked Enrolment</em>
## ネットワーク登録の詳細を表示するには「編集」ボタンをクリックしてください。
## Go to ''Site administration > Plugins > Enrolments > Manage enrol plugins'' and enable the <em>Mnet remote enrolment </em> plugin. Click <em>Save changes</em>
## このサービスをあなたに提供しているMoodleサーバ一覧を表示するには「管理  > サイト管理 > ネットワーキング > 登録」に移動してください。
## Click on <em>edit</em> to view the details for networked enrolments.
## あなたのユーザにサーバが提供するコース一覧を表示するにはサーバ名をクリックしてください。
## Go to ''Admin > Networking > Enrolments'' to see a list of Moodle servers that offer this service to you
## あなたがこのコースに登録できるユーザを一覧表示するにはコース名をクリックしてください。
## Click on a server name to view a list of courses that the server offers to your users
## ユーザを登録してください。
## Click on a course name, to view a list users that you can enrol in this course
## 以上です!
## Enrol users
## Profit!


==MNetハブを運用する Running a Mnet hub==
==MNetハブを運用する==
A Mnet hub is a regular Moodle site that runs in a special mode. As a Moodle Administrator, when you add another Moodle site to your list of network peers, your Moodle will contact that site to find out what it is called, and to request its public key for encrypted communication. Normally, the remote server will simply provide this information without making any record of the transaction.
MNetハブは特別モードで動作する通常のMoodleサイトです。Moodle管理者として別のサイトをあなたのネットワークピア一覧に追加した場合、あなたのMoodleは提供されているものを探すためにそのサイトに接続して暗号化通信のためのパブリックキーをリクエストします。通常、リモートサーバはトランザクションレコードを作成せずにこの情報を単に提供します。


A Mnet hub is different. As soon as you add an entry for a Mnet hub to your system, the Mnet hub will create an entry for your server in its list of hosts, and may immediately begin to offer services to the users of your site.
MNetハブは異なります。あなたのシステムにMNetハブのエントリを追加した場合、すぐにMNetハブのホスト一覧が作成されます。そしてすぐにあなたのサイトのユーザにサービスを提供することができます。


This section will guide you to set up a Mnet hub, and select services to offer to all comers.
このセクションではMNetハブをセットアップしてユーザに提供するサービスの選択に関して説明します。


===セットアップ Setup===
===セットアップ===
Enable Networking
ネットワーキングを有効にする
# Ensure that the ''Settings > Site administration > Server > Environment'' page indicates you have curl and openssl installed
# 「設定 > サイト管理 > サーバ > 環境」ページでcurlおよびopensslがインストールされていることを確認してください。
# Go to ''Settings > Site administration > Advanced Features'' and turn Networking on
# 「設定 > サイト管理 > 拡張機能」に移動してネットワーキングを有効にしてください。
# Go to ''Settings > Site administration > Network > Peers'' and tick the checkbox for <em>Register all hosts</em>. Click on <em>Save Changes</em>
# 「設定 > サイト管理 > ネットワーキング > ピア」に移動して「すべてのホストを登録する」チェックボックスをチェックしてください。「変更を保存する」をクリックしてください。
# On the same page, the first entry in your list of hosts should be <em>All hosts</em>. Click this link
# 同じページであなたのホスト一覧の最初のエントリは「すべてのホスト」になります。このリンクをクリックしてください。
# Click on <em>Services</em> and enable any services you want to offer to all comers
# 「サービス」をクリックしてあなたがすべてのユーザに提供したいサービスを有効にしてください。
 
==管理者ロールの割り当て Assigning the role of admin==


For security reasons, users cannot be assigned the role of admin via the Moodle interface. Instead, admin user IDs must be listed in config.php e.g. <code>$CFG->siteadmins = '2,45,67';</code>
==管理者ロールの割り当て==
セキュリティ上の理由から、ユーザはMoodleインターフェース経由で管理者ロールを割り当てることはできません。代わりに管理ユーザIDをconfig.phpファイル内に記述してください。例) <code>$CFG->siteadmins = '2,45,67';</code>


Note: This applies to local admins as well as remote admins, as this overrides any local DB stored settings that assign administrative permissions.
注意: ここでは管理パーミッションの割り当て設定が保存されているローカルデータベースをオーバーライドするため、ローカルの管理者と同時にリモートの管理者にも割り当てが適用されます。


==関連情報==
==関連情報==


* [[Moodle Network FAQ]]
* [[MoodleネットワークFAQ]]
* [[Upload users]] for csv upload using the ''mnethostid'' field.
* 「mnethostid」フィールドを含むcsvファイルで[[ユーザのアップロード|ユーザをアップロードする]]
* [[Development:Moodle Network|Moodle Network development notes]]
* [[Development:Moodleネットワーク|Moodleネットワーク開発ノート]]
* Using Moodle [http://moodle.org/mod/forum/view.php?id=6976 MNet forum]
* Using Moodle [http://moodle.org/mod/forum/view.php?id=6976 MNetフォーラム] - 英語
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=92749 Examples of how people are using Moodle networks] forum discussion
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=92749 Moodleネットワークの使用例] フォーラムディスカッション - 英語


[[Category:登録]]
[[Category:登録]]

2017年5月17日 (水) 15:01時点における最新版


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';

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

関連情報