Я разрабатываю и поддерживаю портал для клиентов, написанный на Perl / Catalyst. Мы используем подключаемые модули проверки подлинности Catalyst (с внутренним хранилищем LDAP в сочетании с несколькими правилами deny_unless, чтобы гарантировать, что нужные люди имеют правильное членство в группе).
Часто при управлении разрешениями клиента нам необходимо проверить настройки пользователя, прежде чем мы передадим что-то. В настоящее время наш единственный выход - сбросить пароль пользователя и войти в него самостоятельно, но это далеко не идеально, особенно если пользователь уже установил свои собственные пароли и т. Д.
Мой вопрос таков: для Catalyst кто-нибудь сталкивался с методом олицетворения учетной записи пользователя, так что при наличии правильных привилегий супер-администратора можно временно выдать себя за другую учетную запись при тестировании параметра, а затем отменить один раз сделано?
Если не в Catalyst, то как люди подошли к этому в других средах или в своих собственных пользовательских решениях? Следует признать, что это представляет собой потенциально вопиющий вектор атаки для веб-приложения, но если люди вынуждены внедрять, как люди подошли к дизайну для этого? Возможно, какое-то серьезное печенье-сессия-фу? Или, возможно, система фактического / эффективного идентификатора?