VMware vSphere Web Services SDK编程指南(八)- 8.3 从 UserDirectory 获取用户和组信息

8.3 从 UserDirectory 获取用户和组信息

8.4 使用 HostLocalAccountManager 管理 ESXi 用户


本章包括以下主题:

8.1 认证和授权管理的相关对象
8.2 ESXi 和 vCenter 服务器的认证和授权
8.3 从 UserDirectory 获取用户和组信息
8.4 使用 HostLocalAccountManager 管理 ESXi 用户
8.5 使用 AuthorizationManager 管理角色和权限
8.6 通过 SessionManager 认证用户
8.7 使用凭据库(Credential Store)自动登录
8.8 使用 LicenseManager 管理许可证

本小节从第3节开始


8.3 从 UserDirectory 获取用户和组信息

UserDirectory 托管对象允许客户端应用程序获取在 VMware vSphere 服务器上的用户和组信息。属性和结果是不同的,这取决于服务器是vCenter服务器还是ESXi系统。

vCenter Server system: 域控制器、 Active Directory 或本地 Windows 账户库。
ESXi host:主机上 /etc/passwd 下的Linux 密码文件。

例如,vCenter 服务器用户账户可以被在一个 Windows Active Directory 服务器或域控制器管理,从其中派生出 UserDirectory 的 domainList 属性。
对于 ESXi 系统,domainList 属性为空。

下图 8.2 显示了 UserDirectory 托管对象。

图 8.2 - UserDirectory 托管对象

这里写图片描述

UserDirectory 允许你使用 RetrieveUserGroups 方法获取用户和组信息,该方法可以从主机获取所有用户账户列表,并且可以根据指定的条件来过滤结果,查找指定的用户或组。
可以根据用户名、组名进行查找,以进行准确或者对部分字符串(子字符串)的匹配。

■ ESXi 不支持本地用户组,所以该方法不会返回主机的组信息,该方法会返回有关 Active Directory 组的信息。

■ 对于 ESXi 系统,查找返回 passwd 文件中的所有用户,如果该文件包含网络信息系统 (Network Information System,NIS) 或者 NIS+ 用户,RetrieveUserGroups 方法同样返回这些账户。

■ 对于 vCenter 服务器,查找范围限制在指定的 Windows 域,如果该域被忽略,查找将在本地用户和组中执行。


注意:不要为 ESXi 系统配置 NIS 或 NIS+,除非系统可以通过 UserDirectory.RetrieveUserGroups API 接受可用的 NIS (NIS+) 用户信息。


8.4 使用 HostLocalAccountManager 管理 ESXi 用户

HostLocalAccountManager 托管实体支持用户管理任务,它只在 ESXi 系统上可用。


注意:vCenter 服务器系统使用 Windows 用户管理设备。可查阅第二节中的 vCenter 服务器用户模型


下图 8.3 显示了 HostLocalAccountManager 托管对象。

图 8.3 - HostLocalAccountManager 托管对象

这里写图片描述

如上图所示,HostLocalAccountManager 为本地用户账户管理提供了如下方法:
■ CreateUser
■ RemoveUser
■ UpdateUser

这些方法接收一个 HostAccountSpec 数据对象,根据目标系统上的需求指定对象属性。
用户帐户需求的例子是密码长度的要求和对字典词汇的限制使用。

在 ESXi 系统上创建一个用户账户的步骤如下:

  1. 获取一个到目标系统 HostLocalAccountManager 的托管对象引用;

  2. 创建一个定义用户账户属性的数据对象 HostAccountSpec,包含描述和密码;
    根据你的 ESXi 系统要求的配置来定义帐户命名和密码,以符合用户帐户命名约定和密码要求,如最小长度、字符集和其它要求。

  3. 调用 HostLocalAccountManager.CreateUserAccount 方法,传递托管对象引用(第1步获得)和 HostAccountSpec 数据对象(第2步获得)。

在 ESXi 系统上创建用户账户之后,你可以通过使用 AuthorizationManager 方法授权这些用户访问虚拟组件。
具体可查阅下一节 使用 AuthorizationManager 管理角色和许可权限。




原文:
VMware vSphere 6.5 Documentation Center:Obtaining User and Group Information from UserDirectory

VMware vSphere 6.5 Documentation Center:Managing ESXi Users with HostLocalAccountManager