Common Access Card は、米国で、現役の軍および政府職員、SR、DoD 文官職員、有資格請負業者により使用されている標準 ID です。CAC を使用することにより、建物や管理スペースへの物理的アクセスが可能になり、DoD コンピューター・ネットワークおよびシステムにアクセスすることができます。CAC は、さまざまなスマート・カード・リーダーが装備されたコンピューターおよびネットワークへのアクセスに使用できます。CAC をリーダーに挿入すると、デバイスはユーザーに PIN の入力を要求します。このタスクでは、LDAP を介した CAC 認証を許可するように AppScan® Enterprise をセットアップする手順を説明します。これにより、ユーザーは、ユーザー名およびパスワードを指定することなく AppScan® Enterprise にログインできます。
始める前に
インストールおよび構成時に、構成ウィザードの「認証メカニズム」画面で「LDAP 認証」を選択するようにしてください。注:
- 「AppScan Enterprise v9.0.3.1 iFix1」の適用前に CAC が有効であった場合、iFix1 のインストール時に構成ウィザードを実行する前に、CAC を無効にしてください。その後 CAC を再度有効にして、AppScan Enterprise にログインし、以下のタスクを実行できます。
- Microsoft™ Internet Explorer を使用して認証を有効にするためのユーザー・アクションは不要です。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 証明書チェーンをインポートします。
注: Java™ iKeyman ツールを使用して、デジタル証明書を管理することができます。iKeyman を使用することにより、認証局 (CA) ルートをユーザーのデータベースに追加したり、あるデータベースから他のデータベースに証明書をコピーしたり、デジタル証明書を CA に要求して受信したり、デフォルト鍵を設定したり、パスワードを変更したりすることが可能です。iKeyman ユーティリティーは、
AppScan® Enterprise に組み込まれており
<install-dir>\AppScan Enterprise\Liberty\jre\bin\ikeyman.exe に保管されています。iKeyman に関する追加情報は、IBM DeveloperWorks からダウンロードできます:
iKeyman ガイド。
-
CA 証明書を一度に 1 つずつ追加して、それぞれにラベルを作成します。iKeyman を使用して、それぞれにラベルを作成することもできます。完全なチェーンの証明書をすべて追加し終わったら、iKeyman ツールを閉じます。
-
次の場所にある
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
- 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 です。
- ファイルの
<ssl>
セクションを見つけて、セクション内に <ssl-Protocol="SSL_TLSv2">
が含まれていることを確認します。
- 以下の属性を
<ssl>
に追加します。
trustStoreRef="cacTrustKeyStoreID"
。ここで、cacTrustKeyStoreID
は、ファイルの <keystore>
セクションで構成されていた鍵ストアの ID です。
clientAuthenticationSupported="true"
編集完了後、セクションは次の例のようになります:<ssl id="defaultSSLConfig" sslProtocol="SSL_TLSv2" 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 からいったんログアウトし、ログインし直します。これで管理者になっているはずです。
タスクの結果
Common Access Card を使用するユーザーが、ユーザー名およびパスワードを指定することなく、AppScan® Enterprise にログインできるようになりました。