1

私のウェブアプリケーションでは次のようなケースがあります。ユーザーが使用する通常のブラウザはChromeです。クロムのデジタル証明書

私は、ユーザーがカードリーダーに挿入する暗号カードを持つデジタル証明書を使用します。

基本的に、ユーザーはアプリケーションにログインすると、証明書データを読み取るhttpsリンクにアクセスします。

これまでのところすべて正常に動作します。

アプリケーションのセッションを終了するユーザーがブラウザを閉じると、問題はありません。すべてが終わりました。

しかし、ユーザーがすべてのブラウザウィンドウを閉じずにアプリケーションセッションを終了したい場合は、ここに問題があります。

アプリケーションのセッションを閉じるボタンがあり、ユーザーは離席して最初のログイン画面にリダイレクトされます。ユーザーが残しているため、すべてがリセットされたようです。しかし、新しいユーザーがログインしてリンクを押して証明書データを読み取る場合、新しいカードの新しい読み取りを行うのではなく、そのカードにアクセスするようにピンを要求するだけで、以前のカードのデータを使用します。

問題は、例えば、ユーザーがカード、カードを忘れてログアライズしようとすると、証明書を読み取れなかった場合などです。しかし、正しく挿入されているにもかかわらず、ブラウザが再起動されるまでカードは再び読み取られません。これは、証明書を持たないキャッシュを維持します。

現時点では、すべてのChromeウィンドウを閉じることで解決策が見つかりましたが、ユーザーのかどうかによって異なります。

部分的な解決策では、javascript()でブラウザを閉じることができますが、しばらくの間、javascript(window.close())、サイト自体から開くことができないウィンドウ、利用可能なものは除外されていると思います

誰かが私に貢献できますか?ありがとう

答えて

0

クロムとその他のブラウザは、実行されるSSL認証のキャッシュを維持し、ユーザーに証明書の選択を促すタイミングを決定します。 「ログアウト」機能はありません。TLS再開プロトコル(クライアントはセッションを再開できます)のためにサーバー側から接続を閉じることもできません。

クライアント証明書を使用して認証システムを定義する際によくある問題です。私は唯一の回避策を発見した:は、証明書を選択し、ブラウザを強制的に異なるドメインを使用します。

login.domain.com 
    -->login1.domain.com 
    -->login2.domain.com 

    -->loginN.domain.com 

あなたがランダムloginN.domain.comにあなたが認証を必要とするたびに、ユーザーのブラウザをリダイレクトする仮想認証URL login.domain.comを持っています。 Chromeは異なるドメインであることを検出し、ユーザーに証明書の選択を促します

異なるDNSではなく異なるポートを使用することも考えられますが、使用していないためにユーザーのファイアウォールに問題が発生する可能性があります。この場合、Firefoxはウィンドウを表示しません。

+0

情報ありがとうございます。ドメインを変更することはできません:( –

関連する問題