2009-08-20 9 views
0

J'ai une application web construite sur CakePHP. Actuellement, il effectue l'authentification de l'utilisateur/le contrôle d'accès avec le composant AuthComponent intégré et la fonctionnalité ACL.CakePHP et Kerberos

Dans toute notre organisation, nous avons BEAUCOUP d'applications (web et autres) qui requièrent toutes leur propre combo utilisateur/passe. Notre société cherche à migrer autant de nos applications internes vers la fonctionnalité de «connexion unique», et l'espoir est d'utiliser Kerberos pour le magasin d'utilisateurs central. Je me demande si quelqu'un aurait pu attaquer ceci en modifiant l'AuthComponent pour valider avec une base de données au niveau de l'application des utilisateurs autorisés à utiliser l'application elle-même, mais ensuite communiquer avec Kerberos (en supposant que l'utilisateur est trouvé) pour authentifier l'utilisateur. uname/pwd combo.

Tout conseil serait apprécié.

Répondre

1

Vous pouvez créer un nouveau composant qui étend l'AuthComponent original. Ensuite, vous remplacez la méthode de connexion et ajoutez votre autre authentification ici. Cette solution est très pratique et pas trop intrusive, même si l'AuthComponent n'est pas conçu pour être étendu comme ça.

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

Je vais implémenter ceci. J'ai également trouvé le module PECL :: PAM, ce que je pense qu'il va bien faire pour le bit d'authentification. – jeffluckett