This specification defines a [
RFC 8225] type called "div", which may be employed by authentication services located at retargeting entities. All "div" PASSporTs
MUST contain a new JSON Web Token "div" claim, also specified in this document, which indicates a previous destination for a call during its routing process. When a retargeting entity receives a call signed with a PASSporT, it may act as an authentication service and create a new PASSporT containing the "div" claim to attach to the call.
Note that a new PASSporT is only necessary when the canonical form of the "dest" identifier (per the canonicalization procedures in
RFC 8224,
Section 8.3) changes due to this retargeting. If the canonical form of the "dest" identifier is not changed during retargeting, then a new PASSporT with a "div" claim
MUST NOT be produced.
The headers of the new PASSporTs generated by retargeting entities
MUST include the "div" PASSporT type and an "x5u" field pointing to a credential that the retargeting entity controls. "div" PASSporTs
MUST use full form instead of compact form. The new PASSporT header will look as follows:
{ "typ":"passport",
"ppt":"div",
"alg":"ES256",
"x5u":"https://www.example.com/cert.cer" }
A "div" PASSporT claims set is populated with elements drawn from the PASSporT(s) received for a call by the retargeting entity; at a high level, the original identifier for the called party in the "dest" object will become the "div" claim in the new PASSporT. If the "dest" object of the original PASSporT contains multiple identifiers, because it contains one or more name/value pairs with an array as its value, the retargeting entity
MUST select only one identifier from the value(s) of the "dest" object to occupy the value of the "div" field in the new PASSporT. Moreover, it
MUST select an identifier that is within the scope of the credential that the retargeting entity will specify in the "x5u" of the PASSporT header (as described below).
The new target for the call selected by the retargeting entity becomes the value of the "dest" object of the new PASSporT. The "orig" object
MUST be copied into the new PASSporT from the original PASSporT received by the retargeting entity. The retargeting entity
SHOULD retain the "iat" object from the original PASSporT, though if in the underlying signaling protocol (e.g., SIP) the retargeting entity changes the date and time information in the retargeted request, the new PASSporT should instead reflect that date and time. No other claims or extensions are to be copied from the original PASSporT to the "div" PASSporT.
So, for an original PASSporT claims set of the form:
{ "dest":{"tn":["12155551213"]},
"iat":1443208345,
"orig":{"tn":"12155551212"} }
If the retargeting entity is changing the target from 12155551213 to 12155551214, the claims set of a "div" PASSporT generated by the retargeting entity would look as follows:
{ "dest":{"tn":["12155551214"]},
"div":{"tn":"121555551213"},
"iat":1443208345,
"orig":{"tn":"12155551212"} }
The combined full form PASSporT (with a signature covered by the ES256 keys given in
Appendix A) would look as follows:
eyJhbGciOiJFUzI1NiIsInBwdCI6ImRpdiIsInR5cCI6InBhc3Nwb3J0IiwieDV1Ij \
oiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vY2VydC5jZXIifQ.eyJkZXN0Ijp7InRuI \
jpbIjEyMTU1NTUxMjE0Il19LCJkaXYiOnsidG4iOiIxMjE1NTU1NTEyMTMifSwiaWF \
0IjoxNDQzMjA4MzQ1LCJvcmlnIjp7InRuIjoiMTIxNTU1NTEyMTIifX0.xBHWipDEE \
J8a6TsdX6xUXAnblsFiGUiAxwLiv0HLC9IICj6eG9jQd6WzeSSjHRBwxmChHhVIiMT \
SqIlk3yCNkg
The same "div" PASSporT would result if the "dest" object of the original PASSporT contained an array value, such as {"tn":["12155551213","19995551234"]}, and the retargeting entity chose to retarget from the first telephone number in the array. Every "div" PASSporT is diverting from only one identifier.
Note that the "div" element may contain other name/value pairs than just a destination, including a History-Info indicator (see
Section 8). After the PASSporT header and claims have been constructed, their signature is generated per the guidance in [
RFC 8225] -- except for the credential required to sign it. While in the ordinary construction of a PASSporT, the credential used to sign will have authority over the identity in the "orig" claim (for example, a certificate with authority over the telephone number in "orig" per [
RFC 8226]), for all PASSporTs using the "div" type the signature
MUST be created with a credential with authority over the identity present in the "div" claim. So for the example above, where the original "dest" is "12155551213", the signer of the new PASSporT object
MUST have authority over that telephone number and need not have any authority over the telephone number present in the "orig" claim.
Note that Identity header fields are not ordered in a SIP request, and in a case where there is a multiplicity of Identity header fields in a request, some sorting may be required to match "div" PASSporTs to their originals.
PASSporTs of type "div"
MUST NOT contain an "opt" (see
Section 6) element in their payload.