2007年04月03日
フォーム認証のデザインパターン

自社のASPサービスの認証部分を見直すついでに、あらためてフォームでのログイン認証をいろいろ調べておりました。
定期購読している WEB+DB PRESS Vol.34 のWebアプリ認証に関する特集が一番良くまとまっていたかな。
上記の特集や、あとは、いろいろなサイトにおける実装を見て回りましたが、現在以下の形での実装が一般的なデザインパターンとして採用されているようです。
・当然ながらHTTPS通信は必須
・パスワードは平文では保存しない
・パスワードを忘れた場合は、パスワードを直接メールで送信するのではなく、メールでパスワード再設定用のURLを送信
・送られてきたURLをクリックし、開いた画面にてパスワードを再設定
母親の旧姓など、あらかじめ設定しておいた質問に答えることで、パスワードを再設定出来るようにするといったパターンを採用しているサイトも見受けられました。これは、以前登録したメールアドレスを現在は使っていないなどの場合でも再設定できる反面、本人以外でも再設定できる可能性が残る点があまりよくない。
パスワード再設定用のURLを送信後、パスワードを再設定するまでの時間的なリミット(60分以内や一週間以内など)や、回数のリミット(同じURL経由では1回しか再設定できないなど)を設けている場合が多い。また、セッションを使って、違うブラウザからの再設定を禁じている例も多く見受けられた。
あとは、セッションID関連のセキュリティ(固定化や漏洩など)には注意すべし。
上記の調査を元に認証部分を作り直してみました。
#osCommerceはここら辺の実装が微妙なとこありますね。
次は、シングルサインオンをどう実装しようかと思案しています。
Ohgakiさんのブログでシングルサインオンの模範解答がはやく公開されないかなーと待っていたりします。
投稿者 田中@グリニッジ : 2007年04月03日 18:35
トラックバック
このエントリーのトラックバックURL:
http://blog.tanaka-cs.com/mt/mt-tb.cgi/123
