Common Access Card (CAC) による認証

Common Access Card は、米国で、現役の軍および政府職員、SR、DoD 文官職員、有資格請負業者により使用されている標準 ID です。CAC を使用することにより、建物や管理スペースへの物理的アクセスが可能になり、DoD コンピューター・ネットワークおよびシステムにアクセスすることができます。CAC は、さまざまなスマート・カード・リーダーが装備されたコンピューターおよびネットワークへのアクセスに使用できます。CAC をリーダーに挿入すると、デバイスはユーザーに PIN の入力を要求します。このタスクでは、LDAP を介した CAC 認証を許可するように AppScan® Enterprise をセットアップする手順を説明します。これにより、ユーザーは、ユーザー名およびパスワードを指定することなく AppScan® Enterprise にログインできます。

始める前に

インストールおよび構成時に、構成ウィザードの「認証メカニズム」画面で「LDAP 認証」を選択するようにしてください。
注:
  1. AppScan Enterprise v9.0.3.1 iFix1」の適用前に CAC が有効であった場合、iFix1 のインストール時に構成ウィザードを実行する前に、CAC を無効にしてください。その後 CAC を再度有効にして、AppScan Enterprise にログインし、以下のタスクを実行できます。
  2. Microsoft Edge を使用して認証を有効にするためのユーザー・アクションは不要です。Mozilla Firefox ユーザーの場合は、組織においてブラウザーで CAC を有効にするための固有の指示があるかもしれません。

手順

  1. CAC ユーザーが含まれている LDAP サーバーを使用して AppScan® Enterprise をインストールします。
  2. AppScan Enterprise の製品管理者も CAC ユーザーであることを確認してください。
    1. 管理者として AppScan Enterprise へログインします。
    2. 「管理」 > 「ユーザーおよびグループ」に進み、リストから「デフォルト・ユーザー」を選択します。
    3. 「ユーザーの編集」ページで、「タイプ」リストから「Administrator」を選択します。ユーザー・プロパティーの構成を終了し、「保存」をクリックして、AppScan Enterprise からログアウトします。
  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 証明書チェーンをインポートします。 証明書にカスタマイズされた名前がある場合、その名前を反映するようにコマンドを更新してください。証明書を truststore にインポートするには、コマンドプロンプトウィンドウで次のコマンドを実行します:
      注: Java keytool を使用して、defaultTrustStore に証明書をインポートできます。 AppScan Enterprise には keytool が含まれており、<install-dir>\AppScan Enterprise\Liberty\jre\bin\ からダウンロードできます。 次のコマンドのパラメータを特定の値に更新してください:<path-to-certificate>, <install-dir>, <ase instance name>, <truststore-password>。 パスにスペースが含まれている場合は、ダブルクォートで囲んでください。例:"C:\Program Files (x86)\HCL\AppScan Enterprise\Liberty\usr\servers\ase\resources\security\cacerts"
      
      				keytool -importkeystore -srckeystore <path-to-certificate>\certificate.pfx -destkeystore <install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\resources\security\cacerts -srcstoretype JKS -deststoretype PKCS12 -deststorepass <truststore-password>
      			
    3. CA 証明書を一度に 1 つずつ追加して、それぞれにラベルを作成します。iKeyman を使用して、それぞれにラベルを作成することもできます。完全なチェーンの証明書をすべて追加し終わったら、iKeyman ツールを閉じます。
    4. 次の場所にある defaultTrustStore:
      <install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\resources\security\cacerts
      が trustStore として使用される場合、構成ウィザードの再実行には、証明書チェーンの再インポートが必要になります。これを回避する必要がある場合は、構成ウィザードを実行する前に、以下の場所にある trustStore ファイルに証明書チェーンをインポートします。
      <install-dir>\AppScan Enterprise\Liberty\templates\servers\defaultServer\resources\security\cacerts
  4. web.xml ファイルを変更して、フォーム・ベースの認証をクライアント証明書の認証に置き換えます。
    注: web.xml ファイルのバックアップを作成してから、変更してください。
    1. HCL 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> セクションを見つけて、セクション内に <sslProtocol="TLSv1.2"> が含まれていることを確認します。
    5. 以下の属性を <ssl> に追加します。
      • trustStoreRef="cacTrustKeyStoreID"。ここで、cacTrustKeyStoreID は、ファイルの <keystore> セクションで構成されていた鍵ストアの ID です。
      • clientAuthenticationSupported="true"
      編集完了後、セクションは次の例のようになります: <ssl id="defaultSSLConfig" sslProtocol="TLSv1.2" keyStoreRef="defaultKeyStore" trustStoreRef="defaultKeyStore" clientAuthenticationSupported="true" />.
    6. ファイルの <ldapRegistry> セクションを見つけて、以下の属性を追加します。
      • certificateMapMode="CERTIFICATE_FILTER"
      • certificateFilter="<ldapAttribute>=${<certificateAttribute>} (<ldapAttribute> と <certificateAttribute> を適切に置き換えます)

        注: ldapAttribute と certificateAttribute の値は、LDAP サーバーのタイプと証明書の属性によって異なります。このフィルターの例は使用している環境に応じて変更してください。
      このような certificateFilter は、次のようにもできます。

      certificateFilter="uid=${SubjectCN}"

      LDAP 記録の「uid」属性は証明書の SubjectCN 属性と一致している必要があります。証明書の「SubjectCN」が「admin」である場合は、LDAP ディレクトリー内のユーザー名 (uid) は「admin」でなければなりません。

      以下の例は、IBM® Tivoli® Directory Server を使用する LDAP レジストリー構成を示しています。LDAP サーバーの uid 属性は、CAC カードに保管されている証明書の SubjectCN 属性と一致します。

      <ldapRegistry ldapType="IBM Tivoli Directory Server" host="<<hostname>>" port="<<Port no>>" sslEnabled="false" baseDN="o=IBM,c=US "certificateMapMode="CERTIFICATE_FILTER" certificateFilter="uid=${SubjectCN}"> <activedFilters userFilter="(objectclass=Person)" userIdMap="*:uid"/> </ldapRegistry>
  6. HCL AppScan Enterprise Server サービスを再開します。
  7. CAC 認証を使用する管理者として AppScan Enterprise へログインし直します。
  8. 「管理」 > 「ユーザーおよびグループ」に進み、デフォルト・ユーザーの許可について、そのロールに割り当てたい任意の許可に戻します。(一般に、デフォルト・ユーザーは管理者とせずに、代わりに「標準ユーザー」とします)。
  9. AppScan Enterprise を構成した後、CAC ユーザーの管理者アカウントを作成する方法は (データベース照会を使用する方法を除いて) ほかにありません。ステップ 2 を実行しなかった場合、以下のステップを実行してください。
    1. CAC カードを使用して AppScan Enterprise にログインし、自分が管理者かどうかを確認するために許可をチェックします。
    2. 管理者ではない場合、AppScan Enterprise SQL Server データベースに対して、次のクエリーを実行します: select *from UserInfo.
    3. 照会結果で CAC ユーザーを検索し、そのユーザー ID をメモします。
    4. その後、次のクエリーを実行します: Update UserInfo set UserTypeId=5, LicenseType=3, EffectiveType=32768。ここで UserId は CAC 管理ユーザーの ID です。
    5. AppScan Enterprise からいったんログアウトし、ログインし直します。これで管理者になっているはずです。

タスクの結果

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