2009-08-20 83 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 2009-08-27 16:32:48