在使用Java的vSphere客户端SDK中检测当前用户是否具有管理员权限

时间:2017-05-30 06:03:49

标签: java vmware vsphere vcenter

我正在使用vim25库建立与vCenter的连接,我可以使用以下代码登录,

vimport.login(serviceContent.getSessionManager(), username, password, null);

现在,我想检查一下这个用户是否具有管理员权限,我们如何借助vSphere客户端SDK在Java中实现?

2 个答案:

答案 0 :(得分:0)

vSphere Client SDK用于构建UI插件,因此我假设您想根据用户权限过滤掉插件扩展。 这是通过<privilege>清单中扩展定义上使用的plugin.xml元数据标签完成的。

带有说明和示例的SDK文档:Filtering Extensions,“基于用户权限级别的过滤”部分。

答案 1 :(得分:0)

vSphere权限模型有两个方面:

  • vCenter特权,这些特权被组合成角色,然后作为对vCenter清单的特定部分的权限分配给用户或组。通常,每个vCenter操作都根据用户对该对象具有的操作的实际权限进行验证。因此,原则上您想要的是检查是否具有特定的权限,而不是他是否是管理员。第二个更多是次要概念,它来自内置的 Administrator 角色,具有完整的特权集,但是在某些情况下可能根本不授予用户 部分库存。我的建议是弄清楚您真正关心的是什么实际权限以及需要检查的清单的哪些部分。有某些API(例如全局单例托管对象上的API,例如 TaskManager )可以简单地检查在 rootFolder 级别上授予的权限。

  • SSO组-一些服务检查SSO令牌是否包含有关特定组成员身份的声明。这通常是通过与身份验证相关的服务完成的,这些服务无法附带vCenter权限。以您的示例为例,我假设您没有获得SSO令牌,也不在乎此模型。