Wadslog

[Zend Framework] Zend_Authについて

Dec 13, 2007

Zend_Authはセッションを用いてユーザー情報を保持し、認証方式はAdapterを用いることで、DB(でフォーム)認証、ダイジェスト認証、Http認証を利用することができます。 ちょっと使ってみて、個人的にひっかかったところは、

  • セッションの有効期限が都度更新されない()
  • セッションレプリケーションの機能がまだ実装されていない(ここの一番下のほう)

あたりです。 上のほうについて、Zend_Authでの基本的な認証の流れを書くと、まずauthenticate()で認証した後はhasIdentity()でログイン状態を確認して、ログインが切れていればまたauthenticate()という流れになると思います。このときhasIdentity()ではセッションにログイン情報があるかどうかを確認するだけです。 このため、最後のアクセスからsession.cookie_lifetime秒以上アクセスがなかった場合に認証がきれるようにしたいのですが、これができません(ログインしてからsession.cookie_lifetime秒できれます)。 これについてはZend_Authを拡張して、hasIdentity()の処理を認証チェックと同時に、sessionの有効期限も更新することで対応にしようかとおもっています。 下のほうはwebサーバーが複数台の構成になったときに、認証状態が持続しない場合が出てきてしまいます。 セッションではなく、Zend_Auth_Storage_Cookieなるものを作るか、セッションレプリケーションが実装されるまで他の方法で代用するかになります。 どちらも近いうちに必要に迫られて作ることになりそうです。

comments powered by Disqus