Persona Beta 2 发布

Mozilla Persona 是一种开放的身份验证系统,可以让您在半天内在您的网站上实现登录。今天,Persona Beta 2 发布了,其中包括一项名为“身份桥接”的功能,该功能允许数亿用户无需新的用户名和密码即可登录支持 Persona 的网站。公告视频概述了 Beta 2 版本

新增功能

除了“身份桥接”之外,还增加了一些重要的功能,并且我们已经开始看到该服务的显著采用。关于这些功能和使用 Persona 的新网站的详细信息,请参阅 Mozilla 身份博客 上的公告。

Persona,完整的故事

除了代码和功能之外,我们还努力讲述 Persona 背后的完整故事,以帮助人们了解其工作原理以及我们为什么认为它是人们登录网站方式的重要改进。您可以阅读 对主要开发人员 Lloyd 的采访,以了解 Mozilla 对 Persona 的一些动机和目标。

网络上的身份很复杂,完整的故事无法在一场对话中捕捉到。为了解决这个问题,在这次 Beta 版发布之前,我们在身份博客上发布了几篇文章,这些文章 将 Persona 与社交登录进行比较概述了 FirefoxOS 上的 Persona,并深入探讨了 为什么 Persona 的分布式特性很重要

除了理念之外,我们还详细介绍了 Persona 背后的技术。这导致了 几篇文章介绍了工具和经验教训,我们希望这些工具和经验教训与任何使用 Node.JS 构建大规模服务的人相关。

身份桥接的工作原理

身份桥接是今天发布的最重要的功能,因此让我们花点时间超越新闻稿的强调措辞,深入了解其实际工作原理。

其核心思想是,在登录过程中检查电子邮件并点击链接会让人感到不适,并可能导致注册人数下降。我们的大部分用户体验改进都针对此问题。那么,如何完全消除此步骤呢?

如今,大多数流行的网络邮件提供商都提供 OpenIDOAuth,作为其他网站使用提供商现有用户群构建身份验证(从而让人们更快地登录)的方法。在 Persona 端,我们支持任何域成为 启用 Persona 的身份提供商,并允许在不发送电子邮件的情况下进行地址验证。

因此,我们构建了一座桥梁——一个服务器,一端使用 Persona IdP 协议,另一端使用 OpenID 或 OAuth——来使用这些现有的服务。该项目的代号为“BigTent”,并且,与我们所做的一切一样,代码库是开源的

首先,我们为任何拥有 yahoo.com 电子邮件地址的用户启用了此桥梁。在接下来的几个月里,我们将为其他主要的电子邮件提供商启用支持。我们预计将覆盖全球超过一半的互联网用户。

身份桥接是一个巨大的胜利。它通过消除验证电子邮件的需要,为用户带来了更大的便利。开发人员只需支持 Persona 即可获得社交登录的便利。最后,它对用户隐私更有利:身份桥接使用户访问的网站不在其身份提供商的视野范围内。这是一个罕见而美好的案例,我们可以同时提高可用性和安全性!

立即尝试 Persona!

在您的网站上实施 Persona 应该只需要一个下午的时间。为此,您需要

  1. 在您的页面中包含一个 JavaScript 库
  2. 添加 JavaScript 代码来处理登录事件
  3. 当用户点击您的登录按钮时调用 navigator.id.request()
  4. 实现一个服务器端处理程序来验证用户并启动他们的会话

我们的 快速设置指南 中更详细地描述了每个步骤,如果由于任何原因出现问题,我们随时为您提供帮助!

下一步是什么?

我们计划了一些新的功能,但主要的是我们的路线图将由使用 Persona 的人决定。如果您尚未在您的网站上尝试 Persona,请花一个下午的时间试用一下。让我们知道您在 我们的公开邮件列表 上的想法,并帮助我们摆脱密码。

关于 Robert Nyman [荣誉编辑]

技术布道师和 Mozilla Hacks 编辑。发表关于 HTML5、JavaScript 和开放网络的演讲和博客文章。Robert 是 HTML5 和开放网络的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作——在瑞典和纽约市。他还定期在 http://robertnyman.com 上发表博客文章,并且喜欢旅行和结识新朋友。

更多由 Robert Nyman [荣誉编辑] 编写的文章…


26 条评论

  1. Josh Tumath

    目前,对于使用多个电子邮件地址的人来说,Persona 有两个问题。一个是,我无法使用一个电子邮件地址登录,但在服务中使用另一个电子邮件地址(例如,使用我的主要 @outlook.com 地址登录 Bugzilla,但我的错误邮件地址是其他内容)。此外,没有明显的方法更改我的帐户的电子邮件地址。

    2013 年 4 月 9 日 上午 09:32

  2. Lloyd Hilaiel

    你好,Josh!

    关于“我无法使用一个电子邮件地址登录,但在服务中使用另一个电子邮件地址”——目前的理念是您始终键入要用于网站的电子邮件以及您的 Persona 密码(如果您使用雅虎或与 Persona 集成的其他电子邮件提供商,则为电子邮件提供商密码)。

    我们可以探索在登录流程中添加另一个步骤,以确认您是否要使用您键入的电子邮件,如果您有另一个电子邮件,并且说,这是您上次在此网站上使用的电子邮件。

    关于“更改帐户的电子邮件地址”——如果我理解正确,您指的是在网站上更改它。目前,这由各个网站自行实施。

    感谢您的光临!
    lloyd

    2013 年 4 月 9 日 上午 10:35

  3. CleanCode Police

    您应该通过 https 链接嵌入视频。在 nightly FX 23 中新增的功能(https://bugzilla.mozilla.org/show_bug.cgi?id=834836)阻止在安全站点内加载非安全内容。

    2013 年 4 月 9 日 上午 10:49

    1. Robert Nyman [编辑]

      说得对。:-)
      已更改。

      2013 年 4 月 9 日 上午 10:53

  4. penang

    我以用户的视角发表评论

    在阅读了此页面以及几个相关网站的信息后,我仍然不清楚如何注册 Persona

    此服务会有一个中心数据库吗?

    谁在跟踪正在发生的事情,以及中心数据库中保存了哪些信息?

    2013 年 4 月 9 日 下午 18:40

    1. Lloyd Hilaiel

      从用户的角度来看,网站必须采用 Persona 才能将其用于登录。您可以尝试主身份博客文章中列出的任何一个网站,以了解其感觉并立即使用它。

      至于“中心数据库”,Mozilla 正在引导 Persona 并负责维护这些中心数据库。这项工作是开源的,尽可能透明,我们个人负责以这种方式工作,以便任何感兴趣的人都可以关注我们——并在我们没有尽最大努力保护用户隐私的同时仍然构建出色的登录体验时向我们提出质疑。

      具体来说,您可以查看隐私政策,或查看服务的数据库模式,并准确了解保存了哪些内容。

      2013 年 4 月 10 日 上午 06:50

  5. Matthew Piggott

    对我来说,浏览器集成登录系统的最大卖点是降低欺骗性,但是从视频中可以看出,登录只是在一个新窗口中打开,这与任何其他系统都存在相同的问题。

    2013 年 4 月 9 日 下午 19:08

    1. Lloyd Hilaiel

      我们从 Persona 的基于 HTML5 的“引导”实现开始,以便它可以在今天使用。您正在回应的是这一点。今年,我们希望推出 Firefox 原生支持,并且我们已经在 FirefoxOS 中实现了支持。

      这种原生集成将使我们获得您寻求的降低欺骗性(以及许多其他可用性、隐私、安全性和性能优势),并且我们渴望与其他浏览器供应商合作。

      2013 年 4 月 10 日 上午 06:52

      1. thinsoldier

        Firefox 是否会有类似于 Google Chrome 的“登录 Chrome”的功能?

        Firefox 同步对我来说一直是糟糕的用户体验。

        https://bugzilla.mozilla.org/show_bug.cgi?id=788032

        2013 年 4 月 12 日 下午 21:27

        1. Caspy7

          Lloyd 也可以回答这个问题,但是…
          目前有一个项目旨在将“登录 Chrome”的功能引入 Firefox。其可用性也应与 Chrome 的相当。

          2013 年 4 月 14 日 下午 23:54

        2. Lloyd Hilaiel

          Capsy7 说得对!我们将改进同步功能,并解决一些最大的用户抱怨——设置太难,而且它不会备份您的内容。该项目的代号为“云端配置文件”或“PiCL”(发音为“pickle”)。您可以在此处阅读所有关于该项目的信息,并查看一些展示我们当前开发状态的演示

          https://wiki.mozilla.org/Identity/AttachedServices#Demos

          2013 年 4 月 15 日 上午 08:11

  6. DB

    这是我第一次看到 Persona 以用户利益(跳过每个新网站的登录验证电子邮件)而不是开发人员利益或模糊的隐私承诺(未指定隐私利益是什么)来解释,而且我还没有阅读过关于 Persona 和隐私的常见问题的完整(且诚实的)解释。所有关于 Persona 的描述都将其留给读者去猜测可能的缺点。由于我不清楚哪些可能的缺点是有效的,因此我完全避免使用它。以下是我每次阅读有关它时想到的问题

    1. 根据 https://login.persona.org/about,Persona 允许人们使用相同的密码登录每个网站。这是否会增加用户意外地将其重要的电子邮件密码泄露给任何索要其密码的网站(通过填写错误的表单)的可能性?

    2. 在安全性方面(在安全性和隐私方面),这与真正对每个网站使用不同密码(然后让 Firefox 记住它)的精通用户相比如何?

    3. 如果我理解正确,Persona 是一个基于服务器的登录解决方案(而不是一个使用密码管理器进行本地登录的解决方案)。我知道 Persona 的关于页面承诺不会跟踪我登录的每个网站,但请准确说明服务器接收了哪些信息(以及哪些信息在目标网站和用户的本地计算机之间保持私密)。换句话说,如果执法部门要求 Mozilla.org 跟踪用户登录的网站,Mozilla.org 能向执法部门提供哪些信息?

    4. Persona 如何处理想要登录到我完全不信任的网站(并且希望只提供一次性电子邮件或虚假电子邮件)的用例?至少从用户的角度来看,提供真实电子邮件地址的唯一原因是您确实希望从该网站接收电子邮件。

    2013 年 4 月 9 日 下午 21:46

    1. Lloyd Hilaiel

      这些都是很棒的问题,让我尝试回复一下。

      1. 钓鱼是一个真实的问题。我们今天看到的趋势是,大量用户在多个网站上使用相同的密码——因此他们在没有恶意的情况下免费泄露了他们的重要密码。那么,我们是否让用户*习惯*于键入他们最深的秘密,并增加了钓鱼的可能性?我不确定。但随着广泛采用,我希望我们确实减少了拥有密码的组织数量,这些密码使他们能够访问用户经常访问的多个网站,我相信这是一个巨大的改进。

      2. 在高级别上,我相信我们不会降低一小部分拥有良好密码习惯的人所享有的安全性和隐私级别。目标是通过了解大量用户的习惯并构建一个适合这些用户且无需他们大幅改变行为的系统,将这种安全级别带给我们其他人。

      3. 我需要更多时间才能提供给您准确、诚实的具体信息。但目前我可以提供我们的隐私政策 http://www.mozilla.org/en-US/persona/privacy-policy/ 和数据库模式 https://github.com/mozilla/browserid/blob/dev/lib/db/mysql.js#L10-L30

      我可以说,每次我们在服务器上存储更多数据时,都会在我们公开的列表中公开其理由,并由我们的隐私团队进行审查。我会尝试总结我们目前实际的做法,并给出一个更令人满意的答案来回答您的问题。

      4. 我们希望实现这一点!在用户研究中我们发现,大量用户拥有“垃圾邮件地址”。如果有一个电子邮件提供商能够为每个您访问的网站提供特定网站的匿名电子邮件地址,那是不是太棒了?这可能需要对 Persona 所构建的协议进行一些小的更改,但这是我们渴望鼓励和支持的事情。

      虽然如今用户可以通过 Persona 使用任何他们想要的电子邮件登录,但我渴望看到一个电子邮件提供商能够在无需手动操作的情况下为用户提供此级别的隐私。

      2013年4月10日 上午07:10

  7. Mark

    很棒的举措,我希望许多网站开始支持它。

    两个问题

    1. Persona 解决的是什么问题,而 OpenId 没有解决?
    2. 为什么使用新的 Persona IdP 协议,而不是使用 OAuth?

    2013年4月10日 上午03:51

    1. Dan Callahan

      嗨,Mark,

      我们只是无法在 OpenID 的限制范围内创建我们想要的的那种用户体验、开发者体验或隐私模型。例如,从根本上讲,OpenID 要求在每次登录时都“打电话回家”。通过使浏览器成为协议中的一个活跃参与者,Persona 添加了一层间接层,可以防止有关用户选择登录位置的信息泄露。

      OAuth 专注于授权,而 Persona 目前范围非常狭窄,仅限于身份验证。将 OAuth 的令牌和访问密钥塞入该角色中,感觉并不特别可持续或易于使用。

      2013年4月10日 上午09:52

  8. tony

    这很好,但更好的想法是安全且分散的全球身份验证方式。听起来很复杂,但它已经被 Friendica 的创建者 Mike Macgirvin 创建,它被称为 Zot。
    这使用户能够更好地控制自己的隐私和数据。

    2013年4月10日 上午07:32

    1. Caspy7

      正如 Simon(和匿名用户)在下面提到的,Persona 是分散式的。

      2013年4月11日 上午08:17

  9. Simon B

    @tony,Persona _是_分散式的。Mozilla 运行的
    提供商只是众多提供商之一(据我所知)。

    @Mark,我认为问题 1 和 2 主要是因为需要更简单的用户交互,因为只有极少数网站接受 OpenId/Auth。

    2013年4月10日 下午13:25

  10. Sokratis

    如果我从一台电脑登录到一个网站,那么用户是否可以使用我的电子邮件地址从另一台电脑登录到同一个网站或所有网站?

    2013年4月11日 上午02:53

    1. Lloyd Hilaiel

      不会,要使用您的电子邮件地址登录,您必须在当前电脑上登录。

      因此,如果您使用“yahoo.com”电子邮件地址,则必须登录到 Yahoo。如果您使用任何其他电子邮件地址,则必须提供您的 Persona 密码,然后才能登录到网站。

      2013年4月12日 上午10:42

  11. robyz

    是否不可能有一个更本地化的解决方案,或者为了加强安全性,一个主要本地化(并带有一点集中式附加组件)的解决方案?
    我的意思是,如果我知道除了我之外没有人拥有我的聚合登录数据,我会感到更舒服。

    2013年4月11日 上午03:21

    1. Lloyd Hilaiel

      您描述的就是 Persona!Persona 主要是在本地的,只有极少的集中化。

      基本上,您使用加密密钥登录,这些密钥是在您的电脑上生成的,“密钥”永远不会离开您的电脑。

      此外,您访问的网站和在这些网站上使用的电子邮件完全存储在您的电脑上,它们永远不会离开。

      最后,随着我们将 Persona 本地集成到浏览器中,在去中心化方面将会变得更好。

      Persona 唯一需要记住的是您是否证明自己拥有电子邮件 - 随着电子邮件提供商支持 Persona,此需求将消失。架构非常酷,您可以在此处了解所有相关信息: http://lloyd.io/how-browserid-works

      2013年4月12日 上午10:48

  12. 匿名

    尝试根据有限的理解回答一些问题

    @Mark,1. OpenId 服务器(Gmail、Yahoo、Facebook 等)现在知道您使用的所有其他服务。它*将*集成到浏览器中,因此更不容易被欺骗,类似于本机密码管理器。
    2. 您是指浏览器和服务器之间的 OAuth 吗?我猜在这种情况下,OAuth 需要浏览器端的服务端口。在某些其他实体之间使用 OAuth 会带来隐私问题。

    @tony,我认为 Persona 是分散式的。Mozilla 只是在引导它。
    Zot,是指 Zot-id 吗? http://friendica.com/node/15 它被记录为使用 OpenId,就像一个跟踪器。

    现在是我的问题
    我能否为特定网站伪造我的电子邮件地址?大多数网站对我的电子邮件地址没有使用(例如此网页上的评论表单),只需要知道我是在之前某个时间点登录的同一个用户。

    2013年4月11日 上午04:06

    1. Lloyd Hilaiel

      “我能否为特定网站伪造我的电子邮件地址?”

      请参阅我对 DB 的回复中的第 4 点。我们希望看到以每个网站的匿名电子邮件地址作为 Persona 的核心功能,由电子邮件提供商提供。

      第一个站出来构建此功能的电子邮件提供商或社区成员将获得团队的全面支持,以进行必要的少量协议更改,使其能够良好地工作:)

      lloyd

      2013年4月15日 上午08:22

  13. François

    如果有人有时间回答我……我真的不明白 Persona 如何分散。在快速设置指南( https://mdn.org.cn/en-US/docs/Persona/Quick_Setup )中,您解释了如何将 Persona 集成到网站中,其中明确写道
    “https://login.persona.org/include.js”,
    并且在这个文件中我发现了
    var ipServer = “https://login.persona.org”;

    因此,似乎所有内容都使用 persona.org 的服务器,用户无法在登录时指定服务器。

    我根本不是专家,但是当用户在表单中输入邮件地址 user@domain 时,检查 DNS 系统中域“domain”是否有指定特定 Persona 服务器的 SRV 记录,然后使用此服务器执行身份验证,是否会更好?这将是一个分散的架构……

    2013年4月11日 上午08:48

    1. Lloyd Hilaiel

      嗨,François,

      所以问题是如何在 Persona 看起来并非真正分散的情况下声称它是分散的?

      对于前端代码(身份验证对话框和加密内容),我们的想法是浏览器供应商将在 navigator.id 下实现 UI 和 Javascript 例程。一旦发生这种情况,Javascript shim(include.js)将简单地不注入函数,浏览器将接管。

      无法在登录时指定服务器,因为不需要服务器 - 它将主要位于客户端。我们的想法是每个浏览器供应商可能都有一个“备用”IdP,允许在没有 Persona 支持的情况下验证电子邮件地址(或者我们可能为此共享基础设施,目前尚不清楚事情将如何发展)。

      然后网站将运行自己的验证器。我们提供了集中式验证器作为一种便利,以便更容易上手 - 但随着出色的验证库的出现,网站只需包含库即可。

      希望这是一个令人满意的答案。关于使用 DNS 发现支持,我们正在此处跟踪此功能: https://github.com/mozilla/browserid/issues/1523

      2013年4月15日 上午08:19

本文的评论已关闭。