久しぶりにmoodleをCAS認証に対応させる作業をやっていていくつか気付いたのですが
- 「admin」ユーザが実質使えなくなってしまうのはどうすればいいか
- CAS認証する際にLDAPの設定およびldap_connectがtrueになる必要は果して本当にあるのか
2.に関してはCAS認証が成功した後で、ldap_connect等ldapに一度接続できないとCAS認証が失敗するというのがあります。CAS自体はLDAPとは独立して動作するものですから、この部分の設定や仕様はちょっとよくわかりません。またこの為にPHPのLDAP関数を有効にしなくてはならず場合によってはかなり冗長な作業になるかと思います。
1.の改善案としては /admin以下の場合は強制的にマニュアル認証にするというあたりが出来れば良いと思っています。2に関してはざっとコードを見た感じ、SSOとLDAPの認証関連のコードが共通化しているために起こっているのでは無いかと想像されますが、たとえばphpCAS::getUser()などでユーザが取れた場合はldap_connectせずtrueを返す、といった事が出来ればいいかなと思っております。
まだこちらで着手したわけではなくざっと構想を書いてみました。/admin以下だけマニュアルというのはちょっと考えなくてはいけない部分も多そうですが、いかがでしょうか。