The Ms reference point is used to request signing of an Identity header field or request verification of a signed assertion in an Identity header field.
HTTP POST method is used for the verification request.
HTTP 200 (OK) is used when the AS for verification has successfully processed the verification request.
HTTP POST method is used for the signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the signing request.
HTTP POST method is used for the diversion signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the diversion signing request.
HTTP POST method is used for the Resource-Priority header field signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the Resource-Priority header field signing request.
HTTP POST method is used for the Resource-Priority and Priority header fields signing request.
HTTP 200 (OK) is used when the AS for signing has successfully processed the Resource-Priority and Priority header field signing request.
API resources are defined with respect to a
"server root". The server root is a URI:
-
{hostname}:{port}/{RoutingPath},
The resource URI structure is:
To construct a PASSporT SHAKEN object specified in
RFC 8588, a PASSporT rph object specified in
RFC 8443 and
RFC 9027, or a PASSporT div object, specified in
RFC 8946, the client sends an HTTP POST request to the AS for signing containing the SIP request information plus any additional claim information to be signed by the target PASSporT type. If the request was successfully processed, then the received signingResponse contains an Identity header field value populated with a signed PASSporT of the requested type along with the appropriate Identity header field parameters.
Unsuccessful requests are responded with an HTTP 4xx or 5xx response.
Table V.2.5.2-1 specifies the data types included in the signing request. The signing request contains the claims included in:
-
a PASSporT SHAKEN JSON Web Token, specified in RFC 8588;
-
a PASSporT div JSON Web Token specified in RFC 8946]; or
-
a PASSporT rph JSON Web Token specified in RFC 8443] and RFC 9027.
Parameter |
Type; Value |
Presence |
Description |
ppt |
string; set to the value of the "ppt" parameter in the protected header of the PASSporT to be created
| O |
This parameter is included to inform the AS for signing the type of PASSporT that is to be constructed and signed. |
attest |
string; "A", "B" or "C"
| O |
Identifying the relation between the service provider attesting the identity and the subscriber. Specified in RFC 8588. |
dest | array of identity claim JSON objects representing destination identities; tn or uri | M |
Identifying the called user taken from the To header field for a "shaken" or "rph" PASSporT as specified in RFC 8224, and from the Request-URI after retargeting for a "div" PASSporT as specified in RFC 8946.
|
div | identity claim JSON object, tn or uri. A hi element should be included. | O |
Identifying the diverting user; i.e., the user identified in the Request-URI before retargeting, taken from the History-Info header field as pecified in RFC 8946. |
iat | integer; time and date of issuance of the PASSporT token | M |
Time since 1 January 1970 in Numeric Date format as specified in RFC 7519. |
orig | identity claim JSON object; tn or uri | M |
Identifying the calling user. Specified in RFC 8225. |
origid | String; UUID | O |
Specified in RFC 8588 |
rph | array of strings that correspond to the r-values indicated in the SIP Resource-Priority header field | O |
Contains assertion of the priority level of the user to be used for a given communication session as specified in RFC 8443 and RFC 9027. |
sph |
string "psap-callback"
| O |
Contains header field value "psap-callback" of the SIP Priority header field as specified in RFC 9027
|
The signing request provides the following two options for identifying the PASSporT type to be constructed:
-
the PASSporT type is indicated by invoking the signing resource associated with that PASSporT type, as defined in subclause V.2.2; or
-
the PASSporT type is identified by including a ppt parameter when invoking the /signing resource defined in subclause V.2.2.
Table V.2.5.2-1a indicates representative signingRequest parameter inclusion rules per PASSporT type.
PASSporT Type |
Parameter |
attest |
dest |
div |
iat |
orig |
origid |
rph |
sph |
shaken | M | M | X | M | M | M | X | X |
div | X | M | M | M | M | X | X | X |
rph | X | M | X | M | M | X | M | O |
NOTE:
"M" means "mandatory", "O" means "optional", and "X" means "not applicable".
|
Table V.2.5.2-2 further specifies the data types contained in the signing request parameters.
Parameter |
Type; Value |
Presence |
Description |
hi |
string. An "index" header field parameter as specified in RFC 7044
| O |
The "index" header field parameter is included in the entry identifying the diverting user in the History-Info header field.
|
tn |
string; allowed characters as for local-number-digits and global-number-digits defined in RFC 3966 | M |
The number needs to be in canonical form according to Section 8.3 of RFC 8224. |
uri |
string; A SIP URI as specified in RFC 3261 following the generic guidelines in RFC 3986. | O |
Used if the "orig" or "dest" is given in a SIP URI.
|
NOTE:
The TAS is expected to provide a valid globally routable number.
|
Table V.2.5.2-3 specifies the data types included in the signing response.
Parameter |
Type; Value |
Presence |
Description |
identityHeader |
string; Identity header field value as specified in RFC 8224 | M | This string cannot be NULL |
To verify one or more received PASSporTs, the client sends a verification request in the form of an HTTP POST request to the AS for verification containing the Identity header field(s) populated with the PASSporT object(s) to be verified. The verification request also contains the following information:
-
the originating identity and optionally all the diverting identities; and/or
-
the Resource-Priority header field value and optionally the header field value "psap-callback" of the Priority header field.
The verificationResponse contains the outcome of the verification in a verstat claim with values as specified for the verstat tel URI parameter in
subclause 7.2A.20 and in a verstatPriority claim with values as specified for the Priority-Verstat header field in
subclause 7.2.21. The verificationResponse can optionally contain the claims of PASSporT(s) that passed verification.
The verificationResponse can also contain verification results information for each verified PASSporT, as follows:
-
if verification passed, then verificationResponse contains the validated claims of the PASSporT;
-
if verification failed, then verificationResponse contains information describing the reason for the failure.
Unsuccessful requests are responded with an HTTP 4xx or 5xx response.
Table V.2.6.2-1 specifies the data types included in the verification request.
Parameter |
Type; Value |
Presence |
Description |
identityHeader |
string; Identity header field value for the originating identity as specified in RFC 8224 and RFC 8588 | M |
This parameter contains the "shaken" Identity header field value to be verified (see NOTE 1).
|
identityHeaders |
array of string; Identity header field values as specified in RFC 8224 , RFC 8443, RFC 8946, RFC 9027. One identityHeader claim per received Identity header field is sent. | O |
This array contains the "div" and "rph" Identity header field values to be verified (see NOTE 2).
|
to | string; identity claim JSON object; tn or uri | M | The destination identity taken from the To header field. Used when no div claim is included. |
dest | string; identity claim JSON object; tn or uri | O | The destination identity taken from the Request-URI in the incoming request. |
time |
integer; Numeric date format defined in RFC 7519 | M | Time based on the Date header field in the incoming request. |
from | string; identity claim JSON object; tn or uri | M | The asserted identity, taken from the P-Asserted-Identity or the From header field of the incoming request |
protectedHeaders | array of string; header field(s) | O | Contains the SIP header field(s) protected by claims in the PASSporT(s) of the identityHeaders array. |
NOTE 1:
For "shaken" PASSporT verification, an identityHeader parameter containing a "shaken" Identity header field shall be included in the verification request.
NOTE 2:
For "rph" PASSporT verification, an identityHeaders parameter containing an "rph" Identity header field shall be included in the verification request. If the identityHeader parameter contains a "shaken" Identity header field, and/or the identityHeaders parameter contains an "rph" Identity header field, then all "div" Identity header field(s) received in an INVITE request shall be included in the identityHeaders parameter of the verification request. If "rph" PASSporT verification is not to be performed, and if the INVITE request does not contain any "div" Identity header fields, then the identityHeaders parameter shall not be included in the verification request.
|
Invocation of the verification request results in the verification of the Identity header fields in the identityHeader and identityHeaders parameters. In addition, a verification request invocation can verify the integrity of SIP header fields protected by the
"div" and
"rph" PASSporTs. When verification of SIP header field integrity is required, the protected SIP header field(s) information shall be conveyed in the protectedHeaders parameter.
The dest parameter is included when the verification request includes a div claim, and when the verification service is required to distinguish between a legitimately retargeted request and a maliciously replayed request.
Table V.2.6.2-1a indicates representative inclusion rules for the verification request identityHeader and identityHeaders parameters for the different combinations of PASSporT types to be verified.
PASSporT type(s) to be verified |
Parameter |
identityHeader |
identityHeaders |
shaken | M | X |
shaken, div | M | M |
rph | X | M |
rph, div | X | M |
shaken, rph | M | M |
shaken, rph, div | M | M |
NOTE:
"M" means "mandatory" and "X" means "not applicable".
|
Table V.2.6.2-2 specifies the data types included in the verification response.
Parameter |
Type; Value |
Presence |
Description |
divResult | array of one or more [div, verstatValue] tuples | O | Parameter informing of the result of the verification of diverting identities. For each verified identity the verstat parameter is added to the verified identity. |
verstatValue |
string; set to a value defined in Table 7.2A.20.3-1
| O | Parameter informing of the result of the verification of originating identity. To be used in the verstat parameter added to the verified identity. The parameter is mandatory if the request contained a PASSporT SHAKEN JSON Web Token. |
verstatPriority |
string; set to a value defined in Table 7.2.21-1
| O |
Parameter informing of the result of the verification of the Resource-Priority header field and optionally the header field value "psap-callback" of the Priority header field.
|
verifyResults |
array of one or more verifyResult, as defined in Table V.2.6.2-3 | O |
Each array entry contains the verification results of a PASSporT contained in the request.
|
Table V.2.6.2-3 specifies the mandatory data types of the verifyResult parameter included in the verification response.
Parameter |
Type; Value |
Presence |
Description |
verifyResult | structured data type containing
[ppt,
status,
validClaims,
reasonCode,
reasonText,
passport] tuple | M | Contains the verification results of a single Identity header field contained in the identityHeader parameter or an entry of the identityHeaders array of the verification request.The ppt and status parameters are always present. The inclusion of the other parameters in the tuple depends on the value of the status parameter. |
ppt | string, set to the value of the ppt parameter in the protected header of the PASSporT. | M | Identifies the type of PASSporT associated with this array entry. |
status | String, set to the value pass, fail or none. | M | Identifies the verification result of the PASSporT associated with this array entry. |
Each verifyResult entry of the verifyResults array conveys the verification results of an Identity header field contained in the identityHeader parameter or contained in an entry of the identityHeaders array of the verification request.
Additional verifyResult parameters are returned based on the value of the status parameter as follows:
-
a status parameter with a value of "fail" returns the parameters shown in Table V.2.6.2-4;
-
a status parameter with a value of "pass" returns the parameter shown in Table V.2.6.2-5; and
-
a status parameter with a value of "none" returns no additional parameters.
A status parameter with a value of
"none" indicates that the PASSporT type is not supported.
Table V.2.6.2-4 specifies the optional data types of the verifyResult parameter included in the verification response.
Parameter |
Type; Value |
Presence |
Description |
reasonCode | integer | O |
Identifies the 4xx failure reason code of the failing PASSporT, as defined in RFC 8224. |
reasonText | string | O |
Identifies the failure text associated with the 4xx failure reason code, as specified in RFC 8224. |
passport | string | O | Contains the failing PASSporT |
NOTE:
These parameters are optional since they are included only when the verifyResult "status" parameter has a value of "fail".
|
Table V.2.6.2-5 specifies the additional data types included in the verification response when the status parameter contains a value of
"pass".
Parameter |
Type; Value |
Presence |
Description |
validClaims | JSON object | O | The validClaims parameter contains the payload of the verified PASSporT. |
The validClaims parameter can be used:
-
to verify the integrity of SIP header field information associated with the validated claims, where a mismatch results in a verification failure; or
-
to ensure that SIP header field contents contain the information authorized by the validated claims, where a mismatch is resolved by updating the SIP header field to match the validated claims.