本文为Auth0入门简介,在接下来的文章中还会有更多的Auth0教程。
Auth0 概观
Auth0是一个身份管理平台。
Auth0主要提供身份认证(即登陆账号)与授权服务(不同级别的用户被允许访问的应用资源不同,即权限不同)。
你的应用可以连接Auth0并定义你想使用哪些身份提供者(identity provider,简写为IdP),这决定了你的用户可以通过哪些身份提供者(比如:微软AD、谷歌账号、Facebook账号、GitHub账号等)登陆你的应用。
基于你的应用里所用的编程语言和技术,你可以选择Auth0提供的相关SDK(或直接调用Auth0的API)来启用Auth0。这样每次用户尝试身份认证(登陆)时,Auth0会负责他们的身份认证并发送你需要的相关信息(已注册的用户信息、登陆成功或失败或未注册、token等)回到你的应用。
为什么要使用Auth0?
以下功能场景你都可以用Auth0方便实现:
- 当你开发了一款应用,并打算提供你的用户身份认证和授权功能时,你的用户应该可以有多种形式进行登陆,比如用账号密码或社交软件账号进行SSO(Single Sign In)登陆。你的应用还需要用户的profile信息(如email、电话号码、地理位置、IdP的用户信息等等)来进行UI渲染或授权功能的实现。
- 你开发的应用的API希望通过OAuth 2.0进行加密访问。
- 你想开发多款应用,并想实现SSO(单点登录)。
- 你开发了一个JavaScript前端应用和手机应用,并希望它们能安全加密地访问你的后端API。
- 你开发了一款web应用,并希望为你的用户提供SAML认证功能。
- 你认为用户密码被破解所以你希望通过邮件或短信发送一个一次性认证码给你的用户。
- 如果你的某个用户的电子邮件地址在某些网站的公开数据泄露事件中受到了泄露,你希望收到通知,并通知用户和阻止他们登录到你的应用,直到他们重置密码。
- 如果遭到连续失败的登录尝试,你希望采取主动行动并阻止可疑IP地址,以避免DDoS攻击。
- 你希望允许用户使用他们在某些企业的目录服务里的身份来登陆应用。(比如微软的AD)
- 你不知道如何或不想自己开发用户管理系统,比如密码重置、封杀账号、删除账号、生成账号、配置等等功能。
- 当你的用户访问敏感信息或进行敏感操作时,你希望启用多重验证(multifactor authentication)。
- 你正在寻找一个身份解决方案,帮助你的应用保持跟上对SOC2,GDPR,OpenID Connect等不断增长的合规性要求。
- 你想对你的用户进行分析跟踪,并使用这些数据来创建渠道,衡量用户保留率并改善注册流程。
Auth0使用的业界标准:
现今网络上制订了几种不同的身份认证行业标准来规范网站应用实现用户认证及授权。这些标准是一套开放的规范和协议,告诉你如何设计一个认证和授权系统。 他们告诉你如何管理身份,安全地移动个人数据,并决定谁可以访问应用程序和数据。以下是Auth0可供选用的标准。
- OAuth 1
- OAuth 2
- Open ID Connect
- JSON Web Tokens
- SAML
- WS-Federation
基本:
这里会用一个简单的例子/场景,介绍如何使用Auth0。
第一次注册Auth0时,你可以用账号密码或社交网络账号如Facebook、谷歌、微软等账号注册。
成功注册后,你会被引导创建一个Tenant。