我开发并维护一个用Perl/Catalyst编写的客户门户.我们使用Catalyst身份验证插件(带有LDAP存储后端,再加上一些deny_unless规则,以确保合适的人拥有正确的组成员身份).
通常,在管理客户的权限时,我们需要在交出之前测试用户的设置.目前,我们唯一的办法是重置用户密码并自行登录,但这并不理想,特别是如果用户已经设置了自己的密码等.
我的问题是:对于Catalyst,有没有人遇到过冒充用户帐户的方法,以便在给定正确的超级管理员权限的情况下,可以在测试设置时临时模拟另一个帐户,然后在完成后退出?
如果不是在Catalyst中,那么人们如何在其他框架或自己的自定义解决方案中使用它?不可否认,这是为Web应用程序引入可能极为恶劣的攻击向量的东西,但如果被迫实施,那么人们如何为此设计?也许是一些严肃的cookie-session-fu?或者可能是一个actualID/effectiveID系统?