Application programming interface (API) access to resource based on resource owner permission
Patent Information
- Application Number
- EP2024799185
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-30
- Filing Date
- 2024-10-29
- Publication Date
- 2026-09-09
AI Technical Summary
The current implementation of resource access in 5G networks through the Common API Framework (CAPIF) leads to redundant privacy checks and unnecessary complexity due to the storage of UE privacy profiles in multiple network entities.
The proposed solution involves the use of a Resource Owner Aware Northbound API Access (RNAA) token, which is verified for integrity but not for resource owner permission. If the token is determined to be an RNAA token, the system refrains from further privacy checks, allowing direct access to resources when permission is indicated.
This approach eliminates redundant privacy checks and reduces the complexity associated with handling UE privacy profiles across multiple network layers, thereby enhancing the efficiency and security of resource access in 5G networks.
Smart Images

Figure EP2024080561_08052025_PF_FP_ABST
Abstract
Description
[0001] APPLICATION PROGRAMMING INTERFACE (API) ACCESS TO RESOURCE BASED ON RESOURCE OWNER PERMISSION
[0002] TECHNICAL FIELD
[0003] The present application relates generally to the field of wireless communication networks, and more specifically to techniques that improve security of application programming interfaces (APIs) used in communication networks.
[0004] BACKGROUND
[0005] Currently the fifth generation (5G) of cellular systems, also referred to as New Radio (NR), is being standardized within the Third-Generation Partnership Project (3GPP). NR is developed for maximum flexibility to support multiple and substantially different use cases. These include enhanced mobile broadband (eMBB), ultra-low latency critical communications (URLCC), side-link device-to-device (D2D), and several other use cases. 5G was initially specified in 3GPP Release 15 (Rel-15) and continues to evolve through subsequent releases.
[0006] One change in 5G networks is that traditional peer-to-peer interfaces and protocols found in earlier-generation networks are modified and / or replaced by a Service Based Architecture (SBA) in which Network Functions (NFs) in the 5G core network (5GC) provide services to one or more service consumers. In general, the various services are self-contained functionalities that can be changed and modified in an isolated manner without affecting other services.
[0007] For example, a Unified Data Management (UDM) function supports generation of 3 GPP authentication credentials, user identification handling, access authorization based on subscription data, and other subscriber-related functions. A Network Exposure Function (NEF) acts as entry point into an operator's 5G core network (5GC), by securely exposing network capabilities and events provided by other NFs and by providing ways for application functions (AFs) to securely provide information to (or receive information from) the 5GC. A network repository function (NRF) allow every NF to discover services offered by other NFs.
[0008] 3GPP specifications define multiple northbound application programming interfaces (APIs), including APIs defined in 3GPP TS 23.682 (v!8.0.0) and 3GPP TR 26.981 (v!7.0.0). To avoid duplication and inconsistency of approach between different API specifications, 3GPP has specified a common API framework (CAPIF) that includes common aspects applicable to all northbound service APIs. Note that the term “service API” referrs to an interface through which a component of the system exposes its services to API invokers by abstracting the services from the underlying mechanisms, while the term “northbound API” (or “northbound service API”) refers to a service API exposed to higher-layer API invokers. Figure 1 illustrates some typical business relationships involved in CAPIF. The API invoker is typically provided by a third-party application provider who has service agreement with a CAPIF provider. The API provider hosts one or more service APIs and has a service API arrangement with CAPIF provider to offer the service APIs to the API invoker. The CAPIF provider and the API provider can be part of the same organization (e.g., PLMN operator), in which case the business relationship between the two is internal to a single organization. The CAPIF provider and the API provider can be part of different organizations, in which case the business relationship between the two must exist.
[0009] Figure 2 is a diagram of a functional model for CAPIF. The CAPIF core function (CCF, 220) is hosted within the PLMN operator network. The API invoker (210) is typically provided by a third-party application provider who has service agreement with a CAPIF provider. The API invoker may reside within the same trust domain as the PLMN operator network. The API exposing function (AEF, 230), the API publishing function (APF, 240), and the API management function (250) of the API provider domain, and collectively referred to as API provider domain functions. AEF is the entity that provides the service communication entry point for service APIs.
[0010] 3GPP TS 33.122 (v!8.1.0) defines a security architecture for CAPIF. One security procedure is authorization of an API invoker by AEF, which is further specified in 3GPP TS 23.222 (vl8.1.0) section 8.16 and 3GPP TS 33.122 section 6.5. Another procedure specified in 3GPP TS 33.122 section 6.5.3 is resource owner permission before CAPIF allows access to resources via northbound APIs. According to this procedure, the CCF checks resource owner permission and if the permission is given then CCF issues an access token for the API invoker to be used towards the corresponding AEF, which may be NEF or similar function in service enabler architecture layer (SEAL, discussed more below). The API invoker presents the access token to the AEF, which provides the service to the API invoker after verifying the access token. User location information is one example of resources subject to resource owner permission.
[0011] 3GPP has specified SEAL to support vertical applications over 5G networks. SEAL services include group management, configuration management, location management, identity management, key management, and network resource management. SEAL provides these services to various vertical application layers (VALs) that can run on top of SEAL, corresponding to various applications. In particular, a UE may include a SEAL group management client that communicates with a corresponding SEAL group management server in (or external to) the 5GC. The group management client provides group management services to VAL client(s) in the UE, which communicate with corresponding VAL server(s) in (or external to) the 5GC. The VAL server(s) also communicate with the SEAL group management server. 3GPP standards specify various ways to position (e.g., determine position of, locate, and / or determine location of) UEs operating in NR networks. In general, a positioning node configures a target device (e.g., UE) and / or RAN nodes (e.g., gNB, ng-eNB, etc.) to perform one or more positioning measurements according to one or more positioning methods. For example, the positioning measurements can include timing (and / or timing difference) measurements on UE, network, and / or satellite transmissions. The positioning measurements are used by the target device, the measuring node, and / or the positioning node to determine the target device’s location.
[0012] 3GPP TS 23.273 (vl 8.3.0) specifies location services (LCS) for 5G. Two LCS procedures specified in 3GPP TS 23.272 are 5GC mobile terminated location request (MT-LR) and sidelink (SL) MT-LR. Note that SL is a type of device-to-device (D2D) communication in which UEs communicate with each other directly rather than indirectly via a 3GPP RAN. Both 5GC-MT-LR and SL-MT-LR include privacy mechanisms in which permission for sharing UE location information with AFs is stored in the UE Privacy Profile in the UDM, as specified in 3GPP TS 23.502 (v!8.3.0) table 5.2.3.3.1-1.
[0013] SUMMARY
[0014] When resource owner aware CAPIF is used for user location information exposure to AFs, privacy checks will be done more than once in different places. Also the UE privacy profile will be stored in multiple places: in CAPIF layer and UDM for location services, and in CAPIF layer and SEAL. This can create various redundancies and increased complexity for permission checks in 5GC.
[0015] An object of embodiments of the present disclosure to address these and other problems, issues, and / or difficulties associated with limiting resource access to authorized resource owners, thereby facilitating the otherwise-advantageous deployment of CAPIF in 5G networks.
[0016] Some embodiments include exemplary methods (e.g., procedures) for an API exposing function (AEF) of a communication network (e.g., 5GC).
[0017] These exemplary methods include receiving, from an API invoking entity, a request for invocation of an API for a resource in the communication network. The resource is owned by a resource owner and the request includes an access token. These exemplary methods include determining whether the access token is a resource owner aware northbound API access (RNAA) token. When it is determined that the access token is a RNAA token, these exemplary methods include the following operations:
[0018] • verifying integrity of the RNAA token but refraining from verifying resource owner permission for the API invoking entity to access the resource; and • when verification of integrity of the RNAA token is successful, invoking the API for the resource in accordance with the request.
[0019] In some embodiments, it is determined that the access token is an RNAA token based on the access token including an identifier of the resource owner. In some embodiments, when it is determined that the access token is not an RNAA token, these exemplary methods include the following operations:
[0020] • verifying resource owner permission for the API invoking entity to access the resource ; and
[0021] • when verification of resource owner permission for the API invoking entity to access the resource is successful, invoking the API for the resource in accordance with the request.
[0022] In some of these embodiments, when verification of resource owner permission to access the resource is not successful, these exemplary methods also include refraining from invoking the API for the resource in accordance with the request.
[0023] In some embodiments, the API is associated with a network function (NF) of the communication network and invoking the API for the resource includes sending a request for the resource to the NF, with the request including an indication that resource owner permission for the API invoking entity to access the resource has been obtained.
[0024] Other embodiments include exemplary methods (e.g, procedures) for an NF of a communication network (e.g., 5GC).
[0025] These exemplary methods include receiving, from an AEF of the communication network, an invocation of an API for a resource in the communication network. The resource is owned by a resource owner and the invocation is on behalf of an API invoking entity. These exemplary methods include determining whether the request includes an indication that resource owner permission to access the resource has been obtained. When it is determined that the request includes the indication, these exemplary methods include the following operations:
[0026] • refraining from verifying resource owner permission for the AAPI invoking entity to access the resource;
[0027] • obtaining the resource from the communication network; and
[0028] • sending the obtained resource to the AEF.
[0029] In some embodiments, when it is determined that the request does not include the indication, these exemplary methods also include the following operations:
[0030] • verifying resource owner permission for the API invoking entity to access the resource; and
[0031] • when verification of resource owner permission for the API invoking entity to access the resource is successful: o obtaining the resource from the communication network, and o sending the obtained resource to the AEF.
[0032] In some of these embodiments, these exemplary methods also include, when verification of resource owner permission for the API invoking entity to access the resource is not successful, refraining from obtaining the resource from the communication network.
[0033] In some embodiments, the API is associated with the NF and the invocation of the API comprises a request for the resource.
[0034] Other embodiments include AEFs and NFs (or network equipment configured to implement such functions) that are configured to perform the operations corresponding to any of the exemplary methods described herein. Other embodiments include non-transitory, computer-readable media storing computer-executable instructions that, when executed by processing circuitry, configure AEFs and NFs to perform operations corresponding to any of the exemplary methods described herein.
[0035] Embodiments of the present disclosure can provide various benefits and / or advantages. For example, by avoiding redundant privacy checks, embodiments can eliminate the handling of UE privacy profiles at different layers and / or network entities that is required in conventional solutions. Moreover, embodiments may improve efficiency of security procedures when CAPIF architecture is used in a network. More generally, embodiments may improve security of CAPIF in 5 G networks.
[0036] These and other objects, features, and advantages of the present disclosure will become apparent upon reading the following Detailed Description in view of the Drawings briefly described below.
[0037] BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Figure 1 illustrates some typical business relationships involved in a common API framework (CAPIF) for a 3 GPP network.
[0039] Figure 2 is a diagram of a functional model for CAPIF.
[0040] Figure 3 shows an exemplary 5G network architecture.
[0041] Figure 4 shows a signaling diagram for an exemplary procedure for API invoker authorization to access service APIs .
[0042] Figure 5 shows a signaling diagram for an exemplary procedure for CAPIF-2e interface authentication and protection using access tokens.
[0043] Figure 6 shows a block diagram of a functional model for group management based on SEAL. Figure 7 shows an exemplary location information subscription request procedure, as specified in 3GPP TS 23.434 (vl8.6.0) section 9.3.7.
[0044] Figure 8 shows an exemplary on-demand location information reporting procedure, as specified in 3GPP TS 23.434 (vl8.6.0) section 9.3.4.
[0045] Figure 9 shows an exemplary off-network location information reporting procedure, as specified in 3GPP TS 23.434 (vl8.6.0) section 9.5.4.
[0046] Figures 10-11 show signaling diagram for exemplary procedures for authorization to access a resource based on an RNAA token, according to various embodiments of the present disclosure.
[0047] Figure 12 illustrates an exemplary method (e.g, procedure) for an API exposing function (AEF) of a communication network, according to various embodiments of the present disclosure.
[0048] Figure 13 illustrates an exemplary method (e.g, procedure) for a network function (NF) of a communication network, according to various embodiments of the present disclosure.
[0049] Figure 14 shows a communication system according to various embodiments of the present disclosure.
[0050] Figure 15 shows a network node according to various embodiments of the present disclosure.
[0051] Figure 16 shows a virtualization environment in which some embodiments of the present disclosure may be virtualized.
[0052] DETAILED DESCRIPTION
[0053] Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Other embodiments, however, are contained within the scope of the subject matter disclosed herein, the disclosed subject matter should not be construed as limited to only the embodiments set forth herein; rather, these embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art.
[0054] In general, all terms used herein are to be interpreted according to their ordinary meaning to a person of ordinary skill in the relevant technical field, unless a different meaning is expressly defined and / or implied from the context of use. All references to a / an / the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise or clearly implied from the context of use. The operations of any methods and / or procedures disclosed herein do not have to be performed in the exact order disclosed, unless an operation is explicitly described as following or preceding another operation and / or it is implicit that an operation must follow or precede another operation. Any feature of any embodiment disclosed herein can apply to any other disclosed embodiment, as appropriate. Likewise, any advantage of any embodiment described herein can apply to any other disclosed embodiment, as appropriate.
[0055] Furthermore, the following terms are used throughout the description given below:
[0056] • Radio Access Node: As used herein, a “radio access node” (or equivalently “radio network node,” “radio access network node,” or “RAN node”) can be any node in a radio access network (RAN) that operates to wirelessly transmit and / or receive signals. Some examples of a radio access node include, but are not limited to, a base station (e.g., gNB in a 3GPP 5G / NR network or an enhanced or eNB in a 3 GPP LTE network), base station distributed components (e.g, CU and DU), a high-power or macro base station, a low-power base station (e.g., micro, pico, femto, or home base station, or the like), an integrated access backhaul (IAB) node, a transmission point (TP), a transmission reception point (TRP), a remote radio unit (RRU or RRH), and a relay node.
[0057] • Core Network Node: As used herein, a “core network node” is any type of node in a core network. Some examples of a core network node include, e.g., a Mobility Management Entity (MME), a serving gateway (SGW), a PDN Gateway (P-GW), a Policy and Charging Rules Function (PCRF), an access and mobility management function (AMF), a session management function (SMF), a user plane function (UPF), a Charging Function (CHF), a Policy Control Function (PCF), an Authentication Server Function (AUSF), a location management function (LMF), or the like.
[0058] • Wireless Device: As used herein, a “wireless device” (or “WD” for short) is any type of device that is capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other wireless devices. Communicating wirelessly can involve transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information through air. Unless otherwise noted, the term “wireless device” is used interchangeably herein with the term “user equipment” (or “UE” for short), with both of these terms having a different meaning than the term “network node”.
[0059] • Radio Node: As used herein, a “radio node” can be either a “radio access node” (or equivalent term) or a “wireless device.”
[0060] • Network Node: As used herein, a “network node” is any node that is either part of the radio access network (e.g., a radio access node or equivalent term) or of the core network (e.g., a core network node discussed above) of a cellular communications network. Functionally, a network node is equipment capable, configured, arranged, and / or operable to communicate directly or indirectly with a wireless device and / or with other network nodes or equipment in the cellular communications network, to enable and / or provide wireless access to the wireless device, and / or to perform other functions (e.g, administration) in the cellular communications network.
[0061] • Node: As used herein, the term “node” (without prefix) can be any type of node that can in or with a wireless network (including RAN and / or core network), including a radio access node (or equivalent term), core network node, or wireless device. However, the term “node” may be limited to a particular type (e.g., radio access node, IAB node) based on its specific characteristics in any given context.
[0062] The above definitions are not meant to be exclusive. In other words, various ones of the above terms may be explained and / or described elsewhere in the present disclosure using the same or similar terminology. Nevertheless, to the extent that such other explanations and / or descriptions conflict with the above definitions, the above definitions should control.
[0063] Note that the description given herein focuses on a 3GPP cellular communications system and, as such, 3GPP terminology or terminology similar to 3GPP terminology is generally used. However, the concepts disclosed herein are not limited to a 3GPP system, and can be applied in any system that can benefit from the concepts, principles, and / or embodiments described herein.
[0064] At a high level, the 5G System (5GS) consists of an Access Network (AN) and a Core Network (CN). The AN provides UEs connectivity to the CN, e.g., via base stations such as gNBs or ng-eNBs described below. The CN includes a variety of Network Functions (NF) that provide a wide range of different functionalities such as session management, connection management, charging, authentication, etc.
[0065] Figure 3 shows an exemplary non-roaming reference architecture for a 5G network (300). These include the following 3GPP-defmed NFs and service-based interfaces:
[0066] • Application Function (AF, with Naf interface) interacts with the 5GC to provision information to the network operator and to subscribe to certain events happening in operator's network. An AF offers applications for which service is delivered in a different layer (i.e., transport layer) than the one in which the service has been requested (i.e., signaling layer), the control of flow resources according to what has been negotiated with the network. An AF communicates dynamic session information to PCF (via N5 interface), including description of media to be delivered by transport layer.
[0067] • Policy Control Function (PCF, with Npcf interface) supports unified policy framework to govern the network behavior, via providing PCC rules (e.g., on the treatment of each service data flow that is under PCC control) to the SMF via the N7 reference point. PCF provides policy control decisions and flow based charging control, including service data flow detection, gating, QoS, and flow-based charging (except credit management) towards the SMF. The PCF receives session and media related information from the AF and informs the AF of traffic (or user) plane events.
[0068] User Plane Function (UPF)- supports handling of user plane traffic based on the rules received from SMF, including packet inspection and different enforcement actions (e.g., event detection and reporting). UPFs communicate with the RAN (e.g., NG-RNA) via the N3 reference point, with SMFs (discussed below) via the N4 reference point, and with an external packet data network (PDN) via the N6 reference point. The N9 reference point is for communication between two UPFs.
[0069] • Session Management Function (SMF, with Nsmf interface) interacts with the decoupled traffic (or user) plane, including creating, updating, and removing Protocol Data Unit (PDU) sessions and managing session context with the User Plane Function (UPF), e.g., for event reporting. For example, SMF performs data flow detection (based on filter definitions included in PCC rules), online and offline charging interactions, and policy enforcement.
[0070] • Charging Function (CHF, with Nchf interface) is responsible for converged online charging and offline charging functionalities. It provides quota management (for online charging), re-authorization triggers, rating conditions, etc. and is notified about usage reports from the SMF. Quota management involves granting a specific number of units (e.g., bytes, seconds) for a service. CHF also interacts with billing systems.
[0071] Access and Mobility Management Function (AMF, with Namf interface) terminates the RAN CP interface and handles all mobility and connection management of UEs (similar to MME in EPC). AMFs communicate with UEs via the N1 reference point and with the RAN (e.g., NG-RAN) via the N2 reference point.
[0072] • Network Exposure Function (NEF) with Nnef interface - acts as the entry point into operator's network, by securely exposing to AFs the network capabilities and events provided by 3GPP NFs and by providing ways for the AF to securely provide information to 3GPP network. For example, NEF provides a service that allows an AF to provision specific subscription data (e.g., expected UE behavior) for various UEs.
[0073] • Network Repository Function (NRF, 210) with Nnrf interface - provides service registration and discovery, enabling NFs to identify and / or discover appropriate services available from other NFs.
[0074] • Network Slice Selection Function (NSSF) with Nnssf interface - a “network slice” is a logical partition of a 5G network that provides specific network capabilities and characteristics, e.g., in support of a particular service. A network slice instance is a set of NF instances and the required network resources (e.g., compute, storage, communication) that provide the capabilities and characteristics of the network slice.
[0075] The NSSF enables other NFs (e.g., AMF) to identify a network slice instance that is appropriate for a UE’s desired service.
[0076] • Authentication Server Function (AUSF) with Nausf interface - based in a user’s home network (HPLMN), it performs user authentication and computes security key materials for various purposes.
[0077] • Network Data Analytics Function (NWDAF) with Nnwdaf interface - provides network analytics information (e.g., statistical information of past events and / or predictive information) to other NFs on a network slice instance level.
[0078] • Location Management Function (LMF) with Nlmf interface - supports various functions related to determination of UE locations, including location determination for a UE and obtaining any of the following: DL location measurements or a location estimate from the UE; UL location measurements from the NG RAN; and non-UE associated assistance data from the NG RAN.
[0079] • Unified Data Management (UDM) function with Nudm interface - supports generation of 3GPP authentication credentials, user identification handling, access authorization based on subscription data, and other subscriber-related functions. To provide this functionality, the UDM uses subscription data (including authentication data) stored in the 5GC unified data repository (UDR).
[0080] The services provided by the various NFs are composed of “service operations”, which are more granular divisions of the overall service functionality. The interactions between service consumers and producers can be of the type “request / response” or “subscribe / notify”. In the latter type, a service consumer NF (or equivalently, “consumer NF”) requests a service producer NF (or equivalently, “producer NF”) to establish a subscription for the service consumer NF to receive notifications from the service producer NF under conditions specified in this subscription.
[0081] As briefly mentioned above, 3GPP has specified a common API framework (CAPIF) that includes common aspects applicable to any northbound service APIs. CAPIF was described above in relation to Figures 1-2, which will be referenced in the following description. 3GPP TS 33.122 (vl7.1.0) defines a security architecture for CAPIF, including a procedure for authorization of an API invoker by AEF.
[0082] Figure 4 shows a signaling diagram for an exemplary procedure for API invoker authorization to access service APIs, which is further specified in 3GPP TS 23.222 (vl8.1.0) section 8.16 and 3GPP TS 33.122 section 6.5. Although operations shown in Figure 4 are given numerical labels, this is done to facilitate explanation rather than to require or imply any specific operational order, unless expressly stated otherwise. In operation 1, the API invoker (410) triggers service API invocation request to the AEF (430), including the service API to be invoked. Note that the API invoker can trigger several service API invocations asynchronously. The API invoker may provide authorization information in the request.
[0083] In operation 2, upon receiving the service API invocation request, the AEF checks whether the API invoker is authorized to invoke that service API, based on the authorization information. In operation 2a, if the AEF does not have information required to authorize service API invocation (e.g., API invoker did not include with the request), the AEF obtains the authorization information from the CAPIF core function (CCF, 420).
[0084] In operation 3, the AEF executes the service logic for the invoked service API. In operation 4, the API invoker receives the service API invocation response as a result of the service API invocation.
[0085] 3GPP TS 33.122 specifies use of OAuth 2.0 protocol for the case where the API invoker includes the authorization information in operation 1. IETF RFC 6749 specifies authorization server, authorization client, and resource server roles for the OAuth 2.0 framework. To obtain authorization information provided in Figure 4 operation 1, CCF plays the authorization server role while the API invoker plays both the client role and the resource server role.
[0086] Figure 5 shows a signaling diagram for an exemplary procedure for CAPIF-2e interface authentication and protection using OAuth 2.0 access tokens, which is further specified in 3GPP TS 33.122 section 6.5.2.3. Although operations shown in Figure 5 are given numerical labels, this is done to facilitate explanation rather than to require or imply any specific operational order, unless expressly stated otherwise.
[0087] In operation 1, CAPIF-le authentication and secure session establishment is performed as specified in 3GPP TS 33.122 section 6.3.1. In operation 2, after successful establishment of a transport layer security (TLS) session over CAPIF-le, the API invoker (510) sends an Access Token Request message to the CCF (520) as per IETF RFC 6749. The API invoker may include a CCF-assigned API invoker ID and Onboard Secret in the access token request message to enable the CCF to validate the access token request.
[0088] In operation 3, the CCF verifies the Access Token Request message per IETF RFC 6749. If the CCF successfully verified the Access Token Request message, in operation 4 the CCF generates an access token specific to the API invoker and returns it in an Access Token Response message.
[0089] In operation 5, on CAPIF-2e, the API invoker establishes a TLS session with the AEF (530) based on the authentication and authorization method indicated by the CCF, specifically server-side (AEF) certificate authentication or certificate-based mutual authentication. The API invoker and the AEF may perform other procedures prior to establishment of TLS session, as further specified in 3GPP TS 33.122.
[0090] In operation 6, with successful authentication to AEF on CAPIF-2e, the API invoker initiates invocation of a 3 GPP northbound API with the AEF. The API invoker sends the access token received from the CCF along with the northbound API invocation request, as per IETF RFC 6749. In operation 7, the AEF validates the access token, including verifying the integrity of the access token based on verifying the CCF’s signature. If validation of the access token is successful, the AEF verifies the API invoker's northbound API invocation request against the authorization claims in access token, ensuring that the API Invoker has access permission for the requested service API.
[0091] In operation 8, after successful verification of the access token and authorization claims of the API invoker, the requested northbound API is invoked and the appropriate response returned to the API invoker.
[0092] As briefly mentioned above, 3GPP Rel-18 CAPIF includes a feature of resource owner aware northbound API access (RNAA). If an API invocation results in accessing owned resources, this feature requires authorization from the resource owner in the decision of allowing access to the APIs. User location information is one example of resources subject to resource owner permission. As specified in 3GPP TS 33.122 section 6.5.3, RNAA uses the Oauth2.0 framework in which the API invoker has the role of Oauth2.0 client, the CCF has the role of Oauth2.0 authentication server that provides an access token used for RNAA, and the AEF has the role of resource server. The access tokens used for RNAA include resource owner ID, API invoker ID, and other claims.
[0093] According to the RNAA procedure, the CCF checks resource owner permission and if the permission is given then CCF issues an access token for the API invoker to be used towards the corresponding AEF, which may be NEF or similar function in service enabler architecture layer (SEAL, discussed more below). The API invoker presents the access token to the AEF with the invocation request. The AEF checks the request against the token, including the resource owner ID. Since the token includes resource owner ID, there is no need for additional UE authentication in API invocation. Moreover, the access token should be able to restrict the API invoker to a specific resource (e.g., location, QoS, PDN connectivity status). If the request is verified against the access token, the AEF provides the requested service to the API invoker, which accesses the resources of the resource owner (e.g., user location) via API invocation.
[0094] 3GPP TS 23.273 (vl 8.3.0) specifies LCS for 5G, including 5GC mobile terminated location request (MT-LR) and sidelink (SL) MT-LR procedures. Both 5GC-MT-LR and SL- MT-LR include privacy mechanisms in which permission for sharing UE location information with AFs is stored in the UE Privacy Profile in the UDM, as specified in 3 GPP TS 23.502 (V18.3.0) table 5.2.3.3.1-1.
[0095] 3GPP TS 23.273 section 6.1.2 describes a 5G-MT-LR procedure for commercial LCS. An LCS Client, an NF, or an AF (via NEF) sends a request to a gateway mobile location center (GMLC) for a location and optionally a velocity for a target UE, which is identified by a generic public subscription identifier (GPSI) or a subscription permanent identifier (SUPI). The requesting LCS client, AF, or NF needs to be authorized to use the commercial LC.
[0096] In operation 2 of this procedure, the GMLC invokes aNudm SDM Get service operation towards the UDM of the target UE to get the privacy settings of the UE identified by GPSI or SUPI. The UDM returns the target UE privacy profile, which the GMLC checks. If the target UE is not allowed to be located, the remaining operations of the procedure are skipped.
[0097] In operation 3, the GMLC invokes a Nudm UECM Get service operation towards the UDM of the target UE with the GPSI or SUPI. The UDM returns the network addresses of the current serving AMF of the target UE. In operation 5, the GMLC invokes an Namf Location ProvidePositioninglnfo service operation towards the AMF to request the current location of the UE. If the privacy check in operation 2 indicates that the UE must either be notified or notified with privacy verification, and if the UE supports LCS notification (according to UE capability information), in operation 7 the AMF sends a notification invoke message is sent to the target UE, indicating the identity of the LCS client and the service type (if that is both supported and available) and whether privacy verification is required.
[0098] If the privacy check in operation 2 indicates that further privacy checks are needed, in operation 16 the GMLC performs an additional privacy check in order to decide whether the GMLC can forward the location information to the LCS client or AF or send a notification if the result of the privacy check requires the notification and verification based on current location. One example of when this additional privacy check is needed is when the target UE user has defined different privacy settings for different geographical locations.
[0099] 3GPP TS 23.273 section 6.20.3 describes a SL-MT-LR procedure involving a location management function (LMF) in the 5GC. This procedure enables an LCS Client or an AF to obtain ranging / SL positioning location results for a group of n UEs (n>2), i.e. UE1, UE2, ..., UEn. The LCS Client or the AF (via NEF) sends an LCS service request to the GMLC for ranging / SL positioning location results for the n UEs which may are identified by respective Application Layer IDs, GPSIs, or SUPIs.
[0100] In operation 2, the GMLC invokes a Nudm SDM Get service operation towards the UDM of each of the n target UEs (identified by GPSI or SUPI) to obtain the respective UE LCS privacy profiles. The GMLC checks the respective UE privacy profiles, and if a particular UE is not allowed to be located, the remaining operations of the procedure are skipped for that UE.
[0101] In operation 3, the GMLC invokes a Nudm UECM Get service operation towards the UDM of each of the n UEs (for which GPSI or SUPI is available), one at a time, using the GPSI or SUPI of each UE. The GMLC selects the UE (called UE1) that initiates the ranging / SL positioning and selects the corresponding serving AMF. In operation 5, the GMLC invokes an Namf Location ProvidePositioninglnfo service operation towards the AMF serving UE1 to request SL positioning / ranging location results of the n UEs.
[0102] If the privacy check in operation 2 indicates that UE1 must either be notified or notified with privacy verification, and if UE1 supports LCS notification (according to UE capability information), in operation 7 the AMF sends a notification invoke message is sent to UE1, indicating the identity of the LCS client and the service type (if that is both supported and available) and whether privacy verification is required.
[0103] As briefly mentioned above, 3GPP has specified a service enabler architecture layer (SEAL) to support vertical applications over 5G networks. SEAL services include group management, configuration management, location management, identity management, key management, and network resource management. SEAL provides these services to vertical application layers (VALs) that can run on top of SEAL, e.g., corresponding to various applications.
[0104] SEAL can use various information for VAL group management, including VAL group IDs, group member UE IDs, generic group configurations, group data network name (DNN), single network slice selection assistance information (S-NSSAI), group size, group leader, group location information, enabled VAL services, VAL service specific information, PDU session type, etc. This information is further specified in 3GPP TS 23.434 (v!8.6.0) section 10 and 3GPP TS 29.549 (v!7.8.0) clause 7.2.L4.
[0105] Figure 6 shows a block diagram of a functional model for group management based on SEAL. A VAL UE may include a SEAL group management client that communicates via GM- UU interface with a corresponding SEAL group management server external to a 3GPP network. The group management client provides group management services to UE VAL client(s) in the UE via the GM-C interface. The VAL client(s) communicate via VAL-UU interface with corresponding VAL server(s) external to the 3GPP network. The VAL server(s) also communicate with the SEAL group management server via GM-S interface.
[0106] The group management server interacts with a NEF of the 3GPP network via N33 reference point to perform group management procedures for 5G Virtual Network (5GVN) groups. Group management functions defined by 3GPP SA6 involve group creation, query of group information, group membership update, group announcement and join, and group member leave. The members of a VAL group can communicate with each other but are “invisible” to members of other VAL groups. Even so, inter-group communication is possible via the N19 reference point in 5GC, which connects two UPFs for direct routing of traffic between different PDU Sessions without using N6 reference point shown in Figure 2.
[0107] SEAL also includes its own privacy mechanism for location information sharing. Figure 7 shows an exemplary location information subscription request procedure, as specified in 3GPP TS 23.434 (vl8.6.0) section 9.3.7. In operation 1, the VAL server sends a location information subscription request to the location management server (SEAL LM server) to subscribe for location information of one or more VAL users (or VAL UEs). The request may include an indication for supplementary location information and the location QoS, which indicates location accuracy, response time, and QoS class as defined in 3GPP TS 23.273 section 4.1b. In operation 2, the location management server checks if the VAL server is authorized to initiate the location information subscription request for the UE, i.e., whether the VAL server is authorized to leam the location information of the UE. The remaining operations shown in Figure 7 are described in 3GPP TS 23.434 (vl 8.6.0) section 9.3.7, and may involve the 3GPP CN (e.g., 5GC) as illustrated in Figure 5.
[0108] Figure 8 shows an exemplary on-demand location information reporting procedure, as specified in 3GPP TS 23.434 (v!8.6.0) section 9.3.4. In operation 1, based on configurations such as periodical location information timer, or location information request from other entities (e.g., another location management client, a VAL server, etc.), a location management server initiates an immediate request for location information from the location management client. In operation 2, the location management server sends a location information request to the location management client. In operation 3, the VAL user (or VAL UE) is notified and asked about permission to share its location. For example, the VAL user can accept or deny the request.
[0109] In operation 4, the location management client immediately responds to the location management server with a report containing location information identified by the location management server and available to the location management client, if authorized in operation 3. In operation 5, upon receiving the report, the location management server updates location of the reporting location management client. If the location management server does not have location information of the reporting location management client before, then just stores the reporting location information for that location management client.
[0110] Figure 9 shows an exemplary off-network location information reporting procedure, as specified in 3GPP TS 23.434 (v!8.6.0) section 9.5.4. This procedure involves an on-demand location report from the location management client- 1 residing in UE-1 to a location management client-2 residing in UE-2. UE-1 and UE-2 are within SL communication range of each other, and aware of each other’s Layer-2 ID. The VAL service user in UE-1 is authorized to request location report from UE-2, and requests immediate location reporting by UE-2.
[0111] In operation 1, based on configurations such as periodical location information timer, location management client- 1 initiates an immediate request for location information from the location management client-2 by sending an off-network location request to location management client-2. The message includes information elements as specified in 3GPP TS 23.434 (V18.6.0) table 9.5.2.7-1.
[0112] In operation 2, UE-2 (or VAL user of UE-2) is notified and asked about the permission to share its location, For example, the VAL user can accept or deny the request. In operation 3, if permission is received from the VAL user, location management client-2 includes a report containing location information identified by the location management client- 1 and available to the location management client-2. The message includes information elements specified in 3GPP TS 23.434 (v!8.6.0) table 9.5.2.8-1.
[0113] In operation 4, upon receiving the off-network location reporting trigger configuration response message, location management client- 1 sends off-network location management ack message. The message includes information elements as specified in 3GPP TS 23.434 (vl 8.6.0) clause 9.5.2.3.
[0114] To summarize, when resource owner-aware CAPIF is used for user location information exposure to AFs, privacy checks will be done more than once in different places. For example, the CAPIF AEF will perform a privacy check prior to allowing API invocation by the requester (e.g., Figure 5 operation 7), and the GMLC will also perform a privacy check (e.g., 5GC-MT- LR operation 2). Also the UE privacy profile will be stored in multiple places: in CAPIF layer and UDM for location services, and / or in CAPIF layer and SEAL for SEAL services. These redundant privacy checks and redundant storage of UE privacy profile can create complexities for location services and other services that support user privacy.
[0115] Embodiments of the present disclosure address these and other problems, issues, and / or difficulties by providing novel, flexible, and efficient techniques in which CCF (acting as authorization server) issues an RNAA access token to an API invoker. When the API invoker presents the access token to the AEF, based on determining that it is an RNAA token for which a privacy check has already been carried out, the AEF (e.g., NEF, SEAL Location Management Server, etc.) refrains from its customary privacy check and also includes in the request to the LCS providing entity (e.g., GMLC or third-party LM server) that user permission for the request has already been verified. For example, when a GMLC receives this request with a user permission indication, the GMLC refrains from retrieving the UE privacy profile from UDM and directly performs the remaining steps of the LCS procedure (e.g., 5GC-MT-LR) based on the indicated user permission.
[0116] Embodiments of the present disclosure can provide various benefits and / or advantages. For example, by avoiding redundant privacy checks, embodiments can eliminate the handling of UE privacy profiles at different layers and / or network entities that is required in conventional solutions. Moreover, embodiments may improve efficiency of security procedures when CAPIF architecture is used in a network.
[0117] Figure 10 shows a signaling diagram for an exemplary procedure for authorization to access a resource based on an RNAA token, according to various embodiments of the present disclosure. In particular, the procedure in Figure 10 is for a UE location resource that is owned by a user of the UE. The procedure is between an AF (1030), an NEF (1020, as AEF), and a GMLC (1010). Although operations shown in Figure 1010 are given numerical labels, this is done to facilitate explanation rather than to require or imply any specific operational order, unless expressly stated otherwise.
[0118] In operation 1, the AF (i.e., as API invoker) sends the NEF (i.e., as AEF) a request for user location. The request includes an access token issued by CCF, e.g., according to the procedure shown in Figure 5. In this example, the access token is an RNAA token and implicitly indicates that resource owner permission has been obtained, e.g., according to the procedure shown in Figure 5. In operation 2, upon determining that the received access token is an RNAA token, the NEF refrains from its customary privacy check, including fetching the UE privacy profile from UDM.
[0119] In operation 3, the NEF sends a request for the user location resource to the GMLC. The request includes an indication that user permission to access the resource has been obtained, which is based on the RNAA token received in operation 1. In operation 4, based on the received indication, the GMLC refrains from its customary privacy check, including fetching the UE privacy profile from UDM.
[0120] Note that the procedure shown in Figure 10 can be used in the 5GC-MT-LR and SL-MT- LR procedures described briefly above and with more detail in 3GPP TS 23.373 (v!8.3.0). For example, the procedure shown in Figure 10 can be integrated with operations 2, 5, and 7-8 of the 5GC-MT-LR and SL-MT-LR procedures.
[0121] Figure 11 shows a signaling diagram for an exemplary procedure for authorization to access a resource based on an RNAA token, according to various embodiments of the present disclosure. In particular, the procedure in Figure 11 is for a UE location resource that is owned by a user of the UE. Although operations shown in Figure 11 are given numerical labels, this is done to facilitate explanation rather than to require or imply any specific operational order, unless expressly stated otherwise.
[0122] The procedure shown in Figure 11 is an improved version of the SEAL location information subscription request procedure shown in Figure 7 and further specified in 3GPP TS 23.434 (vl8.6.0) section 9.3.7. The procedure shown in Figure 11 is between a VAL server (1110), a location management server (1120), a location management client (1130), a 3GPP CN (1140, e.g., 5GC), and a Third-party location management server (1150).
[0123] In operation 1, the VAL server (i.e., as API invoker) sends a location information subscription request to the location management server (SEAL LM server, i.e., as AEF) to subscribe for location information of one or more VAL users (or VAL UEs). The request includes an access token issued by CCF, e.g., according to the procedure shown in Figure 5. In this example, the access token is an RNAA token and implicitly indicates that resource owner permission has been obtained, e.g., according to the procedure shown in Figure 5.
[0124] In operation 2, upon determining that the received access token is an RNAA token, the location management server refrains from checking whether the VAL server is authorized to initiate the location information subscription request for the UE, i.e., whether the VAL server is authorized to leam the location information of the UE. Instead, the location management server sends the location management client an indication that the user permission has been obtained, e.g., based on the received RNAA token. In operation 3, the location management server may optionally subscribe for UE location information from the 3GPP CN (e.g., GMLC) or from the third party location management server, also providing an indication of obtained user permission. Based on such indication, the 3GPP CN (or third party location management server) may refrain from performing further privacy checks.
[0125] Note that when the location management (LM) client in Figure 11 is triggered to obtain UE location information from a second LM client in off-network interaction, then the first LM client indicates that the user permission has already been done in the interaction (e.g., Off-network location request) with the second LM client.
[0126] The embodiments described above can be further illustrated with reference to Figures 12- 13, which depict exemplary methods (e.g., procedures) for an AEF and a NF, respectively. Put differently, various features of the operations described below correspond to various embodiments described above. The exemplary methods shown in to Figures 12-13 can be used cooperatively (e.g., with each other and / or with other procedures described herein) to provide benefits, advantages, and / or solutions to problems described herein. Although the exemplary methods are illustrated in to Figures 12-13 by specific blocks in particular orders, the operations corresponding to the blocks can be performed in different orders than shown and can be combined and / or divided into operations having different functionality than shown. Optional blocks and / or operations are indicated by dashed lines.
[0127] In particular, Figure 12 illustrates an exemplary method (e.g., procedure) for an AEF of a communication network, according to various exemplary embodiments of the present disclosure. The exemplary method shown in Figure 12 can be performed by any appropriate AEF (e.g., NEF, SEAL location management server, etc.) described herein.
[0128] The exemplary method includes the operations of block 1210, where the AEF receives, from an API invoking entity, a request for invocation of an API for a resource in the communication network. The resource is owned by a resource owner and the request includes an access token. The exemplary method also includes the operations of block 1220, where the AEF determines whether the access token is a resource owner aware northbound API access (RNAA) token. When it is determined that the access token is a RNAA token, the exemplary method includes the following operations, labelled with corresponding block numbers:
[0129] • (1230) verifying integrity of the RNAA token but refraining from verifying resource owner permission for the API invoking entity to access the resource; and
[0130] • when verification of integrity of the RNAA token is successful, invoking (1250) the API for the resource in accordance with the request.
[0131] In some embodiments, it is determined that the access token is an RNAA token based on the access token including an identifier of the resource owner. In some embodiments, when it is determined that the access token is not an RNAA token, the exemplary method includes the following operations, labelled with corresponding block numbers:
[0132] • (1240) verifying resource owner permission for the API invoking entity to access the resource, with the “privacy check” discussed above being an example of such verification; and
[0133] • when verification of resource owner permission for the API invoking entity to access the resource is successful (e.g., block 1240), invoking (1250) the API for the resource in accordance with the request.
[0134] In some of these embodiments, when verification of resource owner permission to access the resource is not successful (e.g., in block 1240), the exemplary method also includes the operations of block 1260, where the AEF refrains from invoking the API for the resource in accordance with the request.
[0135] In some embodiments, the access token includes an identifier of the API invoking entity and verifying resource owner permission for the API invoking entity to access the resource k in block 1240 includes the following operations, labelled with corresponding sub-block numbers: • (1241) obtaining, from a unified data management function (UDM) of the communication network, a privacy profile associated with the resource owner; and
[0136] • (1242) determining whether the API invoking entity is authorized to access the resource based on the privacy profile and the identifier of the API invoking entity.
[0137] In some embodiments, the resource is a location of a user equipment (UE), and the resource owner is a user of the UE. In some embodiments, the AEF is a network exposure function (NEF) of the communication network. In other embodiments, the AEF is a service enabler architecture layer (SEAL) location management server.
[0138] In some embodiments, the API is associated with a network function (NF) of the communication network and invoking the API for the resource in block 1250 includes the operations of sub-block 1251, where the AEF sends a request for the resource to the NF. The request includes an indication that resource owner permission for the API invoking entity to access the resource has been obtained. In some of these embodiments, the NF is a gateway mobile location center (GMLC). In other of these embodiments, the NF is an access and mobility management function (AMF).
[0139] In some embodiments, the API invoking entity is one of the following: an application hosted by a user equipment (UE), an application function (AF) associated with the communication network, or a vertical application layer (VAL) server.
[0140] In addition, Figure 13 illustrates an exemplary method (e.g, procedure) for a NF of a communication network, according to various exemplary embodiments of the present disclosure. The exemplary method shown in Figure 13 can be performed by any appropriate NF such as described herein.
[0141] The exemplary method includes the operations of block 1310, where the NF receives, from an AEF of the communication network, an invocation of an API for a resource in the communication network. The resource is owned by a resource owner and the invocation is on behalf of an API invoking entity. The exemplary method includes the operations of block 1320, where the NF determines whether the invocation includes an indication that resource owner permission to access the resource has been obtained. When it is determined that the request includes the indication, the exemplary method includes the following operations, labelled with corresponding block numbers:
[0142] • (1330) refraining from verifying resource owner permission for the AAPI invoking entity to access the resource;
[0143] • (1350) obtaining the resource from the communication network; and
[0144] • (1360) sending the obtained resource to the AEF. In some embodiments, when it is determined that the request does not include the indication, the exemplary method also includes the following operations, labelled with corresponding block numbers:
[0145] • (1340) verifying resource owner permission for the API invoking entity to access the resource; and
[0146] • when verification of resource owner permission for the API invoking entity to access the resource is successful (e.g., in block 1340): o (1350) obtaining the resource from the communication network, and o (1360) sending the obtained resource to the AEF.
[0147] In some of these embodiments, the exemplary method also includes the operation of block 1370, where when verification of resource owner permission for the API invoking entity to access the resource is not successful (e.g., in block 1340), the NF refrains from obtaining the resource from the communication network.
[0148] In some of these embodiments, the invocation of the API includes an identifier of the API invoking entity and verifying resource owner permission for the API invoking entity to access the resource in block 1340 includes the following operations, labelled with corresponding sub-block numbers:
[0149] • (1341) obtaining, from a unified data management function (UDM) of the communication network, a privacy profile associated with the resource owner; and
[0150] • (1342) determining whether the API invoking entity is authorized to access the resource based on the privacy profile and the identifier of the API invoking entity.
[0151] In some of these embodiments, the API invoking entity is one of the following: an application hosted by a UE, an AF associated with the communication network, or a VAL server.
[0152] In some embodiments, the resource is a location of a UE, and the resource owner is a user of the UE. In some embodiments, the AEF is a NEF of the communication network. In other embodiments, the AEF is a SEAL location management server.
[0153] In some embodiments, the API is associated with the NF and the invocation of the API comprises a request for the resource. In some embodiments, the NF is a GMLC. In other embodiments, the NF is an AMF.
[0154] Although various embodiments are described above in terms of methods, apparatus, devices, computer-readable medium and receivers, the person of ordinary skill will readily comprehend that such methods can be embodied by various combinations of hardware and software in various systems, communication devices, computing devices, control devices, apparatuses, non-transitory computer-readable media, etc. Figure 14 shows an example of a communication system 1400 in accordance with some embodiments. In this example, communication system 1400 includes a telecommunication network 1402 that includes an access network 1404 (e.g., RAN) and a core network 1406, which includes one or more core network nodes 1408. Access network 1404 includes one or more access network nodes, such as network nodes 1410a-b (one or more of which may be generally referred to as network nodes 1410), or any other similar 3GPP access nodes or non-3GPP access points. Moreover, as will be appreciated by those of skill in the art, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, telecommunication network 1402 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in telecommunication network 1402 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other nodes to implement one or more functionalities of any node in telecommunication network 1402, including one or more network nodes 1410 and / or core network nodes 1408.
[0155] Examples of an ORAN network node include an open radio unit (O-RU), an open distributed unit (O-DU), an open central unit (O-CU), including an O-CU control plane (O-CU- CP) or an O-CU user plane (O-CU-UP), a RAN intelligent controller (near-real time or non-real time) hosting software or software plug-ins, such as a near-real time control application (e.g., xApp) or a non-real time control application (e.g., rApp), or any combination thereof (the adj ective “open” designating support of an ORAN specification). The network node may support a specification by, for example, supporting an interface defined by the ORAN specification, such as an Al, Fl, Wl, El, E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN access node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an O-2 interface defined by the O-RAN Alliance or comparable technologies. Network nodes 1410 facilitate direct or indirect connection of UEs, such as by connecting UEs 1412a-d (one or more of which may be generally referred to as UEs 1412) to core network 1406 over one or more wireless connections.
[0156] Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, communication system 1400 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. Communication system 1400 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar system.
[0157] UEs 1412 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with network nodes 1410 and other communication devices. Similarly, network nodes 1410 are arranged, capable, configured, and / or operable to communicate directly or indirectly with UEs 1412 and / or with other network nodes or equipment in telecommunication network 1402 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in telecommunication network 1402.
[0158] In the depicted example, core network 1406 connects network nodes 1410 to one or more hosts, such as host 1416. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. Core network 1406 includes one or more core network nodes (e.g., 1408) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of core network node 1408. Example core network nodes include Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and / or a User Plane Function (UPF).
[0159] Host 1416 may be under the ownership or control of a service provider other than an operator or provider of access network 1404 and / or telecommunication network 1402, and may be operated by the service provider or on behalf of the service provider. Host 1416 may host a variety of applications to provide one or more service. Examples of such applications include live and pre-recorded audio / video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server. As a whole, communication system 1400 of Figure 14 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Long Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (WiFi); and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
[0160] In some examples, telecommunication network 1402 is a cellular network that implements 3GPP standardized features. Accordingly, telecommunication network 1402 may support network slicing to provide different logical networks to different devices that are connected to telecommunication network 1402. For example, telecommunication network 1402 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive loT services to yet further UEs.
[0161] In some examples, UEs 1412 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to access network 1404 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from access network 1404. Additionally, a UE may be configured for operating in single- or multi-RAT or multi-standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e. being configured for multi-radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
[0162] In the example, hub 1414 communicates with access network 1404 to facilitate indirect communication between one or more UEs (e.g., 1412c and / or 1412d) and network nodes (e.g., 1410b). In some examples, hub 1414 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, hub 1414 may be a broadband router enabling access to core network 1406 for the UEs. As another example, hub 1414 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes 1410, or by executable code, script, process, or other instructions in hub 1414. As another example, hub 1414 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, hub 1414 may be a content source. For example, for a UE that is a VR headset, display, loudspeaker or other media delivery device, hub 1414 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which hub 1414 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, hub 1414 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0163] Hub 1414 may have a constant / persistent or intermittent connection to network node 1410b. Hub 1414 may also allow for a different communication scheme and / or schedule between hub 1414 and UEs (e.g., 1412c and / or 1412d), and between hub 1414 and core network 1406. In other examples, hub 1414 is connected to core network 1406 and / or one or more UEs via a wired connection. Moreover, hub 1414 may be configured to connect to an M2M service provider over access network 1404 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with network nodes 1410 while still connected via hub 1414 via a wired or wireless connection. In some embodiments, hub 1414 may be a dedicated hub - that is, a hub whose primary function is to route communications to / from the UEs from / to network node 1410b. In other embodiments, hub 1414 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 1410b, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0164] In some embodiments, one or more core network nodes 1408 may be configured to perform various operations attributed to AEFs and NFs in the above description of various embodiments, including the exemplary methods shown in Figures 12-13.
[0165] Figure 15 shows a network node 1500 in accordance with some embodiments. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (e.g., radio base stations, Node Bs, eNBs, gNBs), and O-RAN nodes or components of an O-RAN node (e.g., O-RU, O-DU, O-CU).
[0166] Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in an O-RAN access node) and / or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
[0167] Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi-cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).
[0168] Network node 1500 includes processing circuitry 1502, memory 1504, communication interface 1506, and power source 1508. Network node 1500 may be composed of multiple physically separate components (e.g., a NodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components. In certain scenarios in which network node 1500 comprises multiple separate components (e.g., BTS and BSC components), one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, network node 1500 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory 1504 for different RATs) and some components may be reused (e.g., a same antenna 1510 may be shared by different RATs). Network node 1500 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 1500, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 1500.
[0169] Processing circuitry 1502 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / or encoded logic operable to provide, either alone or in conjunction with other network node 1500 components, such as memory 1504, to provide network node 1500 functionality.
[0170] In some embodiments, processing circuitry 1502 includes a system on a chip (SOC). In some embodiments, processing circuitry 1502 includes one or more of radio frequency (RF) transceiver circuitry 1512 and baseband processing circuitry 1514. In some embodiments, RF transceiver circuitry 1512 and baseband processing circuitry 1514 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 1512 and baseband processing circuitry 1514 may be on the same chip or set of chips, boards, or units.
[0171] Memory 1504 may comprise any form of volatile or non-volatile computer-readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and / or any other volatile or non-volatile, non-transitory device-readable and / or computer-executable memory devices that store information, data, and / or instructions that may be used by processing circuitry 1502. Memory 1504 may store any suitable instructions, data, or information, including a computer program, software, an application including logic, rules, code, tables, and / or other instructions (collected denoted computer program 1504a, which may be in the form of a computer program product) capable of being executed by processing circuitry 1502 and utilized by network node 1500. Memory 1504 may be used to store any calculations made by processing circuitry 1502 and / or any data received via communication interface 1506. In some embodiments, processing circuitry 1502 and memory 1504 is integrated.
[0172] Communication interface 1506 is used in wired or wireless communication of signaling and / or data between a network node, access network, and / or UE. As illustrated, communication interface 1506 comprises port(s) / terminal(s) 1516 to send and receive data, for example to and from a network over a wired connection. Communication interface 1506 also includes radio frontend circuitry 1518 that may be coupled to, or in certain embodiments a part of, antenna 1510. Radio front-end circuitry 1518 comprises filters 1520 and amplifiers 1522. Radio front-end circuitry 1518 may be connected to an antenna 1510 and processing circuitry 1502. The radio front-end circuitry may be configured to condition signals communicated between antenna 1510 and processing circuitry 1502. Radio front-end circuitry 1518 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. Radio front-end circuitry 1518 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 1520 and / or amplifiers 1522. The radio signal may then be transmitted via antenna 1510. Similarly, when receiving data, antenna 1510 may collect radio signals which are then converted into digital data by radio front-end circuitry 1518. The digital data may be passed to processing circuitry 1502. In other embodiments, the communication interface may comprise different components and / or different combinations of components. In certain alternative embodiments, network node 1500 does not include separate radio front-end circuitry 1518, instead, processing circuitry 1502 includes radio front-end circuitry and is connected to antenna 1510. Similarly, in some embodiments, all or some of RF transceiver circuitry 1512 is part of communication interface 1506. In still other embodiments, communication interface 1506 includes one or more ports or terminals 1516, radio front-end circuitry 1518, and RF transceiver circuitry 1512, as part of a radio unit (not shown), and communication interface 1506 communicates with baseband processing circuitry 1514, which is part of a digital unit (not shown).
[0173] Antenna 1510 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. Antenna 1510 may be coupled to radio front-end circuitry 1518 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, antenna 1510 is separate from network node 1500 and connectable to network node 1500 through an interface or port.
[0174] Antenna 1510, communication interface 1506, and / or processing circuitry 1502 may be configured to perform any receiving operations and / or certain obtaining operations described herein as being performed by the network node. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, antenna 1510, communication interface 1506, and / or processing circuitry 1502 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0175] Power source 1508 provides power to the various components of network node 1500 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). Power source 1508 may further comprise, or be coupled to, power management circuitry to supply the components of network node 1500 with power for performing the functionality described herein. For example, network node 1500 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of power source 1508. As a further example, power source 1508 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
[0176] Embodiments of network node 1500 may include additional components beyond those shown in Figure 15 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, network node 1500 may include user interface equipment to allow input of information into network node 1500 and to allow output of information from network node 1500. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for network node 1500.
[0177] In some embodiments, one or more network nodes 1500 may be configured to perform various operations attributed to AEFs and NFs in the above description of various embodiments, including the exemplary methods shown in Figures 12-13.
[0178] Figure 16 is a block diagram of a virtualization environment 1600 in which some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 1600 hosted by one or more hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g., a core network node or host), then the node may be entirely virtualized. In some embodiments, the virtualization environment 1600 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an O-2 interface.
[0179] Applications 1602 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment 1600 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein. In some embodiments, one or more virtual network functions 1602 may be configured to perform various operations attributed to AEFs and NFs in the above description of various embodiments, including the exemplary methods shown in Figures 12-13.
[0180] Hardware 1604 includes processing circuitry, memory that stores software and / or instructions (collected denoted computer program 1604a, which may be in the form of a computer program product) executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 1606 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 1608a and 1608b (one or more of which may be generally referred to as VMs 1608), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. Virtualization layer 1606 may present a virtual operating platform that appears like networking hardware to the VMs 1608.
[0181] VMs 1608 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 1606. Different embodiments of the instance of a virtual appliance 1602 may be implemented on one or more of VMs 1608, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
[0182] In the context of NFV, each VM 1608 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine. Each VM 1608, and that part of hardware 1604 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs 1608 on top of the hardware 1604 and corresponds to the application 1602.
[0183] Hardware 1604 may be implemented in a standalone network node with generic or specific components. Hardware 1604 may implement some functions via virtualization. Alternatively, hardware 1604 may be part of a larger cluster of hardware (e.g. such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration function 1610, which, among others, oversees lifecycle management of applications 1602. In some embodiments, hardware 1604 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signaling can be provided with the use of a control system 1612 which may alternatively be used for communication between hardware nodes and radio units.
[0184] The foregoing merely illustrates the principles of the disclosure. Various modifications and alterations to the described embodiments will be apparent to those skilled in the art in view of the teachings herein. It will thus be appreciated that those skilled in the art will be able to devise numerous systems, arrangements, and procedures that, although not explicitly shown or described herein, embody the principles of the disclosure and can be thus within the spirit and scope of the disclosure. Various embodiments can be used together with one another, as well as interchangeably therewith, as should be understood by those having ordinary skill in the art.
[0185] The term unit, as used herein, can have conventional meaning in the field of electronics, electrical devices and / or electronic devices and can include, for example, electrical and / or electronic circuitry, devices, modules, processors, memories, logic solid state and / or discrete devices, computer programs or instructions for carrying out respective tasks, procedures, computations, outputs, and / or displaying functions, and so on, as such as those that are described herein.
[0186] Any appropriate steps, methods, features, functions, or benefits disclosed herein may be performed through one or more functional units or modules of one or more virtual apparatuses. Each virtual apparatus may comprise a number of these functional units. These functional units may be implemented via processing circuitry, which may include one or more microprocessor or microcontrollers, as well as other digital hardware, which may include Digital Signal Processor (DSPs), special-purpose digital logic, and the like. The processing circuitry may be configured to execute program code stored in memory, which may include one or several types of memory such as Read Only Memory (ROM), Random Access Memory (RAM), cache memory, flash memory devices, optical storage devices, etc. Program code stored in memory includes program instructions for executing one or more telecommunications and / or data communications protocols as well as instructions for carrying out one or more of the techniques described herein. In some implementations, the processing circuitry may be used to cause the respective functional unit to perform corresponding functions according to one or more embodiments of the present disclosure.
[0187] As described herein, device and / or apparatus can be represented by a semiconductor chip, a chipset, or a (hardware) module comprising such chip or chipset; this, however, does not exclude the possibility that a functionality of a device or apparatus, instead of being hardware implemented, be implemented as a software module such as a computer program or a computer program product comprising executable software code portions for execution or being run on a processor. Furthermore, functionality of a device or apparatus can be implemented by any combination of hardware and software. A device or apparatus can also be regarded as an assembly of multiple devices and / or apparatuses, whether functionally in cooperation with or independently of each other. Moreover, devices and apparatuses can be implemented in a distributed fashion throughout a system, so long as the functionality of the device or apparatus is preserved. Such and similar principles are considered known to a skilled person.
[0188] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms used herein should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0189] In addition, certain terms used in the present disclosure, including the specification and drawings, can be used synonymously in certain instances (e.g., “data” and “information”). It should be understood, that although these terms (and / or other terms that can be synonymous to one another) can be used synonymously herein, there can be instances when such words can be intended to not be used synonymously.
[0190] Embodiments of the techniques and apparatus described herein also include, but are not limited to, the following enumerated examples:
[0191] Al. A method for an application programming interface (API) exposing function (AEF) of a communication network, the method comprising: receiving, from an API invoking entity, an invocation of an API for a resource in the communication network, wherein: the resource is owned by a resource owner, and the API invocation includes an access token; determining whether the access token is a resource owner aware northbound API access (RNAA) token; when it is determined that the access token is a RNAA token: refraining from performing a privacy check for user permission to access the resource; and sending a request for the resource to a network function (NF) of the communication network, wherein the request includes an indication that user permission to access the resource has been obtained.
[0192] A2. The method of embodiment Al, wherein when it is determined that the access token is not an RNAA token: performing the privacy check for resource owner permission to access the resource; and when the privacy check indicates resource owner permission to access the resource, sending a request for the resource to the NF, wherein the request includes the indication that user permission to access the resource has been obtained. A3. The method of embodiment A2, further comprising, when the privacy check indicates no resource owner permission to access the resource, refraining from requesting the resource from the NF.
[0193] A4. The method of any of embodiments Al -A3, wherein performing the privacy check comprises: obtaining, from a unified data management function (UDM) of the communication network, a privacy profile associated with the resource owner; and based on privacy profile, determining whether the API invoking entity is authorized to access the resource.
[0194] A5. The method of any of embodiments A1-A4, wherein the resource is a location of a user equipment (UE), and the resource owner is a user of the UE.
[0195] A6. The method of any of embodiments A1-A5, wherein the AEF is one of the following: a network exposure function (NEF) of the communication network, or a service enabler architecture layer (SEAL) location management server.
[0196] A7. The method of any of embodiments A1-A6, wherein the NF is one of the following: a gateway mobile location center (GMLC), or an access and mobility management function (AMF).
[0197] A8. The method of any of embodiments A1-A7, wherein the API invoking entity is one of the following: an application hosted by a user equipment (UE), an application function (AF) associated with the communication network, or a vertical application layer (VAL) server.
[0198] Bl . A method for a network function (NF) of a communication network, the method comprising: receiving, from an application programming interface (API) exposing function (AEF) of the communication network, a request for a resource in the communication network, wherein the resource is owned by a resource owner; determining whether the request includes an indication that resource owner permission to access the resource has been obtained; when it is determined that the request includes the indication: refraining from performing a privacy check for user permission to access the resource; and obtaining the resource from the communication network; and sending to the obtained resource to the AEF.
[0199] B2. The method of embodiment Bl, wherein when it is determined that the request does not include the indication: performing the privacy check for resource owner permission to access the resource; and when the privacy check indicates resource owner permission to access the resource: obtaining the resource from the communication network, and sending the obtained resource to the AEF.
[0200] B3. The method of embodiment B2, further comprising, when the privacy check indicates no resource owner permission to access the resource, refraining from requesting the resource from the obtaining the resource from the communication network.
[0201] B4. The method of any of embodiments B1-B3, wherein performing the privacy check comprises: obtaining, from a unified data management function (UDM) of the communication network, a privacy profile associated with the resource owner; and based on privacy profile, determining whether one or more of the following is authorized to access the resource: the AEF, and an API invoking entity on whose behalf the AEF is requesting the resource.
[0202] B5. The method of embodiment B4, wherein the API invoking entity is one of the following: an application hosted by a user equipment (UE), an application function (AF) associated with the communication network, or a vertical application layer (VAL) server.
[0203] B6. The method of any of embodiments B1-B5, wherein the resource is a location of a user equipment (UE), and the resource owner is a user of the UE.
[0204] B7. The method of any of embodiments B1-B6, wherein the AEF is one of the following: a network exposure function (NEF) of the communication network, or a service enabler architecture layer (SEAL) location management server. B8. The method of any of embodiments B1-B7, wherein the NF is one of the following: a gateway mobile location center (GMLC), or an access and mobility management function (AMF).
[0205] Cl . Network equipment configured to implement an application programming interface (API) exposing function (AEF) of a communication network, the network equipment comprising: communication interface circuitry configured to communicate with an application programming interface (API) invoking entity of the communication network and with network functions (NFs) of the communication network; and processing circuitry operably coupled to the communication interface circuitry, whereby the processing circuitry and communication interface circuitry are configured to perform operations corresponding to any of the methods of embodiments A1-A8.
[0206] C2. Network equipment configured to implement an application programming interface (API) exposing function (AEF) of a communication network, the network equipment being further configured to perform operations corresponding to any of the methods of embodiments A1-A8.
[0207] C3. A non-transitory, computer-readable medium storing computer-executable instructions that, when executed by processing circuitry of network equipment configured to implement an application programming interface (API) exposing function (AEF) of a communication network, configure the network equipment to perform operations corresponding to any of the methods of embodiments A1-A8.
[0208] C4. A computer program product comprising computer-executable instructions that, when executed by processing circuitry of network equipment configured to implement an application programming interface (API) exposing function (AEF) of a communication network, configure the network equipment to perform operations corresponding to any of the methods of embodiments A1-A8.
[0209] DI . Network equipment configured to implement a network function (NF) of a communication network, the network equipment comprising: communication interface circuitry configured to communicate with network functions (NFs) of the communication network, including an application programming interface (API) exposing function (AEF); and processing circuitry operably coupled to the communication interface circuitry, whereby the processing circuitry and communication interface circuitry are configured to perform operations corresponding to any of the methods of embodiments B1-B8.
[0210] D2. Network equipment configured to implement a network function (NF) of a communication network, the network equipment being further configured to perform operations corresponding to any of the methods of embodiments B1-B8.
[0211] D3. A non-transitory, computer-readable medium storing computer-executable instructions that, when executed by processing circuitry of network equipment configured to implement a network function (NF) of a communication network, configure the network equipment to perform operations corresponding to any of the methods of embodiments B1-B8.
[0212] D4. A computer program product comprising computer-executable instructions that, when executed by processing circuitry of network equipment configured to implement a network function (NF) of a communication network, configure the network equipment to perform operations corresponding to any of the methods of embodiments B1-B8.
Claims
CLAIMS1. A method for an application programming interface, API, exposing function, AEF, of a communication network, the method comprising: receiving (1210), from an API invoking entity, a request for invocation of an API for a resource in the communication network, wherein the resource is owned by a resource owner and the request includes an access token; determining (1220) whether the access token is a resource owner aware northbound API access (RNAA) token; when it is determined that the access token is a RNAA token: verifying (1240) integrity of the RNAA token but refraining from verifying resource owner permission for the API invoking entity to access the resource; and when verification of integrity of the RNAA token is successful, invoking (1250) the API for the resource in accordance with the request.
2. The method of claim 1, wherein it is determined that the access token is an RNAA token based on the access token including an identifier of the resource owner.
3. The method of any of claims 1-2, wherein when it is determined that the access token is not an RNAA token: verifying (1240) resource owner permission for the API invoking entity to access the resource; and when verification of resource owner permission for the API invoking entity to access the resource is successful, invoking (1250) the API for the resource in accordance with the request.
4. The method of claim 3, further comprising, when verification of resource owner permission to access the resource is not successful, refraining (1260) from invoking the API for the resource in accordance with the request..
5. The method of any of claims 3-4, wherein the access token includes an identifier of the API invoking entity and verifying (1240) resource owner permission for the API invoking entity to access the resource comprises:obtaining (1241), from a unified data management function (UDM) of the communication network, a privacy profile associated with the resource owner; and determining (1242) whether the API invoking entity is authorized to access the resource based on the privacy profile and the identifier of the API invoking entity.
6. The method of any of claims 1-5, wherein the resource is a location of a user equipment, UE, and the resource owner is a user of the UE.
7. The method of any of claims 1-6, wherein the AEF is one of the following: a network exposure function, NEF, or a service enabler architecture layer ,SEAL, location management server.
8. The method of any of claims 1-7, wherein the API is associated with a network function, NF, of the communication network and invoking (1250) the API for the resource comprises sending (1251) a request for the resource to the NF, wherein the request includes an indication that resource owner permission for the API invoking entity to access the resource has been obtained.
9. The method of claim 8, wherein the NF is one of the following: a gateway mobile location center, GMLC; or an access and mobility management function, AMF.
10. The method of any of claims 1 -9, wherein the API invoking entity is one of the following: an application hosted by a user equipment, UE; an application function, AF, associated with the communication network; or a vertical application layer, VAL, server.
11. A method for a network function, NF, of a communication network, the method comprising: receiving (1310), from an application programming interface, API, exposing function, AEF, of the communication network, an invocation of an API for a resource in the communication network, wherein the resource is owned by a resource owner and the invocation is on behalf of an API invoking entity; determining (1320) whether the invocation includes an indication that resource owner permission for the API invoking entity to access the resource has been obtained; when it is determined that the invocation includes the indication:refraining (1330) from verifying resource owner permission for the API invoking entity to access the resource; obtaining (1350) the resource from the communication network; and sending (1360) the obtained resource to the AEF.
12. The method of claim 11, wherein when it is determined that the invocation does not include the indication: verifying (1340) resource owner permission for the API invoking entity to access the resource; and when verification of resource owner permission for the API invoking entity to access the resource is successful: obtaining (1350) the resource from the communication network, and sending (1360) the obtained resource to the AEF.
13. The method of claim 12, further comprising, when verification of resource owner permission for the API invoking entity to access the resource is not successful, refraining (1370) from obtaining the resource from the communication network.
14. The method of any of claims 12-13, wherein the invocation of the API includes an identifier of the API invoking entity and verifying (1340) resource owner permission for the API invoking entity to access the resource comprises: obtaining (1341), from a unified data management function, UDM, of the communication network, a privacy profile associated with the resource owner; and determining (1342) whether the API invoking entity is authorized to access the resource based on the privacy profile and the identifier of the API invoking entity.
15. The method of any of claims 11-14, wherein the API invoking entity is one of the following: an application hosted by a user equipment, UE;, an application function, AF, associated with the communication network; or a vertical application layer, VAL,. server.
16. The method of any of claims 11-15, wherein the resource is a location of a user equipment (UE) and the resource owner is a user of the UE.
17. The method of any of claims 11-16, wherein the AEF is one of the following:a network exposure function (NEF) of the communication network, or a service enabler architecture layer (SEAL) location management server.
18. The method of any of claims 11-17, wherein the API is associated with the NF and the invocation of the API comprises a request for the resource.
19. The method of any of claims 11-18, wherein the NF is one of the following: a gateway mobile location center (GMLC), or an access and mobility management function (AMF).
20. Network equipment (1408, 1500, 1602) configured to implement an application programming interface, API, exposing function, AEF (430, 530, 1020, 1120) of a communication network (300, 1140, 1406), the network equipment comprising: communication interface circuitry (1506, 1604) configured to communicate with an API invoking entity (410, 510, 1030, 1110) ; and processing circuitry (1502, 1604) operably coupled to the communication interface circuitry, wherein the processing circuitry and communication interface circuitry are configured to: receive, from the API invoking entity, a request for invocation of an API for a resource in the communication network, wherein the resource is owned by a resource owner and the request includes an access token; determine whether the access token is a resource owner aware northbound API access, RNAA, token; when it is determined that the access token is a RNAA token: verify integrity of the RNAA token but refrain from verifying resource owner permission for the API invoking entity to access the resource; and when verification of integrity of the RNAA token is successful, invoke the API for the resource in accordance with the request.
21. The network equipment of claim 20, wherein the processing circuitry and communication interface circuitry are further configured to perform operations corresponding to any of the methods of claims 2-10.
22. Network equipment (1408, 1500, 1602) configured to implement an application programming interface, API, exposing function, AEF (430, 530, 1020, 1120) of a communication network (300, 1140, 1406), the network equipment being further configured to: receive, from an API invoking entity (410, 510, 1030, 1110), a request for invocation of an API for a resource in the communication network, wherein the resource is owned by a resource owner and the request includes an access token; determine whether the access token is a resource owner aware northbound API access, RNAA, token; when it is determined that the access token is a RNAA token: verify integrity of the RNAA token but refrain from verifying resource owner permission for the API invoking entity to access the resource; and when verification of integrity of the RNAA token is successful, invoke the API for the resource in accordance with the request.
23. The network equipment of claim 22, being further configured to perform operations corresponding to any of the methods of claims 2-10.
24. Non-transitory, computer-readable medium (1504, 1604) storing computer-executable instructions that, when executed by processing circuitry (1502, 1604) of network equipment (1408, 1500, 1602) configured to implement an application programming interface, API, exposing function, AEF (430, 530, 1020, 1120) of a communication network (300, 1140, 1406), configure the network equipment to perform operations corresponding to any of the methods of claims 1-10.
25. Computer program product (1504a, 1604a) comprising computer-executable instructions that, when executed by processing circuitry (1502, 1604) of network equipment (1408, 1500, 1602) configured to implement an application programming interface, API, exposing function, AEF (430, 530, 1020, 1120) of a communication network (300, 1140, 1406), configure the network equipment to perform operations corresponding to any of the methods of claims 1-10.
26. Network equipment (1408, 1500, 1602) configured to implement a network function, NF (1010, 1140) of a communication network (300, 1140, 1406), the network equipment comprising:communication interface circuitry (1506, 1604) configured to communicate with an application programming interface, API, exposing function, AEF (430, 530, 1020, 1120) of the communication network; and processing circuitry (1502, 1604) operably coupled to the communication interface circuitry, wherein the processing circuitry and communication interface circuitry are configured to: receive, from the AEF, an invocation of an API for a resource in the communication network, wherein the resource is owned by a resource owner and the invocation is on behalf of an API invoking entity (410, 510, 1030, 1110); determine whether the invocation includes an indication that resource owner permission for the API invoking entity to access the resource has been obtained; when it is determined that the invocation includes the indication: refrain from verifying resource owner permission for the API invoking entity to access the resource; obtain the resource from the communication network; and send the obtained resource to the AEF.
27. The network equipment of claim 26, wherein the processing circuitry and communication interface circuitry are further configured to perform operations corresponding to any of the methods of claims 12-19.
28. Network equipment (1408, 1500, 1602) configured to implement a network function, NF (1010, 1140) of a communication network (300, 1140, 1406), the network equipment being further configured to: receive, from an application programming interface, API, exposing function, AEF (430, 530, 1020, 1120) of the communication network, an invocation of an API for a resource in the communication network, wherein the resource is owned by a resource owner and the invocation is on behalf of an API invoking entity (410, 510, 1030, 1110); determine whether the invocation includes an indication that resource owner permission for the API invoking entity to access the resource has been obtained; when it is determined that the invocation includes the indication:refrain from verifying resource owner permission for the API invoking entity to access the resource; obtain the resource from the communication network; and send the obtained resource to the AEF.
29. The network equipment of claim 28, being further configured to perform operations corresponding to any of the methods of claims 12-19.
30. Non-transitory, computer-readable medium (1504, 1604) storing computer-executable instructions that, when executed by processing circuitry (1502, 1604) of network equipment (1408, 1500, 1602) configured to implement a network function, NF (1010, 1140) of a communication network (300, 1140, 1406), configure the network equipment to perform operations corresponding to any of the methods of claims 11-19.
31. Computer program product (1504a, 1604a) comprising computer-executable instructions that, when executed by processing circuitry (1502, 1604) of network equipment (1408, 1500, 1602) configured to implement a network function, NF (1010, 1140) of a communication network (300, 1140, 1406), configure the network equipment to perform operations corresponding to any of the methods of claims 11-19.