SSO(CAS)を利用して認証する場合

SSO(CAS)を利用して認証する場合

- Takayuki Fukuyama の投稿
返信数: 0
福山です

久しぶりにmoodleをCAS認証に対応させる作業をやっていていくつか気付いたのですが

  1. 「admin」ユーザが実質使えなくなってしまうのはどうすればいいか
  2. CAS認証する際にLDAPの設定およびldap_connectがtrueになる必要は果して本当にあるのか
等の問題があろうかと思います。1.に関して、まず、SSOを選択するといきなりCASサーバにログインリダイレクトがかかるので、設定に不備があってもadminログインで戻す事が出来ないというのがあります。戻すにはmdl_configのDBを書き直すか、config.phpで $CFG->auth = 'email'; などとオーバーライドしなくてはならないのでちょっと不便かなと思っています

2.に関してはCAS認証が成功した後で、ldap_connect等ldapに一度接続できないとCAS認証が失敗するというのがあります。CAS自体はLDAPとは独立して動作するものですから、この部分の設定や仕様はちょっとよくわかりません。またこの為にPHPのLDAP関数を有効にしなくてはならず場合によってはかなり冗長な作業になるかと思います。

1.の改善案としては /admin以下の場合は強制的にマニュアル認証にするというあたりが出来れば良いと思っています。2に関してはざっとコードを見た感じ、SSOとLDAPの認証関連のコードが共通化しているために起こっているのでは無いかと想像されますが、たとえばphpCAS::getUser()などでユーザが取れた場合はldap_connectせずtrueを返す、といった事が出来ればいいかなと思っております。

まだこちらで着手したわけではなくざっと構想を書いてみました。/admin以下だけマニュアルというのはちょっと考えなくてはいけない部分も多そうですが、いかがでしょうか。