1

http://support.microsoft.com/kb/892424

Active Directory で「対話型ログオンにはスマート カードが必要」が設定されている場合、ランダムなパスワードが生成されます。スマート カードを使用して Web アプリケーションから LDAP 経由でユーザーを認証するにはどうすればよいですか?

ユーザーが誰であるかを知るにはどうすればよいですか? 証明書にアクセスする方法はありますか? セッションから取得できますか?

4

1 に答える 1

1

これには、HTTPSとSSLの相互認証を使用する必要があります。これは、クライアントのスマートカードに少なくとも企業のCA署名付き証明書がすでに保存されているためです。

サーバー認証だけでなく相互SSL認証を使用する場合、クライアント証明書は、クライアントによるサーバーの証明書だけでなく、サーバーによっても検証されます(これは、HTTPS対応のeコマースサイトなどでより一般的な設定です)。そして、あなたはまだボーナスとして暗号化された接続を取得します。

たとえば、Tomcat6.0SSL構成のHOW-TOを参照してください。重要な点は、trust-storeのCA証明書とclientAuth属性をtrueに設定することです。

login auth-methodは、それぞれのWebアプリケーションのweb.xmlでCLIENT-CERTにも指定する必要があります。

...
<login-config>
  <auth-method>CLIENT-CERT</auth-method>
  <realm-name>Foo * Bar * Realm</realm-name>
</login-config>
...

クライアント証明書のSubjectDN属性は、ユーザーを識別するために使用されます。LDAP(またはActiveDirectory)は、ユーザーがグループに属しているかどうかを確認するなどして、認証に引き続き使用できます。

初めてすべてを設定するのは難しい場合があります。すべての概念に精通するために、次のアプローチをお勧めします。

  • ファイルに保存されているユーザー名とパスワードでBASICauth-methodを使用する
  • 単純な役割ベースの承認を使用する
  • CLIENT-CERTauth-method+単純なロールベースの認証を有効にする
  • 役割をチェックするためのLDAPを組み込む
于 2009-05-20T06:53:12.527 に答える