<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On 20 December 2013 13:50, Lloyd Hilaiel <span dir="ltr"><<a href="mailto:lhilaiel@mozilla.com" target="_blank">lhilaiel@mozilla.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">(I expect others will jump in if I get anything wrong here, typing fast!)<br>
<br>
In late october the Persona team set a focus to reflect on learnings from the last couple years and to make some decisive changes to data formats.  The goals included:<br>
1. Standards compatibility - harmonize our standards with those that we depend on (JW*)<br>
2. Representation symmetry - formats should use a single reasonable encoding format for all binary data (base64url unpadded)<br>
3. Extensibility - the browserid data formats should support extended user and idp claims - important for supporting community innovation and supporting fxa.<br>
<br>
Restated, at a high level, we wanted to refine our work and have a basis from which great things can be built.  We wanted to empower community, fxa, and persona to all work from the same base.  This key bit of work is required to make interoperability possible - in turn this means saving engineering time.<br>

<br>
Concrete output from this 1.5 month push includes:<br>
1. A terse and normative description of the important parts of the browserid protocol: <a href="https://github.com/mozilla/id-specs/tree/greenfield/browserid" target="_blank">https://github.com/mozilla/id-specs/tree/greenfield/browserid</a><br>

2. A summary of the important differences between what’s in production today and new data formats: <a href="https://github.com/djc/id-specs/blob/prod/browserid/json-formats.md" target="_blank">https://github.com/djc/id-specs/blob/prod/browserid/json-formats.md</a><br>

3. updates to jwcrypto to support new formats:  <a href="https://github.com/mozilla/jwcrypto/pull/78" target="_blank">https://github.com/mozilla/jwcrypto/pull/78</a><br>
4. A new local verification library that supports new and old formats, persona and fxa: <a href="https://github.com/mozilla/browserid-local-verify" target="_blank">https://github.com/mozilla/browserid-local-verify</a><br>

5. a new verification server that supports old verifier APIs and new formats: <a href="https://github.com/mozilla/browserid-verifier" target="_blank">https://github.com/mozilla/browserid-verifier</a><br>
(currently hosted at <a href="http://verifier.mozcloud.org" target="_blank">verifier.mozcloud.org</a>)<br>
<br>
This work is above and beyond supporting the current persona service.<br>
<br>
Finally, the next steps to complete this work include:<br>
<br>
1. (a day!) author a new ‘v2’ verification API (/v2) in #5 that supports `.trustedIssuer` and allows fxa assertions with a non-email `.sub` field to verify.<br>
Important part: At this point we have a single verifier that supports all internal and community activity building on top of browserid<br>
<br>
2. (A couple days!) rigorous review that #1-#4 above all are in harmony.<br>
Important part: results in an implementors guide to move to new formats, provides Persona and FxA with<br>
<br>
3. (A week or two!) replace current persona verifier with new verifier.<br>
Important part: now we’ve got a single deployment that supports persona, fxa, and community.  Accelerates work and reduces our maintenance cost (monetarily and in terms of human time).<br>
<br>
4. (A week) update every client that generates browserid formats to this new format.<br>
Important part: Jobs done!  We have clear consistent data formats upon which both FxA and Persona are built.  Reference implementations and flexible tools - the stuff that open and extensible systems are made of.<br>
<br>
Personal thanks to everyone who’s championed this work, Dan, Sean, Francois, DJC, Chris and Warner and the rest of the FxA team, and the community and members of these lists for offering insight and help.<br>
<br>
<3,<br>
lloyd<br>
<br>
* note, all time estimates assume a focused and empowered implementor, working with great joy and passion.  :P<br></blockquote><div><br></div><div>What exactly is the identity proposed identity format for Persona?  (Not talking about the verification of that identity for the moment)<br>
<br></div><div>Lets say I wanted to write a computer program that took a string of characters, and the output was whether it was a legal personal identity of not, how would I do that.<br><br></div><div>From my previous understanding it's something like taking an email URI and splitting off the mailto: part, is that still the case?<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
_______________________________________________<br>
dev-identity mailing list<br>
<a href="mailto:dev-identity@lists.mozilla.org">dev-identity@lists.mozilla.org</a><br>
<a href="https://lists.mozilla.org/listinfo/dev-identity" target="_blank">https://lists.mozilla.org/listinfo/dev-identity</a><br>
</blockquote></div><br></div></div>