1

stackoverflow には他にも Java と CAC の投稿がいくつかあることがわかりました。私はこれらすべての初心者であり、何をすべきか、どこに行くべきかを頭の中で考えようとしています。

私は、Windows 7 ボックスで CAC を使用して、PC にアクセスしたいユーザーを認証する大規模な組織で仕事をしています。CAC をキーボードに貼り付けて、PIN を入力します。

私の上司は、コンピュータに CAC がある場合にユーザーが認証されないように Java Webap を変更したいと考えています。そうでない場合は、従来の LDAP ログインを使用します。

WebLogic 11g と Java 6 を使用しています。

周りのグーグルから、2つのアプローチがあるようです:

  1. ユーザーの CAC を読み取り、SSL 証明書を webapp に送信するアプレットを実装します。

  2. Web サーバーに「相互 SSL 認証」を実装します。これにより、ブラウザーは CAC 上の SSL 証明書を webapp に送信します。

自分のオプションを正しく評価していますか?

どちらのソリューションが簡単ですか?

長期的に見て、手間がかからず、より堅牢になるのはどれですか?

SSL についてはほとんど何も知りませんが、これは両方のソリューションで共通しているようです。抽象的な概念について詳しく説明している SSL チュートリアルをいくつか見つけました。私がやりたいことについて、誰かが良いチュートリアルを推薦できますか?

情報やヒントを事前にありがとう

スティーブ

4

1 に答える 1

5
  1. ユーザーの CAC を読み取り、SSL 証明書を webapp に送信するアプレットを実装します。

  2. Web サーバーに「相互 SSL 認証」を実装します。これにより、ブラウザーは CAC 上の SSL 証明書を webapp に送信します。

あなたは#2をしたいと思うでしょう。スマートカードのハードウェア/ソフトウェアをいじる必要はありません。OSにすべての作業を任せてください。

私はこれを IIS で行いましたが、一般的にこれを実装するには、クライアント証明書を要求し、DoD CA を信頼するように Web サーバーを構成する必要があります。信頼する CA をクライアントにアドバタイズするように Web サーバーを構成する必要がある場合があります。Win7 クライアントに、信頼できる CA によって署名されたクライアント証明書がある場合、クライアントはそれを使用しようとします。スマートカード証明書の場合、Windows は自動的にユーザーに PIN の入力を求めます。それについて心配する必要はありません。ユーザーが正しい PIN を入力すると、証明書が Web サーバーに送信され、CA で証明書を検証できるようになります。有効な証明書である場合、ソフトウェアは証明書のフィールドを解析し、値を使用してユーザーを認証できます (つまり、有効な証明書があるにもかかわらず、ユーザーは、名前/メールアドレスなどに基づいて実際にログインを許可されます)。そこからどう対処するかはあなた次第です。

ユーザーがスマートカードまたは CAC を使用していることを忘れて、認証にクライアント証明書を使用するという考えから始めれば、これを理解して情報を見つけるのがずっと簡単になります。まず、自己署名 CA テスト証明書を作成します。次に、Web サーバーのサーバー証明書と、テスト CA によって署名されたクライアント証明書を作成します。テスト CA 証明書を信頼されたルート証明書としてクライアントとサーバーに追加します。次に、クライアント証明書を使用して Web サーバーへの認証を行う小さなテスト アプリを作成してみます。それが機能したら、DoD CA を追加して、CaC 証明書から情報を引き出すことができます。

幸運を!

于 2013-05-17T20:05:13.773 に答える