Skip to content
Добро пожаловать на форум специальных технологий для профессионалов! Это место, где можно обсудить все аспекты современных цифровых технологий для записи видео, включая скрытые камеры, прослушку, аудиозапись, установку, а также шпионское программное обеспечение. Этот форум предназначен для обмена идеями, советами и опытом.

Поддержка Cloudflare + Okta (и сопутствующие решения)

Мне удалось настроить аутентификацию Okta через Cloudflare для защиты моего домена/логина SecSpy в интернете. Довольно круто.

Однако... это ломает приложение SecSpy для iOS. Я знал об этом заранее. На данный момент это не проблема, поскольку у меня также есть точка входа Tailscale.

В ходе беседы с ИИ на тему «Как SecSpy может поддерживать Okta?» я получил следующую информацию:

Вариант 1: «Золотой стандарт» решения (поддержка OIDC)

Запрос: «Пожалуйста, добавьте поддержку аутентификации OIDC (OpenID Connect) или OAuth2ASWebAuthenticationSession на iOS».

Как это работает:

  1. Вместо ввода имени пользователя/пароля в приложение, оно обнаруживает перенаправление Cloudflare/Okta.
  2. Приложение открывает защищенное окно системного браузера (это компонент iOS, называемый ASWebAuthenticationSession).

  3. В этом окне вы увидите фактическую страницу входа в Okta, выполните FaceID/Push-уведомление и получите авторизацию.
  4. Окно браузера закрывается и возвращает приложению Security Spy токен сессии (Cookie).
  5. Приложение прикрепляет этот токен к каждому последующему запросу видео.

Примечание: Так работают системы единого входа (SSO) в таких приложениях, как Slack, Zoom и Google Drive.

Вариант 2: Более простое решение (сервисные токены)

Запрос: «Пожалуйста, разрешите пользователям определять пользовательские HTTP-заголовки в настройках подключения к серверу».

Как это работает:

  1. В Cloudflare вы генерируете сервисный токен (специальный логин/пароль, предназначенный для ботов, а не для людей).

  2. Этот токен состоит из двух длинных строк: CF-Access-Client-Idи CF-Access-Client-Secret.
  3. Если бы в приложении Security Spy было поле "Добавить пользовательские заголовки", вы бы вставили туда эти две строки.
  4. Cloudflare видит эти заголовки и сообщает: «О, это авторизованное приложение», полностью минуя экран входа в Okta.

Решение, которое вы можете использовать СЕГОДНЯ (обход "варп-пространства")

Поскольку вы не можете заставить Ben Software переписать свое приложение в эти выходные (😅 Примечание: я никогда не предлагал ИИ переписать Security Spy в эти выходные) , вы можете решить эту проблему прямо сейчас, используя уже имеющийся у вас инструмент: Cloudflare WARP .

Вы упомянули ранее, что рассматривали WARP (Вариант 2), но пропустили его. Вот пример его применения.

Логика: Вместо того чтобы заставлять приложение аутентифицироваться в Okta, вы заставляете свой телефон аутентифицироваться в Okta (через VPN), и тогда приложение получает бесплатный доступ.

  1. Установите приложение "Cloudflare One" (WARP) на свое устройство iOS.
    • Войдите в приложение: перейдите в Настройки > Аккаунт > Войти с помощью Cloudflare Zero Trust.Введите домен вашей команды.
    • Вам будет предложено пройти аутентификацию через Okta (используя ваше правило FaceID).
  2. Результат: Ваш телефон теперь находится «внутри» вашей защищенной сети.
    • Объездная дорога:В панели управления Cloudflare (Zero Trust) создайте политику обхода для вашего приложения Security Spy.
    • Действие: Обход.
    • Включите: "WARP" (или "Gateway").
    • Перевод: «Если пользователь уже авторизован в VPN-сервисе WARP на своем телефоне, не просите его повторно авторизоваться на веб-сайте».

Исход:

  • Веб-браузер: по-прежнему защищен Okta.
  • Приложение для слежки за безопасностью: работает мгновенно, потому что клиент WARP на вашем телефоне обрабатывает подтверждение личности в фоновом режиме. Вы получаете безопасность Okta без необходимости поддержки этой технологии приложением.


Я дополнительно уточнил у ИИ стоимость/сложность OIDC. Ответ:

------------

Финансовые затраты: нулевые. OpenID Connect (OIDC) — это открытый стандарт. Apple, Okta и любые другие регулирующие органы не несут никаких лицензионных сборов за его внедрение.

Стоимость разработки (время и трудозатраты): от средней до высокой. Для одного разработчика или небольшой команды (например, Ben Software) «стоимость» полностью сводится ко времени и сложности.

Вот почему они этого ещё не сделали:

  • Проблема «замены движка»: В настоящий момент приложение Security Spy, скорее всего, использует HTTP Basic Auth . Всё просто: каждый раз, когда оно запрашивает видеокадр, оно отправляет username:passwordзаголовок. OIDC — это конечный автомат . Приложение должно:Обнаружено, что требуется авторизация.
  • Приостановите запрос на видео.
  • Откройте окно браузера.
  • Дождитесь кода обратного вызова.
  • Обменяйте этот код на "токен".
  • Надежно сохраните этот токен в связке ключей iOS.
  • Прикрепляйте этот токен к каждому будущему запросу.
  • Самая сложная часть: отслеживать, когда истекает срок действия этого токена (обычно каждый час), и незаметно использовать «токен обновления», чтобы получить новый, не напоминая пользователю об этом.
  1. Для этого требуется переписать весь сетевой уровень приложения. Это не просто добавление функции; это изменение внутренней структуры.
  2. «Нишевый» фактор: большинство пользователей Security Spy — это домашние пользователи, которые просто настраивают переадресацию портов или используют встроенный в Ben сервис DDNS. Пользователи, подобные вам, которые устанавливают коммерческий поставщик идентификационных данных с нулевым доверием (Okta + Cloudflare) перед системой видеонаблюдения на Mac Mini, составляют 1% лучших из 1%.

Если он добавит возможность вручную вставлять статический API-токен (например, упомянутый ранее токен службы Cloudflare) в настройки приложения, это, вероятно, займет у него около часа. Полная поддержка OIDC, скорее всего, потребует серьезной переработки кода. Запрос на добавление "пользовательского заголовка" с гораздо большей вероятностью получит положительный ответ.


@Ben что ты думаешь?😁

Комментарии

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

    1. Переадресация портов (решение по умолчанию). Это обеспечивает эффективное прямое соединение, не зависит от каких-либо посредников и обычно настраивается в SecuritySpy одним щелчком мыши. Недостаток заключается в том, что ваш сервер SecuritySpy доступен в открытом доступе в Интернете, однако, если вы используете надежный пароль, это действительно очень низкий риск. SecuritySpy имеет встроенную защиту от взлома (например, автоматическая блокировка клиентов после нескольких неудачных попыток входа).
    2. Для любого пользователя, которому нужен дополнительный уровень безопасности или для которого переадресация портов невозможна (например, при использовании сотовой/спутниковой связи), виртуальная сеть, такая как Tailscale или ZeroTier, является идеальным и простым в настройке решением. Только авторизованные участники виртуальной сети могут пытаться подключиться к SecuritySpy, что исключает попытки взлома. Недостатком является потенциальная потеря эффективности, поскольку некоторые соединения должны маршрутизироваться через ретранслятор, а также зависимость от третьей стороны (хотя Tailscale/ZeroTier — это проверенные и надежные системы).


  • Я тебя понимаю.

    Мне кажется, идея с "пользовательским заголовком" довольно хороша и, возможно, не так уж сложна в реализации?

    Я буду продолжать тебя изматывать, Бен! 😅

    Если говорить серьёзно, да, я выступаю за решения корпоративного уровня в области безопасности, потому что, по правде говоря, Security Spy — это отличное программное обеспечение. На данный момент оно очень зрелое, и с учётом мощного и недорогого оборудования, доступного сегодня, Security Spy (по моему скромному мнению) находится на грани того, чтобы стать полноценным решением корпоративного класса для систем видеонаблюдения. И хотя я понимаю, что многие ваши пользователи, вероятно, не знакомы со всеми этими функциями и не стали бы их использовать, я также знаю, что сам когда-то начинал как пользователь Security Spy… но теперь, отчасти благодаря вам и всем тем замечательным функциям, которые вы ранее реализовали (поток событий — это то, с чего я начал и что привело меня к этому), — я эволюционировал. И мои требования к безопасности стали выше. И я не хочу перерасти Security Spy. Я хочу использовать его всегда.

    Так что... имейте всё это в виду и, пожалуйста, добавьте мои идеи в общую кучу. 😁

  • Я хотел бы поддержать желание иметь возможность использовать OIDC или SAML2, хотя я использую Authentik вместо Cloudflare Warp.

  • К вашему сведению, мы добавили возможность добавления пользовательских заголовков ко всем HTTP-ответам SecuritySpy. Эта опция находится в разделе «Настройки» > «Веб» > «Расширенные параметры веб-интерфейса». Она будет включена в предстоящее обновление 6.21, но уже доступна в бета-версии, если кто-то захочет ею воспользоваться сейчас.

  • О, только что увидел это. С нетерпением жду, когда смогу попробовать. Спасибо, Бен!

Войдите или Зарегистрируйтесь чтобы комментировать.