1

我正在创建一个用于重工业环境的 Web 应用程序。希望操作员能够使用中央平板电脑或计算机作为应用程序的接口,以便多个操作员在给定的工作班次期间共享一个设备。大量关于标准个人设备的信息,但没有共享工业设置。

问题- Web 应用程序安全/身份验证的最佳方式是什么?有哪些不同的选择?

  • 他们是否都使用相同的身份验证会话(这不是可取的,因为我想唯一标识活动用户)?
  • 显然,我可以将标准用户名/密码与过期的基于令牌的会话一起使用,但是,这留下了很多帐户劫持的可能性。
  • 理想情况下,他们能够非常快速地登录(也许是 PIN 码?),他们的会话将在完成后结束。
4

3 回答 3

0

在工业环境中,您通常需要坚固耐用的硬件。这是相当专业的套件,通常比“普通”计算硬件贵得多。根据环境,您可能需要防水和防尘外壳。谷歌将提供一系列选项。非加固设备通常无法承受恶劣的条件,并且可能会快速或不可预测地发生故障。

如果您想审核谁创建了特定条目,您将需要某种身份验证机制。生物识别登录 - 指纹等 - 可在一系列设备上使用,并使人们无需输入用户名和密码(通常是共享的)即可轻松登录。在此模型中,用户向操作系统而不是 Web 应用程序进行身份验证;将它们粘合在一起是可行的,但在很大程度上取决于您的企业身份管理系统和您用于构建 Web 应用程序的框架。

另一种选择是使用 RFID 卡——同样,许多坚固耐用的计算机支持 RFID 阅读器,可以读取卡片或钥匙圈式物理对象。这不如生物特征认证安全,因为人们确实共享卡。同样,这里的身份验证是在操作系统级别。

使用操作系统的身份验证工具的好处是,您可以从为保护各种环境中的访问所做的所有工作中受益。例如,大多数操作系统允许您设置策略以在特定超时后锁定屏幕(未经授权的用户无法覆盖此设置)。

将身份验证构建到 Web 应用程序中也是一种选择,但 AFAIK 生物识别解决方案对于 Web 应用程序来说仍然有点深奥。用户名/密码在大多数框架中都很简单,如果您设置较短的会话超时,那么有人忘记注销并让浏览器保持登录状态的可能性很小。对于核发射代码来说不够好,但对于业务线应用程序来说,可能还可以。

您还可以查看用户名/密码身份验证的替代方案,而不使用生物识别技术 - 例如密码或图像识别选项(“这里有 16 张随机图像,这是你的祖母?”)。AFAIK,这不是大多数 Web 开发框架中的标准功能,所以你必须自己动手。

于 2020-08-05T15:33:53.173 回答
0

感谢您发布这个很酷的问题。

设备是否处于受控环境中,只有经过授权的工作人员才能访问它?设备被盗的可能性是否很低,因为可以访问它的人不太可能移动它?

换句话说,您的主要兴趣是识别而不是身份验证?如果是这样,您如何在不干扰工作或使其使用起来过于繁琐的情况下快速识别谁在操作计算机?您是否需要识别此人才能开展工作,或者拥有该身份只是为了以后审计的预防措施,以回答谁做的问题?

一种选择是使用面部识别或简单地拍摄照片。其他生物特征也是可能的,例如语音和指纹。身份证或加密狗可以四处传递,必须捞出才能使用,而且工人必须记得带上它。一个别针或其他秘密也可以很容易地共享。捕获生物特征是识别工人的可靠方法。

于 2020-08-05T13:57:08.127 回答
0

您可以进行智能卡身份验证吗?这就是我们过去的做法。这是大约 2006 年,使用的是 Windows XP。智能卡读卡器是一个 USB 设备,身份验证是带有智能卡的标准窗口,但我不记得有关卡的任何信息。

通过读取运营商智能卡登录到设备,然后针对服务进行限制身份验证。如果遏制太老派,您可能可以使用 Okta 或 Auth0 之类的东西将操作系统身份验证转换为 OIDC,而无需太多戏剧性。

或者,让设备对所有用户使用相同的凭据,但以某种方式从请求上下文中获取 os 用户名。

编辑

对于一些更具体的例子:

  • 这是有关智能卡身份验证的 Windows 文章: https ://docs.microsoft.com/en-us/windows/security/identity-protection/smart-cards/smart-card-how-smart-card-sign-in-works -in-windows获取卡/读卡器不是我有任何经验的东西,但对于用户必须打卡/打卡的工业场所来说,这通常是生计。

  • 一旦用户通过操作系统的身份验证,那么就可以使用该身份验证上下文来获得 Web 友好的身份验证方案。

    • 您还可以在 IdP 和 ADFS/AzureAD 之间使用 SAML 联合,这将允许您发出 OAuth2 访问令牌
    • Okta 支持可以使用浏览器插件执行 SSO(通过有效隐藏 SAML 联合):https ://help.okta.com/en/prod/Content/Topics/Apps/Apps_Browser_Plugin.htm 。
  • 最终结果是,对于登录到 Windows 的用户,您可以发出 Oauth2/OIDC 访问令牌

  • Web 应用程序可以使用标准 OAuth2 访问令牌身份验证

很多这与网络应用程序无关,这都是关于如何获取操作系统身份验证上下文并使用它来获得一些“正常”的东西供网络应用程序使用。

祝你好运!

于 2020-08-05T04:10:19.740 回答