历经两个多月的高强度研发, Authing 今日正式发布 2.0 版本,里里外外都有了质的提高。不知不觉中 Authing 已为多家世界五百强企业和数以千计的开发者提供了身份管理服务,咱们想在此认真的回顾一下过去,展望一下将来。
一年多之前创业的出发点其实很朴素:从云计算的角度为开发者解决恼人的登陆问题。看起来,这件事很简单,IAM 已经发展不少年了,IDaaS 无非是把 IAM 搬到云上,没什么太大的亮点,但真正令我激动的是:咱们要造的是一个真正能做为企业基础设施的云计算身份层。这句话怎么理解呢?我在后边会好好聊聊。数据库
通俗易懂 IDaaS
为防止有读者不了解 IDaaS,我先解释下什么是 IDaaS。
当组织开发或维护应用时,他们会选择本身实现哪些功能以及将哪些功能托管给第三方。例如,若是你正在编写一个用于付款的应用程序,那么使用 Ping++ 之类的平台而不是从头开始开发本身的支付系统,一般会更节省时间和成本。编程
若是你的应用程序要求用户登陆,状况也是如此。鉴于登陆的复杂性以及身份管理涉及到的分析和合规成本,一般最简单的方法是购买 IDaaS 并集成到你的应用中。安全
IDaaS 提供商基于 IAM 提供云的解决方案。服务器
购买 IDaaS 服务时,其实是在购买 API(应用程序编程接口)。用最简单的话来讲,API 是一组关于软件或应用程序如何交互的规则,例如翻译器或中介器。微信
在有 IDaaS 的状况下,API 在终端用户、Authing 和服务商服务器中间流转。网络
在谈论管理身份时,咱们指的是三种基本用户类别的身份:架构
客户身份和访问管理(CIAM),适用于最终用户。app
Workforce IAM,它管理你的员工及其对内部应用程序的访问。编程语言
B2B IAM,使企业能够将身份与其业务合做伙伴和企业客户进行集成。ide
这三个类别的场景区别很大,组织会依据不一样的场景选择不一样的 IDaaS 厂商。
几乎全部IDaaS提供程序都有一些共同的核心功能,这些包括:
多因素身份验证(MFA)
生物识别
单点登陆(SSO)
用户管理和访问控制
更多内容请访问:https://authing.cn/blog/。
身份本该就是基础设施
做为一个写了十年代码的架构师,职业生涯中写过不下数十款互联网软件,每一款软件最开始要作的事情就是设计「用户系统」和「权限系统」,这么多年的经验,不一样行业不一样系统,教会了我不少抽象化的思想,从技术层面来讲,全部这些架构,总结成一句话就是:身份本该就是基础设施。咱们作的一切工做,都是围绕着身份。
当和一位资深的投资人朋友谈到这个想法时,他提示我:「OpenID 已经尝试过可是失败了」。
OpenID 是一个身份协议,它想在全网构建开放的身份联盟,用户不须要记住像用户名和密码这样的传统验证标记。取而代之的是,用户只须要预先在一个做为 OpenID 身份提供商(Identity Provider, IdP)的网站上注册,而后用这个帐号就能够登陆全部支持 OpenID 的网站。
若是你不是很理解这句话,那么这个例子你必定能理解。你们都知道腾讯和阿里巴巴是两强相争,互不相容,而 OpenID 的做用相似于用企业微信登陆阿里云。
P.S. 企业微信登陆阿里云使用的并不是 OpenID 协议,而是更加企业级的 SAML 协议,此处仅为举例解释 OpenID 能够达到的直观效果。
除了一处注册,处处通行之外,OpenID 给全部支持 OpenID 的网站带来了更高价值 —— 共享用户资源。用户能够方便的控制哪些信息能够被共享以及能够共享给谁,例如姓名、地址、电话号码等。
OpenID 在全盛的时候,被 50000+ 网站支持,而且产生了超过数十亿次链接,它本能够构建成一个相似 Facebook 的社交网络,可是它失败了,失败的缘由很简单,外网的评论为:
The main reason no one uses OpenID is because Facebook Connect does the same thing and does it better.
每一个人都知道 Facebook 是什么,相比理解什么是 OpenID,理解 Facebook 上的身份显得容易的多。这也解释了为何即便有 50000+ 网站支持、数十亿次链接的 OpenID 最终依然是失败的。「使用 Facebook 登陆」在 OpenID 全盛的时候,被 250000+ 网站支持,被 Facebook 数百万的用户所使用,而且有很强的品牌效应。
在中国,与之对应的就是「使用微信登陆」。
正由于看到了 OpenID 在全球互联网的失败以及 100% 会在国内重复发生的失败,咱们将 Authing 定位为「云计算的身份基础设施」,SaaS 在中国这片农耕文明的土地上还不够成熟,也正由于 SaaS 不成熟,才有重构云计算身份基础设施的机会。上世纪 90 年代的年轻人押注我的互联网将在 21 世纪蓬勃爆发同样,Authing 押注 SaaS 会真正成为水和电,就像咱们所使用的全部生活服务同样,SaaS 会注入到每个人的工做中。
Authing 相比 OpenID 有以下优点:
1. 不只面向增量应用,更加注重存量应用
OpenID 面向增量应用,面向互联网应用的缔造者们,拟定了一套标准协议让开发者接入,让全网用户使用一个帐户通行全部系统。这有点像如今不少区块链系统的去中心化身份,只关注区块链互联网,抛弃了古典互联网的用户。
Authing 在面向增量应用的基础上,面向企业,关注企业现有应用的现代化改造,并提供完善的接口、工具和方案帮助客户平滑迁移、融合新旧用户身份。
2. 不只是一个协议,Authing 是一整套开发套件
OpenID 是一套协议,该协议旨在成为标准而不是产品。
Authing 拥有超过 500+ 开放接口、十几种编程语言的 SDK和成熟的开发者生态,使任意开发者能够在半小时内,免去学习任何协议的成本接入 Authing,达到链接任何应用的目的。使用 Authing 最短只要 5 行代码,包含用户中心、权限控制、身份来源识别、社交登陆、生物识别、跨平台、短信验证、邮箱验证、登陆/注册风险控制在内的诸多设计和实施成本将被省去。
3. 基于多租户云原生架构,Authing 是面向数亿用户,兼具高性能、高安全的全场景身份云
OpenID 诞生于在互联网的早期,有其历史局限性,它没有将身份的弹性伸缩归入到总体设计中。
Authing 采用云原生架构,支持 k8s+Docker 的部署方式,已在 AWS,华为,阿里云,腾讯云,七牛云等多个公有云上实现基于云原生部署及弹性伸缩能力,是多厂商中惟一支持云原生架构的产品。
Authing 基于用户池实现多租,同时可实现三种方式的多租隔离:公有云逻辑多组,私有云物理多租,私有化 k8s 容器多租。此外因为基于云原生,理论上无租户数上限,平滑扩展。
Authing 可对接多种云原生 KMS 服务;实现端到端加密、数据传输加密完备;同时拥有完整的 DevOps 能力:基于云原生的研发全套 CICD 流水线。
以 API 为中心的身份中台
上面这张图是 IAM 的发展趋势,Authing 诞生之初就位于第四阶段,并将于 2020 年完成第五阶段的跃迁,而第五阶段中最重要的关键词是「API」。
通俗易懂 API
API 表明「应用程序编程接口」。它是一段代码,充当两个不一样团队所开发软件之间的过渡。API 充当双方之间的中介者或翻译者,来回传递请求和响应。
拿就餐举例,你向服务员说:「我要一块鸡排」,服务员会向厨房传递这个信息,你不用操心「鸡排是怎么作的」,十分钟后你就能够吃到鸡排。
在这个例子中,你是某个软件的用户,服务员是 API,厨房是软件的服务器。
社交登陆是 API 的常见例子。当软件实施了社交登陆后,用户只需单击一下按钮便可经过身份提供商进行身份验证,例如「使用微信登陆」、「使用 QQ 登陆」。在微信登陆中,是腾讯向开发者提供了 API 以帮助用户使用微信身份登陆到开发者的应用。
咱们很开心的看到,开发者经过咱们的开放 API,以超乎咱们想象的方式拓展了 Authing 自己的不少场景。当我看到客户的开发者在会议室内讨论 Authing 的功能、设计和架构如数家珍时,让咱们感到很是激动和兴奋 —— 咱们的产品帮助了数千开发者解决了数百万用户的登陆和身份融合问题,这让咱们的社会责任感大幅加强。
Authing(红线)和其余 IDaaS 厂商的对比
将来在哪里?
不少人不相信将来,可是我始终清楚,将来由如今创造而成。中学时期学的一首诗「相信将来」,始终鞭策着咱们前行 —— 相信将来,相信将来人们的眼睛:
身份的弹性调度是其余资源弹性调度的开始
最近十年,最大的变革是云带来的,而这场变革,始终都在进行。云的核心能力,除了方便部署以外,最大的优点是弹性。计算资源的分配粒度从一个机房到一个函数,从买车到滴滴,从买房到租房,订阅经济已在吞噬软件行业。弹性的优点在于咱们不须要为「没有产生的计算进行付费」,从而在必定阈值内大幅下降成本。
云的出现将弹性变成了一个基础设施能力,任何云厂商必然会讲「弹性伸缩」,这也是客户关注的事情,你没有无法想象,在没有云的时代,厂商是如何痛苦的配备机房的。
由于计算资源的分配粒度愈来愈细,也致使了计算资源开始往业务层靠拢(如:TiDB 能感知业务特色,其会根据地理特征、高频访问等因素进行进行调度伸缩)。
身份做为一种计算资源是全部资源中最靠近用户的一层,在弹性伸缩和业务调度上,Authing 会作但不局限于如下这些事情:
预测峰值即未来临,自动采购机构,提早扩容,在高峰过去后回收服务器并进行缩容;
感知业务特定,根据业务特色分配计算资源;
如:中国和美国的用户各自对就近节点进行访问
预测查询类型和访问频率,自动决定存储类型;
如:热数据用 Redis,冷数据用 OSS 或数据库
预测用户行为,进行风险控制;
如:某用户使用了不一样的手机登陆了某应用,要求开启 MFA 二次验证
咱们很高兴的看到,市场上除了 Authing 在强调弹性伸缩外,TiDB、LeanCloud、声网这类公司已在各自的领域实现了如数据库、计算和 RTC 的资源弹性调度。咱们相信在将来 ,会有更多此类公司出现。
身份的背后是数据
作身份必定离不开数据,咱们发现有些客户的诉求本不在身份,而是在数据上,只是他们发现,若想打通数据,先要打通身份。
咱们始终在设想一种新的软件架构可能性(而且已在 Authing 的软件架构中实践) —— 身份和数据分离,这种架构有以下几种特性:
数据全部权归用户,用户决定数据存在哪以及哪些应用和人能够读写用户的数据
每一个用户都有一个我的网盘(简称 Pod,Personal Online Data),这个网盘中存储着用户资料、社交信息以及其余应用的数据
每一个用户的 Pod 就至关于这个用户在互联网上的身份,「使用微信登陆」、「使用微博登陆」会变成 「使用 Pod 登陆」
全部的数据都被一种名为「关联数据」的 数据格式互联,从而达成语义计算和语义推理,从根本上避免数据打通的问题和数据孤岛
下一个阶段是智能
现阶段的智能比较强调「统计」,较少关注「推理」。
若是身份背后的数据可以被语义互联 ,那么产生推理智能的关键取决于语义技术。
语义标记的数据称为「智能数据」,由于它们以统一的方式为每一个数据提供了惟一的描述。简单来讲,语义数据界定了一我的的头像只能叫「avatar」而不是「photo」。当定义了这些词汇后,这些语义模型将能够自动判断上下文的联系,并造成语义图。人工智能将利用这些关系,使其可以更好的从经验中学习。
如要链接数据,必要链接身份。这个场景还比较远,但还是一个值得畅想的将来。咱们不知道,当每一个人的数据能够互联时会产生什么,就像咱们不知道 21 世纪的移动互联网如此方便了咱们的生活。
尾声
创业在遇到困难的时候咱们每每会回头看一下初心:从云计算的角度为开发者解决恼人的登陆问题。团队浮躁的时候,我常常和团队说一个词「耐心」,而我对耐心的理解是:有目标是耐心的基础。
构建一个完美的 IDaaS 并非一朝一夕的工做,清晰的目标和愿景让咱们有耐心让不可能变为可能。
Authing 就是身份云。
附:《相信将来》节选
我之因此坚决地 相信将来
是我 相信将来人们的眼睛
她有拨开历史风尘的睫毛
她有看透岁月篇章的瞳孔
无论人们对于咱们腐烂的皮肉
那些迷途的惆怅、失败的苦痛
是寄予感动的热泪、深切的同情
仍是给以轻蔑的微笑、辛辣的嘲讽
我坚信人们对于咱们的脊骨
那无数次的探索、迷途、失败和成功
必定会给予热情、客观、公正的评定
是的,我焦急地等待着他们的评定
朋友,坚决地 相信将来吧
相信不屈不挠的努力
相信打败死亡的年轻
相信将来、热爱生命
1968年 食指 北京