使用「通用存取卡 (CAC)」來鑑別

在美國,「通用存取卡 (Common Access Card)」是著制服值班服務人員、精選後備部隊、DoD 文職雇員,以及合格約聘人員的標準識別。它用來啟用大廈和管制空間的實體存取權,並提供 DoD 電腦網路與系統的存取權。CAC 可用來存取附有各種智慧卡讀取器的電腦和網路。當插入至讀取器時,裝置會詢問使用者 PIN。這項作業可協助您設定 AppScan® Enterprise,以容許經由 LDAP 進行 CAC 鑑別,這樣使用者就可以登入 AppScan® Enterprise,而不需提供使用者名稱與密碼。

開始之前

在安裝和配置期間,請確定您已在配置精靈的「鑑別機制」畫面中,選取了 LDAP 鑑別
註:
  1. 如果在您套用 AppScan Enterprise 9.0.3.1 版 iFix1 之前,便已啟用 CAC, 在安裝 iFix1 期間,請先停用它,再執行配置精靈。之後您可以重新啟用 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。AppScan Enterprise 包含 keytool,且可以從以下位置下載 <install-dir>\AppScan Enterprise\Liberty\jre\bin\

      使用下列指令:  keytool -genkey -alias mydomain.com -keyalg RSA -keystore MyKeystore.jks  -keysize 2048 - keypass storePassword

    2. 匯入完整 CA 憑證鏈,且其中已簽署存在於 CAC 卡上的用戶端憑證。
      註: 您可以使用 Java iKeyman 工具來管理數位憑證。利用 iKeyman,您可以將憑證管理中心 (CA) 主要憑證新增至資料庫、在資料庫之間複製憑證、向 CA 申請並接收數位憑證、設定預設金鑰,以及變更密碼。AppScan® Enterprise 包含 iKeyman 公用程式,且儲存在 <install-dir>\AppScan Enterprise\Liberty\jre\bin\ikeyman.exe 中。您可以從 IBM developerWorks,下載有關 iKeyman 的其他資訊:iKeyman 手冊
    3. 一次新增一份 CA 憑證,並且各建立一個標籤。如果您使用 iKeyman,也可以各建立一個標籤。完成新增完整憑證鏈的所有憑證之後,請關閉 iKeyman 工具。
  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. 修改 server.xml 檔,以施行 SSL 通訊協定、設定信任金鑰儲存庫,以及設定 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 是預設值。
    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="uid=${SubjectCN}"
        註: LDAP 目錄中的 "uid" 必須符合憑證的屬性。請修改這個過濾器範例,使其對映至您的環境。在本例中,如果憑證的 "SubjectCN" 是 "CN=IBM",則 LDAP 目錄中的使用者名稱 (uid) 也必須是 "IBM"。
      本例顯示使用 IBM® Tivoli® Directory Server 的 LDAP 登錄配置。LDAP 使用者 ID 會比對儲存在 CAC 卡之憑證中的主旨 CN:

      <ldapRegistry ldapType="IBM Tivoli Directory Server" host="<<host name>>"  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,然後再次登入。現在,您應該是管理者。

結果

使用「通用存取卡」的使用者可以登入 AppScan® Enterprise,而不需提供使用者名稱與密碼。