Рекомендации по проверке подлинности веб-приложений в промышленных условиях - PullRequest
1 голос
/ 14 июля 2020

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

Вопрос - Каков наилучший способ обеспечения безопасности / аутентификации веб-приложений и какие существуют альтернативы?

  • Будут ли они все использовать один и тот же сеанс аутентификации (это не предпочтительно, поскольку я хотел бы однозначно идентифицировать активного пользователя)?
  • Очевидно, я мог бы использовать стандартные имя пользователя / пароли с сеансами на основе токенов срок действия которых истекает, однако это оставляет большой потенциал для взлома учетной записи.
  • В идеале, они могли бы войти в систему очень быстро (PIN-код, возможно?), и их сеанс завершился бы, когда они были сделаны.

Ответы [ 3 ]

0 голосов
/ 05 августа 2020

Спасибо, что опубликовали эту классную проблему.

Находится ли устройство в контролируемой среде, где только авторизованные работники могут иметь к нему доступ? Низкая ли вероятность кражи устройства, поскольку люди, имеющие к нему доступ, вряд ли переместят его?

Иными словами, ваш главный интерес - идентификация, а не аутентификация? Если да, то как быстро определить, кто работает на компьютере, не мешая работе и не делая ее слишком громоздкой в ​​использовании? Вам нужно идентифицировать человека, чтобы выполнить работу, или это просто мера предосторожности для последующей проверки, чтобы ответить на вопрос, кто это сделал?

Один из вариантов - использовать распознавание лиц или просто сделайте снимок. Возможны другие биометрические параметры, такие как голос и отпечаток пальца. Идентификационную карту или электронный ключ можно передавать, их нужно выудить, чтобы использовать, и рабочий должен не забыть взять их с собой. Также можно легко поделиться булавкой или другим секретом. Получение биометрических данных c - надежный способ идентифицировать работника.

0 голосов
/ 05 августа 2020

В промышленных условиях обычно требуется оборудование повышенной прочности. Это довольно специализированный комплект и, как правило, намного дороже, чем "обычное" вычислительное оборудование. В зависимости от окружающей среды вам могут потребоваться водонепроницаемые и пыленепроницаемые корпуса. Google предоставит ряд вариантов. Оборудование без повышенной прочности обычно не выдерживает жестких sh условий и, скорее всего, выйдет из строя быстро или непредсказуемо.

Если вы хотите проверить, кто сделал определенные записи, вам понадобится какой-то механизм аутентификации. Biometri c логины - отпечаток пальца c. - доступны на различных устройствах и упростят пользователям вход в систему без ввода имен пользователей и паролей (которые часто используются совместно). В этой модели пользователь аутентифицируется в операционной системе, а не в веб-приложении; склеивание их вместе выполнимо, но во многом зависит от вашей корпоративной системы управления идентификацией и фреймворков, которые вы используете для создания своего веб-приложения.

Другой вариант - использовать RFID-карты - опять же, многие защищенные компьютеры поддерживают Считыватели RFID, которые могут считывать физический объект в стиле карты или брелока. Это менее безопасно, чем аутентификация biometri c, поскольку люди используют общие карты. Опять же, аутентификация здесь происходит на уровне операционной системы.

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

Встраивание аутентификации в веб-приложение также является вариантом, но AFAIK biometri c Решения по-прежнему немного эзотеристы c для веб-приложений. Имя пользователя / пароль достаточно просты в большинстве фреймворков, и если вы установите короткий тайм-аут сеанса, шансы, что кто-то забудет выйти из системы и оставит браузер в системе, невелики. Недостаточно для кодов запуска ядерных ракет, но для бизнес-приложения, вероятно, нормально.

Вы также можете посмотреть альтернативы аутентификации по имени пользователя и паролю без использования биометрии - например, код доступа или распознавание изображений option («вот 16 случайных изображений, какая у вас бабушка?»). AFAIK, это не стандартная функция в большинстве фреймворков для веб-разработки, поэтому вам придется использовать свой собственный.

0 голосов
/ 05 августа 2020

Можно ли авторизоваться по смарт-карте? Вот как мы это делали раньше. Это было примерно в 2006 году при использовании Windows XP. Устройство чтения смарт-карт было USB-устройством, аутентификация была стандартной windows со смарт-картой, однако я ничего не могу вспомнить о картах.

Войдите в устройство, прочитав смарт-карту оператора, затем выполните ограничение авторизация против службы. Если curb - слишком старая школа, вы, вероятно, могли бы превратить аутентификацию ОС в OID C без слишком большого количества драм, используя что-то вроде Okta или Auth0.

В качестве альтернативы пусть устройство будет использовать те же учетные данные для всех пользователей, но os имя пользователя из контекста запроса.

РЕДАКТИРОВАТЬ

Для некоторых более конкретных примеров:

  • Вот windows статья о смарт card auth: https://docs.microsoft.com/en-us/windows/security/identity-protection/smart-cards/smart-card-how-smart-card-sign-in-works-in-windows У меня нет опыта владения картами / кардридером, но обычно это хлеб с маслом для промышленных объектов, где пользователь должен включать / выключать часы .

  • После аутентификации пользователя в ОС этот контекст аутентификации должен использоваться для получения дружественной к сети схемы аутентификации.

    • Вы также можете использовать SAML Federation между IdP и ADFS / AzureAD, что позволит вам выдать токен доступа OAuth2
    • Okta поддерживает SSO (эффективно скрывая SAML Federation) с помощью браузера p lugin: https://help.okta.com/en/prod/Content/Topics/Apps/Apps_Browser_Plugin.htm.
  • Конечный результат состоит в том, что для пользователя, вошедшего в систему Windows, вы можете выдать Oauth2 / OID C токен доступа

  • Веб-приложение может использовать стандартную аутентификацию с помощью токена доступа OAuth2

Многое из этого не имеет ничего общего с веб-приложением, это все о том, как взять контекст аутентификации ОС и использовать его, чтобы получить что-то «нормальное» для использования веб-приложением.

Удачи!

...