Common Access Card (CAC) による認証

Common Access Card は、米国で、現役の軍および政府職員、SR、国防総省職員、有資格請負業者により使用されている標準 ID です。 CAC を使用することにより、建物や管理スペースへの物理的アクセスが可能になり、DoD コンピューター・ネットワークおよびシステムにアクセスすることができます。CAC は、さまざまなスマート・カード・リーダーが装備されたコンピューターおよびネットワークへのアクセスに使用できます。 CAC をリーダーに挿入すると、デバイスはユーザーに PIN の入力を要求します。

このタスクについて

このタスクでは、LDAP を介した CAC 認証を許可するように AppScan® Enterprise をセットアップする手順を説明します。これにより、ユーザーは、ユーザー名およびパスワードを指定することなく AppScan Enterprise にログインできます。
注: Microsoft Internet Explorer を使用して認証を有効にするためのユーザー・アクションは不要です。Mozilla Firefox ユーザーの場合は、組織においてブラウザーで CAC を有効にするための固有の指示があるかもしれません。

手順

  1. CAC ユーザーが含まれている LDAP サーバーを使用して AppScan Enterprise をインストールします。
  2. 製品管理者を CAC ユーザーにします。
    重要: AppScan Enterprise を構成した後、CAC ユーザーの管理者アカウントを作成する方法は (データベース照会を使用する方法を除いて) 他にありません。
  3. 完全な認証局チェーンをトラストストアにインポートします。
    1. 鍵ストア・ファイルを作成するか、または既存の鍵ストアを使用します。
      注: 鍵ストアを生成する場合、keytool ユーティリティーを使用できます。keytool は、AppScan Enterprise に同梱されており、<install-dir>¥AppScan Enterprise¥Liberty¥jre¥bin¥ からダウンロードできます。

      以下のコマンドを使用します。
      keytool -genkey -alias mydomain.com -keyalg RSA -keystore
      MyKeystore.jks
      -keysize 2048 - keypass storePassword

    2. CAC カード上にあるクライアント証明書に署名した完全な CA 証明書チェーンをインポートします。
      注: Java™ iKeyman ツールを使用して、デジタル証明書を管理することができます。 iKeyman を使用することにより、認証局 (CA) ルートをユーザーのデータベースに追加したり、あるデータベースから他のデータベースに証明書をコピーしたり、デジタル証明書を CA に要求して受信したり、デフォルト鍵を設定したり、パスワードを変更したりすることが可能です。 iKeyman ユーティリティーは、AppScan Enterprise に同梱されており、<install-dir>¥AppScan Enterprise¥Liberty¥jre¥bin¥ikeyman.exe に保管されています。 iKeyman に関する追加情報は、IBM DeveloperWorks からダウンロードできます: iKeyman ガイド
    3. CA 証明書を一度に 1 つずつ追加して、それぞれにラベルを作成します。 iKeyman を使用して、それぞれにラベルを作成することもできます。 完全なチェーンの証明書をすべて追加し終わったら、iKeyman ツールを閉じます。
  4. web.xml ファイルを変更して、フォーム・ベースの認証をクライアント証明書の認証に置き換えます。
    1. IBM Security AppScan Enterprise Server サービスを停止します。
    2. ご使用の AppScan Enterprise インスタンスの AppScanServerWeb.war ファイルを見つけます。これは、<install-dir>¥AppScan Enterprise¥Liberty¥usr¥servers¥ase¥apps¥AppScanServerWeb.war にあります。
    3. AppScanServerWeb.war ファイルを AppScanServerWeb.zip に名前変更し、WEB-INF フォルダーにナビゲートして、編集するために web.xml ファイルを検索します。
    4. ファイルの以下のセクションを置き換えます。

      <login-config>
      <auth-method>FORM</auth-method>
      <form-login-config>
      <form-login-page>/pages/Login.jsp</form-login-page>
      <form-error-page>/pages/Login.jsp?Retry=True</form-error-page?
      </form-login-config>
      </login-config>

      以下に置き換えます。

      <login-config>
      <auth-method>CLIENT-CERT</auth-method>
      </login-config>

    5. ファイルを保存して、AppScanServerWeb.zip から AppScanServerWeb.war に名前変更します。
  5. SSL プロトコルを強制するように server.xml ファイルを変更し、トラスト鍵ストアおよび LDAP 証明書マッピングを設定します。
    1. <install-dir>¥AppScan Enterprise¥Liberty¥usr¥servers¥<ase instance name>¥server.xmlserver.xml ファイルを見つけます。
    2. <featureManager> セクションに <feature>ssl-1.0</feature> が含まれていることを確認します。
    3. ファイルの <keystore> セクションを見つけ、次の行を追加します: <keyStore id="cacTrustKeyStoreID" password="store password" location="cacTrustKeyStore.jks" type=”jks” />。ここで、
      • id は、鍵ストアを一意的に特定するストリングです (任意のストリングを使用します)。
      • password は、鍵ストアのパスワードです (この値は、平文またはエンコード形式で保管できます。 パスワードをエンコードするには、Liberty の securityUtility を使用します)。
      • location は、鍵ストア・ファイルの絶対パスまたは相対パスです (相対パスは、<install-dir>¥AppScan Enterprise¥Liberty¥usr¥servers¥<ase instance name>¥resources¥security¥ を指します)。
      • type は、鍵ストアのタイプです。デフォルト値は、jks です。
      注: Liberty プロファイル: 鍵ストアを参照してください。
    4. ファイルの <ssl> セクションを見つけて、セクション内に <ssl-Protocol="SSL_TLSv2"> が含まれていることを確認します。
    5. 以下の属性を <ssl> に追加します。
      • trustStoreRef="cacTrustKeyStoreID" ここで、cacTrustKeyStoreID は、ファイルの <keystore> セクションで構成されていた鍵ストアの ID です。
      • clientAuthenticationSupported="true"
      編集完了後、セクションは次の例のようになります: <ssl id="defaultSSLConfig" sslProtocol="SSL_TLSv2" keyStoreRef="defaultKeyStore" trustStoreRef="defaultKeyStore" clientAuthenticationSupported="true" />
    1. ファイルの <ldapRegistry> セクションを見つけて、以下の属性を追加します。
      • certificateMapMode="CERTIFICATE_FILTER"
      • certificateFilter="uid=${SubjectCN}"
        注: LDAP ディレクトリー内の「uid」は、証明書の属性と一致している必要があります。 このフィルター例は、ご使用の環境に対応するように変更してください。 この例で、証明書の「SubjectCN」が「CN=IBM」である場合は、LDAP ディレクトリー内のユーザー名 (uid) も「IBM」でなければなりません。
      以下の例は、IBM® Tivoli® Directory Server を使用する LDAP レジストリー構成を示しています。LDAP ユーザー ID は、CAC カードに保管されている証明書のサブジェクト CN に一致していなければなりません。

      <ldapRegistry ldapType="IBM Tivoli Directory Server"
      host="<<host name>>"
      port="<<Port no>>" sslEnabled="false" baseDN="o=IBM,c=US"
      certificateMapMode="CERTIFICATE_FILTER" certificateFilter="uid=${SubjectCN}">
      <activedFilters userFilter="(objectclass=Person)" userIdMap="*:uid"/ >
      </ldapRegistry>

  6. IBM Security AppScan Enterprise Server サービスを再開します。

タスクの結果

Common Access Card を使用するユーザーが、ユーザー名およびパスワードを指定することなく、AppScan Enterprise にログインできるようになりました。