可以使用以下信息和过程配置 Identity Manager 的 X509 证书验证。
要在 Identity Manager 中支持基于 X509 证书的验证,请确保正确配置双向(客户机和服务器)SSL 验证。从客户角度而言,这表明支持 X509 标准的用户证书应已导入到浏览器(或可通过智能卡读卡机获得),用于签署用户证书的信任证书应已导入到信任证书的 Web 应用服务器密钥库中。
还必须为客户机验证启用所用的客户机证书。
使用 Internet Explorer,选择“工具”,然后选择“Internet 选项”。
选择“内容”选项卡。
在“证书”区域中,单击“证书”。
选择客户机证书,然后单击“高级”。
在 "Certificate Purposes" 区域中,确保选择 "Client Authentication" 选项。
以 "Configurator"(或同等权限)身份登录 "Administrator Interface"。
选择“配置”,然后选择“登录”以显示“登录”页。
单击“管理登录模块组”以显示“登录模块组”页。
从列表中选择登录模块组。
从“分配登录模块”列表中选择“Identity Manager X509 证书登录模块”。Identity Manager 将显示“修改登录模块”页。
设置成功登录的要求。
可以接受以下值:
必需。要求登录模块必须成功。无论验证成功或失败,都将继续验证列表中的下一个登录模块。如果这是唯一的登录模块,则管理员登录成功。
必备。要求登录模块必须成功。如果验证成功,将继续验证列表中的下一个登录模块。如果验证失败,则验证不再继续进行。
足够。不要求登录模块必须成功。如果验证成功,将不再继续验证列表中的下一个登录模块,并且管理员成功登录。如果验证失败,将继续验证列表中的下一个登录模块。
可选。不要求登录模块必须成功。无论验证成功或失败,都将继续验证列表中的下一个登录模块。
选择登录关联规则。这可以是内置规则或自定义的关联规则。(有关创建自定义关联规则的信息,参见下节。)
单击“保存”,返回到“修改登录模块组”页。
或者,可以重新排列登录模块顺序(如果为登录模块组分配了多个登录模块),然后单击“保存”。
如果尚未为登录应用程序分配登录模块组,请进行分配。在 "Login Module Groups" 页中单击 "Return to Login Applications",然后选择登录应用程序。为应用程序分配登录模块组后,单击“保存”。
如果 waveset.properties 文件中的 allowLoginWithNoPreexistingUser 选项设置为 true 值,则配置 Identity Manager X509 证书登录模块时会提示您选择“新建用户名称规则”。在使用相关登录关联规则未找到用户时,可使用此规则确定如何命名新创建的用户。新建用户名称规则与登录关联规则的可用输入参数相同。它返回单个字符串,该字符串是用于创建新 Identity Manager 用户帐户的用户名。idm/sample/rules 中包含一个名为 NewUserNameRules.xml 的新建用户名称规则示例。
Identity Manager X509 证书登录模块使用登录关联规则确定如何将证书数据映射到相应的 Identity Manager 用户。Identity Manager 中包含一个名为“通过 X509 证书 SubjectDN 相关联”的内置关联规则。
您也可以添加自己的关联规则。请参阅位于 idm/sample/rules 目录中作为示例的 LoginCorrelationRules.xml。
每个关联规则都必须遵循以下准则:
必须将其 authType 属性设置为 LoginCorrelationRule。
它会返回 AttributeCondition 列表实例,登录模块利用该实例查找相关的 Identity Manager 用户。例如,登录关联规则可能返回按电子邮件地址搜索相关 Identity Manager 用户的 AttributeCondition。
传递到登录关联规则的参数有:
标准 X509 证书字段(如 subjectDN、issuerDN 和有效日期)
重要和非重要扩展属性
传递给登录关联规则的证书参数的命名约定为
cert.field name.subfield name
可用于规则的示例参数名包括:
cert.subjectDN
cert.issuerDN
cert.notValidAfter
cert.notValidBefore
cert.serialNumber
使用传入参数的登录关联规则将返回一个列表,其中包含一个或多个 AttributeCondition。Identity Manager X509 证书登录模块使用它们来查找相关的 Identity Manager 用户。
idm/sample/rules 中包含一个名为 LoginCorrelationRules.xml 的登录关联规则范例。
创建自定义关联规则后,必须将其导入 Identity Manager。在管理员界面中选择“配置”,然后选择“导入交换文件”以使用文件导入工具。
要测试 SSL 连接,可使用 SSL 转至已配置的应用程序界面的 URL(例如 https://idm007:7002/idm/user/login.jsp)。您会被告知正在进入一个安全站点,然后提示您指定要发送 Web 服务器的个人证书。
通过 X509 证书进行验证的问题应以错误消息形式在登录表单中报告。
要获得更全面的诊断,可在 Identity Manager 服务器中启用对以下各个类和级别的跟踪:
com.waveset.session.SessionFactory 1
com.waveset.security.authn.WSX509CertLoginModule 1
com.waveset.security.authn.LoginModule 1
如果在 HTTP 请求中客户机证书属性没有命名为 javaxservlet.request.X509Certificate,则会收到一条消息,说明无法在 HTTP 请求中找到此属性。
可启用对 SessionFactory 的跟踪,以查看完整的 HTTP 属性列表,并确定 X509 证书的名称。
使用 Identity Manager 调试工具(Identity Manager 的“调试”页)编辑 LoginConfig 对象。
将 Identity Manager X509 证书登录模块的 <LoginConfigEntry> 中的 <AuthnProperty> 名称更改为正确的名称。
保存后重试。
也可能需要在登录应用程序中先删除,然后再重新添加 Identity Manager X509 证书登录模块。