Work in Progress! This site does not represent the current state of Persona or BrowserID.

Identity Assertion Format

An Identity Assertion associates a client-generated public key with a request to a specific Relying Party. It is a JWT signed by the client’s private key, it conforms to JWS, and it is serialized using JWS Compact Serialization.

The Header of an Identity Assertion contains the following fields:

The fields alg and kid are defined by JWS. The field typ is defined by JWT.

TODO: JWA alg parameters for DSA? Which RS values to support?

Payload

The Payload of an Identity Assertion is a JWT Claims Set with the following Claims, all of which are required:

The fields aud and exp are defined by JWT.

Additional claims may be added by clients for application-specific use. All claims that are not understood by consumers SHOULD be ignored.

Backed Identity Assertions

Identity Assertions are often combined with an associated Identity Certificate to form a Backed Identity Assertion.

Backed Identity Assertions are simply the concatenation of a serialized Identity Certificate and a serialized Identity Assertion, with a “~” character delimiting the two:

             Backed Identity Assertion
 ______________________________________________
/                                               \
header.payload.signature~header.payload.signature
\______________________/ \______________________/
  Identity Certificate      Identity Assertion

Backed Identity Assertions:

  1. Vouche for an email address, per the signature on the Identity Certificate.
  2. Associate an email address with a public key, per the contents of the Identity Certificate.
  3. Associate a public key with a client, per the signature on the Identity Assertion.
  4. Associate a client with a Relying Party, per the contents of the Identity Assertion.

Thus, if a Backed Identity Assertion is valid, a Relying Party is able know the client’s email address and that the client is currently intending to communicate with that specific Relying Party.

Identity Certificate Format

An Identity Certificate associates a client-generated public key with an email address. It is a JWT signed by an Identity Provider, it conforms to JWS, and it is serialized using JWS Compact Serialization.

Header

The Header of an Identity Certificate contains the following fields:

The fields alg and kid are defined by JWS. The field typ is defined by JWT.

TODO: JWA alg parameters for DSA? Which RS values to support?

Payload

The Payload of an Identity Certificate is a JWT Claims Set with the following Claims, all of which are required:

The fields iss, sub, iat, and exp are defined by JWT. The field pubkey is a Private Claim Name, as per JWT.

Additional claims may be added by Identity Providers for application-specific use. All claims that are not understood by consumers SHOULD be ignored.