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

既存のドキュメントが分かりにくくハマったのでメモ。Moodle側の作業はほとんど無い。

  1. shibd などのインストール: ここの通り
  2. shibboleth2.xml の編集: ここの「1. entityIDを設定します。」だけ行う。IIMCのWeb には「ただしIdPに関する情報は統合認証センターからの指示にしたがってください。」と書いてあるが不要
  3. Moodle の https 化: $wwwroot を 「https〜」 に変更するなど
  4. メタデータの作成: ここの通り
  5. shib.conf の編集: README.txt の 1.の通り
  6. Moodle の認証設定: README.txt の通り
    1. auth/shibboleth/index.php を「代替ログインURL」に設定するのを忘れずに
  7. Moodle のマニュアルログインスクリプトの作成
    [uep@kvm420 login]$ diff manual.php index.php
    278c278
    < /* Disable alternative login URL
    ---
    >
    299c299
    < */
    ---
    >
    304c304
    < /*
    ---
    >
    308c308
    < */
    ---
    >
 

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 設定中の「データマッピング」を適切に行う必要があるのは言うまでもない。