本地操作系统注册表

借助本地操作系统的注册表实现,WebSphere® Application Server 认证机制可以使用本地操作系统的用户帐户数据库。

注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM® i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.logSystemErr.logtrace.logactivity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用 HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。

[IBM i]如果要使用本地操作系统注册表来表示那些访问 WebSphere Application Server 资源的主体,并不需要完成任何特殊用户注册表设置步骤。本地操作系统注册表用于对访问 WebSphere Application Server 资源的用户进行认证和授权,但是它并不用于那些访问操作系统资源的 WebSphere Application Server 用户。WebSphere Application Server 并不在 Application Server 用户的操作系统用户概要文件下运行。相反,WebSphere Application Server 在由 Application Server 管理员配置的操作系统概要文件下运行。

[IBM i]如果要授权用户使用任何 WebSphere Application Server 资源,那么操作系统中必须存在该用户的用户概要文件。使用“创建用户概要文件”(CRTUSRPRF) 命令来创建可供 WebSphere Application Server 使用的新用户标识。

[AIX Solaris HP-UX Linux Windows]轻量级目录访问协议 (LDAP) 是一个集中式注册表。大多数本地操作系统注册表不是集中式注册表。

[AIX Solaris HP-UX Linux Windows]WebSphere Application Server 提供 Windows 本地帐户注册表和域注册表的实现,以及 Linux、Solaris 和 AIX® 用户帐户注册表的实现。将通过稍后会讨论的 LDAP 用户注册表实现来支持 Windows Active Directory。

[AIX Solaris HP-UX Linux Windows]
注: 对于 Active Directory(域控制器),三个组范围为 Domain Local Group、Global Group 和 Universal Group。对于 Active Directory(域控制器),两个组类型为 Security 和 Distribution。
创建组时,缺省值为 Global,缺省类型为 Security。借助 Windows 2003 域控制器的 Windows NT 域注册表支持,WebSphere Application Server 仅支持类型为“安全性”的全局组。因为 Active Directory 支持所有组作用域和类型,所以如果使用 Windows 2003 域控制器,那么建议使用 Active Directory 注册表支持(而不使用 Windows NT 域注册表)。Active Directory 还支持 Windows NT 域注册表不支持的嵌套组。Active Directory 是集中式控制注册表。
注: 因为 WebSphere Application Server 可以安装在任何平台的任何机器上,所以它不必安装域的成员。注意,Windows NT 域本机调用将只返回未产生错误的支持组。

[AIX Solaris HP-UX Linux Windows][IBM i]因为每台机器都有自己的用户注册表,所以,对于应用程序服务器分散在多台机器上的 WebSphere Application Server 环境,不要使用本地操作系统注册表。

[AIX Solaris HP-UX Linux Windows]Windows 域注册表和“网络信息服务”(NIS) 属于例外情况。它们都是集中式注册表。WebSphere Application Server 支持 Windows 域注册表,但不支持 NIS。

[AIX Solaris HP-UX Linux Windows][IBM i]如先前所提及的那样,授权检查期间使用从用户注册表采用的访问标识。因为这些标识通常是唯一的标识,所以即使每台机器上都存在确切的用户和密码,它们对每台机器来说也是不同的。

[AIX Solaris HP-UX Linux Windows][IBM i]当前在使用本地操作系统用户注册表时,不支持 Web 客户机证书认证。但是,Java™ 客户机证书认证却可以和本地操作用户注册表一起工作。Java 客户机证书认证将证书域名的第一个属性映射至用户注册表中的用户标识。

[AIX Solaris HP-UX Linux Windows][IBM i]即使 Java 客户机证书正确工作,在 SystemOut.log 文件中也会显示以下错误:

CWSCJ0337E: 不支持 mapCertificate 方法

该错误是针对 Web 客户机证书的;但是也会对 Java 客户机证书显示。对于 Java 客户机证书,请忽略此错误。

[z/OS]本地操作系统注册表是综合系统中的一个集中式注册表。

[z/OS]WebSphere Application Server 使用系统授权设施 (SAF) 接口。SAF 接口由 MVS™ 定义,以便使应用程序能够使用系统授权服务或注册表来控制对资源(例如数据集和 MVS 命令)的访问。SAF 能够直接通过资源访问控制设施 (RACF®) 或者第三方提供的 z/OS 安全提供程序来处理安全性授权请求。除非选择本地操作系统作为用户注册表,否则必须提供从用户注册表标识至 SAF 用户标识的映射。有关更多信息,请参阅定制系统授权工具映射模块

[z/OS]当前在使用本地操作系统用户注册表时,支持 Web 客户机证书认证。当您选择本地操作系统时,可以通过 Web 和 Java 客户机将数字证书映射至 MVS 身份。可以使用证书名称过滤器简化映射。如果正在使用 RACF 作为安全服务器,那么 RACDCERT MAP 命令会创建一个用于将多个用户身份映射到一个数字证书的资源概要文件以简化证书管理、节约 RACF 数据库中的存储空间、维护可计帐性或维护访问控制粒度。

[AIX Solaris HP-UX Linux Windows]

必需的特权

正在运行 WebSphere Application Server 进程的用户需要足够的操作系统特权才能调用 Windows 系统应用程序编程接口 (API),以认证并获取来自 Windows 操作系统的用户和组信息。此用户登录机器,或者如果作为服务运行,那么是以用户标识登陆。根据机器,该机器是一台单机、属于某个域或者它本身就是域控制器,不同的情况将具有不同的访问需求。

  • 对于单机,用户应满足下列条件:
    • 是管理组的成员。
    • 具有“作为操作系统的一部分”特权。
    • 具有“作为服务登录”特权(如果服务器作为服务运行的话)。
  • 对于作为域成员的机器,仅域用户可以启动服务器进程并且:
    • 在域控制器上的域安全策略中具有“作为操作系统的一部分”特权。
    • 在本地机器上的本地安全策略中具有“作为操作系统的一部分”特权。
    • 在本地机器上具有“作为服务登录”特权(如果服务器作为服务运行的话)。

      用户是域用户而不是本地用户,这暗示着当机器是域的一部分时,仅域用户可以启动该服务器。

  • 对于域控制器机器,用户:
    • 是域控制器中域管理组的成员。
    • 在域控制器上的域安全策略中具有“作为操作系统的一部分”特权。
    • 在域控制器上具有“作为服务登录”特权(如果服务器作为服务运行的话)。
如果运行服务器的用户没有所需的特权,那么您可能在日志文件中看到以下某条异常消息:
  • 客户机不具备必需的特权。
  • 拒绝访问。
避免故障 避免故障: 如果您正在使用命令提示符,那么必须使用管理员特权启动应用程序服务器。从通过执行以下操作启动的命令提示符窗口启动应用程序服务器:
  • 右键单击命令提示符快捷方式。
  • 单击用管理员帐户运行

    以管理员身份打开命令提示符窗口时,将出现一个操作系统对话框,询问您是否要继续操作。单击继续以继续操作。

gotcha
[AIX Solaris HP-UX Linux Windows]

域用户注册表和本地用户注册表

当启动 WebSphere Application Server 时,安全性运行时初始化进程将动态地尝试确定本地机器是否是 Windows 域的成员。如果机器是域的一部分,那么缺省情况下本地注册表用户或组和域注册表用户和组都可以用于进行认证和授权,优先使用域注册表。在安全角色映射期间存在的用户和组的列表包含来自本地用户注册表和域用户注册表的用户和组。可以通过关联的主机名来区分用户和组。

WebSphere Application Server 不支持可信的域。

如果该机器不是 Windows 系统域的成员,那么将使用该机器的本地用户注册表。

[AIX Solaris HP-UX Linux Windows]

使用域用户注册表和本地操作系统注册表

缺省情况下,当主管 WebSphere Application Server 进程的机器是某个域的成员时,将同时使用本地用户注册表和域用户注册表。以下部分描述更多关于此主题的信息,并建议一些最佳实践以避免不利的结果。
注: 尽管本节并未直接描述 z/OS 注意事项,但是您应当知道,这些注册表是否设置得合适将影响所有安全性操作。
  • 最佳实践
    • 通常,如果本地和域注册表不包含常见用户或组,那么它对管理员来说更简单且消除了不利的副作用。如果有可能,请为用户和组授予对唯一安全角色(包括服务器标识和管理角色)的访问权。在这种情况下,从本地用户注册表或域用户注册表中选择要映射至角色的用户和组。
    • 在本地用户注册表和域用户注册表中同时存在相同用户或组的情况下,建议至少要让服务器标识以及映射至管理角色的用户和组在注册表中是唯一的,并且仅存在于域中。
    • 如果存在用户公共集,设置不同的密码以确保已认证了适当的用户。
  • 它的工作方式
    • 当机器是域的一部分时,域用户注册表优先于本地用户注册表。例如,当用户登录至系统时,域用户注册表首先就会尝试对该用户进行认证。如果认证失败,就会使用本地用户注册表。将用户或组映射至角色时,将首先从域用户注册表中获取用户和组信息。如果失败,那么会尝试从本地用户注册表中获取用户和组信息。
    • 但是,将标准用户名或组名(具有附加的域名或主机名)映射至角色时,将只从域用户注册表中获取信息。使用管理控制台或脚本以获取标准用户和组名,这是建议的将用户和组映射至角色的方法。
      提示: 例如,一台机器上的本地操作系统用户注册表中的用户 Bob 与另一台机器上的域用户注册表中的用户 Bob 不相同,这是因为 Bob 的唯一标识(在本例中是安全身份 [SID])在其他用户注册表中是不同的。
  • 示例
    MyMachine 机器属于 MyDomain 域。且 MyMachine 机器中包含下列用户和组:
    • MyMachine\user2
    • MyMachine\user3
    • MyMachine\group2
    MyDomain 域中包含下列用户和组:
    • MyDomain\user1
    • MyDomain\user2
    • MyDomain\group1
    • MyDomain\group2
    下面是假定使用上述用户和组的一些情况:
    1. user2 登录至系统时,将使用域用户注册表来进行认证。如果因密码不一致(这只是作为一个示例)而导致认证失败,那么会使用本地用户注册表。
    2. 如果将 MyMachine\user2 用户映射至角色,那么只有 MyMachine 机器中的 user2 用户具有访问权。因此,如果本地用户注册表和域用户注册表上的 user2 密码相同,那么由于 user2 用户始终是使用域用户注册表来进行认证的,所以 user2 用户不能访问资源。因此,如果这两个用户注册表有一些相同的用户,那么建议您为它们提供不同的密码。
    3. 如果将 group2 组映射至角色,那么由于将首先从域用户注册表中获取 group2 信息,所以只有作为 MyDomain\group2 组成员的那些用户才能访问资源。
    4. 如果将 MyMachine\group2 组映射至角色,那么只有作为 MyMachine\group2 组成员的那些用户才能访问资源。特定组映射至角色(MyMachine\group2 而不只是 group2)。
    5. 因为 user3 用户只存在于一个用户注册表中,它是唯一的,所以使用 user3 用户或 MyMachine\user3 用户来映射至角色。

    如果用户以相同的密码存在于域注册表和本地用户注册表中,那么首先以域用户注册表授权会引起问题。在该情况下,由于用户是首先在域用户注册表中认证的,因此基于角色的授权会失败。此认证会生成一个唯一的域安全性标识,授权检查期间将在 WebSphere Application Server 中使用该标识。但是,本地用户注册表用于角色指定。域安全性标识与唯一安全性标识(与角色关联)不匹配。要避免该问题,将安全角色映射至域用户,而不是本地用户。

    如果涉及到多个节点,那么只能使用一个集中式存储库。这种用法意味着,因为用户和组唯一标识 (SID) 在不同节点上是不同的(如前所述),所以只能使用域用户注册表。

避免故障 避免故障: 在使用此修订包之前,如果 UNIX 系统上的本地操作系统用户注册表中包含许多组,那么该注册表可能找不到组名。由于存在内存限制而产生此问题,当注册表中包含数百个组时通常就会产生此问题。从此修订包开始时,缓冲区大小可以容许存在许多组。gotcha
[AIX Solaris HP-UX Linux Windows][IBM i]

使用本地用户注册表或域用户注册表

如果想从本地用户注册表或域用户注册表的其中之一来访问用户和组,那么应设置 com.ibm.websphere.registry.UseRegistry 属性。此属性可以设置为 localdomain。当此属性设置为 local(不区分大小写)时,将只使用本地用户注册表。当此属性设置为 domain(不区分大小写)时,将只使用域用户注册表。

通过完成以下步骤来访问管理控制台中的定制属性面板,然后在该面板中设置此属性:
  1. 单击安全性 > 全局安全性
  2. 在“用户帐户存储库”下,单击可用的领域定义下拉列表,选择本地操作系统,然后单击配置
  3. 在“其他属性”下面,单击定制属性
还可以使用 wsadmin 来配置此属性。当设置了属性时,不更改正在运行产品进程的用户的特权要求。例如,如果此属性设置为 local,那么正在运行进程的用户需要相同的特权,就好像未设置该属性一样。
[AIX Solaris HP-UX Linux Windows]

使用系统用户注册表

当使用系统用户注册表时,存在以下注意事项:
  • [AIX][HP-UX][Linux][Solaris]当使用系统用户注册表时,用于运行 WebSphere Application Server 进程的进程标识需要 root 权限来调用本地操作系统 API,以进行认证并获取用户或组信息。
  • [AIX][HP-UX][Linux][Solaris]仅使用本地机器用户注册表。网络信息服务 (NIS)(黄页)不受支持。
  • [HP-UX]如果正在使用本地操作系统用户注册表,那么必须以不可信方式配置 HP-UX。如果使用本地操作系统用户注册表,那么不支持可信方式。
  • [Linux][Solaris]

    要让 WebSphere Application Server 本地操作系统注册表在 Linux 和 Solaris 平台上起作用,必须存在影子密码文件。影子密码文件名为 shadow,位于 /etc 目录中。如果影子密码文件不存在,那么在启用管理安全性并将注册表配置为本地操作系统之后会发生错误。

    要创建影子文件,运行 pwconv 命令(不带有参数)。此命令从 /etc/passwd 文件创建 /etc/shadow 文件。在创建影子文件后,您可成功启用本地操作系统安全性。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_localos
文件名:csec_localos.html