在 Dweb 系列文章中,我们将介绍一些探索网络去中心化或分布式化后可能性的项目。这些项目与 Mozilla 无关,其中一些项目重新定义了我们对网络浏览器的思考方式。它们的共同点是:这些项目都是开源的,并允许参与,并且它们与 Mozilla 的使命保持一致,即保持网络开放和可供所有人使用。
在这个系列文章中,我们已经介绍了许多项目,这些项目需要对网络的网络架构进行基础性的改变。但有时候,仅仅改变我们使用现有网络的方式就可以带来巨大的改变。
想象一下,如果你再也不用记住登录网站或应用程序的密码。IndieAuth 是一种简单但强大的方式,可以使用已经内置在网络本身的去中心化特性来管理和验证身份。我们很高兴介绍 IndieWeb 运动的联合创始人 Aaron Parecki,他会向你展示如何使用 IndieAuth 在网络上建立自己的独立身份。
– Dietrich Ayala
介绍 IndieAuth
IndieAuth 是一种去中心化的登录协议,允许你的软件用户登录其他应用程序。
从用户角度来看,它允许你使用现有帐户登录各种应用程序,而无需在每个地方创建新的密码。
IndieAuth 基于现有的网络技术,使用 URL 作为标识符。这使得它广泛适用于当今的网络,并且可以快速集成到现有的网站和网络平台中。
IndieAuth 在 IndieWeb 社区 经过多年发展,这是一个松散联系的群体,致力于让个人拥有自己的在线身份,并在 2018 年作为 W3C 注解发布。
IndieAuth 架构
IndieAuth 是对 OAuth 2.0 的扩展,允许任何网站成为自己的身份提供者。它建立在 OAuth 2.0 之上,利用了行业中围绕授权和身份验证的所有现有安全考虑因素和最佳实践。
IndieAuth 的前提假设是每个标识符都是一个 URL。用户和应用程序都通过 URL 标识和表示。
当用户登录应用程序时,他们首先输入自己的个人主页 URL。应用程序会获取该 URL 并找到将用户发送到哪里进行身份验证,然后将用户发送到那里,并稍后可以验证身份验证是否成功。下面的流程图介绍了交换的每个步骤
开始使用 IndieAuth
使用你的现有网站作为你的 IndieAuth 身份的最快方法是让现有服务处理协议部分,并告诉应用程序在哪里可以找到你正在使用的服务。
如果你的网站使用 WordPress,你可以通过安装 IndieAuth 插件 很容易开始使用!安装并激活插件后,你的网站将成为一个功能齐全的 IndieAuth 提供者,你可以立即登录到诸如 https://indieweb.org 之类的网站!
要手动设置你的网站,你需要选择一个 IndieAuth 服务器,例如 https://indieauth.com,并在你的主页中添加一些链接。在 HTML <link>
标签中添加指向 indieauth.com 授权端点的链接,以便应用程序知道将你发送到哪里登录。
<link rel="authorization_endpoint" href="https://indieauth.com/auth">
然后告诉 indieauth.com 如何验证你的身份,方法是链接到 GitHub 帐户或电子邮件地址。
<a href="https://github.com/username" rel="me">GitHub</a>
<a href="mailto:you@example.com" rel="me">Email</a>
注意:最后一步是 indieauth.com 独有的,不是 IndieAuth 规范的一部分。这是 indieauth.com 在你没有在那里创建密码的情况下验证你的身份的方式。它允许你切换用来验证身份的机制,例如,如果你决定停止使用 GitHub,而无需更改你在登录的网站上的身份。
如果你根本不想依赖任何第三方服务,那么你可以 托管自己的 IndieAuth 授权端点,方法是使用现有的开源解决方案或构建自己的端点。无论如何,今天开始使用服务是可以的,因为你随时可以将其换掉,而不会改变你的身份。
现在你已经准备好了!当你登录到像 https://indieweb.org 这样的网站时,你会被要求输入你的 URL,然后你将被发送到你的选择的 IndieAuth 服务器进行身份验证!
了解更多
如果你想了解更多信息,开放网络的 OAuth 讨论了 IndieAuth 规范背后的更多技术细节和动机。
你可以在下面的链接中了解如何构建自己的 IndieAuth 服务器
你可以在 indieauth.spec.indieweb.org 找到最新的规范。如果你有任何问题,请随时在 IndieWeb 聊天 中的 #indieweb-dev 频道中交流,或者你可以在 Twitter 或 我的网站 上找到我。