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

Группы доступа

Группы доступа позволяют гранулярно управлять доступом к источникам и интеграциям в базе знаний по модели Attribute-Based Access Control. Вместо того чтобы выдавать права отдельным пользователям, вы назначаете документам-источникам специальные атрибуты — группы доступа. Доступ к информации из документа разрешен только назначенным ему группам. Таким образом, доступ можно разграничивать на основе, например, подразделения сотрудника, тарифа клиента или любого другого атрибута.

предупреждение

Группы ограничивают доступ к источникам только в API-запросах на поиск чанков и генерацию ответа. Пользователям веб-интерфейса доступны все источники.

Основные принципы

  • Если источнику не назначена ни одна группа доступа, он считается публичным. Такой источник доступен для всех API-запросов к базе знаний, независимо от переданных в запросе групп доступа.
  • Если источнику назначена хотя бы одна группа доступа, он доступен только для тех API-запросов, в которых указана хотя бы одна из назначенных источнику групп.
  • Источники, загруженные из интеграции (например, страницы Confluence), автоматически наследуют группы доступа, назначенные самой интеграции.
  • Одну группу доступа можно назначить источникам и интеграциям в нескольких проектах базы знаний. Название группы доступа является уникальным в пределах аккаунта.

Логика доступа при запросе чанков:

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

Пример

Допустим, источникам A, B и C назначены следующие группы доступа:

ИсточникГруппы доступа
Аconfidential
internal_docs
Binternal_docs
C

Если в запросе на генерацию ответа к базе знаний указаны группы доступа confidential и finance, то при подготовке ответа используются только данные из источников A и C.

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

Управление группами доступа выполняется через API.

В интерфейсе доступен только просмотр групп доступа в личном кабинете (требуется роль KHUB_OWNER или KHUB_ADMIN). Назначение групп доступа источникам и интеграциям в интерфейсе не предусмотрено.

Назначение групп доступа

При добавлении источника или создании интеграции укажите список групп доступа в поле accessControlAttributes. Если группы с указанным названием нет, она будет создана автоматически.

предупреждение

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

Примеры запросов:

  • Добавление источника с группами доступа.

    curl \
    --header 'Authorization: Bearer <your_API_key>' \
    --header 'multipart/form-data' \
    --form 'file=@"/path/to/your/document.pdf"' \
    --form 'accessControlAttributes="internal_docs,department_hr' \
    https://khub.just-ai.com/api/knowledge-hub/sources/files
  • Добавление интеграции с группами доступа:

    curl \
    --header 'Authorization: Bearer <your_API_key>' \
    --header 'Content-Type: application/json' \
    --data '{
    "name": "Customer service",
    "autoSync": true,
    "syncIntervalMinutes": 30,
    "settings": {
    "type": "confluence",
    "space": "Клиентский сервис",
    "token": "aaaBBBcccDDDeeeFFFgggHHHH",
    "baseUrl": "https://confluence.example.com"
    },
    "accessControlAttributes": ["customer_service"]
    }' \
    https://khub.just-ai.com/api/knowledge-hub/integrations

Запрос данных с учетом групп доступа

Чтобы получить данные из источников с ограниченным доступом, передайте в запросе параметр accessControlAttributes. Параметр поддерживается во всех запросах на поиск чанков и генерацию ответа:

Пример запроса, в котором ответ будет основан на публичных источниках и источниках, доступных группе internal_docs:

curl \
--header 'Authorization: Bearer <your_API_key>' \
--header 'Content-Type: application/json' \
--data '{
"query": "правила предоставления отпусков",
"accessControlAttributes": ["internal_docs"]
}' \
https://khub.just-ai.com/api/knowledge-hub/query
к сведению

Методы, параметры запросов, форматы ответов, возвращаемые ошибки подробно описаны в спецификации API.