Перейти к основному содержимому

Управление доступом

Planeon разделяет два разных вопроса: кто может администрировать платформу (RBAC — пользователи, группы, роли, права) и кто может пользоваться конкретным пулом рабочих столов (доступ/entitlement). Оба управляются из одного места — страницы Пользователи и доступ (/users), — но независимы друг от друга: конечный пользователь может иметь доступ к нескольким пулам, вообще не имея прав администратора, а права администратора сами по себе не дают доступа к рабочим столам ни одного пула.

Модель: пользователи, группы, роли и права

У Planeon нет локального хранилища паролей. Каждый пользователь — это проекция личности из вашего OIDC-провайдера идентификации (см. Провайдеры идентификации) — ничего не нужно создавать вручную, прежде чем кто-то сможет войти. На странице Пользователи и доступ четыре вкладки:

  • Пользователи — локальные проекции людей, которые уже входили через вашего провайдера идентификации, доступные только для чтения.
  • Группы — локальные группы, которые вы создаёте, плюс встроенные группы, описанные ниже. Выбор Управлять доступом на группе открывает один диалог, где сразу задаются и её роли, и её участники. Фактические участники группы включают и тех, кого вы добавили напрямую, и всех, кто синхронизирован через OIDC-привязку — последние показаны с неактивными флажками, поскольку источник их членства — claim провайдера идентификации, а не этот экран.
  • Роли и права — пользовательские роли, которые вы собираете из встроенного списка прав ниже. Встроенные роли доступны только для чтения как стандартные значения продукта.
  • OIDC-привязки — отображение claim'ов групп вашего провайдера идентификации на локальные группы; см. OIDC-привязки групп.

Planeon поставляется с четырьмя встроенными ролями: platform_admin (полный доступ к платформе, авторизации и настройкам), platform_operator (доступ к повседневным операциям, без управления авторизацией и настройками), platform_viewer (доступ на чтение по всей платформе) и end_user (вообще без прав администратора — доступ к рабочим столам для этой роли целиком идёт через доступ к пулу, а не через RBAC. Пользователь только с ролью end_user не видит навигации администратора и сразу попадает в портал пользователя). Также поставляются три встроенные группы — builtin:platform-admins, builtin:platform-operators и builtin:platform-readers — каждая уже привязана к соответствующей встроенной роли.

Встроенные права

Это ключи прав, из которых собираются пользовательские роли — список доступен на вкладке Роли и права → Системные права:

ПравоЧто даёт
platform:readЧтение метаданных и состояния здоровья платформы.
platform:adminАдминистративный override для всех возможностей платформы — глобальная выдача этого права обходит любую другую проверку.
auth:readЧтение пользователей, групп, ролей и привязок.
auth:manageУправление пользователями, группами, ролями и OIDC-привязками групп.
settings:readЧтение настроек платформы.
settings:manageУправление настройками платформы.
pve:readЧтение состояния интеграции с Proxmox.
pve:manageУправление настройками и действиями интеграции с Proxmox.
pools:readЧтение пулов рабочих столов.
pools:manageУправление пулами рабочих столов.
vms:readЧтение виртуальных машин.
vms:manageУправление виртуальными машинами.
sessions:readЧтение сессий.
sessions:manageУправление сессиями.
templates:readЧтение шаблонов.
templates:manageУправление шаблонами.
jobs:readЧтение фоновых заданий.
jobs:manageУправление фоновыми заданиями (например, повтор сбойного задания).
audit:readЧтение журнала аудита.

Каждая привязка роли, которую вы создаёте сегодня, действует на всю платформу: назначение роли группе или пользователю выдаёт права этой роли глобально. Модель авторизации заложена с расчётом на сужение выдачи до отдельного кластера или пула, но такие ограниченные выдачи зарезервированы для будущих версий — создать их из консоли сегодня нельзя.

OIDC-привязки групп

Claim группы от вашего провайдера идентификации сам по себе не является авторизацией — доступ появляется только после того, как вы привяжете его значение к локальной группе на вкладке OIDC-привязки. Каждая привязка сопоставляет одно значение claim'а одной локальной группе: например, привязка имени claim'а groups, значения claim'а corp-vdi-admins к локальной группе builtin:platform-admins означает, что любой пользователь, в токене которого в claim'е groups есть значение corp-vdi-admins, начиная со следующего входа считается участником builtin:platform-admins — и наследует роли этой группы. Привязки редактируются как черновой список с явным действием Сохранить привязки, поскольку сохранение заменяет весь набор привязок целиком.

Членство, синхронизированное таким образом, актуализируется при каждом входе: если значение claim'а позже пропадает из токена пользователя, соответствующее OIDC-членство в группе снимается при следующем аутентифицированном запросе. Локальные членства, назначенные вами напрямую на вкладке Группы, этой синхронизацией никогда не затрагиваются.

Доступ к пулу для группы

Возможность администрировать платформу и возможность пользоваться рабочими столами пула — разные права. Чтобы дать группе конечных пользователей право запрашивать рабочие столы из пула, откройте Пулы рабочих столов, выберите Доступ к пулу на строке нужного пула, затем Добавить доступ и выберите пользователя или группу из вашего каталога. Каждый участник группы, которой предоставлен доступ, — включая тех, кто синхронизирован через OIDC-привязку, — получает право запросить рабочий стол из этого пула. Именно так быстрый старт даёт вашей первой группе доступ, и это никак не связано с ролями RBAC: группа вообще без прав администратора всё равно может иметь доступ к пулу — это обычная форма для ваших реальных пользователей рабочих столов.

Первый администратор

Прежде чем всё вышеописанное появится, кто-то должен получить возможность войти и это настроить. Этот шаг bootstrap описан в разделе «Первый вход» руководства по установке — смотрите его там, а не здесь, поскольку это часть первичного разворачивания, а не текущая задача управления доступом.