Загрузка актуальной информации о доступности привилегий для групп пользователей#

Загрузка актуальной информации о доступности привилегий для групп пользователей (далее – слепок данных) используется для передачи данных и их последующего сохранения в буфер.

Слепок данных хранит информацию о доступности привилегий для групп пользователей, которую можно впоследствии применить или удалить.

В дальнейшем эта информация позволяет полностью обновить данные о привилегиях.

Предусловия#

Подготовьте запросы в JSON-формате для загрузки привилегий пользователей к группам узлов.

Пример файла rules.json в JSON-формате:

{
  "is_final": false,
  "rules": [
    {
      "user_group_key": "user_group_key_1",
      "users": [
        "alice",
        "charlie"
      ],
      "asset_filter_grants": [
        {
          "custom_prop_filter": [
            {
              "property_key": "custom_ac",
              "property_value": "AC0001"
            },
            {
              "property_key": "custom_cir",
              "property_value": "CIR002"
            }
          ],
          "privileges": [
            "asset_pg_delete",
            "pg_metrics_regular_toggle",
            "pg_metrics_embedded_toggle"
          ]
        }
      ],
      "global_grants": [
        "global_asset_pg_create"
      ]
    }
  ]
}

, где:

  • is_final - флаг окончания передачи данных.

  • atsn_id - идентификатор, который генерируется на стороне Kintsugi (DBCM).

    При подгрузке первого пакета данных идентификатор будет выслан в ответе. В дальнейшем для того, чтобы расширить слепок данных необходимо использовать полученный идентификатор.

    В API реализована привязка идентификатора atsn_id к пользователю (sub из JWT-токена):

    1. Первый пользователь, обратившийся с конкретным atsn_id, захватывает его.

    2. Остальные пользователи при попытке использовать этот же atsn_id получают отказ.

    3. После окончания передачи данных atsn_id освобождается.

  • rules - список правил, определяющий группы пользователей, доступные для них активы и привилегии.

  • user_group_key - идентификатор группы пользователей.

  • users - список пользователей, входящих в группу.

  • global_grants - глобальные права для группы пользователей (например, создание объектов).

  • asset_filter_grants - список прав на объекты с фильтрацией по пользовательским свойствам:

    • custom_prop_filter - фильтры по свойствам (property_key, property_value), ограничивающие множество активов и формирующие группу узлов.

    • privileges - список разрешенных действий (например, включение метрик).

Последовательность выполнения#

Введите в командной строке соответствующий API-вызов:

Пример запроса для пакетной загрузки информации о доступности привилегий для групп пользователей:

curl -X POST -H "Authorization: Basic ${token}" https://${kintsugi_host}/backend/privileges/snapshots/upload -H "Content-Type: application/json" @rules.json

Результат#

Пакетная загрузка информации о доступности привилегий для групп пользователей выполнена успешно.