5 The eXtensible Markup Language (XML) Configuration Access Protocol (XCAP)

24.6233GPPExtensible Markup Language (XML) Configuration Access Protocol (XCAP) over the Ut interface for Manipulating Supplementary ServicesRelease 17TS

5.1 Introduction

For the purpose of manipulating data stored in an application server the XML Configuration Access Protocol (XCAP) [8] is used. XCAP allows a client to read, write and modify application configuration data, stored in XML format on a server. XCAP maps XML document sub‑trees and element attributes to HTTP URIs, so that these components can be directly accessed by HTTP (see IETF RFC 7230 [35], IETF RFC 7231 [36], IETF RFC 7232 [37], IETF RFC 7233 [38], IETF RFC 7234 [39] and IETF RFC 7235 [40]). XCAP uses the HTTP methods PUT, GET, and DELETE to operating on XML documents stored in the server.

In the case of supplementary services, the data stored in a server is related to the execution of that given service. The present document defines a new XCAP Application Usage for the purpose of allowing a client to manipulate data related to supplementary services.

XCAP (see IETF RFC 4825 [8]) defines two logical roles: XCAP client and XCAP servers. An XCAP client is an HTTP/1.1 compliant client. Similarly an XCAP server is an HTTP/1.1 compliant server. The XCAP server acts as a repository of XML documents that customize and modify the execution of the supplementary services. Figure 3 depicts the XCAP architecture where an XCAP client sends an HTTP/1.1 request to an XCAP server. The server replies with an HTTP/1.1 response.

Figure 3: XCAP architecture

According to XCAP (see IETF RFC 4825 [8]), each application that makes use of XCAP defines its own XCAP application usage. The present document defines an supplementary services XCAP application usage in clause 6. This application usage defines the XML schema W3C REC-xmlschema-1-20010502 [2] for the data used by the application, along with other key pieces of information.

XCAP focuses on the definition of XML documents that are compliant with the XML schema and constrains defined for a particular XCAP application usage. XCAP allows application to provide XML documents that are common for all users or XML documents that affect the service of a given user.

Central to XCAP is the construction of the HTTP URI that points to particular XML document or certain components of it. A component in an XML document can be an XML element, attribute, or the value of it.

5.2 Functional entities

5.2.1 User Equipment (UE)

5.2.1.1 General

The UE implements the role of an XCAP client, as described in clause 5.3.1 accessing the XCAP application usage as described in clause 6.2.

For systems where Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is used, the UE shall support the authentication mechanisms specified in 3GPP TS 33.222 [6] and 3GPP TS 24.109 [5].

For systems where Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is not used, the UE shall support IETF RFC 7616 [41] in all procedures of ETSI TS 183 038 [12] where HTTP digest authentication support is specified and shall support the TLS profile specified in 3GPP TS 33.310 [21] annex E in all procedures of ETSI TS 183 038 [12] where TLS support is specified.

For systems where Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is not used, the UE may support the authentication mechanisms specified in 3GPP TS 33.141 [17] annex D.

On sending an HTTP request, the UE may indicate the user’s identity intended to be used with the AS by adding a HTTP X‑3GPP‑Intended‑Identity header (3GPP TS 24.109 [5]) to the outgoing HTTP request. If the authentication mechanism specified in 3GPP TS 33.141 [17] annex D is used, the UE shall add a HTTP X‑3GPP‑Intended‑Identity header field.

If the UE supports the optional configuration parameter "Access_Point_Name_Parameter_Reading_Rule", as defined in 3GPP TS 24.167 [19] and has been configured with this parameter, then the UE shall use it to retrieve the access point name to use in the PDP context activation procedure or in the PDN connection procedure for XCAP.

5.2.1.2 Subscription for notification of state changes in XML document

In order to keep the supplementary services state synchronized with the network elements and other terminals that the user might be using, the UE should subscribe to changes in the XCAP simserv documents by generating a SUBSCRIBE request in accordance with RFC 5875 [11] and RFC 6665 [18].

5.2.1.3 Policy on access type used for XCAP

The policy on access type used for the XCAP enables HPLMN control of access used for XCAP messages.

The policy on access type used for the XCAP can be set to one of the following values:

a) any access type;

b) 3GPP accesses only;

c) EPC or 5GCN via WLAN IP-CAN only;

d) Non-seamless WLAN offload only;

e) 3GPP accesses preferred, non-seamless WLAN offload as secondary; and

f) 3GPP accesses preferred, EPC or 5GCN via WLAN IP-CAN as secondary.

The UE may support the policy on access type used for the XCAP.

If the UE supports the policy on access type used for the XCAP:

a) when the UE needs to send an XCAP request:

1) if the policy on access type used for the XCAP is set to "any access type", the UE shall send XCAP requests from an IP address associated with a bearer of any access;

2) if the policy on access type used for the XCAP is set to "3GPP accesses only":

A) the UE shall attempt to obtain a PDP context for XCAP as specified in 3GPP TS 24.008 [29] or a EPS bearer context for XCAP as specified in 3GPP TS 24.301 [30] or a 5GS QoS flow using NG-RAN as specified in 3GPP TS 24.501 [33];

B) if the UE obtains the PDP context for XCAP or the EPS bearer context for XCAP or the 5GS QoS flow using NG-RAN, the UE shall send XCAP requests from an IP address associated with the obtained PDP context for XCAP or the obtained EPS bearer context for XCAP or the 5GS QoS flow using NG-RAN; and

C) if the UE cannot obtain the PDP context for XCAP or the EPS bearer context for XCAP or the 5GS QoS flow using NG-RAN, the UE shall not send XCAP request;

3) if the policy on access type used for the XCAP is set to "EPC or 5GCN via WLAN IP-CAN only":

A) the UE shall attempt to associate with a WLAN as specified in 3GPP TS 24.302 [31] or as specified in 3GPP TS 24.502 [34] and the UE shall attempt to obtain:

– a PDN connection for XCAP as specified in 3GPP TS 24.302 [31], or 3GPP TS 24.244 [32]; or

– a 5GS QoS flow using WLAN as specified in 3GPP TS 24.502 [34];

B) if the UE obtains the PDN connection or 5GS QoS flow for XCAP, the UE shall send XCAP requests from an IP address associated with the PDN connection or 5GS QoS flow for XCAP; and

C) if the UE cannot obtain the PDN connection or 5GS QoS flow for XCAP, the UE shall not send an XCAP request;

4) if the policy on access type used for the XCAP is set to "Non-seamless WLAN offload only":

A) the UE shall attempt to associate with a WLAN as specified in 3GPP TS 24.302 [31];

B) if the UE associates with a WLAN and the WLAN is either untrusted non-3GPP access or the UE established NSWO via TWAN, the UE shall send XCAP requests from an IP address associated with the WLAN; and

C) if the UE cannot associate with a WLAN or the UE associates with TWAN and NSWO is not available, the UE shall not send an XCAP request;

5) if the policy on access type used for the XCAP is set to "3GPP accesses preferred, non-seamless WLAN offload as secondary":

A) the UE shall attempt to obtain a PDP context for XCAP as specified in 3GPP TS 24.008 [298] or a EPS bearer context for XCAP as specified in 3GPP TS 24.301 [30] or a 5GS QoS flow for XCAP as specified in 3GPP TS 24.501 [33];

B) if the UE obtains the PDP context for XCAP or the EPS bearer context for XCAP or a 5GS QoS flow for XCAP, the UE shall send XCAP requests from an IP address associated with the obtained PDP context for XCAP or the obtained EPS bearer context for XCAP; and

C) if the UE cannot obtain the PDP context for XCAP or the EPS bearer context for XCAP or a 5GS QoS flow for XCAP:

i) the UE shall attempt to associate with a WLAN as specified in 3GPP TS 24.302 [31];

ii) if the UE associates with a WLAN and the WLAN is either untrusted non-3GPP access or the UE established NSWO via TWAN, the UE shall send XCAP requests from an IP address associated with the WLAN; and

iii) if the UE cannot associate with a WLAN or the UE associates with TWAN and NSWO is not available, the UE shall not send an XCAP request; and

6) if the policy on access type used for the XCAP is set to "3GPP accesses preferred, EPC or 5GCN via WLAN IP-CAN as secondary":

A) the UE shall attempt to obtain a PDP context for XCAP as specified in 3GPP TS 24.008 [29] or a EPS bearer context for XCAP as specified in 3GPP TS 24.301 [30] or a 5GS QoS flow using NG-RAN as specified in 3GPP TS 24.501 [33];

B) if the UE obtains the PDP context for XCAP or the EPS bearer context for XCAP or the 5GS QoS flow for XCAP, the UE shall send XCAP requests from an IP address associated with the obtained PDP context for XCAP or the obtained EPS bearer context for XCAP or the 5GS QoS flow using NG-RAN; and

C) if the UE cannot obtain the PDP context for XCAP or the EPS bearer context for XCAP or the 5GS QoS flow using NG-RAN:

i) the UE shall attempt to associate with a WLAN as specified in 3GPP TS 24.302 [31] or as specified in 3GPP TS 24.502 [34] and the UE shall attempt to obtain:

– a PDN connection for XCAP as specified in 3GPP TS 24.302 [31], or 3GPP TS 24.244 [32]; or

– a 5GS QoS flow using WLAN as specified in 3GPP TS 24.502 [34];

ii) if the UE obtains the PDN connection or 5GS QoS flow for XCAP, the UE shall send XCAP requests from an IP address associated with the PDN connection or 5GS QoS flow for XCAP; and

iii) if the UE cannot obtain the PDN connection or 5GS QoS flow for XCAP, the UE shall not send an XCAP request; and

b) the UE may support being configured with the policy on access type used for the XCAP using one or more of the following methods:

a) the EFXCAPConfigData file described in 3GPP TS 31.102 [15B];

b) the EFXCAPConfigData file described in 3GPP TS 31.103 [15A]; and

c) the AccessForXCAP node of 3GPP TS 24.424 [22].

If the UE is configured with both the AccessForXCAP node of 3GPP TS 24.424 [22] and the EFXCAPConfigData file described in 3GPP TS 31.102 [15B] or 3GPP TS 31.103 [15A], then the EFXCAPConfigData file shall take precedence.

NOTE: Precedence for files configured on both the USIM and ISIM is defined in 3GPP TS 31.102 [15B].

5.2.1.4 Policy on authentication mechanism used for XCAP

The policy on authentication mechanism used for the XCAP enables the network to choose authentication mechanism for the Ut reference point.

The policy on authentication mechanism used for the XCAP can be set to one of the following values:

a) GBA_ME;

b) GBA_U;

c) GBA_Digest; and

d) SSC (support for subscriber certificates).

The UE may support the policy on authentication mechanism used for the XCAP.

If the UE supports the policy on authentication mechanism for the XCAP, when the UE needs to send an HTTP request:

a) if the policy on authentication mechanism used for the XCAP is set to "GBA_ME", the UE shall use GBA_ME authentication mechanism as defined in 3GPP TS 33.220 [27];

b) if the policy on authentication mechanism used for the XCAP is set to "GBA_U", the UE shall use GBA_U authentication mechanism as defined in 3GPP TS 33.220 [27];

c) if the policy on authentication mechanism used for the XCAP is set to "GBA_Digest", the UE shall use GBA_Digest authentication mechanism as defined in 3GPP TS 33.220 [27]; or

d) if the policy on authentication mechanism used for the XCAP is set to "SSC", the UE shall use SSC authentication mechanism as defined in 3GPP TS 33.221 [28].

The UE may support being configured with the policy on authentication mechanism used for the XCAP using the AuthenticationForXCAP node of 3GPP TS 24.424 [22].

5.2.2 Authentication Proxy (AP)

5.2.2.1 Introduction

An Authentication Proxy is an HTTP/1.1 (see IETF RFC 7230 [35], IETF RFC 7231 [36], IETF RFC 7232 [37], IETF RFC 7233 [38], IETF RFC 7234 [39] and IETF RFC 7235 [40]) compliant server whose main purpose is to authenticate the user requests. The Authentication Proxy is used to separate the authentication procedure and the Application Server (AS) specific application logic to different logical entities.

The AP is configured as a HTTP reverse proxy, i.e. the FQDN of the AS is configured to the AP such a way that the IP traffic intended to the AS is directed to the AP by the network. The AP performs the authentication of the UE. After the authentication procedure has been successfully completed, the AP assumes the typical role of a reverse proxy, i.e. the AP forwards HTTP requests originating from the UE to the correct AS, and returns the corresponding HTTP responses from the AS to the originating UE.

The AP allows authorized users to manipulate services when they are connected to an IMS network or when they are connected to a non‑IMS network (e.g. the public Internet). Authentication details can differ in both situations. Provisioning of credentials to authenticate the user is outside the scope of the present document. 3GPP TS 33.222 [6] provides further architectural authentication details.

NOTE: Multiple APs can exist between the UE and the AS, and the UE can obtain a list of different AP addresses via DNS query.

5.2.2.2 Authentication

5.2.2.2.0 General

On receiving an HTTP request, the AP shall first determine the mechanism used to authenticate the user. If the Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is used, the AP shall attempt to authenticate the user via the mechanisms specified in 3GPP TS 33.222 [6] and the AP shall follow the procedures indicated in clause 5.2.2.2.1. For systems where Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is not used, the AP shall attempt to authenticate the user according to IETF RFC 7616 [41] (ETSI TS 183 038 [12] provides guidelines for the Authentication Proxy) or 3GPP TS 33.141 [17] annex D.

5.2.2.2.1 Authentication based on the generic authentication architecture

On receiving an HTTP request that contains the Authorization header field, the AP shall:

a) use the value of that username parameter of the Authorization header field to authenticate the user;

b) apply the procedures specified in IETF RFC 7616 [41] for authentication;

c) if the HTTP request contains an X‑3GPP‑Intended‑Identity header field (3GPP TS 24.109 [5]), then the AP may verify that the user identity belongs to the subscriber. This verification of the user identity shall be performed dependant on the subscriber’s application specific or AP specific user security settings;

d) if authentication is successful, remove the Authorization header field from the HTTP request;

e) insert an HTTP X‑3GPP‑Asserted‑Identity header field (3GPP TS 24.109 [5]) that contains the asserted identity or a list of identities; and

f) forward the HTTP request to the appropriate AS.

On receiving an HTTP response for the previous request, the AP shall:

a) add an Authentication‑Info header field in accordance to the procedures described in 3GPP TS 33.222 [6]; and

b) forward the response to the XCAP client.

On receiving an HTTP request that does not contain the Authorization header field, the AP shall:

a) challenge the user by generating a 401 Unauthorized response according to the procedures specified in 3GPP TS 33.222 [6] and IETF RFC 7616 [41]; and

b) forward the 401 Unauthorized response to the sender of the HTTP request.

5.2.2.2.2 Void

5.2.2.3 Authorization

The AP shall be able to decide whether particular subscriber, i.e. the UE, is authorized to access a particular AS. On doing so, the AP may use the User Security Settings specified in 3GPP TS 24.109 [5].

The AP may indicate an asserted identity or a list of identities to the AS by adding an HTTP X‑3GPP‑Asserted‑Identity header field to the HTTP requests prior to forwarding the request to the AS. In case of multiple identities, they shall be separated by comma (,) and each identity shall be surrounded by quotation marks ("). Whether the AP supports this handling of an asserted identity or a list of identities then it shall depend on local policy in the AP. In addition the subscriber’s application specific or AP specific user security settings may be considered.

The AP may indicate an authorization flag or a list of authorization flags from the application specific user security settings (USS) to the AS by adding a HTTP X‑3GPP‑Authorization‑Flags header field to the HTTP request prior to forward it to the XCAP server. The HTTP X‑3GPP‑Authorization‑Flags header field shall contain a list of authorization flags separated by comma (,) and each authorization flag is surrounded by quotation marks ("). In case the AP supports this handling of authorization flags from USS then it shall depend on local policy in the AP.

5.2.3 Application Server (AS)

5.2.3.1 General

An Application Server implements the role of an XCAP server as described in clause 5.3.2 providing the XCAP application usage as described in clause 6.2.

For systems where Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is used, the AS shall support the authentication mechanisms specified in 3GPP TS 33.222 [6] and 3GPP TS 24.109 [5].

For systems where Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is not used, the AS shall support IETF RFC 7616 [41] in all procedures of ETSI TS 183 038 [12] where HTTP digest authentication support is specified and shall support the TLS profile specified in 3GPP TS 33.310 [21] annex E in all procedures of ETSI TS 183 038 [12] where TLS support is specified.

Procedures regarding Operator Determined Barring (ODB) are defined in 3GPP TS 24.315 [16].

For systems where Generic Authentication Architecture specified in 3GPP TS 33.222 [6] is not used, the AS may support the authentication mechanisms specified in 3GPP TS 33.141 [17] annex D.

5.2.3.2 Authentication and authorization

5.2.3.2.0 General

If an Authentication Proxy (AP) is provided in the path of the HTTP request, then the AS receives an HTTP request from a trusted source (the AP) and contains an HTTP X‑3GPP‑Asserted‑Identity header (3GPP TS 24.109 [5]) that includes an asserted identity of the user. In this case the AS does not need to authenticate the user, but just provide authorization to access the requested resource.

If an HTTP X‑3GPP‑Asserted‑Identity header (3GPP TS 24.109 [5]) is not present in the HTTP request or if the request is received from a non‑trusted source, then the AS needs to authenticate the user prior to providing authorization to the XCAP resource by applying the procedures of authentication mechanisms specified in 3GPP TS 33.222 [6] and 3GPP TS 24.109 [5] in case Generic Authentication Architecture is selected, or as described in clause 5.2.3.2.1 or 3GPP TS 33.141 [17] annex D otherwise.

5.2.3.2.1 HTTP digest authentication

On receiving an HTTP request that does not contain an Authorization header the AS shall:

a) challenge the user by generating a 401 Unauthorized response that contains the proper Digest authentication parameters (e.g. realm), according to IETF RFC 7616 [41]. Provisioning of credentials to authenticate the user is outside the scope of the present document; and

b) forward the 401 Unauthorized response to the sender of the HTTP request.

On receiving an HTTP request that contains an Authorization header, the AS shall:

a) apply the authentication procedures defined in IETF RFC 7616 [41]; and

b) authorize or deny authorization depending on the authenticated identity.

5.2.3.3 Subscription acceptance and notification of state changes in XML document

When the AS receives a SUBSCRIBE request having the Event header field value set to "xcap-diff", the AS shall first authenticate the source of the SUBSCRIBE request and then perform authorization. Afterwards, the AS shall generate a response to the SUBSCRIBE request and notifications in accordance with RFC 5875 [11] and RFC 6665 [18].

5.2.3.4 Validation against service capability

On receiving a XCAP request to modify service settings for a supplementary service, the AS shall check whether service capability fragments within the simservs document for the subscription of the sender for the XCAP request are available. If a service capability fragment within the simservs document is available, the AS shall validate the XCAP request against constraints defined in that service capability fragment and only accept modifications that are allowed by the service capability fragment. If the validation fails, the AS shall respond with a HTTP 409 (Conflict) response as defined in IETF RFC 4825 [8].

NOTE: The XML schema for a service capability fragment for a supplementary service is defined in the respective supplementary service specification.

5.3 Roles

5.3.1 XCAP client

5.3.1.1 Introduction

The XCAP client is a logical function as defined in IETF RFC 4825 [8]. The XCAP client provides the means to manipulate the general data, such as configuration settings related to supplementary services.

In order to manipulate XCAP resources stored on the XCAP server, the XCAP client uses the XCAP Root URI as defined in clause 13.9.1 of 3GPP TS 23.003 [15]. The UE implementing the XCAP client can be provisioned with an XCAP Root URI as specified in Appendix C in OMA-TS-XDM_Core-V1_1-20080627-A [14].

NOTE: In order to be able to manipulate XCAP resources stored on the XCAP server, the XCAP client needs to know the user’s directory name. It is assumed that this value is pre‑provisioned or the UE uses some means to discover it. Discovery mechanisms are outside the scope of the present document.

5.3.1.2 Manipulating supplementary services

5.3.1.2.1 General

When the XCAP client intends to manipulate a resource list, the XCAP client shall generate an HTTP PUT, HTTP GET or HTTP DELETE request in accordance with IETF RFC 4825 [8] and the supplementary services application usage specified in clause 6 of the present document. The XCAP client may attempt to manipulate resources for one or more supplementary services per request.

IETF RFC 4825 [8] describes the usage of a locally cached copy of resource lists. The XCAP client shall ensure that a modification of a resource list is performed using a version of the resource list that is synchronized with the resource list that is stored in the XCAP server.

NOTE 1: One mechanism to ensure that the locally cached version of a resource list is the same as the version of the resource list on the XCAP server is the usage of If-Match header field for conditional operations as defined in IETF RFC 4825 [8] by the XCAP client.

When the XCAP client needs to provide a password in order to request the manipulation of a resource list, the XCAP client shall include an XCAP User Identifier (XUI) in the Request-URI of an HTTP PUT request containing:

1) a SIP URI representing the public user identity of the served user; and

2) in the password portion of the SIP URI, the current password.

NOTE 2: The password provided by the user is a common password for all applicable supplementary services.

5.3.1.2.2 U E temporarily prevented from manipulating supplementary service settings via XCAP

If the XCAP client receives a HTTP 403 (Forbidden) response to an HTTP PUT, HTTP GET or HTTP DELETE request, the XCAP client should not retry to manipulate the supplementary service settings via XCAP for a certain time period.

NOTE 1: If the UE is not configured for supplementary service management as specified in 3GPP TS 24.167 [19], the UE can use another mechanism or domain (if available) to manipulate the supplementary services configuration settings (e.g. CS domain).

NOTE 2: The certain time period that the XCAP client does not retry the manipulation of supplementary services settings via XCAP depends on the type of terminal that implements the XCAP client (e.g. XCAP clients residing on mobile terminals can retry after a power-off/power-on or after detection of a change of USIM/ISIM).

5.3.1.2.3 Supplementary service settings manipulation errors

If the XCAP client receives an HTTP 409 (Conflict) response to an XCAP request (within an HTTP PUT request or HTTP DELETE request) where the request contained changes to the simservs XML document (as defined in clause 6.1) then the XCAP client shall not attempt to resend the request with the same contents but if there are smaller portion of the change that are appropriate to make then the XCAP client should attempt to resend these smaller portions of changes to the simservs XML document, with each smaller portion contained within its own XCAP request (each within an HTTP PUT request or HTTP DELETE request, as appropriate).

NOTE 1: The functionality desired bythe user and the XCAP client implementation can determine how and whether to reapportion changes to the simservs XML document in a new XCAP request from a previous XCAP request. One example could be to align portions of changes to known supplementary service boundaries.

NOTE 2: An XCAP client might receive an HTTP 409 (Conflict) response for reasons other than a supplementary service subscription error e.g. as defined in IETF RFC 4825 [8]. Indication of the specific reason for the error is not defined in the current version of the present document.

5.3.1.2.4 HTTP retry when no response is received

If no response is received within a certain time period, after the XCAP client has sent out an HTTP request and the XCAP client has different IP addresses available, the XCAP client may retry the request using one of the other IP addresses.

NOTE: The certain time period before the XCAP client retries the request depends on the configuration of the terminal that implements the XCAP client.

5.3.1.3 Password change

NOTE 1: 3GPP TS 22.030 [23] describes the MMI used when a user wishes to change a password when performing supplementary service control via the CS domain. This requires the user to input the current password, the new password and the new password (again). For password change via the CS domain, the network performs the verification of the new password with the new password (again). For password change via IMS, it is assumed that the user will still provide the current password, the new password and the new password (again) but the verification of the new password with the new password (again) will be carried out by the application on the UE. The details of this verification are out of scope of the present document.

When changing a password, the UE shall send an HTTP POST request, and shall include:

a) in the Request-URI an XUI including:

1) a SIP URI representing the public user identity of the served user; and

2) in the password portion of the SIP URI the current password;

b) the node selector in the Request-URI indicating the simservs XCAP resource; and

c) in the body a <password-change> element including a <new-password> element containing the new password.

NOTE 2: The current password and new password are common passwords for all applicable supplementary services.

The UE may also request a password check by sending an HTTP POST request as above, but without the <new-password> element.

NOTE 3: There is no useful semantics for a UE to request a password check, but for IMS centralised services as specified in 3GPP TS 29.292 [26] this is needed for compatibility with CS procedures.

5.3.2 XCAP server

5.3.2.1 Introduction

The XCAP server is a logical function as defined in IETF RFC 4825 [8]. The XCAP server can store data related to the configuration of supplementary services. The XCAP server shall provide or deny authorization to access XCAP resources by authenticated users. It is an operator configurable option in the XCAP server as to which supplementary services (if any) are provisioned for a subscription and what constraints (if any) apply to settings for provisioned supplementary services.

5.3.2.2 Manipulation acceptance

When the XCAP server receives an HTTP PUT, HTTP GET or HTTP DELETE request for manipulating or fetching a resource list, the XCAP server shall first authenticate the request and then perform authorization. Clause 5.2.2 provides more details on the authentication and authorization of HTTP requests.

The XCAP server shall support conditional processing as specified in IETF RFC 4825 [8] based on If-Match header field.

Afterwards the XCAP server shall perform the requested action and generate a response in accordance with
IETF RFC 4825 [8] and the supplementary services application usage specified in clause 6.

5.3.2.3 User not allowed to manipulate settings via XCAP

If the username identified by the XUI in the HTTP PUT, HTTP GET or HTTP DELETE request, is not allowed to manipulate settings via XCAP, then the XCAP server shall respond with a HTTP 403 (Forbidden) response.

NOTE: If the UE is not configured for supplementary service management as specified in 3GPP TS 24.167 [19], it is expected that operators do not configure their XCAP servers to return the HTTP 403 error response code for any other reason than specified above.

5.3.2.4 Supplementary Service subscription errors

If the subscription associated with the username identified by the XUI in a received HTTP PUT or HTTP DELETE request is allowed to manipulate settings via XCAP and is either not provisioned with one or more supplementary services indicated in the XML document contained within the request or is provisioned but the indicated configuration is not in compliance with one or more operator defined constraints or the subscription option "control of supplementary service" to "by the service provider", then the XCAP server shall respond with an HTTP 409 (Conflict) response and shall not update the settings.

NOTE: An XCAP server might send an XCAP client an HTTP 409 (Conflict) response for reasons other than a supplementary service subscription error e.g. as defined in IETF RFC 4825 [8]. Indication of the specific reason for the error is not defined in the current version of the present document.

5.3.2.5 Password management

5.3.2.5.1 General

Password management procedures at the XCAP server consist of two independent procedures:

– password check; and

– password change;

The password check procedure is used for verifying the current password stored against the user:

– when the user requests a password check;

– when the user requests a password change; and

– when the user requests modification of a supplementary service configuration document for a service that has password control.

The password change procedure is used by the XCAP server to set a new password for the user.

The XCAP server shall maintain a Wrong Password Attempts (WPA) counter.

When the password is set by the service provider the XCAP server shall reset the WPA counter to zero.

If the XCAP server receives a password that does not match the current password stored for the service, the XCAP server shall increment the WPA counter by 1.

If a password check passes at the XCAP server, the XCAP server shall reset the WPA counter to zero. If the WPA counter exceeds the value three, the XCAP server shall set the subscription option "control of supplementary service" to "by the service provider".

5.3.2.5.2 Password check

If a password is required (e.g. for supplementary service configuration or for password change) and the XUI contains a password in the password portion of the SIP URI, the XCAP server shall verify that the password in the request matches that stored for the user.

If a password is required, and the XCAP server receives a request:

– where the XUI is not a SIP URI;

– where the XUI is a SIP URI and the request does not contain a password in the password portion of the SIP-URI; or

– where the XUI is a SIP URI, the request contains a password in the password portion of the SIP-URI and the password does not match the current password stored for the user;

then the XCAP server shall respond with an HTTP 409 (Conflict) response.

When the XCAP server responds with an HTTP 409 (Conflict) response where the XUI in the received request is not a SIP URI , the XCAP server shall include an <incorrect-xui-format> element in the HTTP 409 (Conflict) response.

When the XCAP server responds with an HTTP 409 (Conflict) response where the XUI is a SIP URI, the WPA counter has not exceeded 3 and:

– if the password is missing in the request, the XCAP server shall include a <password-required> element; and

– if the password is not correct, the XCAP server shall include an <incorrect-password> element.

If the XCAP server receives a request for

– a password check;

– a password change; or

– modification of a supplementary service,

and the user has the subscription option "control of supplementary service" set to "by the service provider", the XCAP server shall reject the request with an HTTP 403 (Forbidden) response.

5.3.2.5.3 Password change

If the XCAP server receives an HTTP POST request populated as in clause 5.3.1.3 and the subscription option "control of supplementary service" is set to a value of "by the service provider", then the XCAP server shall respond with an HTTP 403 (Forbidden) response.

When the XCAP server receives an HTTP POST request populated as in clause 5.3.1.3, and the subscription option "control of supplementary service" is set to a value of "by subscriber using a password", the AS shall determine if the user is authorized to change the password by asserting that the received current password is correct as described in clause 5.3.2.5.2, and if so replace the currently used password with the new password. The new password is stored in an implementation specific way such that the password cannot be retrieved by the user.