在美國,「通用存取卡 (Common Access Card)」是著制服值班服務人員、精選後備部隊、DoD 文職雇員,以及合格約聘人員的標準識別。它用來啟用大廈和管制空間的實體存取權,並提供 DoD 電腦網路與系統的存取權。CAC 可用來存取附有各種智慧卡讀取器的電腦和網路。當插入至讀取器時,裝置會詢問使用者 PIN。這項作業可協助您設定 AppScan® Enterprise,以容許經由 LDAP 進行 CAC 鑑別,這樣使用者就可以登入 AppScan® Enterprise,而不需提供使用者名稱與密碼。
開始之前
在安裝和配置期間,請確定您已在配置精靈的「鑑別機制」畫面中,選取了 LDAP 鑑別。註:
- 如果在您套用 AppScan Enterprise 9.0.3.1 版 iFix1 之前,便已啟用 CAC, 在安裝 iFix1 期間,請先停用它,再執行配置精靈。之後您可以重新啟用 CAC, 登入 AppScan Enterprise,並完成下列作業。
- 利用 Microsoft™ Edge,使用者不需執行任何動作,就能啟用鑑別。若為 Mozilla Firefox 使用者,您的組織可能會提供在瀏覽器中啟用 CAC 的特定指示。
程序
- 使用含有 CAC 使用者的 LDAP 伺服器,來安裝 AppScan® Enterprise。
-
請確定 AppScan Enterprise 的「產品管理者」也使用 CAC 使用者。
-
以管理者身份登入 AppScan Enterprise。
-
移至,並從清單中選取預設使用者。
-
在編輯使用者頁面上,從類型清單中,選取Administrator。等配置完使用者內容後, 按一下儲存,然後登出 AppScan Enterprise。
- 將完整憑證管理中心鏈匯入至信任儲存庫。
- 建立金鑰儲存庫檔,或使用您現有的金鑰儲存庫。
註: 如果要產生金鑰儲存庫,您可以使用 keytool。AppScan Enterprise 包含 keytool,且可以從以下位置下載
<install-dir>\AppScan Enterprise\Liberty\jre\bin\使用下列指令:
keytool -genkey -alias mydomain.com -keyalg RSA -keystore MyKeystore.jks
-keysize 2048 - keypass storePassword
註: 您可以使用 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"。
-
如果證書有自定義名稱,請更新命令以反映該自定義名稱。要將證書匯入至 truststore,請在命令提示字元窗口中執行以下命令:
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 憑證,並且各建立一個標籤。如果您使用 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 檔,以「用戶端憑證鑑別」取代「表單型鑑別」。
- 停止 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。
- 修改 server.xml 檔,以施行 SSL 通訊協定、設定信任金鑰儲存庫,以及設定 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>
區段,並確定它含有 <sslProtocol="TLSv1.2">
。
- 將這些屬性新增至
<ssl>
trustStoreRef="cacTrustKeyStoreID"
,其中 cacTrustKeyStoreID
是在檔案之 <keystore>
區段配置的金鑰儲存庫的 ID。
clientAuthenticationSupported="true"
當您完成編輯後,區段與下列範例相仿:<ssl id="defaultSSLConfig" sslProtocol="TLSv1.2" keyStoreRef="defaultKeyStore" trustStoreRef="defaultKeyStore" clientAuthenticationSupported="true" />
。
-
找出檔案的
<ldapRegistry>
區段,並新增下列屬性:
其中一個這類 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,然後再次登入。現在,您應該是管理者。
結果
使用「通用存取卡」的使用者可以登入 AppScan® Enterprise,而不需提供使用者名稱與密碼。