カテゴリー: Moodle

Moodle

  • Moodle の Shibboleth 化 (京都大学版その3)

    京大 IdP から送信している uid をマッピングする設定を行う。これで完了である。統合認証センター各位、色々とありがとうございました。

    /etc/shibboleth/attribute-map.xml

    [code]
    [uep@kvm420 shibboleth]$ diff attribute-map.xml attribute-map.xml.dist
    3,11d2
    < <Attribute name="urn:mace:dir:attribute-def:uid" id="uid"/>
    < <Attribute name="urn:oid:0.9.2342.19200300.100.1.1" id="uid"/>
    < <Attribute name="urn:oid:2.5.4.4" id="surname"/>
    < <Attribute name="urn:oid:2.5.4.42" id="givenName"/>
    < <Attribute name="urn:oid:1.3.6.1.4.1.32264.1.1.3" id="jaDisplayName"/>
    < <Attribute name="urn:oid:2.5.4.3" id="commonName"/>
    < <Attribute name="urn:oid:0.9.2342.19200300.100.1.3" id="email"/>
    < <Attribute name="urn:oid:1.3.6.1.4.1.32264.1.1.5" id="jaOrganizationalUnit"/>
    <[/code]

  • Moodle の Shibboleth 化 (京都大学版その2)

    前回の作業まででエラーに遭遇。
    moodleshiberror1

    証明書がインストールされていないというページがヒットしたが、証明書は /etc/shibboleth/cert 以下に置いてある。統合認証センターに相談し、鍵のパーミッションだった(shibd プロセスのオーナーが読めるようにする)。これで一歩前進。

    moodleshiberror2

    次にデータマッピングへ進む。

  • Mahara のインストール

    私の所属している研究室は「情報フルーエンシー教育講座」である。「情報フルーエンシー」とは何かというのを説明し始めると長くなるので割愛しますが興味がある方は GGR(ry。いずれにしても ICT の活用について進んでいるはずなのだが、ゼミは今だに紙配布で私はその資料をスキャンして貯めているという有様である。
    そこで今はやりつつある「eポートフォリオ」をインストールし活用することを思いついた。事実上のデファクトスタンダードであり、Moodle との親和性が高い Mahara を選んだ。インストールの際にハマったので備忘録ていどに記述する。

    • サーバの準備: Moodle が動作すれば問題ないはず
    • 残念ながらこんなワーニングが…maharaerror
    • 何度 config.php を見直しても間違いはない。データベースをドロップして同様に試すと「コネクションできない」というメッセージに変わるので、接続の問題ではない。
    • MySQLのログを眺めると、[code]130123 19:59:28 [ERROR] Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist
      130222 10:17:30 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
      130222 10:17:30 [ERROR] Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist
      130222 10:17:36 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
      130222 10:17:36 [ERROR] Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist
      130222 10:20:41 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
      130222 10:20:41 [ERROR] Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist
      130222 10:22:56 [ERROR] Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50077, now running 50529. Please use mysql_upgrade to fix this error.
      130222 13:14:56 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
      130222 13:14:56 [ERROR] Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist
      [/code]
    • そうかMySQLバージョンを上げた部分と整合性が取れてないのか…
    • mysql_upgrade と flush privileges; でどや! maharainst
    • おめでとうございます! あとは「Install Mahara」を押すだけでOK。

    参考

  • Moodle の Shibboleth 認証でデフォルトユーザ名を設定する

    NIIのMoodle は学認、すなわち Shibboleth に対応している。認証時に参加機関の IdP からは姓名などの情報は送出していないため、ログインすると「あなたは としてログインしています」となる。これを「あなたは GakuNin User としてログインしています」に変更するために行ったプチハック (ほんとうに大したことはやっていない。自分の備忘録ていど) をまとめておく。

    Shibboleth 認証を実現するプラグインは (Moodleディレクトリ)/auth/shibboleth 以下に存在している。Shibboleth 認証を行いたいときには、(Moodleディレクトリ)/auth/shibboleth/index.php にアクセスするよう(apacheなどを)設定する必要がある。(IdP から送出された)属性のコントロールは、auth.php 中の get_userinfo() で、$result() を返すことで行っている。つまりこの配列を直接ゴニョゴニョやれば良いだけである。詳しくは README.txt に書いてある。

    もちろん、Moodle の Shibboleth 設定中の「データマッピング」を適切に行う必要があるのは言うまでもない。