2009-08-20 9 views
0

私はCakePHPに基づいて構築されたWebアプリケーションを持っています。現在、組み込みのAuthComponentとACL機能を使用してユーザー認証/アクセス制御を行っています。CakePHPとKerberos

私たちの組織全体では、すべてが独自のユーザー/パスコンボを必要とする多くのアプリケーション(Webなど)を持っています。当社は、内部アプリケーションの多くを「シングルサインオン」機能に移行することを検討しており、セントラルユーザーストアにKerberosを使用することが望ましいと考えています。

アプリケーション自体を使用することが許可されているアプリケーションレベルのデータベースに対して検証するためにAuthComponentを変更して攻撃した可能性があるのだろうかと思っていますが、ユーザーが見つかったと仮定してKerberosと通信し、 uname/pwdコンボ。

アドバイスをいただければ幸いです。

答えて

1

元のAuthComponentを拡張する新しいコンポーネントを作成できます。次に、ログインメソッドをオーバーライドし、そこに他の認証を追加します。このソリューションは、AuthComponentがこのように拡張されるように設計されていない場合でも、非常に便利であり、あまり侵入的ではありません。

App::import('Core', 'Auth'); 
class AuthenticationComponent extends AuthComponent { 
    public $components = array('Session', 'RequestHandler', 'Sso'); 
    public $loginRedirect = array('controller' => 'frontpage'); 
    public $Controller = null; 
    public $loginAction = array('controller' => 'login'); 
    public $authorize = 'actions'; 
    public $loginError = Notifications::LOGIN_FAILED; 
    public $authError = Notifications::ACTION_NOT_ALLOWED; 

    public function login($data) { 
     if(parent::login($data)) { 
      // OTHER AUTHENTICATION HERE 
      return true; 
     } 
     else { 
      // stuff 
     } 
     return false; 
    } 
} 
+0

これを実装します。 私はPECL :: PAMモジュールも見つけました。これは、認証ビットに対してうまくいくと思います。 – jeffluckett