管理用户

通过定义用户、组、角色和权限,可以控制有权访问 XenServer 主机和池的用户及其可执行的操作。

首次安装 XenServer 时,会自动将一个用户帐户添加到 XenServer 中。此帐户是本地超级用户 (LSU) 或 root 用户,XenServer 在本地对其进行身份验证。

LSU 或 root 是一个专用于系统管理的特殊用户帐户,该帐户具有所有权限。在 XenServer 中,LSU 是安装时的默认帐户。XenServer 会对 LSU 帐户进行身份验证。LSU 无需任何外部身份验证服务。如果外部身份验证服务失败,LSU 仍可登录并管理系统。LSU 始终可以通过 SSH 访问 XenServer 物理服务器。

您可以通过 XenCenter 的“用户”选项卡或 xe CLI 添加 Active Directory 帐户来创建更多用户。如果您的环境不使用 Active Directory,则您就只能使用 LSU 帐户。

注意:

创建用户时,XenServer 不会自动为新创建的用户帐户分配 RBAC 角色。因此,在您为这些帐户分配角色之前,它们对 XenServer 池没有任何访问权限。

这些权限通过角色授予,如使用 Active Directory (AD) 对用户进行身份验证部分中所述。

使用 Active Directory (AD) 对用户进行身份验证

如果您希望在服务器或池上具有多个用户帐户,则必须使用 Active Directory 用户帐户进行身份验证。AD 帐户允许 XenServer 用户使用其 Windows 域凭据登录池。

可以为特定用户配置不同的访问权限级别,方法是:启用 Active Directory 身份验证,添加用户帐户,然后为这些帐户分配角色。

Active Directory 用户可以使用 xe CLI(传递适当的 -u-pw 参数),也可以使用 XenCenter 连接到该主机。身份验证基于每个资源池执行。

使用者控制用户帐户的访问权限。XenServer 中的一个使用者对应目录服务器上的一个实体(用户或组)。启用外部身份验证后,XenServer 将根据本地 root 用户的凭据来检查用于创建会话的凭据(以防目录服务器不可用),然后根据使用者列表进行检查。要允许访问,请为要向其授予访问权限的用户或组创建一个使用者条目。可以使用 XenCenter 或 xe CLI 创建使用者条目。

如果您熟悉 XenCenter,请注意,在提及 Active Directory 和用户帐户功能时,XenServer CLI 使用的术语略有差别:XenCenter 术语 XenServer CLI 术语 用户 使用者 添加用户 添加使用者

XenServer 环境中的 Active Directory 身份验证

虽然 XenServer 是基于 Linux 的,但 XenServer 允许您使用 Active Directory 帐户作为 XenServer 用户帐户。为此,它会将 Active Directory 凭据传递到 Active Directory 域控制器。

当您将 Active Directory 添加到 XenServer 后,Active Directory 用户和组即成为 XenServer 使用者。使用者在 XenCenter 中被称为用户。当您在 XenServer 中注册使用者时,系统会在您登录时使用 Active Directory 对用户/组进行身份验证。用户和组不需要通过使用域名来限定其用户名。

要限定某个用户名,必须以下层登录名格式键入该用户名,例如 mydomain\myuser

注意:

默认情况下,如果未限定用户名,XenCenter 将尝试使用用户加入的域使用户登录 AD 身份验证服务器。LSU 帐户属例外情况,对于 LSU 帐户,XenCenter 始终首先在本地(即在 XenServer 上)对其进行身份验证。

外部身份验证工作流程如下:

  1. 将连接到服务器时提供的凭据传递到 Active Directory 域控制器,进行身份验证。

  2. 域控制器对凭据进行检查。如果凭据无效,身份验证立即失败。

  3. 如果凭据有效,会对 Active Directory 控制器进行查询,以获取与凭据相关联的使用者标识符和组成员身份。

  4. 如果使用者标识符与 XenServer 中存储的某个标识符匹配,则身份验证将成功。

您加入域后,可以为池启用 Active Directory 身份验证。但是,池加入域后,只有该域(或与该域具有信任关系的域)中的用户才能连接到该池。

注意:

不支持手动更新配置了 DHCP 的网络 PIF 的 DNS 配置,且手动配置可能会导致 AD 集成失败或停止工作,从而导致用户身份验证失败或停止工作。

配置 Active Directory 身份验证

XenServer 支持使用运行 Windows 2008 或更新版本的 Active Directory 服务器。

要对 XenServer 主机使用 Active Directory 身份验证,必须对 Active Directory 服务器(配置为允许互操作)和 XenServer 主机使用相同的 DNS 服务器。 在某些配置中,Active Directory 服务器本身可以提供 DNS。也可以使用 DHCP 为 XenServer 主机提供 IP 地址和 DNS 服务器列表,来实现上述目标。或者,可以在使用手动静态配置时设置 PIF 对象的值或使用安装程序。

Citrix 建议您启用 DHCP 来广播主机名称。请勿为主机分配主机名 localhostlinux

警告:

XenServer 主机名在 XenServer 部署中必须唯一。

请注意以下问题:

  • XenServer 使用其主机名在 AD 数据库中标记其 AD 条目。如果两个具有相同主机名的 XenServer 主机加入同一个 AD 域,则第二个 XenServer 会覆盖第一个 XenServer 的 AD 条目。无论这些主机属于相同池还是不同池,都会覆盖。这会导致第一个 XenServer 上的 AD 身份验证停止工作。

    如果这两个 XenServer 主机加入不同的 AD 域,则可以使用相同的主机名。

  • XenServer 主机可以位于不同的时区,因为比较的是 UTC 时间。为确保正确的同步,您可以为 XenServer 池和 Active Directory 服务器使用相同的 NTP 服务器。

  • 不支持混合身份验证池。不能将池中的某些服务器配置为使用 Active Directory,而另一些不使用。

  • XenServer Active Directory 集成使用 Kerberos 协议与 Active Directory 服务器进行通信。因此,XenServer 不支持与未使用 Kerberos 的 Active Directory 服务器进行通信。

  • 要确保使用 Active Directory 的外部身份验证成功,XenServer 主机上的时钟必须与 Active Directory 服务器上的时钟保持同步。在 XenServer 加入 Active Directory 域时,将会检查同步,如果服务器之间偏差过大,身份验证将失败。

警告:

主机名必须由不超过 63 个字母数字字符组成,不得使用纯数字名称。

在启用 Active Directory 身份验证后向池添加服务器时,系统会提示您在要加入池的服务器上配置 Active Directory。系统提示您在要加入的服务器上输入凭据时,键入具有足够权限的 Active Directory 凭据,以将服务器添加到该域。

Active Directory 集成

请确保以下防火墙端口对出站流量打开,以便 XenServer 能够访问域控制器。

端口 协议 使用
53 UDP/TCP DNS
88 UDP/TCP Kerberos 5
123 UDP NTP
137 UDP NetBIOS 名称服务
139 TCP NetBIOS 会话 (SMB)
389 UDP/TCP LDAP
445 TCP TCP 上的 SMB
464 UDP/TCP 计算机密码更改
3268 TCP 全局目录搜索

注意:

  • 要使用 iptables 在 Linux 计算机上查看防火墙规则,请运行以下命令:iptables - nL
  • XenServer 使用 PowerBroker Identity Services (PBIS) 对 AD 服务器中的 AD 用户进行身份验证,以及加密与 AD 服务器的通信。

XenServer 如何管理用于 AD 集成的计算机帐户密码?

与 Windows 客户端计算机类似,PBIS 将自动更新计算机帐户密码。PBIS 每 30 天续订一次密码,或者按 AD 服务器中的计算机帐户密码续订策略的规定进行续订。

在池上启用外部身份验证

可通过 XenCenter 或 CLI 使用以下命令配置使用 Active Directory 的外部身份验证。

xe pool-enable-external-auth auth-type=AD \
  service-name=full-qualified-domain \
  config:user=username \
  config:pass=password

指定的用户必须具有 Add/remove computer objects or workstations 权限,这是域管理员的默认权限。

如果您未在 Active Directory 和您的 XenServer 主机使用的网络上使用 DHCP,可使用以下方法设置 DNS:

  1. 设置域 DNS 后缀搜索顺序,用以解析非 FQDN 条目:

      xe pif-param-set uuid=pif-uuid_in_the_dns_subnetwork \
      “other-config:domain=suffix1.com suffix2.com suffix3.com”
    
  2. 配置 XenServer 主机上使用的 DNS 服务器:

    xe pif-reconfigure-ip mode=static dns=dnshost ip=ip \
    gateway=gateway netmask=netmask uuid=uuid
    
  3. 手动设置使用(与您的 DNS 服务器处于同一网络的)PIF 的管理接口:

    xe host-management-reconfigure pif-uuid=pif_in_the_dns_subnetwork
    

注意:

外部身份验证是每个主机都具有的属性。但是,Citrix 建议您基于每个池启用和禁用外部身份验证。利用每个池设置,XenServer 可以处理在特定主机上启用身份验证时出现的任何故障。XenServer 还可以根据需要回滚所做的任何更改,从而确保整个池的配置保持一致。使用 host-param-list 命令检查主机属性,并通过检查相关字段的值确定外部身份验证的状态。

可使用 XenCenter 或以下 xe 命令禁用 Active Directory 身份验证:

xe pool-disable-external-auth

用户身份验证

要允许用户访问您的 XenServer 主机,必须为该用户或其所在的组添加一个使用者。(仍以常规方法检查过渡组成员。例如:为组 A 添加一个使用者,其中组 A 包含组 Buser 1 是组 B 的成员,将允许 user 1 具有访问权限)。如果您要管理 Active Directory 中的用户权限,可以创建一个组,然后在该组中添加和删除用户。或者,可以根据您的身份验证要求在 XenServer 中添加和删除单个用户,也可以添加和删除用户和组的组合。您可以从 XenCenter 或使用 CLI 管理使用者列表,如以下部分中所述。

对一个用户进行身份验证时,首先针对本地 root 帐户检查凭据,以支持您恢复 AD 服务器失败的系统。如果凭据(用户名和密码)不匹配,则会向 AD 服务器发出身份验证请求。如果身份验证成功,将检索用户的信息,并根据本地使用者列表验证此信息。如果身份验证失败,访问将被拒绝。如果用户或用户的过渡组成员身份中的组在使用者列表中,根据使用者列表进行的验证将成功。

注意:

使用 Active Directory 组为需要主机 SSH 访问权限的池管理员用户授予访问权限时,Active Directory 组中的用户数不得超过 500。

将 AD 使用者添加到 XenServer:

xe subject-add subject-name=entity name

实体名称是要为其授予访问权限的用户或组的名称。虽然在无需消除歧义的情况下行为会相同,但您仍然可以包括实体的域(例如,“’xendt\user1”而非“user1”)。

查找用户的使用者标识符,标识符是用户或包含用户的组。删除一个组将删除该组中所有用户的访问权限,前提是这些用户未在使用者列表中指定。可使用 subject list 命令查找用户的使用者标识符:

xe subject-list

此命令将返回一个含有所有用户的列表。

要对该列表应用过滤器,例如,要查找 testad 域中用户 user1 的使用者标识符,可使用以下命令:

xe subject-list other-config:subject-name='testad\user1'

使用 subject-remove 命令删除用户,传递上一步中获得的使用者标识符:

xe subject-remove subject-uuid=subject-uuid

您可以结束此用户已通过身份验证的任何当前会话。有关详细信息,请参阅以下部分中使用 xe 终止已通过身份验证的所有会话使用 xe 终止单个用户会话。如果不结束会话,权限已被撤销的用户仍可以在注销前继续访问系统。

运行以下命令可识别具有访问 XenServer 主机或池权限的用户和组的列表:

xe subject-list

删除用户的访问权限

用户通过身份验证后,即可访问服务器,直到用户自己结束其会话或其他用户结束其会话为止。从使用者列表中删除某个用户或从使用者列表中的某个组中删除该用户不会自动撤销该用户具有的已通过身份验证的任何会话。用户可以使用 XenCenter 或自己已创建的其他 API 会话继续访问池。XenCenter 和 CLI 提供了用于强制结束单个会话或所有活动会话的功能。请参阅 XenCenter 帮助了解使用 XenCenter 的过程信息,或参阅以下部分了解使用 CLI 的过程。

使用 xe 终止已通过身份验证的所有会话

使用 xe 运行以下 CLI 命令可结束已通过身份验证的所有会话:

xe session-subject-identifier-logout-all

使用 xe 终止单个用户会话

  1. 确定要注销其会话的使用者标识符。使用 session-subject-identifier-listsubject-list xe 命令可以找到使用者标识符。第一个命令显示具有会话的用户。第二个命令显示所有用户,但可以对其进行过滤。例如,使用 xe subject-list other-config:subject-name=xendt\\user1 之类的命令。可能需要所示的双反斜杠,具体取决于您的 shell。

  2. 使用 session-subject-logout 命令,将上一步确定的使用者标识符作为参数传递,例如:

    xe session-subject-identifier-logout subject-identifier=subject-id
    

退出 AD 域

警告:

退出域(即,禁用 Active Directory 身份验证,并断开池或服务器与其域之间的连接)时,通过 Active Directory 凭据进行身份验证以连接到池或服务器的所有用户均会断开连接 。

使用 XenCenter 退出 AD 域。有关详细信息,请参阅 XenCenter 帮助。也可以运行 pool-disable-external-auth 命令,在必要时指定池 UUID。

注意:

退出域不会从 AD 数据库中删除主机对象。有关如何删除禁用的主机条目的信息,请参阅 Microsoft 支持文章