Определить, имеет ли текущий пользователь права администратора или нет в клиентском SDK vSphere с Java

Я использую библиотеку vim25 для установления соединения с vCenter и могу войти в систему с помощью следующего кода:

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

Теперь я хочу проверить, есть ли у этого пользователя права администратора. Как мы можем добиться успеха в Java с помощью клиентского SDK vSphere?


person Mayur Bhokase    schedule 30.05.2017    source источник
comment
Можете ли вы уточнить свой вариант использования? Вопрос о том, есть ли у пользователя права администратора, не определен четко. В vSphere role (например, администратор) — это набор privilege (например, добавить хост, удалить виртуальную машину и т. д.). permission — это, грубо говоря, назначение role для конкретного объекта данному пользователю. Например, пользователь Mayur является admin для определенной папки виртуальной машины. Таким образом, вы можете проверить, есть ли у пользователя роль администратора для определенного объекта, или вы можете проверить, есть ли у пользователя определенные привилегии для данного объекта (которые они могут иметь, даже если они не являются администраторами).   -  person YSK    schedule 30.05.2017
comment
См. также VMware документация для AuthorizationManager.   -  person YSK    schedule 30.05.2017
comment
Большое спасибо YSK, я новичок в использовании vsphere client sdk, поэтому я искал образец примера для справки. Но ваша информация очень полезна для меня. Я попробую. Еще раз, спасибо.   -  person Mayur Bhokase    schedule 30.05.2017


Ответы (2)


vSphere Client SDK используется для создания подключаемых модулей пользовательского интерфейса, поэтому я предполагаю, что вы хотите отфильтровать расширение подключаемого модуля на основе привилегий пользователя. Это делается с помощью тега метаданных <privilege>, используемого в определении расширения в манифесте plugin.xml.

Документация SDK с пояснениями и примерами: Фильтрация расширений, раздел «Фильтрация по уровню привилегий пользователя».

person Vladimir Velikov    schedule 03.10.2018

В модели разрешений vSphere есть два аспекта:

  • привилегии vCenter, которые объединены в роли, которые затем назначаются пользователям или группам в качестве разрешений на определенные части ресурсов vCenter. Обычно каждая операция vCenter проверяется на соответствие фактическим разрешениям для операции, которые пользователь имеет для объекта. Так что в принципе вы хотите проверить, имеет ли он конкретное разрешение, а не является ли он администратором. Второй — скорее второстепенная концепция, исходящая из встроенной роли Администратора, которая имеет полный набор привилегий, но которая может не вообще предоставляться пользователю в определенных случаях. части инвентаря. Что я предлагаю, так это выяснить, какое фактическое разрешение вас волнует, и какие части инвентаря вам нужно проверить. Существуют определенные API (те, что используются для глобальных одноэлементных управляемых объектов, таких как TaskManager), которые просто проверяют, что предоставлено на уровне rootFolder.

  • Группы системы единого входа. Некоторые службы проверяют, содержит ли токен системы единого входа утверждения о членстве в определенной группе. Обычно это делается службами, связанными с аутентификацией, которые не могут использовать разрешения vCenter. Учитывая ваш пример, я предполагаю, что вы не получаете токен SSO и не заботитесь об этой модели.

person tony.ganchev    schedule 12.10.2018