躲不开创建身份验证?开发者福音,更安全、更低成本的方案


全文共3310字 , 预计学习时长12分钟

躲不开创建身份验证?开发者福音,更安全、更低成本的方案
本文插图

图源:unsplash
大多数应用程序都需要某种身份验证 。 建立一个安全的认证系统是一个非常艰巨的任务 , 这要比想象中要困难的多 , 也更容易出错 。
如果你是一家大公司的业务应用开发人员 , 你需要限制授权员工的访问并且检查他们的权限;如果你正在构建一款新的SaaS应用程序 , 那么就需要用户能够创建配置文件并自行维护 。
除了这两种情形 , 构建应用程序时 , 第一步就要创建身份验证和用户管理工作流 。 即至少要创建一个注册表单和一个登陆页面 。 身份验证是web应用开发人员需要实现的最常见功能之一 , 但也是最容易被忽视的功能之一 。 但如果出现的错误会带来灾难性的后果 。
系统的核心在于 , 用户管理和身份验证只需要几个web表单 , 似乎很简单 , 但细节很关键 。 安全地构建那些东西是一项壮举 , 并且大多数时候 , 需要以一种有隐私意识的方式构建 。

躲不开创建身份验证?开发者福音,更安全、更低成本的方案
本文插图

身份云服务
好消息是 , 如今不再需要更新用户管理和身份验证逻辑 , 现在有大量有效的解决身份云服务的方案能轻而易举将身份信息安全地添加到应用程序中 。
例如一些通用的身份验证平台:Auth0、Azure AD、Google Identity Platform以及Okta 。 还有一些社交网络身份提供商 , 如Apple’s、Facebook’s、GitHub’s、Twitter’s等 。

躲不开创建身份验证?开发者福音,更安全、更低成本的方案
本文插图

图源:unsplash
消费者能够轻易地使用这些平台 , 并且为应用程序提供了大量潜在数据的即时访问权限 , 但有时也可能会对用户隐私造成负面影响 。
开发人员没有理由不使用身份提供者服务 。 它们能够节省大量的开发时间 , 而这些时间可用于搭建实际的应用 。 最重要的是 , 它们的解决方案更安全 。

躲不开创建身份验证?开发者福音,更安全、更低成本的方案
本文插图

大多数身份验证是安全的
大多数网络身份提供者提供高级安全功能 , 例如对多重认证(MFA)的支持、安全证书或者密钥(包括U2F、FIDO2、WebAuthn等) 。 不要低估其重要性 , 据微软的报告所述 , 启用MFA可以防御99.9%的账户攻击 。
然而 , 还有另一个鲜为人知的方案能让使用网络身份提供者的服务相比使用自己的解决方案更安全:其拥有相当多的用户 , 从而可以更容易地分析出模式并防止攻击 。
假设用户在加拿大的家中登录 , 两小时之后同一个账户在乌克兰登录 。 网络身份提供商就会将此标记为可疑 , 并且直接拒绝登录 , 或者至少要求其他形式的验证(如MFA令牌) 。 他们还可以通知受到影响的用户和/或管理员 。

躲不开创建身份验证?开发者福音,更安全、更低成本的方案
本文插图

图源:unsplash
通过数百万用户执行的数百万的身份验证操作 , 这些大型网络身份提供商就获得了足够的数据以构建人工智能模型 , 用来更好识别可疑模式 。

躲不开创建身份验证?开发者福音,更安全、更低成本的方案
本文插图

普遍异议
构建用户管理和身份验证逻辑并不难
注册和登陆表单只是问题的一方面 。 需要处理的不仅仅是构建一个表单 , 以允许用户创建一个帐户并键入其凭据 。
首先 , 需要执行其他业务逻辑 , 例如强制执行密码安全规则(但请遵从NIST加密标准 , 不要强制使密码定期过期 , 并且不要强加创造性的规则 , 如要求大小写和符号等) , 验证电子邮件地址和/或电话号码 , 并为用户提供重置密码的方法 。


推荐阅读