实现 Authing/Okta/Auth0 的难点在于?为什么这块还需要云服务?

2024-01-22 11:57:10 +08:00
 annoygaga

如题,题主在思考为什么用户这种最重要的数据需要外包给 SaaS 服务,这块服务的痛点在哪里呢?

10999 次点击
所在节点    程序员
70 条回复
fkdog
2024-01-22 16:24:04 +08:00
记得以前国内有个平台接入了微信 qq 第三方登录,某天腾讯把这个平台 ban 了,结果这个平台用户通过微信 qq 方式登录的就再也找不回原账号了。
此后,国内所有对接了第三方 oAuth 认证的统一要求绑定手机号/平台内账号防止出现类似情况。

登录是用户使用的第一步,把自己卵子交给 sass 这样的行为,对公司对用户都是不负责行为。
utodea
2024-01-22 17:34:41 +08:00
技术上没什么难点,
longbowape
2024-01-22 17:47:09 +08:00
@fkdog 手机号是法规实名认证的要求,和 oauth 没有关系
Ayanokouji
2024-01-22 17:49:27 +08:00
@utodea
@annoygaga 技术上没难点?读过 oauth2 和 oidc 的规范吗?看看 ory 为了实现协议写了多少代码
leo108
2024-01-22 18:15:01 +08:00
我面试高级研发候选人的时候最喜欢出的题目是设计一个通过邮箱实现重设密码模块的功能,能设计出没有明显缺陷的候选人估计也就 1/10 吧。
utodea
2024-01-22 20:37:39 +08:00
刚好我作为 Tech Lead 负责过某司的账号、支付中台性质的团队,这玩意技术上确实没什么难点!

出于个人兴趣我曾经读过 [ZITADEl]( https://github.com/zitadel/zitadel)大部分的代码,推荐给你 @annoygaga

确实 SASS 本身的设计会完备一些,但如果是自己实现即使业务到达了几百万 DAU ,亿级设备(之前我负责过的大概是这个量级) 我是觉得不存在什么技术难点,我在负责这个团队的时候遇到的难题都不是什么技术难题。实现一个基础的账户及登录系统、接一接各种登录方式,多则再自己搞个 OAuth2.0 Server ,这些都是业界非常成熟的方案了,能有啥技术难点。技术上,只要时刻提醒自己要关注账户安全性和登录服务高可用就行。

对于大部分使用开发者,接 auth0 和不接,前期估计能节省个一半的时间,也可能更多,特别是登录渠道多的时候。有些登录渠道的官方文档真不是人看的!接 auth0 可能你就没这些烦恼。产品早期 release 的速度很重要,开发者时间是成本核心。

等你的产品有不断的业务定制的时候,并且需要关注上面我说的账户安全性和登录服务高可用时。开始在 auth0 上各种堆💩,直到有一天觉得自建才能在上面三者平衡时。你开始考虑自有团队或者外包。直到外包或 SDK 代理商在定制性、安全性、高可用性无法满足时,你开始组建一个团队来负责。于是大概十个人左右的团队成为了公司的人力成本,我了解的几个中厂游戏公司都是这个规模(包含各种 SDK 的实现)。

@annoygaga #12 “想迁移就很难了”,是的。但是当公司走到了这一步的时候,大多数时候都是幸福的烦恼了(至少从公司层面是这样的)。
utodea
2024-01-22 20:49:14 +08:00
@Ayanokouji 绝大部分情况下我们需要的不是一个类似 Ory 这样的 SaaS 系统,只是需要一个提供基础账户、Auth 能力的系统。

极端点,没读过或者不理解 OAuth2 和 OIDC 的规范也能满足需求......
iseki
2024-01-22 20:51:39 +08:00
@annoygaga 正确实现 OAuth 2.0 ,你需要熟悉 IETF RFC 6749 6750 6819 ,这类平台一般还要实现 OIDC ,这部分规格不属于 IETF RFC ,但也有洋洋洒洒大几百页。这仅仅是开放互联的内容,尚未涉及到业务域,比如账号体系,授权认证体系等等。也不见得有多难,但是完全让你一个人做你可以估算估算自己要做多久。
iseki
2024-01-22 20:53:16 +08:00
@utodea 看你的需求是什么,如果你的需求是 OIDC 开放互联,你就只能去读这些文档了。规格文档只会说要什么,到底怎么落地得自己想。
phrack
2024-01-22 20:53:29 +08:00
简单?我脑子看来确实不行,我感觉很复杂。
holulu
2024-01-22 20:57:29 +08:00
每做一个应用都做一套 auth ,还得保证不出安全问题,成本就很高。有现成的为什么不接。例如做一个给开发者用的小应用,可能就一个页面,但要写个 auth ,就本末倒置了,直接接个 github auth ,用户用得方便,还不用管那么多安全问题。
matrix1010
2024-01-22 21:47:16 +08:00
@ck65 auth0 21 年初就被 okta 收购了。okta 是上市公司就没必要继续融资了
annoygaga
2024-01-22 22:46:32 +08:00
@fkdog 是这样的,让人感到很奇怪。。。
annoygaga
2024-01-22 22:46:52 +08:00
@utodea 完全没有吗?那为什么还存在这些平台
annoygaga
2024-01-22 22:47:27 +08:00
@Ayanokouji 那假设已经有了 ory 这样的代码存在的情况下的难点呢?
annoygaga
2024-01-22 22:48:00 +08:00
@leo108 主要的坑点在哪呢?求求指教🙏
annoygaga
2024-01-22 22:50:46 +08:00
@utodea 嗯嗯,对于你负责过的这些,有没有什么好的开源实现之类的,我可以整个学习学习
annoygaga
2024-01-22 22:51:33 +08:00
@iseki 但我只需要实现 auth 需求,是不是只需要其中的一部分?
annoygaga
2024-01-22 22:52:01 +08:00
@utodea 一般人的需求,其实都是 auth ,或者系统内部 SSO 什么的
annoygaga
2024-01-22 22:52:25 +08:00
@phrack 可能是我理解浅薄了,复杂的点大概是?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1010604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX