Auth0 和 Authing,谁是身份云的高脚杯

本文内容来自 Authing 开发者杨恒。

当使用 Serverless 开发应用程序时,我一直在探索无服务器身份认证的可能性,当我对比了 Auth0 和 Authing 后非常激动:我发现自己需要做的工作非常少,而且可以解决很多麻烦!

我虽然不是安全专家,但是实现过一些不同的身份认证系统,我遇到了很多挑战,我花费了很多时间弄清楚如何把这件事做的更好。幸运的是,我发现了一些做身份管理和身份认证的 SaaS 平台,有时也被称为 IDaaS 服务。我非常建议用这类服务,而不是自己构建身份认证解决方案。

身份认证是通过使用用户名、密码等登录方式来验证用户身份的过程。授权是通过使用用户组、角色和权限等来验证用户是否有资源访问权限的过程。这些基于云的身份认证提供商除了提供了这些基础功能外还有很多其他拓展性功能。

有很多 IDaaS 服务商可以选择,但是在本文,我将重点介绍我个人熟悉的两个提供商。一个是美国的 Auth0,另外一个是中国的 Authing,这两家提供商都是提供面向消费者的身份认证服务,同时是开发者友好的。

 

为什么 IDaaS 能够 Make sense

API 驱动的身份认证云的出现,让我们摆脱了必须自己建立完整的身份认证和授权系统的麻烦。用户系统具有高度动态性,因为它们经常更改,并且也是恶意流量的最大目标。建立我们自己的用户系统不仅复杂且耗时,而且会有潜在的安全问题。通过使用 IDaaS,我们可以减少开发时间和麻烦,同时还可以确保我们的系统由行业专家构建和保护。

Auth0 和 Authing 都允许开发者快速解决身份认证问题,同时可以让用户在最短的时间内注册并登录我们的应用程序。除了最简单的使用方法外,它们都允许通过 SDK 完成多种身份认证策略。

 

 

嵌入式身份验证解决方案

API 驱动的身份认证云的出现,让我们摆脱了必须自己建立完整的身份认证和授权系统的麻烦。用户系统具有高度动态性,因为它们经常更改,并且也是恶意流量的最大目标。建立我们自己的用户系统不仅复杂且耗时,而且会有潜在的安全问题。通过使用 IDaaS,我们可以减少开发时间和麻烦,同时还可以确保我们的系统由行业专家构建和保护。

Auth0 提供了两种嵌入式解决方案。第一个是名为 Lock 的登录小部件,其拥有很多的自定义选项,例如添加自定义注册字段的功能,然后将其保存到用户的元数据中,这非常好。第二个是 Auth0 提供的二级域名登录页面,该页面允许我们自定义样式。Auth0 Lock 小部件非常易于集成,代码如下所示:

<html>

<head>

  <title>Example Auth0 Sign-In Widget</title>

</head>

<body>

  <script src='https://cdn.auth0.com/js/lock/10.24.1/lock.min.js'></script>

  <script>

    const lock = new Auth0Lock('$AUTH0_LOCK_SECRET', 'rbin.eu.auth0.com', {

      auth: {

        redirectUrl: 'http://localhost:3000/auth/auth0/callback',

        responseType: 'code',

        params: {

          scope: 'openid email' // more about scopes: https://auth0.com/docs/scopes

        }

      }

    })

</script>

  <button onclick='lock.show()'>Login</button>

</body>

</html>

 

Authing 也有两种可用的嵌入式解决方案:二级域名标准登录页面(由 Authing 托管的重定向身份认证解决方案)和其名为 Guard 的登录小部件,Guard 也提供了功能强大的登录解决方案和大量自定义选项。

Authing 登录小部件可以轻松添加到任何 Web 应用程序中,代码如下所示:

<html>

<head>

  <title>Example Authing Sign-In Widget</title>

</head>

<body>

  <script src='https://cdn.jsdelivr.net/npm/@authing/sso/dist/AuthingSSO.umd.min.js'></script>

  <script>

    const authing = new AuthingSSO({

        appId: "5d70d0e991fdd597019df70d",

        appDomain: "sample-sso.authing.cn"

     })

</script>

  <button onclick='authing.login()'>Login</button>

</body>

</html>



从代码中可以明显看到,Authing 的初始化要比 Auth0 简单很多。

 

使用 Auth0 进行首次 API 调用的时间

通过运行 Auth0 的 Node.js 快速入门教程,我进入了基本的 Web 应用程序的登录页面。注册免费的 Auth0 帐户后,我在其管理控制台中创建了标准 Web 客户端,并将客户端 ID和 Secret 复制到我的应用程序的变量中:
 

{

  "AUTH0_CLIENT_ID": "$AUTH0_CLIENT_ID",

  "AUTH0_DOMAIN": "$AUTH0_ACCOUNT_DOMAIN.eu.auth0.com",

  "AUTH0_REDIRECT_URL": "http://localhost:3000"

}

使用 Auth0 Web Auth 模块的代码非常简单,因为只需要将授权详细信息存储到本地存储中:

const webAuth = new auth0.WebAuth({

  domain: sampleConfig.AUTH0_DOMAIN,

  clientID: sampleConfig.AUTH0_CLIENT_ID,

  redirectUri: location.href,

  audience: `https://${ sampleConfig.AUTH0_DOMAIN }/userinfo`,

  responseType: 'token id_token',

  scope: 'openid',

  leeway: 60

})

​

function setSession(authResult) {

  const expiresAt = JSON.stringify(

    new Date().valueOf() + authResult.expiresIn * 1000

  )

​

  localStorage.setItem('access_token', authResult.accessToken)

  localStorage.setItem('id_token', authResult.idToken)

  localStorage.setItem('expires_at', expiresAt)

}

 

运行 Web 应用程序,我们可以在下图中看到会话详细信息存储在本地存储中。编码的 JWT id_token 以红色突出显示。我们还可以观察到 Session 在注销时被销毁了。

 

总体而言,使用 Auth0 进行有效 API 调用所需的时间是 9 分钟,还不错!

 

使用 Authing 进行首次 API 调用的时间

我运行了 Authing 官方的 Web SSO Sample,在注册了 Authing 账号和和创建了一个应用后,然后把相关信息填入了代码中。

const authing = new AuthingSSO({

        appId: "5d70d0e991fdd597019df70d", // OIDC 应用的 ID

        appType: "oidc", // SSO 类型为 OIDC 类型

        appDomain: "sample-sso.authing.cn"

      });

const callTrackSession = async function() {

        const res = await authing.trackSession();

        if (!res.session) {

            console.log('未登录');

        }else {

            console.log(res);

        }

};

​

callTrackSession()

 

在运行且登录成功后,我看到控制台打印出了如下信息:

 

我注意到这些信息中不仅包含了用户的基础信息,还有一些字段使用的提示,我感到很贴心。统计下来,使用 Authing 完成第一次 API 调用的时间是五分钟,非常棒!

 

开发体验

使用标准的认证流程必须要理解什么是 OAuth 流程,从 API 和文档的角度来看,Auth0 和 Authing 都有相当清晰简洁的文档,可以帮助你选择最合适的流程。不过,总的来说,Authing 的文档要好一些,有清晰的解释和详细的图表。比如,Authing 有两页文档介绍了 OAuth 2.0。

 

社交登录集成

现在,我使用了 OAuth 2.0 流程来处理用户认证,但是我还需要添加社交登录。

不用想都知道,Auth0 和 Authing 都提供了社交登录方案。Auth0 和 Authing 提供的方案并无太大的差别,都是通过控制台配置然后在 Lock 部件或者 Guard 部件中可以自动加载出来,两者在配置过程中都不需要写任何代码。​

Auth0 的社交登录集成的比 Authing 多,但是对于中国人来说,Authing 集成了很多 Auth0 没有集成的中国社交登录,甚至还包含小程序扫码登录。

 

Auth0

 

Authing

 

API 调试

 

Auth0 和 Authing 的 API 调试方式不太一样,Auth0 是标准的 RESTful API,而 Authing 使用了 GraphQL。

RESTful API 相比 GraphQL 更容易调试,Authing 为了解决 GraphQL 难调试的问题,他们做了一款在线调试 Authing GraphQL 的工具,如下所示:

 

从图中可以看到,Authing 几乎开放了所有 GraphQL 的描述和访问权限。

从这一点来看,很难说谁好谁坏,如果从易用性角度来看,Auth0 更胜一筹。

 

可扩展性

Auth0 十分注重可扩展性,并提供了一个平台来赋予 Auth0 顶级的可拓展性:Auth0 Extend。这个平台专注于无服务器后端,Extend 可在极短的时间内部署代码片段。

相比之下,Authing 还没有这样的函数计算平台来做插件化,不过其文档中有表明此类平台正在研发。

 

OpenID 和 SAML

OpenID Connect(OIDC)是基于 OAuth 2.0 系列规范的身份认证协议。它使用通过OAuth 协议提供的 JWT 令牌,其目的是使用户能够跨多个站点使用一个登录名。同样,两家提供商都为此提供了解决方案。

这两个平台的 SAML 模块都可以用作服务提供商(SP)和身份提供商(IdP),但是从文档角度来看,Auth0 具有大量的 SAML 文档,而 Authing 的 SAML 文档较为稀缺。不过 Authing 也有集成国内企业级软件的优势。

 

文档和资源

研究新产品的第一步通常是阅读其文档。这就使服务商必须提供出色,详细和简洁的文档。

Auth0 和 Authing 的文档都非常全面,但是 Auth0 的文档比 Authing 多了更多可交互的功能,这是 Authing 所不具备的。

 

结论

我研究了中美两国两个领先的 IDaaS 解决方案的功能,在此过程中,我还对他们的工作原理有了更深入的了解。对我来说,很明显 Authing 要比 Auth0 更加本地化,更适合中国人。其产品还有精美的设计,作为前端开发者,我很喜欢。

总体而言,两种解决方案都可以完成工作,但是我更喜欢 Authing,因为它更优雅且更简单,集成所用的时间也更少。

获取更多资讯,请访问 [Authing 官网](https://authing.cn)
 

 

相关推荐

洞察|以 AI Agent 身份为中心的下一代 IDaaS 探索,「零信任」原则是否依然有效

若一个 AI 代理被诱骗点击了恶意链接,也应当因其权限受限而无法进一步获取更多内部信息,从而将影响降到最低。

Authing的博客 1139

Authing 正在寻找云原生应用 / Infra 开发者

我们需要云原生应用开发者和云原生基础设施开发者加入我们

Authing的博客 1121

从数据孤岛到信息共享,应用集成网关打造业务新生态

企业通过应用集成网关轻松打通业务隔阂,让应用相互“对话”,快速实现数字化转型和业务发展的持续增长。

Authing的博客 1141

建立统一网络身份认证平台,赋能用户信息安全

随着网络化、数字化、智能化的演进,在深入推进数字经济创新发展、积极培育新兴产业和未来产业的过程中,安全与发展将是永恒的主题,如何确保网络身份安全将是主旋律。

Authing的博客 1524

Authing 2024 年全员大会:坚持原创性、冒险精神和极客精神,突破瓶颈,引领市场

他的话语不仅回顾了过去一年的挑战,也为员工们描绘了一个充满希望的未来。

Authing的博客 1015

构建用户身份基础设施,推动新能源汽车高质量发展

企业的困惑或许不再是“ 0 到 1 阶段的破冰”该如何落实,而是在技术创新和政策支持不断变化的情况下,如何抓住用户并在消费者心中构筑存在感,才是未来竞争中的关键。

Authing的博客 1669

后量子时代,未来密码该何去何从?

在量子信息时代来临之前,如何能够有效抵御量子攻击就成了不得不面对的问题之一。

Authing的博客 1773

当网络安全成为业务增长的重要保障,企业应该如何应对?

企业需要关注的网络安全层面有哪些?企业管理者又应如何应对网络安全问题,准确制定企业安全策略呢?

Authing的博客 1733

七部门重磅发文!未来产业创新该如何发展?

如何确保产业数字安全基础上,加快发展未来产业,支撑推进企业创新发展?

Authing的博客 1026

Authing 身份云入选崔牛会「2024 中国企业服务云图」

提供 OPA(组织过程管理) SaaS ,完善 OPA 计算监控、事件监控、决策监控、决策设计器、代码编写等,覆盖决策计算全生命周期,实现事件驱动的低代码决策引擎和自动化风控引擎。Authing 目前已经服务包括可口可乐、招商银行、三星集团、复星集团、万科集团、海底捞在内的 40000+ 企业和开发者。2024 版云图汇聚了时下国内 3500+ 家数字化领域内优秀的 To B 企业,涵盖技术支撑、数据资产、协同办公、垂直行业等 18 个类别,覆盖万亿级市场,堪称中国企业数字化选型的“宝典”,

Authing的博客 750

管理员分级管控三大模式,提高企业内部管理效率

企业在整个权限管理落地过程中,如何解决这些难题,提高企业内部管理效率?

Authing的博客 2057

零信任网络标准发布,企业如何构建下一代可信任的身份安全体系?

在这样的背景下,企业如何构建下一代可信任的身份安全体系?

Authing的博客 1303

克服数字化三重担忧,从构建身份基础设施开始

如何消除三重担忧,成为企业数字化转型之路的重中之重。

Authing的博客 955

AI 欺诈事件频出,如何重塑身份认证的安全性?

人工智能时代的到来,将不仅仅是科技盛宴,更是信息安全对网络威胁的一次攻坚战。

Authing的博客 1386

教育信创全面加速,如何促进高校信息化建设?

教育数字化转型不是针对一般教育设施的简单更新升级,而是针对整个教育体系的深层次积累,引领教育行业从传统的教育模式向智能化教育迈进,形成适应数字时代的全新教育形态。

Authing的博客 1928

Authing 入选中国信通院《 2023 高质量数字化转型产品及服务全景图》

近日,中国信通院“铸基计划”发布了《高质量数字化转型产品及服务全景图( 2023 )》。Authing 身份云成功入选 IT 维护与运营领域并获得证书。

Authing的博客 704

第三方 Cookie 被禁用?企业该如何实现用户精准运营和管理?

如何收集和利用第一方数据填补第三方 Cookie 的空白,成为许多企业和营销人员需要重新思考的问题。

Authing的博客 1331

从密码认证到 Passkey 无密码,告别传统密码时代

Authing 作为国内领先的身份认证服务商,率先推出 Passkey 无密码认证服务,填补国内密码认证缺陷,降低数据泄漏风险。

Authing的博客 1566

Authing 受邀参加 2023 QCon 全球软件开发大会

Authing 作为身份领域领先企业受邀参加此次大会,与客户深度对话塑造数字化发展未来。

Authing的博客 695

2023 年最先进认证方式上线,Authing 推出 Passkey 无密码认证

密码这一传统身份认证方式已经难以得到可靠的认证保障,随之出现各种新身份认证方式,其中就包括无密码身份认证。

Authing的博客 1554

Authing 分级管理员重磅上线,实现权限超细粒度分级管

为了满足企业内部复杂的组织架构设计需求,企业需要实现“统一管理,分级授权”的权限管理模式,满足企业内部不同角色的需求,提高了整体管理的透明度和可操作性。

Authing的博客 1585

身份自动化工作流,帮助您快速提高工作效率

身份自动化不仅仅简单将手动步骤数字化,更是将企业从传统、低效、甚至过时的工作流程中解放出来,形成数字化引擎,将企业的管理方式从繁琐转变为简洁,从手动迈向自动,为整个组织注入了新的活力。

Authing的博客 1210

从身份治理出发,助力教育行业回归教育本质

在实施国家教育数字化战略行动中,如何利用数字技术优势助力教育治理变革,提升区域、学校教育治理水平成为深化教育改革的一个热点话题。

Authing的博客 1193

身份管理如何提升中小企业生产力?

在此困局中,企业希望依托数字化以求业务增长、人员增效、企业扩张以及产品核心竞争力的稳固。

Authing的博客 1025

先进制造身份治理现状洞察:从手动运维迈向自动化身份治理时代

当前形势下,我国制造业发展之路该如何走?

Authing的博客 1680

Authing CEO 谢扬来信 |我的原则

从忙碌的工作中短暂抽身,有很多感想,不吐不快,借此机会,倾我所有,诉我原则。

Authing的博客 1165

从 RBAC 到 NGAC ,企业如何实现自动化权限管理?

谁具有特定数据的访问权限?您的企业是否实现了对员工权限的有效管理?

Authing的博客 2205

如何为您的企业选择合适的多因素认证?

如何评估企业的 MFA 需求,如何选择合适的 MFA 解决方案?这些都成为企业在如今安全环境下需要思考的问题。

Authing的博客 1266

放弃无谓的「技术氛围」幻想,准备战斗

资本绝不会做亏本买卖,一家公司在市场中的一切动作都以盈利为目的。

Authing的博客 225

Authing 入选《 2023 年央国企信创应用与实践研究报告》优秀服务商

Authing 身份云作为国内唯一事件驱动云原生身份平台入选《 2023 年央国企信创应用与实践研究报告》优秀服务商。

Authing的博客 728
上一篇: 怼天怼地的马斯克道歉了?
下一篇: 单点登录那些事儿(三)不同域下的单点登录
Authing
Authing 企业官方账号 企业官方账号
博客等级 码龄6年 863粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值