> ## Documentation Index
> Fetch the complete documentation index at: https://veriqa.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Место и личность

> Фактор присутствия: кроме входа на рабочем компьютере человек сканирует QR-код, который есть только внутри помещения, и приложение узнаёт, что он на месте.

Все привычные факторы входа привязаны к человеку или к его устройству и ни один не отвечает на
вопрос «а человек вообще здесь?». Место отвечает. Зачем это нужно и кому, рассказано на странице
[«Место и личность»](https://veriqa.app/whats-next/place-and-identity).

<Note>
  Механизмы для этого сценария в Veriqa уже есть, логику поверх них вы реализуете на своей стороне
  так, как удобно вам, — см. [«Что вы реализуете сами»](#что-вы-реализуете-сами). Мы работаем над
  тем, чтобы упростить его реализацию в продукте.
</Note>

## Из чего собирается сценарий

Сценарий не нуждается в новом протоколе: вход на рабочем компьютере даёт личность, QR-код на месте —
присутствие. Оба шага — обычные транзакции подтверждения, которые Veriqa уже умеет вести.

Поверхностей для QR-кода несколько, и они не равны по трудности:

| Поверхность | Что даёт | Чего стоит |
| - | - | - |
| Лист, напечатанный на офисном принтере | место + возможность донести QR-код туда, где экрана нет | расходники, общий лоток, вендорская специфика печати |
| Экран в общей зоне (телевизор в переговорной) | крупный QR-код, читаемый всей комнатой | оборудование уже установлено, но контент выводится только так, как разрешил вендор |
| Настольный IP-телефон | место точнее — конкретное рабочее место, а не коридор | экран мал: сколько данных уместится читаемым QR-кодом — вопрос замера |
| Отдельная мини-панель | нет расходников, нет общего лотка, нет вендорской специфики | нужно покупать оборудование |

## Что вы реализуете сами

Принтер и экран не каналы Veriqa: каналы привязаны к личности и отвечают на вопрос «кто», а не
«где». Поэтому QR-код места выводит ваш сервер, и оба шага ведёт он:

* **Личность.** Человек входит на рабочем компьютере обычным authorize-запросом, и приложение
  получает его `sub`, а в `amr` — канал, в котором он подтвердил вход.
* **QR-код места.** Для проверки присутствия сервер создаёт транзакцию
  [серверного подтверждения](/docs/ru/reference/confirmation-api) `POST /api/transaction/confirmation` с
  типом действия, в сообщении которого названо помещение, и выводит на поверхность картинку
  `channel_entry.qr` из ответа. `allowed_channel_types` сужает
  транзакцию до канала, в котором человек вошёл.
* **Сверка с вошедшим.** Человек сканирует код и подтверждает в мессенджере, сервер дожидается
  `confirmed` в `GET /api/transaction/{id}/result`. Точка входа в QR-коде действует на предъявителя, поэтому
  присутствие засчитывается только после сверки: передайте при создании `expected_identities` и
  проверьте `matched_type` либо обменяйте транзакцию на `id_token` и сравните `sub` с тем, кто
  вошёл на компьютере.
* **Короткий срок и ротация.** `ttl_seconds` задаёт время жизни транзакции, от 60 до 1800 секунд.
  Транзакция подтверждается один раз, поэтому после подтверждения или с наступлением
  `response_valid_until` сервер выводит новый QR-код.

## На что обратить внимание

* **Против коллеги в той же комнате фактор места не защищает вовсе** — тот и так внутри помещения.
  Сила фактора ровно равна силе контроля физического доступа.
* **Печать добавляет свои риски.** Лист живёт дольше сессии, его можно забыть в общем лотке, а
  персонализированный онбординг-лист — долгоживущий секрет привязки, который не лечится коротким
  сроком жизни. Без одноразовости токена и гашения остальных QR-кодов при первом использовании такой
  сценарий небезопасен.
* **QR-код на постоянном экране виден всем в помещении и камерам.** Поэтому он может быть только
  маркером места и никогда — секретом: короткий срок жизни, ротация, и само обладание им не даёт
  ничего.

<Note>
  Отдельный плюс, не связанный с безопасностью: там, где политика запрещает радио и выключены
  Bluetooth и Wi-Fi, недоступен целый класс конкурирующих факторов близости — кросс-девайсные
  passkeys подтверждают близость устройств именно через BLE. Бумажному или экранному QR-коду радио не
  требуется вовсе.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.