Skip to content

12.5.1 Роли, группы и привилегии

Подробная информация о ролевой модели vStack описана в документации на vStack HCP в разделе 5.1 Ролевая модель.

ГИ vStack имеет расширенную ролевую модель, в которой кроме возможности назначать роли присутствует возможность назначения дополнительных привилегий.

Роли и привилегии могут быть назначены:

  • Группам - Active Directory.
  • Пользователям (как локальным, так и из служб каталогов или identity провайдеров).

В ГИ роли, группы и привилегии играют важную роль в обеспечении безопасности, управлении доступом и организации работы кластеров.

  • Роли определяют набор разрешений и обязанностей, которые имеют пользователи в рамках ГИ. Например, администраторы кластеров могут иметь роли с полным доступом к управлению и ко всем настройкам кластера, в то время как обычные пользователи имеют более ограниченные права.

Т.к. роли назначаются пользователю или группе, то для правильного отображения объектов в области видимости важно учитывать для какого vDC роль была назначена пользователю (для некоторых методов).

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

Методы

12.5.1.1 role-privilege-list

Метод получения ролей и входящих в них привилегий (role_id - 1 уровень, privilege_id - 2 уровень):

Запрос:

{
    "jsonrpc": "2.0",
    "method": "role-privilege-list",
    "id": "c3430cb0-7739-47c7-9eec-d7aef04a6568"
}

Ответ:

{
    "jsonrpc": "2.0",
    "id": "c3430cb0-7739-47c7-9eec-d7aef04a6568",
    "result": {
        "code": 1,
        "data": {
            "1": [
                500000,
                200001,
                200000
            ],
            "2": [
                410000,
                415000,
                310002
            ],
            "3": [
                600000,
                600001,
                610001,
                610002
            ],
            "5": [
                100001,
                200000
            ]
        }
    }
}

12.5.1.2 group-list

Метод получения списка групп в области видимости Active Directory, в качестве ключа используется ObjectGUID в формате UUID.

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

Запрос:

{
    "jsonrpc": "2.0",
    "method": "group-list",
    "id": "e6cdc8f4-998c-4647-b793-624958987ad3"
}

Ответ:

{
    "jsonrpc": "2.0",
    "id": "e6cdc8f4-998c-4647-b793-624958987ad3",
    "result": {
        "code": 1,
        "data": {
            "00dcf588-09a2-4852-9960-6ceb4bec0956": {
                "cn": "Print Operators",
                "dn": "CN=Print Operators,CN=Builtin,DC=ext,DC=itglobal,DC=com"
            },
            "0158a6fd-8136-4d6e-8bd0-e415f41daa17": {
                "cn": "HRZ-DEMO-UG",
                "dn": "CN=HRZ-DEMO-UG,OU=Groups,OU=HRZ-DEMO,DC=ext,DC=itglobal,DC=com"
            },
            "07d85987-d8d3-457c-a624-6ccc1d16dd6c": {
                "cn": "Performance Log Users",
                "dn": "CN=Performance Log Users,CN=Builtin,DC=ext,DC=itglobal,DC=com"
            },
            "09d2a9c1-ee62-4be7-b81c-e55a4d1506e2": {
                "cn": "vstack_test_group_5",
                "dn": "CN=vstack_test_group_5,OU=Org_vStack,OU=SERVICE ACCOUNTS,DC=ext,DC=itglobal,DC=com"
            },
            "0b849061-24c0-485e-8b57-70c600f591c0": {
                "cn": "Remote Desktop Users",
                "dn": "CN=Remote Desktop Users,CN=Builtin,DC=ext,DC=itglobal,DC=com"
            },
            "0f29a2df-6d17-40b0-92a3-8c7f54e2a4d3": {
                "cn": "Event Log Readers",
                "dn": "CN=Event Log Readers,CN=Builtin,DC=ext,DC=itglobal,DC=com"
            },
            "1601a9f7-55cd-4ceb-b3ac-4e27c3564272": {
                "cn": "LAPS Denny",
                "dn": "CN=LAPS Denny,OU=LAPS,OU=SERVICE ACCOUNTS,DC=ext,DC=itglobal,DC=com"
            },
            "19d5e53a-750e-40fb-b495-f5bc73e6edaa": {
                "cn": "Domain Users",
                "dn": "CN=Domain Users,CN=Users,DC=ext,DC=itglobal,DC=com"
            }
        }
    }
}

12.5.1.3 group-roles

Метод получения списка ролей для группы (1 уровень - role_id).

Запрос:

{
    "jsonrpc": "2.0",
    "method": "group-roles",
    "params": {
        "group_id": "612c02c3-5f8f-4d2b-847e-6d2af7184ff3"
    },
    "id": "f31dc5d4-7b2c-4f1e-80a9-f56423a27b88"
}

Ответ:

{
    "jsonrpc": "2.0",
    "id": "f31dc5d4-7b2c-4f1e-80a9-f56423a27b88",
    "result": {
        "code": 1,
        "data": {
            "1": [
                {
                    "role_id": 1,
                    "vdc_id": 0
                }
            ],
            "2": [
                {
                    "role_id": 2,
                    "vdc_id": 1
                },
                {
                    "role_id": 2,
                    "vdc_id": 0
                }
            ],
        }
    }
}

12.5.1.4 group-privileges

Метод получения списка привилегий для группы (1 уровень - privilege_id).

Запрос:

{
    "jsonrpc": "2.0",
    "method": "group-privileges",
    "params": {
        "group_id": "612c02c3-5f8f-4d2b-847e-6d2af7184ff3"
    },
    "id": "f31dc5d4-7b2c-4f1e-80a9-f56423a27b88"
}

Ответ:

{
    "jsonrpc": "2.0",
    "id": "f31dc5d4-7b2c-4f1e-80a9-f56423a27b88",
    "result": {
        "code": 1,
        "data": {
            "600000": [
                {
                    "privilege_id": 600001,
                    "vdc_id": 0
                }
            ],
            "600001": [
                {
                    "privilege_id": 600001,
                    "vdc_id": 1
                },
                {
                    "privilege_id": 600001,
                    "vdc_id": 0
                }
            ],
        }
    }
}