私はPerl/Catalystで書かれたカスタマーポータルを開発して維持しています。Catalyst認証プラグインを使用します(LDAPストレージバックエンドと、適切なユーザーが適切なグループメンバーシップを持つようにするためのいくつかのdeny_unlessルールを組み合わせたもの)。
多くの場合、顧客の権限を管理する際に、ユーザーの設定をテストしてから引き渡す必要があります。現在、私たちの唯一の手段はユーザーのパスワードをリセットして自分でログインすることですが、これは理想的とは言えません。特に、ユーザーがすでに自分のパスワードを設定している場合などです。
私の質問はこれです:Catalystの場合、正しいスーパー管理者権限が与えられると、設定のテスト中に一時的に別のアカウントになりすまして、完了したら元に戻すことができるような、ユーザーアカウントになりすます方法に出くわしたことがありますか?
Catalystにない場合、人々は他のフレームワークや独自のカスタムソリューションでこれにどのようにアプローチしましたか?確かに、これはWebアプリケーションに潜在的に悪質な攻撃ベクトルを導入するものですが、実装を余儀なくされた場合、人々はこれの設計にどのようにアプローチしましたか?おそらくいくつかの深刻なcookie-session-fu?それとも、actualID /effectiveIDシステムですか?