![[IBM i]](../images/iseries.gif)
密码编码和加密
通过密码编码可以阻止偶然查看服务器配置和属性文件中的密码。
缺省情况下,将在各种 WebSphere® Application Server ASCII 配置文件中使用简单屏蔽算法来自动对密码进行编码。另外,可以在 Java™ 客户机以及 WebSphere Application Server 的管理命令所使用的属性文件中以手动方式对密码进行编码。
缺省编码算法称为 XOR。备用 OS400 编码算法只能与利用本机验证列表 (*VLDL) 对象的 WebSphere Application Server for IBM® i 配合使用。对于 OS400 算法,密码以加密形式存储在验证列表中。配置文件中包含已存储的密码的索引,但不包含已屏蔽的密码的索引,与 XOR 算法的情形相同。
{algorithm}encoded_password
其中
{algorithm} 是一个标记,它指定用来对密码进行编码的算法,算法包括 XOR 或 OS400。encoded_password 变量是密码的编码值。当服务器或客户机需要对密码解码时,它就会使用该标记来确定使用哪种算法,然后使用该算法来对经过编码的密码进行解码。Java 客户机使用 sas.client.props 文件中的密码,该文件位于 profile_root/properties 目录中。
要将密码编码与 Java 客户机配合使用,必须使用 PropFilePasswordEncoder 工具在 sas.client.props 文件中以手动方式对密码进行编码。
WebSphere Application Server 的管理命令使用 soap.client.props 文件中的密码来建立 SOAP 连接,该文件也位于 profile_root/properties 目录中。某些管理命令有选择地使用 profile_root/properties 的 sas.client.props 文件中的密码来建立“远程方法调用”(RMI) 连接。要将密码编码与管理命令配合使用,必须使用 PropFilePasswordEncoder 工具在 soap.client.props 和 sas.client.props 文件中手动编码密码。
使用 OS400 密码编码算法时要考虑的问题
- 必须将操作系统值 QRETSVRSEC 设置为 1,才能在主管 Java 客户机应用程序或 WebSphere Application Server 的系统上使用 OS400 密码编码算法。借助此设置,WebSphere Application Server 可以从验证列表中检索加密密码。注意: 系统值 QRETSVRSEC 会影响对操作系统上所有验证列表中的加密数据的访问。如果此设置与您使用的操作系统的安全策略不一致,那么不要使用 OS400 密码编码算法。
- 仅当 WebSphere Application Server 的管理域中所有服务器实例都位于同一 IBM i 系统上时,才能将 OS400 算法与服务器实例配合使用。应考虑下列相关问题:
- WebSphere Application Server 的管理域可以扩展为跨越多个 IBM i 系统。仅当一个管理域中的所有服务器都位于同一 IBM i 系统上时,才能使用 OS400 密码算法。
- 服务器配置 XML 文件包含经过编码的密码。如果 XML 文件中包含的密码是使用 OS400 编码算法进行编码的,那么那些编码仅对于最初对密码进行编码所在的 IBM i 系统上的 Application Server 概要文件有效。那些包含用 OS400 编码算法进行编码的密码的配置文件副本不能用来配置其他 IBM i 系统上的服务器。
- 必须将一个管理域中的所有服务器实例配置为使用同一本地验证列表 (*VLDL) 对象。
- 对于 Java 客户机,可以在任何 IBM i 系统上使用 OS400 密码算法。但是,选项 1 必须安装在主管 Java 客户机的系统上。
- 如果在使用 OS400 编码算法对密码进行编码时出错,那么使用 XOR 编码算法来对该密码进行编码。如果管理员以手动方式创建验证列表对象,但没有为 IBM i QEJB 用户概要文件授予对验证列表对象的足够权限,那么可能会发生错误。