Securityコンポーネント使用したり、独自のコンポーネントで出来そうな様子。
CakePHPでBasic認証対応ページを作る - blog.katsuma.tv
http://blog.katsuma.tv/2008/07/cakephp_basic_auth.html
CakePHP 管理者サイトでBasic認証を簡単に行うコンポーネント | Shin x blog
http://www.1x1.jp/blog/2008/01/cakephp_adminauthcomponent.html
どちらもよく出来ていて、開発環境ではバッチリ動作していたのですが、どうもレンタルサーバにアップした途端、動作しない。
調べていくとBASIC認証のダイアログは表示されるものの、認証されない。
というか、入力した値がプログラム中で取得出来ていない。
詳しく調べると、
phpでベーシック認証 - bnote
http://www.bnote.net/php/php/22_basic_auth.shtml
PHPによるHTTP認証のフック
この機能は、Apacheモジュールとして実行した時のみ 有効で、CGI版では利用できません。
仕組みとしては、Apache等がクライアントとのやり取りを行うのと同様のことを php で実現することになります。
ということで、PHPでBASIC認証というのは、PHPがCGI版で動いている場合は使えない手法のようでした。
まさにレンタルサーバのPHPがCGI版のようでした。
PHPに慣れている人には当たり前のことなのかもしれませんが、自分は知りませんでした。
てことは必然的にPHPがCGI版で動いている場合はCakePHPでBasic認証対応ページを作る為には、Apacheの設定でなんとかしないといけないようでした。
幸い今回の場合は.htaccessのBasic認証 + 修正パッチで対応できるようなのでそちらで対応しました。
CakePHP URLマッピング修正パッチ | Shin x blog
http://www.1x1.jp/blog/2006/09/cakephp_url_mapping.html
ネットを検索した結果、こういった情報がどこにもないように思えたので、メモしています。
CakePHPのBasic認証ではまったことのある人、これからCakePHPでBasic認証する機会のある方、参考にして下さい。
※上記以外でその他に参考にしたサイト
CakePHP で ついに見つけた!CakePHP の管理者画面作成ノウハウ(ラボブログ)
http://blog.spicebox.jp/labs/2009/05/post_282.html
CakePHP 1.2 の Basic 認証設定があまりにも簡単すぎる(ラボブログ)
http://blog.spicebox.jp/labs/2009/03/cakephp_12_basic.html
cakePHP1.2でBasic認証|TONTTU.NET 群馬県 太田市
http://www.tonttu.net/tec/cakePHP/cakePHP12_2_BASIC.html
[CakePHP] 管理者画面でIP制限をかけてみる - ElectricBrain Standard
http://www.multiburst.net/ElectricBrain/2009/05/ip-limitation-on-the-admin-routing