暗号化されたパスワードとセッションベースの認証を使用する Web アプリケーションのユーザーが、手動でアクセスを取り消すオプションを使用して、テクニカル サポート チームに自分のアカウントへのアクセスを一時的に許可できるようにしたいと考えています。この問題にアプローチする安全な方法はありますか?
LAMP スタックを使用しています。
理想的には、アクセスは手動で (ユーザーが私たちと電話をしている場合など)、または自動的に (ユーザーがアプリケーションを介して私たちにメールを送ったり、サポート フォーラムに投稿した場合など) 許可することができます。
私が想像できる1つのアプローチは次のようになります。
- ユーザーはアプリケーションのボタンをクリックして、技術サポートが自分のアカウントにアクセスできるようにします。
- ブラウザーは、ユーザーのセッション ID、CSRF トークンなどをサポート データベースに格納するサーバーに要求を送信します。
- サポート データベースにより、サポート技術者は、話している顧客を見つけ、その後、同じセッション ID などを使用してユーザーのアカウントにログインできます。
- アクセスを手動で取り消すと、サポート データベースからセッション ID が削除されます。
ただし、技術サポートは必然的にセッションの長さに制限され、特に電子メール サポートの場合、十分な長さではない可能性があります。
この問題に取り組むためのより良い、またはより標準的な方法はありますか?
編集 1:技術者がバックドア経由でログインできるようにする新しいトークンを生成するようなこともできますが、可能であればバックドアを避けたいと思います。
別の可能性として、サーバーへの SSH トンネル経由でのみアクセスできる、広く開かれたバックドアを提供することも考えられます。まだバックドアですが、少なくともアクセスできる人は非常に限られています。