Несколькими днями ранее мы выпустили сборку Viinex 3.1.0.477, содержащую реализацию списков управления доступом. Это значит, что в отличие от предыдущих версий, где Viinex требовал просто аутентификации клиента (если вообще требовал), после чего предоставлял ему полный доступ ко всем объектам, опубликованным на соответствующем сетевом сервере, — новая функциональность предполагает, что разные пользователи могут быть ассоциированы с одной или несколькими ролями, в то время как ролям может быть предоставлены разрешения на доступ к определенной функциональности определенных объектов Viinex.
Это делает возможным развертывание Viinex в достаточно сложных сценариях, где, к примеру, одной группе пользователей может быть предоставлен доступ к живым потокам видео, другой группе — доступ к видеоархиву, а для управления поворотными камерами нужна будет отдельная привилегия. Кроме того, эти привилегии могут быть отдельно назначены для выбранных объектов Viinex.
Другое новшество состоит в том, что информация для управления доступом теперь может быть указана не только в конфигурации Viinex или файлах htdigest, но и в реляционной СУБД, и может быть изменена во время работы Viinex. То есть, теперь необязательно заново создавать кластер Viinex для того чтобы добавить или удалить пользователей или изменить их права доступа. Такие изменения теперь могут быть выполнены через программный интерфейс Viinex.
Чтобы сохранить логичность в структуре конфигурации, нам пришлось нарушить обратную совместимость: вместо раздела «auth» в конфигурации HTTP и RTSP сервера, введен новый объект «authnz«, ответственный за всю работу, связанную с аутентификацией и авторизацией. Этот новый объект следует добавить в конфигурацию и связать с серверными объектами, предоставляющими пользователям доступ к Viinex по сети, — это компоненты HTTP, RTSP and WebRTC серверов. Из-за этого изменения мы решили поднять номер версии Viinex до значения 3.1.
Наконец, — списки управления доступом выражаются в Viinex в терминах т.н. типов «endpoint-ов». Типы endpoint-ов можно рассматривать как пометки, классифицирующие поведение компонентов. Примерами таких меток является «VideoSource» (источник живого видео), «TimelineProvider» (провайдер информации о содержании видеоархива) и «PtzControl» (управление поворотной камерой). Эта концепция впервые представлена в данном релизе, и хотя «endpoint-ы» всегда фигурировали внутри реализации Viinex, — мы никогда не упоминали о них и не описывали их в документации. Теперь это изменилось, — документация была существенно обновлена. В ней добавлено несколько новых разделов, — они, мы надеемся, помогут понять формальные правила, по которым интерпретируется конфигурация Viinex. Мы предлагаем разработчикам, использующим Viinex в своем ПО, ознакомиться с новой версией руководства.