オープンソースのコードを読むのは勉強になる。OpenPNEとmoodleのソースコードをとりあえず読んでいるのだが、どんな構造でモジュールが構成されているか分かってくると楽しくなってくる。
仕事でOpenPNEとmoodleでシングルサインオンを実現せよ、と言われていたのは、なんとか完了。
OpenPNEの方は、webapp/lib/OpenPNE/Auth.phpというPC用の認証クラスがあったので、これを弄った。本来これはpear_Authを用いて認証しているのだが、その部分をCASに書き換えたりした。
moodleの方は、authというフォルダに認証モジュールが入っているのだが、そこで新しいクッキーで認証するモジュールを開発した。内容は、クッキーにワンタイムパスワードを入れておいて、指定した外部DBにそのワンタイムパスワードの主は誰か尋ねるという仕組み。OpenPNEでも同じ仕組みにすれば、moodleとOpenPNEでシングルサインオンのできあがり。
と、開発してみたものの、どちらもバージョンが上がれば使えなくなるだろう。ソフトウェアって常にそう思いながら開発するものなのかもしれない。