OpenPNEとmoodleの共存

OpenPNEとmoodleの共存

- hirosi maeda の投稿
返信数: 19

質問: 構築を完了したOpenPNEへmoodleを共存させることは可能でしょうか?

     可能だとしたら、具体的にどのような手法があるでしょうか?

サーバー環境: OS:RedHat Linux ES 4(カーネル2.6.9)

                  Webサーバ:Apache2.0.59

                  PHP:5.0.0

                  MySQL: 4.1.22

現在、私は、上記サーバー環境でSNSサイトをOpenPNEで運用しております。

最近、エンドユーザーの方からe-ラーニングを当SNSサイトに取り入れたいとの申し出があり、

さらにSCORM1.2に準拠した教材を使用したいとのことです。

そこで、LMSで色々調べた結果、Moodleがよさげなので、このサイトに行き着きました。

まだまだLMSについては、初心者ですが、皆様のお知恵ならびに助言を頂ければと

思っております。どうぞよろしくお願いいたします。

PS: 理想的には、今まで工数を費やしてきたOpenPNEをベースとして、教材を使用する機能のみ

    Moodleを使用するというのが理想です。

hirosi maeda への返信

Re: OpenPNEとmoodleの共存

- Hiroki Inoue の投稿
井上ともうします。

さて、ご質問の件ですが、
  • OpenPNE上のアカウントを利用して、Moodleにログインできるようにする
    (Moodleの認証をOpenPNEのユーザDBで行う)
  • OpenPNEとMoodleのスキン(デザインテーマ)を揃える
とすれば、シームレスに連携ができるのではないでしょうか。

また、OpenPNEの設定ファイルを調べたところ、逆の連携もできるようです。

OpenPNEでは、OpenPNEが認証元になるのをMasterPNE、外部認証システムを使うのをSlavePNEと呼んでいます。

それから、ローカルの認証システムではなくて、両方のシステムが外部認証と連携可能なので、LDAPやPOP3認証なども利用できるのではないでしょうか。

ぜひトライしてみてください。
Hiroki Inoue への返信

Re: OpenPNEとmoodleの共存

- hirosi maeda の投稿

井上様

ご返信ありがとうございます。

MasterPNEおよびSlavePNEというのは、確か聞いたことがあります。

それを利用するんですね。なるほどです。

LDAPやPOP3認証については、勉強してみます。

ちなみに、当方のどちらがいいかの基準は、どちらが時間をあまりかけずに実装できるかとなります。

あと、既存に存在するOpenPNEのDBと今度組み込むMoodleのDBですが、

分けたほうがいいのか、OpenPNEのDBの中にMoodleのテーブル構造を作ったほうがいいのかも

迷っています。当システムはPEARでDB接続しているので、印象としては、分けずに1つのDBで

構築した方がいいのかなと思っております。いかがでしょうか?

hirosi maeda への返信

Re: OpenPNEとmoodleの共存

- Hiroki Inoue の投稿
サーバ上にDBを1つしか作成できないような環境だと選択肢はないですが、
もし複数作成できるならば分けた方がメンテナンスしやすいでしょう。

私はアプリケーション毎に分けるようにしています。

認証についても運用上扱いやすい方でいいでしょう。

もしくはいずれもマスターにせず、LDAP等で認証統合してもいいと思います。

両方試してみて、やりやすい方を選択されるのがいいでしょうか。

井上
Hiroki Inoue への返信

Re: OpenPNEとmoodleの共存

- hirosi maeda の投稿

井上様

ご返信ありがとうございます。

確かにメンテナンスを考えたら分けたほうがいいですね。

>LDAP等で認証統合してもいいと思います。

上記の件ですが、先ほど入れ違いで書込みしましたが、

OpenPNE側のバージョンの関係でSlavePNEつまりLDAPやPOP3などを使用した

認証ができないようです。

こうなりましたら、MasterPNEしかないので、ある意味、限定されましたので、

集中的に情報収集をしたいと存じます。

井上様の方で、外部システムの認証を通してMoodleのログイン処理をされたことなどありましたら、

アドバイスをいただけると助かります。

求めているばかりで、大変心苦しいですが、どうかよろしくお願いいたします。

hirosi maeda への返信

Re: OpenPNEとmoodleの共存

- Hiroki Inoue の投稿
前田様

こちらでは、elgg(SNS機能つきポートフォリオ)との連携をしたことがあります。

http://moodle.org/mod/data/view.php?d=13&rid=360&filter=1

に詳細がありますが、セッション情報の受け渡しをしてリダイレクトするコードがあります。

また、厳密なSSOでなくてもよければ、Moodleの認証元をOpenPNEのユーザDBに指定すればいいのではないでしょうか。

ただ、この場合は同じID・パスワードのセットが使用できるだけで再入力する必要があります。これでもアカウント管理の手間は省けるでしょう。

どれくらいリソースを割けるかで判断されるといいのではないでしょうか。

他にもDrupalやJoomlaと連携を試みているユーザがいますので、公式サイトのフォーラムを
検索されてはいかがでしょうか。たくさん事例が出てきます。

http://moodle.org/mod/data/view.php?d=13&rid=973&filter=1

これはJoomla!の例です。
Hiroki Inoue への返信

Re: OpenPNEとmoodleの共存

- hirosi maeda の投稿

井上様

ご返信ありがとうございます。

ご提供いただいた情報を調べてみます。

迅速なレスをいただいて助かっております、本当にありがとうございます。

また、何か情報がありましたら、些細なことでもお伝えしていただければ助かります。

こちらも、なにか進展がありましたら、ご報告いたしたいと思っております。

以上、よろしくお願いいたします。

Hiroki Inoue への返信

Re: OpenPNEとmoodleの共存

- hirosi maeda の投稿

MasterPNEとSlavePNEについて調査した結果をご報告いたします。

結果からいうと、SlavePNEは難しいようです。というのは、

当システムで使用しているOpnePNEのバージョンが2.2.9でSlavePNEは2.6以上で

対応しているからです。当システムのOpenPNEをバージョンアップとなると

OpenPNEのフォーラムにもありますが、デグレなどが発生するらしく非現実的と考えられます。

従って、Moodleとの連携は、MasterPNE方式に絞られます。

MasterPNEは、OpenPNEが発行したセッション情報(クッキー、URLセッション)を外部システムが利用しログインすることを言いますが、

Moodleで、セッション情報を外部システム(当システムではOpenPNE)から受取ってログイン処理を

実際にやっている人がいましたら、アドバイスをいただきたく存じます。

以上、よろしくお願いいたします。

hirosi maeda への返信

井上様へ

- hirosi maeda の投稿

井上様

私事で申し訳ございませんが、現在会社で貴殿のメールを確認しましたが、

会社ではWEBメール送信規制(受信は可能)がされているため、

こちらでとりいそぎ、ご返信させていただきたく存じます。

>該当するバージョンのOpenPNE

上記の件ですが、2.2.9は古いバージョンなのでおそらくネット上におちていないと思われます。

オープンソースなので、私が保管しているもの(zipファイル)を本日帰宅後、

送らせていただきたく存じます。

>パスワードはどのようにハッシュ

上記の件は、MD5です。(デコードはPHP関数のt_encrypt()を使用しています。)

>2006年以前のOpenPNEなのですが、セキュリティホールなどの対策は大丈夫なのでしょうか?
対策は必要になります。2.2.9バージョンのコードを見る限りですが、バリデートで操作者からの

入力値をチェックしているので、その辺りの攻撃対策はできているようです。

何か、ご不明な点等がございましたら、なんなりとお申し付けくださいませ。

以上、よろしくお願いいたいます。

hirosi maeda への返信

Re: 井上様へ

- Hiroki Inoue の投稿
井上です。

MD5ハッシュであれば、Moodleの認証プラグインの外部データベースを利用すれば、
Moodleログイン時の認証をOpenPNEに投げて処理できるでしょうか。

ぜひ試してみてください。

Hiroki Inoue への返信

Re: 井上様へ

- hirosi maeda の投稿

井上様

ご返信ありがとうございます。

Moodleにそのような認証プラグインがあるんですね。

了解しました。試してみます。

Hiroki Inoue への返信

Re: 井上様へ

- hirosi maeda の投稿

井上様

ちなみになのですが(基本的な質問かもしれませんが)、Moodleを当該サーバーにセットアップ

すれば、SCORM1.2規格に準拠して作成された

教材(以下のファイル群:*.html/*.xml/*.xsl/*.xsd)を読み込んで表示可できるんですよね?

(Moodleは、LMSと呼ばれていたりCMSと呼ばれていたりしていたもので、どうなのかなと・・・)

あと、私の理解としては(今までの情報収集の結果)、SCORMコンテンツ(教材)の管理として、

教材のサーバーへのアップロードや、当教材の履歴管理もMoodleで実現できると理解しておりますが、間違っていませんか?

以上、よろしくお願いいたします。

hirosi maeda への返信

Re: 井上様へ

- Hiroki Inoue の投稿
ローカルサーバでも確認できるので、実際に動かしてみてから質問されてはいかがでしょうか。

コースサイト内で、編集モードをONにして、

活動の追加 > SCORM/AICC

を選択すれば、SCORMパッケージを登録できますのでお手持ちのSCORM教材でテストされるのがいいと思います。

履歴の表示も可能です。

LMS/CMSという呼称ですが、同じカテゴリのソフトウェアでも国や地方により色々なものがあります。

たとえば、Moodleのような教育支援システムも、アメリカではCMS、日本ではLMS、イギリスではVLE(Virtual Learning Environment)と呼ばれています。

2000年代前半には、アメリカのソフトウェア業界では企業内教育に使うシステムでeラーニング、およびHRのシステムと連携したり、コンピテンシーマネジメント(コンピテンシーのレーダーチャートを表示したり)を実現できる機能を持っているものをLMSと呼んでいました。SavaやDocentなどが代表的です。

そして、大学の授業のWebサイトを作り、学習や教育を支援するシステムをCMSと呼び、WebCTやBlackboardが普及してきました。

日本ではそこまで厳密な区別をせず、企業向けも教育機関向けもLMSと呼ぶ人が多いようです。


Hiroki Inoue への返信

Re: 井上様へ

- hirosi maeda の投稿

井上様

ご返信ありがとうございます。

現在、早速moodle(1.9.4+)をダウンロードしてインストールしているところです。

途中でWarningがでて悪戦苦闘していますが、なんとかインストールできましたが、

admin/adminでログインしてもなにも表示されてません(画面下部および右上に

You are not logged in. (Login)と表示されてるだけです汗汗)。

インストールに失敗したかもしれません。もう一回入れなおしてみます。

hirosi maeda への返信

進捗報告

- hirosi maeda の投稿

OpenPNEとmoodleの共存についての進捗報告

現在、moodleのインストールで問題が発生したため、進捗が滞っております。

問題というのは、当方システムのPHPが5.0.5なので、インストール前の諸々のチェックで

ひっかかっているからです。インストール手順書には、下記のように

>Moodle 1.6以降: PHP4 (4.3.0以降) または PHP5 (5.1.0以降) がサポートされます。

と記述されているのを見て、”4.3.0以降”を5.0.5も大丈夫だと理解してましたが、

誤認だったようです。PHP4における4.3.0以降ってことだったようですね。

やはり、moodleは、PHP5.0.5にはバグが多いのと2M制限とかで推奨してなんでしょうね。

当方のシステムは、業務で使用しており、バージョンアップで問題が起きたら困るので、

自分のPCでOSから構築してみようと思います。少々時間がかかるかもしれませんが、

進捗あり次第、ご報告したいと思います。

PS: PHP5.0.5でも裏技でインストールできたりとかできないんでしょうか。

    

hirosi maeda への返信

Re: 進捗報告

- hirosi maeda の投稿

井上様

以下の題目(URL)で井上様がDrupalに登録されているユーザはMoodleに自動的にログインできる。

という記述を見させていただきました。

”[]DrupalによるポータルサイトMoodleのシングルサインオン”

(URL: http://d.hatena.ne.jp/hiro_inoue/20061210/1165758967

そこで、質問なのですが、当記述は、以下の4手順で説明しておりました。

        1.MoodleDrupalをそれぞれインストールする。

        2.Drupalモジュールディレクトリmoodle.moduleプラグインをコピー

          Moodleのパスを追加(これをしないとうまく連携しません)

        3.Moodleのルートディレクトリにindex_dr.phpをコピー

        4.Moodleの認証を外部データベーステーブルを参照にする。

1、3および4の手順は、理解できたのですが、手順2は、必要ということは理解できるのですが、

具体的に、わかりません。わからない点は、2つあります。1つはコピーしたmoodleプラグインとは

どういったものなのか。2つめは、追加したMoodleのパスの内容(パス名)と、パス追加は

なぜ必要だったのかです。

現在、moodle最新版1.94+をダウンロードしてソースで[auth/]以下や[lib/moodlelib.php]を

追っておりますので、具体的に、どこをどうしたのかをご教授いただけると大変助かります。

以上、よろしくお願いいたします。

hirosi maeda への返信

Re: 進捗報告

- Hiroki Inoue の投稿
サーチエンジンもあるわけなのでプラグインを検索し、まずはご自身で作業されてください。

自分でできるところまでやって、それでもうまく行かなければ質問ください。

また、ここで私信のような質問をするのもどうかと思います。

パブリックな空間ですので。

井上
Hiroki Inoue への返信

Re: 進捗報告

- hirosi maeda の投稿

井上様

ご返信ありがとうございます。

井上様のおっしゃるとおり私信のような件につきまして、

ご失礼、ご迷惑をお掛けしたようでしたら、私の不徳の致すところであります。

誠に申し訳なく思っております。

ただ、現在、環境構築をしておりまして、PHPコンパイルのところで問題がありまして、

Moodleを動作させるまでには至っていない状況でございます。従いまして、

先行したご質問をさせていただいた次第でございます。

今後、先に申し上げたようなことがないよう、十分気をつけたいと存じ申し上げます。

どうぞ、よろしくお願いいたします。

hirosi maeda への返信

Re: OpenPNEとmoodleの共存

- hirosi maeda の投稿

進捗報告

ようやくPHPのコンパイルエラー(ソースからのインストール作業)がとれ、

Moodleのインストールができました。

Moodleは1.9.4+(moodle-weekly-19.gz)をインストールしました。

さて、当題目の本題として、まず、
Moodleの認証方式で外部DB参照という設定ができるので、
これを利用することにしました。
特にソースを弄るわけでなく、管理者の設定画面上でできるので、早速試してみました。
設定項目は、外部DBのスキーマ情報と、パスワードの種別で、
プレーンテキスト、MD5などなど選択できるようになっています。
とりあえず、外部DBをOpenPNEの認証テーブルを見るように設定し、
早速登録してあるIDでログインすると、見事にできました。

あとは、OpenPNEとのシームレスの連携になります。
こちらは、ソースを弄る必要があるかなと思っています。
画面操作イメージとしては、OpenPNEにユーザがログイン後、表示される
メニューにMoodleコンテンツに遷移するメニュー項目を設置します。
そのメニュー項目をクリックすると、再度ログインすることなく、
シームレスにMoodleコンテンツを当該ユーザで操作可能にすることです。

今、考えてる方式は、URLのget属性にセッションIDを持たせて、
そのセッションIDに紐づいたIDをMoodle側に設定すれば
大丈夫かな~と思っています。

他の方法などありましたら、アドバイスをいただけると幸いです。

どうぞよろしくお願いいたします。

hirosi maeda への返信

Re: OpenPNEとmoodleの共存

- Naoki Kato の投稿
>hirosi maedaさん

私もSNSとmoodleの連携をいろいろ探っています.

私の環境は OpenPNE2.14.1.1 なので PNE 側で SlavePNE の設定を行い,
Moodle のアカウントで PNE にログインさせることができました.

さて,その後,PNE と Moodle の細かな連携は試されているでしょうか?
うまくいっているようでしたら,情報をいただけると幸いです.