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 Internet Explorer を使用して認証を有効にするためのユーザー・アクションは不要です。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 証明書チェーンをインポートします。
      注: 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. 次の場所にある 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> セクションを見つけて、セクション内に <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" />
    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 にログインできるようになりました。