0

SpringSecurityを使用してログインページで作業しています。このページでは、ユーザーがユーザー名とパスワードの代わりに証明書を使用するためのオプションを提供する必要があります。しかし、私は次のシナリオで立ち往生しています:

XYZ社によって署名された証明書がブラウザにインストールされているとします。サーバー(信頼できるXYZ)が証明書を検証したかったのですが、質問は次のとおりです。

Q1。サーバーがブラウザに「適切な証明書」を提供するように「要求」するにはどうすればよいですか(ブラウザに複数の証明書がインストールされていると仮定します)。

Q2。ログインページに、ユーザーがボタンをクリックしたときにのみ証明書を送信するためのボタンを設定することはできますか?

Q3。サーバーが証明書を受け取ったとしましょう。サーバーは、証明書チェーン(XYZ社によって署名されたもの)を調べるだけで、「はい、あなたが誰であるかを証明できます」と言うことができますか?

ありがとう、

セキュリティ初心者から:)

4

1 に答える 1

2

これは可能です。あなたがしなければならないのは、必要なクライアント証明書でSSLサイトをセットアップすることだけです。ブラウザはこれをすぐにサポートし、ほとんどの場合、内部証明書ストアを提供します。つまり、OSからのユーザー証明書ストアを表示します。ssl接続でクライアント証明書要件をオンにする方法については、サーバーフレームワークのドキュメントを参照してください。

q2に関しては、アプリと認証プロバイダーの2つのWebサイトを持つことができます。アプリにボタンが表示され、クライアント証明書を必要とする認証プロバイダーにリダイレクトされます。次に、認証プロバイダーは任意のssoプ​​ロトコル(oauth2、saml)を使用して、ユーザーIDをアプリケーションに返します。

証明書の検証については、チェーンを検証するか、サーバー側でユーザー名と証明書の拇印をマッピングすることができます。

于 2013-01-07T00:24:11.607 に答える