Authing | 身份上云 or 自建?这里有 20 个问题值得你思考

身份管理自从计算机问世以来就存在,不少人以为身份管理很简单,其实难度远超你的想象。html

1、为何要自建身份管理?

自计算机问世以来,身份管理一直是软件的主要组成部分:打孔机和早期操做系统都受到用户名/密码身份验认证的保护。拥有如此悠久的历史,你会认为身份管理是一个已经被妥善解决的问题。git

自建身份管理通常在如下场景有充足的理由:github

  1. 你正在作一些简单的事情:没有敏感信息或隐私问题,而且你的安全性要求不高,你的用户数量很少,同时用户类型比较单一,只有几个应用程序;
  2. 你是一位经验丰富的开发人员,而且在顶尖团队中工做,多年来一直为应用程序,网站,API 和服务构建身份认证;
  3. 某天你的预算减小了,这时你必须选择一些方案来为组织的大战略省钱;

坦白说,若是你只有一个简单的 Web 应用,只须要一两个社交应用提供一键登陆,而且不须要「用户名 - 密码」或其余更细致的用来登陆的功能,那么自建就很容易。你能够在 Github 上找到大量开源框架来解决此类问题。算法

2、为何要购买身份管理服务?

咱们常常听到客户的研发团队这么评价 Authing:数据库

> 咱们本身就能作,为何要用大家的,并且还要付钱?

接下来让咱们深刻研究这个问题。segmentfault

一、专业的人作专业的事

实现一套身份管理看上去彷佛很简单。可是失败是很可怕的,一旦出现了问题,你的品牌就会受到严重损害。面对持续的黑客攻击,和无休止的漏洞,你是否能准确知道本身的工做足够好到能够保护用户隐私和企业资产?后端

二、投入产出比

自建身份管理并非免费的!
将资源到投入身份管理研发时会产生高昂的的机会成本。身份认证真的是你想要作的吗?假如你作一款应用,会本身写一套 RDBMS(关系数据库管理系统) 吗?身份管理就像 RDBMS,当你能够花合理的钱将非核心的繁重工做委派给专业人士时,为何还要自建身份管理等基础设施呢?身份泄漏产生的成本可能高达数百万美圆,你可否认身份安全没有价值吗?在评估购买身份管理服务的投资回报率时,请考虑这些因素。安全

三、复杂性

你的产品在前期确定是简单的,可是,一旦你的产品成功推向市场,你开始须要支持更普遍的身份提供商。你可能还有合做伙伴,你可能还会推出移动 APP 和 API 让其余人调用,这样你的受众群体才能扩大。若是你在欧洲,你还会面临 GDPR 的监管(中国也即将出台相关法律)。这时身份管理开始变的复杂,维护本身的身份管理系统成本会比你预期要高的多。app

四、测验

上面的几个问题可能已经引起了你的思考。有些你可能不在乎,有些你可能在工做中已经遇到。可是,咱们邀请你根据目前的状态和将来几个月或几年的发展方向回答如下 20 个问题并切实考虑它们。框架

1)用户相关的问题

  1. 你是否考虑过如何实现「用户管理」?是自助管理仍是集中管理?用户体验会是什么样?
  2. 你有用户使用多个「身份提供商」登陆你的应用吗?你如何断定他们是一我的?
  3. 你是否有多个服务或软件须要认证?若是有,他们使用了同一个技术栈仍是多个技术栈?(不一样的技术栈会加大研发成本)
  4. 你是否须要统计信息来查看用户的增加状况、设备状况、IP 地理位置和认证状况?若是须要,你计划如何收集、分析和可视化这些数据?
  5. 你如何记录并解决用户身份认证过程当中出现的异常事件(忘记密码、没法登陆、认证失败、过时等)?

2)应用服务相关的问题

  1. 你如何在漏洞被曝出以前及时发现漏洞?发现漏洞后如何经过补丁快速修复漏洞?
  2. 你如何处理在不一样「身份提供商」之间认证时产生的「标准不兼容」问题?当这些身份提供商之间都使用了不一样的技术栈以后,你将做何处理?
  3. 你的 DevOps 团队可否在开发身份认证基础设施上保持专业、领先地位和最佳实践?
  4. 你有 MFA(多因素认证)策略吗?你打算怎么跨平台的实现 MFA?你是否但愿你的用户能在 iOS 或 Android 设备上使用 FaceID 或指纹来进行身份认证?
  5. 你是否考虑过用户存储的可伸缩性、性能、查询和可用性要求?在流量过大的状况下你如何保证登陆系统的 99.999% 可用?

3)身份提供商(IDP)相关的问题

  1. 你在迁移老应用进更现代的身份管理系统时,如何让用户不重置密码无缝迁移?
  2. 你的一个 B2B 客户须要 SSO,你能够在内网中或防火墙后面与 Active Directory 作联合认证吗?
  3. 不一样的 SAML IdP 有多种格式存储和传递声明 —— 你是否有一种简单的方法让声明彻底自定义化?
  4. OpenID Connect 是流行的身份认证新标准:基于 REST / JSON 和 OAuth 2.0。可是其魔鬼般的实施细节,你计划如何在不一样的后端语言和客户端之间实现它?

4)安全与合规问题

  1. 身份系统是黑客攻击的首要目标。你是否考虑过实施暴力保护?好比 API 网关上的 DDoS 预防和缓解?
  2. 你是否打算让第三方安全顾问来进行独立的渗透测试,代码审查和体系结构审查以验证安全性和最佳实践?
  3. 在身份实施过程当中产生的安全漏洞报告你计划如何解决?
  4. 你是否须要上下文逐步身份认证(Contextual Step-up Authentication)?例如 IP 白名单或 Active Directory 成员身份?你是否须要多种密码加密算法?无密码身份认证对你的用户是否有效或存在乎义?

5)时间与成本问题

  1. 你须要雇佣多少人,包括 IT,研发人员和外包服务(例如咨询专业知识)?这些人很难找到,雇用起来也很昂贵。你将从何处得到这些人才,费用是多少?
  2. 你预计的上线日期是何时?你的 IAM 解决方案须要多少时间和多少次迭代?
> Forrester Consulting 的研究报告指出,使用身份管理服务能够产生 548% 的投资回报率和 370 万美圆的费用节省。

使用 Authing 能够一劳永逸的解决上述 20 个问题,任何想作计算机软件的企业或我的,只须要接入 Authing 的云服务,就能够以极低的成本,快速解决那些须要耗费数百万元人民币才能解决的问题。身份的复杂性和混乱性,形成了每一年数十亿的浪费,由于其表面的简单,致使了缺少系统的标准,每家厂商都会本身搞一套本身的标准,这些混乱的标准既养活了一群人,也加剧了这群人的开发负担。

身份这件事,听上去是老故事,看上去很简单,但其从未获得很好的解决,这就是 Authing 存在的意义。

相关阅读

什么是 Authing?

Authing 提供专业的身份认证和受权服务。
咱们为开发者和企业提供用以保证应用程序安全所需的认证模块,这让开发人员无需成为安全专家。
你能够将任意平台的应用接入到 Authing(不管是新开发的应用仍是老应用均可以),同时你还能够自定义应用程序的登陆方式(如:邮箱/密码、短信/验证码、扫码登陆等)。
你能够根据你使用的技术,来选择咱们的 SDK 或调用相关 API 来接入你的应用。当用户发起受权请求时,Authing 会帮助你认证他们的身份和返回必要的用户信息到你的应用中。

<div align=center>Authing 在应用交互中的位置</div>

欢迎关注 Authing 技术专栏

Authing 社区

相关文章
相关标签/搜索