On November 30th, 2016, Mozilla shut down the persona.org services. Persona.org and related domains will soon be taken offline.
For more information, see this guide to migrating your site away from Persona:
https://wiki.mozilla.org/Identity/Persona_Shutdown_Guidelines_for_Reliers
Persona is a complete implementation of a new, distributed login system from Mozilla.
BrowserID is the open protocol that governs how Persona works.
As an analogy: Persona allows users to log into sites by implementing BrowserID. Similarly, Firefox allows users to browse the web by implementing HTTP.
Persona and OpenID have very similar goals and a similar architecture. Both systems reduce the number of passwords that a user needs, and both are designed to be decentralized. This means that any domain can present itself as an Identity Provider without relying on a central authority.
Despite these similarities, Persona is easier to use and easier to add to websites. Persona also does a better job of protecting user privacy. Specifically:
simple API
that only takes an afternoon to get started with.Persona requires JavaScript, but some users choose to selectively block JavaScript by using browser add-ons like NoScript. Many of these users are concerned about the privacy implications of enabling JavaScript, since it is often used to track visitors across websites.
However, in the case of Persona, JavaScript is actually used to enhance user privacy, as it allows the browser to perform cryptographic operations completely on the client side. By doing these operations on the client, Persona avoids the need to store secret keys anywhere other than in the user's own browser.
No, Persona only guarantees the user's association with an address. As with any email address in any login system, it's possible that the address no longer works or is not regularly checked by the user. For most users, the email address will be functional.
Persona asks the address's domain, which is free to verify its users in any way it chooses. If a domain is not a native Identity Provider, and thus can't verify its own users, the browser asks for verification from Persona's fallback Identity Provider at https://login.persona.org. Before certifying a user's identity, the fallback Identity Provider does test the address by sending an email to it and asking the user to click a link contained within.
The best way to do this is to allow your users to add a secondary email address to their account. See "Adding extra email addresses with Persona".
The code in include.js
is still subject to change. It's not yet recommended that you host it yourself.
To ensure user privacy, it's important that identity assertions are verified locally rather than with the remote verification service. However, the format of assertions is still subject to change, so local verification is not yet recommended. Even with remote verification, Persona protects the user from tracking by their identity provider.
Once the protocol has stabilized, libraries will be available to simplify local verification. Follow the Identity Blog to find out when local verification is recommended.
Despite Persona's benefits, it's never easy to move all of your users to a new login system. Conveniently, Persona's focus on email addresses makes it easy to use alongside existing login systems, so you don't have to switch all at once.
One particularly low-friction approach is to suggest Persona to users who forget their password. Instead of resetting passwords, users can simply log in with Persona.
All major, backwards incompatible changes and deprecations are announced on the low-volume persona-notices mailing list. Please subscribe to it.
To find out about new features and enhancements, follow the the Identity team blog.
For development discussion, subscribe to the dev-identity mailing list.