我开发并维护用Perl/Catalyst编写的客户门户。我们利用Catalyst身份验证插件(带有LDAP存储后端,再加上一些deny_unless规则来确保正确的人员具有正确的组成员身份)。“su”等同于Web应用程序认证,设计问题
通常情况下,在管理客户的权限时,我们需要在交付事项之前测试用户的设置。目前,我们唯一的办法是重置用户的密码并登录自己,但这并不理想,特别是如果用户已经设置了自己的密码等。
我的问题是这样的:对于Catalyst,有任何人遇到假冒用户帐户的方法,以便在给出正确的超级管理权限的情况下,可以在测试设置时暂时伪装另一个帐户,然后在完成后退出?
如果不是在Catalyst中,那么人们在其他框架或他们自己的定制解决方案中是如何接近这一点的?无可否认,这是一种为Web应用程序引入潜在恶意攻击媒介的东西,但如果被迫实施,人们是如何为此接近设计的?也许一些严重的cookie会话fu?或者可能是一个actualID/effectiveID系统?
噢,这很聪明。那么我想你可以锁定对特殊代理控制器的访问权限,并且你可以模拟一个用户,直到你决定注销或以其他方式终止你的会话。我非常喜欢那个。感谢分享。 – Kaiden 2011-02-27 23:52:05
是的,我没有在我的答案中指定代理控制器的授权控制。您可以使用您的应用中其他位置的任何内容。能够在应用程序内进行代理的能力实际上非常酷,对调试用户问题很有用。只要确定你记录谁在冒充谁,以防系统被高级用户滥用。 – ojosilva 2011-02-28 00:26:51