3

サード パーティの Web アプリケーションを使用していますが、管理者が (アプリケーション全体ではなく) 一部のページにスマート カード認証を追加し、証明書情報を返したいと考えています。私が考えているのは、これらのページにボタンを追加することです。onclickイベントでは、クライアント証明書認証 (証明書選択ウィンドウが表示され、その後に「PIN」ウィンドウが表示されます) を実行し、さらに処理するために証明書オブジェクトを返します。

私は当初、クライアント証明書の認証を行い、証明書情報を返す Web サービスについて考えていました。これは、(異なるプラットフォーム上の) 他の Web アプリケーションでその Web サービスを使用することを検討する可能性があるため、素晴らしいことです。ただし、これを行ったコード例は見つかりませんでした。次に、IIS ソリューションを見つけました。

クライアント証明書を必要とするページを含む別のフォルダーを作成しました。ボタン クリック イベントで、そのページにリダイレクトします。次に、そのページで、X509Certificateクラスを使用して証明書情報を取得します。これが私がやろうとしていることに役立つとは思わないか、少なくともどのように役立つかわかりません。

だから私の質問は(長い背景説明で申し訳ありません)

  1. 認定結果が表示されたページからリダイレクトするにはどうすればよいですか?
  2. 可能であれば、IIS と同じ方法でクライアント証明書認証を行う Web サービスを構築する方法に関する参考資料はありますか?

ありがとう

更新 私は周りを見回しましたが、これを達成する方法についてまだ手がかりがありません. Web サービスの SSL/TLS ハンドシェイク段階でコーディングする方法がわかりません。この関数を呼び出したページに証明書を戻す方法もわかりません。私が今やろうとしているのは、クライアント認証を必要とする保護されたページからリダイレクトすることです。Web サーバーが認証結果をキャッシュしているようです。これが私の3番目の質問です。誰かが答えてくれることを願っています。

ページセッションの最後に認証結果を消去して、ページにアクセスするたびにクライアント認証を要求するにはどうすればよいですか (証明書選択ウィンドウが表示され、続いて「PIN」ウィンドウが表示されます)。

4

2 に答える 2

3

アプリが IIS でホストされている場合は、それらのページにクライアント証明書が必要であることを示すセクションを (web.config に) 追加するだけです。次に、ブラウザーはユーザーに証明書を要求します。

于 2012-08-07T20:10:42.617 に答える
1

Windows にはキャッシュ機能があり、既定では、最初の PIN プロンプトの後、またはアプリケーションが完全に閉じられるまで、アプリケーションが秘密キーにアクセスできるようになっています。

無効にするには、このレジストリ キーを設定します。(または GPO を使用)

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography]
"PrivKeyCacheMaxItems"=dword:00000000
"PrivKeyCachePurgeIntervalSeconds"=dword:00000000
于 2015-03-22T07:18:47.653 に答える