Группы пользователей#

Внимание

Для вызова сервисов система должна получить маркер доступа на системное разрешение blitz_groups и включать его во все вызываемые сервисы.

Группы в Blitz Identity Provider описываются следующими атрибутами:

  • id – идентификатор группы в Blitz Identity Provider;

  • name – наименование группы пользователей.

Получение атрибутов группы по id#

Метод

GET https://login.company.com/blitz/api/v2/grps/{id}

Получение атрибутов группы, если известен id группы.

URL-параметры
  • profile – имя профиля групп пользователей (например, orgs);

  • expand – значение true, указывающее, что необходимо вернуть все атрибуты группы.

Пример

GET /blitz/api/v2/grps/14339e8e-a665-4556-92f1-5c348eff6696?profile=orgs HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Cache-Control: no-cache
{
    "instanceId": "Mzg…nU",
    "id": "14339e8e-a665-4556-92f1-5c348eff6696",
    "OGRN": "1234567890329",
    "INN": "7743151614",
    "name": "ООО Тестовая компания",
    "profile": "orgs"
}

Поиск группы по атрибуту#

Метод

GET https://login.company.com/blitz/api/v2/grps

Поиск группы по атрибуту и получение всех ее атрибутов, если неизвестен id группы.

URL-параметры
  • profile – имя профиля групп пользователей;

  • rql – поисковый запрос по атрибутам группы в формате Resource Query Language (RQL).

    Операции:

    • and – одновременное выполнение поисковых условий;

    • or – альтернативное выполнение поисковых условий (например, поиск по разным атрибутам);

    • eq – проверка условия равенства;

    • limit – ограничение числа возвращаемых записей.

  • expand (необязательный параметр):

    • true: включать в полученный ответ атрибуты групп;

    • false: вернуть только идентификаторы найденных групп.

Возвращает

JSON, содержащий перечень групп, удовлетворяющих заданным поисковым условиям, с указанием их идентификатора (id), а также значения остальных атрибутов групп (в случае expand=true).

Пример

Поиск группы по ОГРН или ИНН#
GET /blitz/api/v2/grps?profile=orgs&expand=true&rql=or(eq(OGRN,string:1230123456789),eq(INN,string:7743151614)) HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Cache-Control: no-cache
[
    {
        "instanceId": "Mzg5L…nU",
        "id": "14339e8e-a665-4556-92f1-5c348eff6696",
        "OGRN": "1234567890329",
        "INN": "7743151614",
        "name": "ООО Тестовая компания",
        "profile": "orgs"
    }
]

Создание группы#

Метод

POST https://login.company.com/blitz/api/v2/grps

Создание группы пользователей.

Тело запроса
  • profile – имя профиля групп пользователей;

  • id – уникальный идентификатор группы;

  • остальные атрибуты группы и их значения.

Пример

POST /blitz/api/v2/grps HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Content-Type: application/json

{
    "id":"95339e8e-a665-4556-92f1-5c348eff6696",
    "OGRN":"9876543210321",
    "INN":"5012345678",
    "name":"ООО Тестовая компания 2",
    "profile":"orgs"
}
{
    "instanceId": "b3Jnc…dQ",
    "name": "ООО Тестовая компания 2",
    "OGRN": "9876543210321",
    "id": "95339e8e-a665-4556-92f1-5c348eff6696",
    "profile": "orgs",
    "INN": "5012345678"
}

Изменение атрибутов группы#

Метод

POST https://login.company.com/blitz/api/v2/grps/{id}?profile=orgs

Изменение атрибутов группы.

Тело запроса

Новый набор атрибутов:

  • profile – имя профиля групп (должно быть передано и в составе URL, и в теле запроса);

  • id – идентификатор группы;

  • остальные атрибуты группы и их значения.

Пример

POST /blitz/api/v2/grps/5f7b0580-cd2e-4146-8fc5-6eb5a95c7b42?profile=orgs HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Content-Type: application/json

{
    "id": "5f7b0580-cd2e-4146-8fc5-6eb5a95c7b42",
    "OGRN": "1147746651733",
    "INN": "7715434658",
    "name": "Новое название",
    "profile": "orgs"
}
{
    "instanceId": "Mzg5L…nU",
    "id": "5f7b0580-cd2e-4146-8fc5-6eb5a95c7b42",
    "OGRN": "1147746651733",
    "INN": "7715434658",
    "name": "Новое название",
    "profile": "orgs"
}
Организация не существует#
{
    "errors": [
        {
            "code": "group_not_found",
            "desc": "Group with '95339e8e-…97' id not found in '389-ds' LDAP group store",
            "params": {}
        }
    ]
}

Удаление группы#

Метод

DELETE https://login.company.com/blitz/api/v2/grps/{id}?profile=orgs

Удаление группы.

Пример

Запрос#
DELETE /blitz/api/v2/grps/5f7b0580-cd2e-4146-8fc5-6eb5a95c7b42?profile=orgs HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz

Получение списка пользователей в группе#

Метод

GET https://login.company.com/blitz/api/v2/grps/{id}/members

Получение списка пользователей из группы.

URL-параметры
  • profile – имя профиля групп пользователей;

  • expand (необязательный параметр):

    • true: включать в полученный ответ ФИО пользователя;

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

Пример

expand=false#
GET /blitz/api/v2/grps/14339e8e-a665-4556-92f1-5c348eff6696/members?profile=orgs&expand=false HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Cache-Control: no-cache
expand=true#
GET /blitz/api/v2/grps/14339e8e-a665-4556-92f1-5c348eff6696/members?profile=orgs&expand=true HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Cache-Control: no-cache
expand=false#
[
    {
        "instanceId": "Mzg5L…J1",
        "subjectId": "d434b7d4-9816-460a-83aa-0a994226cbe7"
    },
    {
        "instanceId": "Mzg5L…J1",
        "subjectId": "2cafa5f4-bc84-4f6f-91aa-080da47975f0"
    }
]
expand=true#
[
    {
        "instanceId": "Mzg5L…J1",
        "family_name": "Иванов",
        "middle_name": "Иванович",
        "given_name": "Иван",
        "subjectId": "d434b7d4-9816-460a-83aa-0a994226cbe7"
    },
    {
        "instanceId": "Mzg5L…J1",
        "family_name": "Сергеев",
        "middle_name": "Сергеевич",
        "given_name": "Сергей",
        "subjectId": "2cafa5f4-bc84-4f6f-91aa-080da47975f0"
    }
]

Добавление пользователей#

Метод

POST https://.../blitz/api/v2/grps/{id}/members/add?profile=orgs

Добавление пользователей в группу.

Тело запроса

Список добавляемых в группу пользователей с указанием их идентификаторов (sub) в атрибуте subjectId.

POST /blitz/api/v2/grps/5f7b0580-cd2e-4146-8fc5-6eb5a95c7b42/members/add?profile=orgs HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Content-Type: application/json

[
    {
        "subjectId": "45ff69f2-6c40-418f-a21d-cbe6f07b88c9"
    },
    {
        "subjectId": "cc8c4589-b2f8-40b8-b351-36d643808943"
    }
]
[
    {
        "instanceId": "Mzg5L…J1",
        "storeId": "tam",
        "subjectId": "45ff69f2-6c40-418f-a21d-cbe6f07b88c9"
    },
    {
        "instanceId": "Nzg5L…J1",
        "storeId": "tam",
        "subjectId": "cc8c4589-b2f8-40b8-b351-36d643808943"
    }
]
Попытка добавить несуществующего пользователя#
{
    "errors": [
        {
            "code": "user_not_found",
            "desc": "User with subjectId 'd2580c98-e584-4aad-a591-97a8cf45cd2q' not found",
            "params": {}
        }
    ]
}
Попытка добавить пользователя, который уже есть в группе#
{
    "errors": [
        {
            "code": "some_members_already_in_group",
            "desc": "Some of adding members are already included in group",
            "params": {}
        }
    ]
}

Исключение пользователей#

Метод

POST https://.../blitz/api/v2/grps/{id}/members/rm?profile=orgs

Исключение пользователей из группы.

Тело запроса

Список исключаемых из организации доверенных лиц с указанием их идентификаторов (sub) в атрибуте subjectId.

POST /blitz/api/v2/grps/5f7b0580-cd2e-4146-8fc5-6eb5a95c7b42/members/rm?profile=orgs HTTP/1.1
Authorization: Bearer cNwIXatB0wk5ZHO0xG5kxuuLubesWcb_yPPqLOFWDuwzMDc0Nz
Content-Type: application/json

[
    {
        "subjectId": "d2580c98-e584-4aad-a591-97a8cf45cd2a"
    }
]
[
    {
        "instanceId": "Mzg5L…J1",
        "storeId": "389-ds",
        "subjectId": "d2580c98-e584-4aad-a591-97a8cf45cd2a"
    }
]
Попытка удалить из группы пользователя, которого в ней уже нет#
{
    "errors": [
        {
            "code": "some_members_not_in_group",
            "desc": "Some of removing members are not included in group",
            "params": {}
        }
    ]
}
Попытка удалить несуществующего пользователя#
{
    "errors": [
        {
            "code": "user_not_found",
            "desc": "User with subjectId 'd2580c98-e584-4aad-a591-97a8cf45cd2b' not found",
            "params": {}
        }
    ]
}