Common Access Card (CAC) による認証
Common Access Card は、米国で、現役の軍および政府職員、SR、DoD 文官職員、有資格請負業者により使用されている標準 ID です。CAC を使用することにより、建物や管理スペースへの物理的アクセスが可能になり、DoD コンピューター・ネットワークおよびシステムにアクセスすることができます。CAC は、さまざまなスマート・カード・リーダーが装備されたコンピューターおよびネットワークへのアクセスに使用できます。CAC をリーダーに挿入すると、デバイスはユーザーに PIN の入力を要求します。このタスクでは、LDAP を介した CAC 認証を許可するように AppScan® Enterprise をセットアップする手順を説明します。これにより、ユーザーは、ユーザー名およびパスワードを指定することなく AppScan® Enterprise にログインできます。
始める前に
- 「AppScan Enterprise v9.0.3.1 iFix1」の適用前に CAC が有効であった場合、iFix1 のインストール時に構成ウィザードを実行する前に、CAC を無効にしてください。その後 CAC を再度有効にして、AppScan Enterprise にログインし、以下のタスクを実行できます。
- Microsoft™ Edge を使用して認証を有効にするためのユーザー・アクションは不要です。Mozilla Firefox ユーザーの場合は、組織においてブラウザーで CAC を有効にするための固有の指示があるかもしれません。
手順
- CAC ユーザーが含まれている LDAP サーバーを使用して AppScan® Enterprise をインストールします。
-
AppScan Enterprise の製品管理者も CAC ユーザーであることを確認してください。
- 管理者として AppScan Enterprise へログインします。
- 「管理」 > 「ユーザーおよびグループ」に進み、リストから「デフォルト・ユーザー」を選択します。
- 「ユーザーの編集」ページで、「タイプ」リストから「Administrator」を選択します。ユーザー・プロパティーの構成を終了し、「保存」をクリックして、AppScan Enterprise からログアウトします。
- 完全な認証局チェーンをトラストストアにインポートします。
- 鍵ストア・ファイルを作成するか、または既存の鍵ストアを使用します。
注:鍵ストアを生成する場合、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 -
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> - CA 証明書を一度に 1 つずつ追加して、それぞれにラベルを作成します。iKeyman を使用して、それぞれにラベルを作成することもできます。完全なチェーンの証明書をすべて追加し終わったら、iKeyman ツールを閉じます。
-
次の場所にある
defaultTrustStore:
が trustStore として使用される場合、構成ウィザードの再実行には、証明書チェーンの再インポートが必要になります。これを回避する必要がある場合は、構成ウィザードを実行する前に、以下の場所にある trustStore ファイルに証明書チェーンをインポートします。<install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\resources\security\cacerts<install-dir>\AppScan Enterprise\Liberty\templates\servers\defaultServer\resources\security\cacerts
- 鍵ストア・ファイルを作成するか、または既存の鍵ストアを使用します。
- web.xml ファイルを変更して、フォーム・ベースの認証をクライアント証明書の認証に置き換えます。
注:web.xml ファイルのバックアップを作成してから、変更してください。
- HCL AppScan Enterprise Server サービスを停止します。
- ご使用の AppScan® Enterprise インスタンスの AppScanServerWeb.war ファイルを見つけます。これは、以下にあります。<install-dir>\AppScan Enterprise\Liberty\usr\servers\ase\apps\AppScanServerWeb.war。
- AppScanServerWeb.war ファイルを AppScanServerWeb.zip に名前変更し、WEB-INF フォルダーにナビゲートして、編集するために web.xml ファイルを検索します。
- ファイルの以下のセクションを置き換えます。
<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> - ファイルを保存して、AppScanServerWeb.zip から AppScanServerWeb.war に名前変更します。
- SSL プロトコルを強制するように server.xml ファイルを変更し、トラスト鍵ストアおよび LDAP 証明書マッピングを設定します。
- <install-dir>\AppScan Enterprise\Liberty\usr\servers\<ase instance name>\server.xml で server.xml ファイルを見つけます。
<featureManager>セクションに<feature>ssl-1.0</feature>が含まれていることを確認します。- ファイルの
<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 プロファイル: 鍵ストア」を参照してください。 - ファイルの
<ssl>セクションを見つけて、セクション内に<sslProtocol="TLSv1.2">が含まれていることを確認します。 - 以下の属性を
<ssl>に追加します。trustStoreRef="cacTrustKeyStoreID"。ここで、cacTrustKeyStoreIDは、ファイルの<keystore>セクションで構成されていた鍵ストアの ID です。clientAuthenticationSupported="true"
編集完了後、セクションは次の例のようになります:<ssl id="defaultSSLConfig" sslProtocol="TLSv1.2" keyStoreRef="defaultKeyStore" trustStoreRef="defaultKeyStore" clientAuthenticationSupported="true" />. -
ファイルの
<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>
- HCL AppScan Enterprise Server サービスを再開します。
- CAC 認証を使用する管理者として AppScan Enterprise へログインし直します。
- 「管理」 > 「ユーザーおよびグループ」に進み、デフォルト・ユーザーの許可について、そのロールに割り当てたい任意の許可に戻します。(一般に、デフォルト・ユーザーは管理者とせずに、代わりに「標準ユーザー」とします)。
-
AppScan Enterprise を構成した後、CAC ユーザーの管理者アカウントを作成する方法は (データベース照会を使用する方法を除いて) ほかにありません。ステップ 2 を実行しなかった場合、以下のステップを実行してください。
- CAC カードを使用して AppScan Enterprise にログインし、自分が管理者かどうかを確認するために許可をチェックします。
-
管理者ではない場合、AppScan Enterprise SQL Server データベースに対して、次のクエリーを実行します:
select *from UserInfo. - 照会結果で CAC ユーザーを検索し、そのユーザー ID をメモします。
-
その後、次のクエリーを実行します:
Update UserInfo set UserTypeId=5, LicenseType=3, EffectiveType=32768。ここで UserId は CAC 管理ユーザーの ID です。 - AppScan Enterprise からいったんログアウトし、ログインし直します。これで管理者になっているはずです。