CakePHP 和 Kerberos

发布于 2024-08-02 15:45:41 字数 318 浏览 6 评论 0原文

我有一个基于 CakePHP 构建的网络应用程序。目前它正在使用内置的 AuthComponent 和 ACL 功能进行用户身份验证/访问控制。

在我们的组织中,我们有许多应用程序(Web 和其他),它们都需要自己的用户/密码组合。我们公司正在寻求将尽可能多的内部应用程序迁移到“单点登录”功能,并希望将 Kerberos 用于中央用户存储。

我想知道是否有人可能通过修改 AuthComponent 来验证允许使用应用程序本身的用户的应用程序级数据库,然后与 Kerberos 通信(假设找到用户)来验证用户的 uname/pwd 组合来攻击此问题。

任何建议将不胜感激。

I have a web app built upon CakePHP. Currently it is doing user authentication / Access Control with the built-in AuthComponent and the ACL functionality.

Throughout our organization, we have MANY applications (web and otherwise) that all require their own user/pass combo. Our company is looking to migrate as many of our internal apps to 'single signon' functionality, and the hope is to use Kerberos for the central user-store.

I'm wondering if someone might have attacked this by modifying the AuthComponent to validate against an application-level database of users permitted to use app itself, but then communicate with Kerberos (assuming the user is found) to authenticate the user's uname/pwd combo.

Any advice would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不可一世的女人 2024-08-09 15:45:41

您可以创建一个扩展原始 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;
    }
}

You can create a new Component which extends the original AuthComponent. Then you override the login method and add your other authentication there. This solution is very convenient and not too intrusive, even if the AuthComponent is not designed to be extended like this.

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;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文