通用访问卡是美国的穿制服现役军人、选定预备人员、DoD 文职员工以及合格承包商人员的标准标识。持卡人可以进入大楼和受控空间,并可访问 DoD 计算机网络和系统。CAC 可以用于访问配备了各种智能卡读卡器的计算机和网络。将 CAC 插入读卡器时,设备将要求用户输入 PIN。本任务帮助您设置 AppScan® Enterprise 以允许通过 LDAP 进行 CAC 认证,以便用户无需提供用户名和密码即可登录到 AppScan® Enterprise。
开始之前
在安装和配置期间,确保在配置向导的“认证机制”屏幕中选择 LDAP 认证。注:
- 如果在应用 AppScan Enterprise v9.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 注销。
- 将完整认证中心链导入信任库。
- 创建密钥库文件或使用现有密钥库。
注: 要生成密钥库,您可以使用密钥工具。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 中。您可以从 IBM DeveloperWorks 下载关于 iKeyman 的更多信息:
iKeyman 指南。
-
一次添加一个 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 文件,以将基于表单的认证替换为客户机证书认证。
注: 在修改 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>
部分,并确保其中包括 <ssl-Protocol="SSL_TLSv2">
。
- 将这些属性添加到
<ssl>
trustStoreRef="cacTrustKeyStoreID"
,其中 cacTrustKeyStoreID
是在文件 <keystore>
部分中配置的密钥库标识。
clientAuthenticationSupported="true"
完成编辑后,该部分可能类似于以下示例:<ssl id="defaultSSLConfig" sslProtocol="SSL_TLSv2" 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 用户而非其 UserId。
-
然后运行此查询:
Update UserInfo set UserTypeId=5, LicenseType=3, EffectiveType=32768
,其中 UserId 是您的 CAC 管理用户的标识。
-
从 AppScan Enterprise 注销,然后再次登录。您现在应是管理员。
结果
使用通用访问卡的用户无需提供用户名和密码即可登录到 AppScan® Enterprise。