Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM OF PROVIDING SECURE ACCESS TO A CLOUD SERVICE IN A CLOUD COMPUTING ENVIRONMENT
Document Type and Number:
WIPO Patent Application WO/2019/243429
Kind Code:
A1
Abstract:
The present invention provides a system and method for providing secure access to a cloud service. In one embodiment, the method comprises receiving a request to access a cloud service hosted on a cloud computing system (102) from a tenant device (126A) of a tenant (102). The request comprises a tenant identifier associated with the tenant (106) and a unique identifier associated with a cloud service. The requested cloud service is accessible via an application (124A) hosted on a third party server (122) communicatively coupled to the cloud computing system (102). The method comprises authenticating the tenant (106) to access the requested cloud service via the application (124A) based on the tenant identifier and the unique identifier associated with the cloud service. Furthermore, the method comprises generating a ticket indicating that the tenant (106) is authorized to access the application (124A). The ticket comprises a unique identifier associated with the application (124A) associated with the requested cloud service. Also, the method comprises transmitting the ticket to the third party server (122) communicatively coupled to the cloud computing system (102). Moreover, the method comprises providing access to the cloud service to the tenant (106) via the application (124A) hosted on the third party server (122) in response to successful validation of the ticket by the third party server (122).

Inventors:
BENDER PHILIPP (DE)
OSIGUS HEIKO (DE)
SELLE SVEN (DE)
Application Number:
PCT/EP2019/066220
Publication Date:
December 26, 2019
Filing Date:
June 19, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
H04L29/06; H04L29/08
Foreign References:
CN108111473A2018-06-01
US20170026362A12017-01-26
US20120096271A12012-04-19
US20180165386A12018-06-14
Attorney, Agent or Firm:
ISARPATENT - PATENT- UND RECHTSANWÄLTE BEHNISCH BARTH CHARLES HASSA PECKMANN UND PARTNER MBB (DE)
Download PDF:
Claims:
PATENT CLAIMS:

1. A method of providing secure access to a cloud service to tenants (106) of a cloud computing system (102) via applications (124A-N) hosted on a third party server (122), the cloud computing system (102) being connected to assets (108A-N) of an industrial plant (106) via a network (104), and the cloud computing system (102) being connected to tenant devices (126A-N) via the network (104), the tenant devices (126A-N) accessing the cloud computing system (102) for accessing cloud services provided by the cloud computing system (102), the cloud computing system (102) communicatively connected to the third party server (122) to deliver the cloud services to tenants via proprietary applications hosted on the third party server (122), comprising:

a) receiving, by the cloud computing system (102), a request (202) to access a cloud service hosted on the cloud computing system (102) from a tenant device (126A-N) of the tenant (106), wherein the request (202) comprises a tenant identifier associated with the tenant (106) and a unique identifier associated with the requested cloud service, wherein the requested cloud service is accessible via an application (124A) hosted on the third party server (122) communicatively coupled to the cloud computing system (102);

b) authenticating (204) the tenant (106) to access the requested cloud service via the application (124A) based on the tenant identifier and the unique identifier associated with the cloud service;

c) generating (206) a ticket indicating that the tenant (106) is authorized to access the application (124A) , wherein the ticket comprises a unique identifier associated with the application (124A) associated with the requested cloud servrce d) transmitting (208) the ticket to the third party server (122) communicatively coupled to the cloud computing system ( 102 ) ; and

e) providing (212, 214, 216, 218, 220, 222, 224) access to the cloud service to the tenant (106) via the application (124A) hosted on the third party server (122) in response to successful validation (210) of the ticket by the third party server (122); and

f) wherein authenticating the tenant (106) to access the requested cloud service comprises:

fl) determining whether the tenant (106) is authorized to access the requested cloud service based on the tenant identifier and the unique identifier associated with the cloud service;

f2 ) if the tenant (106) is authorized to access the requested cloud service, determining whether the tenant (106) has a valid role and a valid permission to access the requested cloud service; and

f3) if the tenant has the valid role and the valid permission to access the cloud service, generating an access token authorizing the tenant to access the cloud service; and g) wherein generating the ticket indicating that the tenant (106) is authorized to access the application (124A) , comprises :

gl) verifying the access token which authorizes the tenant (106) to access the cloud service, wherein the access token comprises the role and the permission granted for the tenant (106) , and the tenant identifier associated with the tenant (106) ;

g2) determining whether the access token which authorizes the tenant (106) to access the cloud service is successfully verified; and g3) generating the ticket indicating that the tenant (106) is authorized to access the application (124A) associated with the cloud service if the access token is successfully verified .

2. The method according to claim 1, wherein the ticket is in a format compatible with the third party server (122) .

3. The method according to any of the claims 1 to 2, wherein transmitting the ticket to the third party server (122) communicatively coupled to the cloud computing system (102), comprises :

determining an application (124A) which can deliver the requested cloud service from a plurality of applications (124A-N) using the unique identifier associated with the cloud service;

determining a third party server (122) which hosts the determined application (124A) from a plurality of third party servers (122) connected to the cloud computing system (102); and

transmitting the ticket to the determined third party server (122) communicatively coupled to the cloud computing system ( 102 ) .

4. The method according to any of the claims 1 to 3, wherein providing access to the cloud service to the tenant (106) via the application (124A) hosted on the third party server (122), comprises :

receiving at least one visual representation of data from the application (124A) hosted on the third party server (122) in response to successful validation of the ticket; and rendering the received visual representation of data on a graphical user interface of the tenant device (126A-N) .

5. The method according to claim 4, wherein receiving the at least one visual representation of data from the application (124A) hosted on the third party server (122), comprises:

receiving a request to retrieve time-series data associated with at least one asset (108A-N) stored in a time- series database (118) from the application (124A) associated with the requested cloud service;

retrieving the time-series data associated with the at least one asset (108A-N) from the time-series database (118) based on the received request;

providing the retrieved time-service data associated with the at least one asset (108A-N) to the third party server (122) ;

receiving the visual representation of the processed time- series data from the application (124A) associated with the requested cloud service; and

rendering the visual representation of the processed time- series data on the graphical user interface of the tenant device (126A) .

6. The method according to claim 5, wherein retrieving the time-series data associated with the at least one asset (108A- N) based on the received request comprises:

accessing an appropriate application programming interface (API) (106) configured for retrieving time-series data associated with the at least one asset (108A-N) based on the received request; and

retrieving the time-series data associated the at least one asset (108A-N) from the time-series database in response to accessing the respective APIs (106) .

7. The method according to claim 5, wherein providing the retrieved time-series data associated with the at least one asset (108A-N) to the third party server (122) comprises:

analyzing the retrieved time-series data associated with the at least one asset (108A-N) using at least one analytics algorithm; and

sending result of analysis along with the analyzed time series data to the third party server (122) .

8. The method according to any of the claims 1 to 7, wherein providing the access to the cloud service via the application (124A) hosted on the third party server (122), comprises:

providing access to the application (124A) without logging in by the tenant (106) to access the application (124A) by the third party server (122) .

9. The method according to any of the claims 1 to 8, wherein the application (124A) is a visual analytics application and the cloud service is a data analytics and visualization service .

10. A system (100) including a cloud computing system (102), the cloud computing system (102) being connected to assets (108A-N) of an industrial plant (106) via a network (104), and the cloud computing system (102) being connected to tenant devices (126A-N) via the network (104), the tenant devices (126A-N) accessing the cloud computing system (102) for accessing cloud services provided by the cloud computing system (102), the cloud computing system (102) communicatively connected to a third party server (122) to deliver a cloud service to tenants via proprietary applications hosted on the third party server (122), the cloud computing system (102) comprrsrng : i) one or more processor (s) (702); and

ii) at least one accessible memory (704) coupled to the one or more processor (s) (702), wherein the at least one accessible memory (704) comprises a cloud computing platform (114) stored in the form of machine-readable instructions and executable by the one or more processor (s) (702), wherein the cloud computing platform (114) is capable of performing method steps according to claims 1 to 9.

11. The system (100) according to claim 10, wherein the at least one third party server (122) is configured to re- authenticate a tenant (106) by validating a ticket indicating that the tenant (106) is authorized to access one of the applications (124A-N) .

12. A computer program product having machine-readable instructions stored therein, that when executed by at least one processing unit (702), cause the processing unit (702) to perform method steps according to any of the claims 1 to 9.

Description:
METHOD AND SYSTEM OF PROVIDING SECURE ACCESS TO A CLOUD SERVICE IN A CLOUD COMPUTING ENVIRONMENT

The present invention relates to the field of cloud computing system and more particularly relates to providing secure access to a cloud service hosted on the cloud computing system.

With the advent of cloud computing technology, a large number of devices (also commonly known as 'assets' ) are connected to a cloud computing system via the Internet. The devices may be located in a remote facility connected to the cloud computing system. For example, the devices can be equipments, sensors, actuators, robots, machinery in an industrial set-up (s) . The devices can be medical devices and equipments in a healthcare unit. The devices can be home appliances or office appliances in a residential/commercial establishment.

The cloud computing system may enable remote configuring, monitoring, controlling, and maintaining connected devices. Also, the cloud computing system may facilitate storing large amounts of data periodically gathered from the devices, analyzing the large amounts of data, and providing insights (e.g., Key Performance Indicators, Outliers) and alerts to operators, field engineers or owners of the devices via graphical user interface (e.g., web browser) . The insights and alerts may enable controlling and maintaining the devices, leading to efficient and fail-safe operation of the devices. The cloud computing system may also enable modifying parameters associated with the devices and issues control commands via the graphical user interface based on the insights and alerts. The cloud computing system may comprise a plurality of servers or processors (also known as 'cloud infrastructure' ) , which are geographical distributed, connected with each other via a network. A dedicated platform (hereinafter referred to as 'cloud platform' ) is installed on the servers/processors for providing above functionality as a service (hereinafter referred to as 'cloud service' ) . The cloud platform may comprise a plurality of software programs executed on one or more servers or processors of the cloud computing system to enable delivery of the requested service to the devices and its users (e.g., tenants) .

In the prior art there are known solutions for authenticating users accessing cloud services on a cloud computing platform. Such techniques are for example described in the following documents Dl, D2 and D3 which relate to the technological background of the present invention:

US 2012/096271 A1 (RAMARATHINAM ARAVIND [US] ET AL) 19 April 2012 (2012-04-19)

US 2018/165386 A1 (SOUNDIRAMOURTHY SEGAR [US] ET AL) 14 June 2018 (2018-06-14)

US 9 992 186 B1 (DROZD MICHAL J [PL] ET AL) 5 June 2018 (2018-06-05)

It should be noted that in D1-D3 only the user is authenticated at the cloud environment because the cloud services are provided directly to the user from the cloud environment, e.g. through a gateway (also called "broker" in Dl) . Regarding the user (device) authentication, a separate server (D3) or separate platform (Dl) is used. In D1-D3 a third party server that needs to be authenticated separately, which is problematic, as described in more detail below, is not present. However, in the cloud environment, one or more applications may be required to deliver a cloud service to its tenants. In some instances, these applications may be proprietary and may be hosted on third party servers . The third party servers are servers which are not a part of cloud computing system and are managed and maintained by a third party. These third party servers are connected to the cloud computing system for delivering a cloud service to tenants using applications deployed therein. When an authorized tenant user requests a cloud service (e.g., data analytics and visualization service) , the tenant user is redirected to a login page of the third party server so that the tenant is authenticated before providing access to the applications hosted on the third party server. The tenant user needs to enter log-in credentials in the log-in page. Upon which, the tenant user is authenticated by the third party server based on the log-in credentials. This authentication process is required to be carried out inspite of the fact that the tenant user is separately authenticated by the cloud computing system, thereby causing inconvenience to the tenant user in accessing the cloud service .

In light of the above, there exists a need to provide a cloud computing system which can provide easy and secure access to cloud service via applications hosted on a third party server.

Therefore, it is an object of the present invention to provide a method and a system including a cloud computing system for providing secure and easy access to cloud services via applications hosted on a third party server. This object is solved by a method according to claim 1 and by a system according to claim 10. Further advantageous embodiments and improvements of the present invention are listed in the dependent claims. Hereinafter, before coming to a detailed description of the embodiments of the invention with reference to the attached drawings, some aspects of the invention are listed which contribute to the general understanding of the invention as claimed.

One aspect of the present invention is a method of providing secure access to a cloud service to tenants of a cloud computing system via an application hosted on a third party server. The method comprises receiving, by a cloud computing system, a request to access a cloud service from a tenant device of a tenant. The request comprises a tenant identifier associated with the tenant and a unique identifier associated with the requested cloud service. The requested cloud service is accessible via an application hosted on a third party server communicatively coupled to the cloud computing system. For example, the application may be a visual analytics application and the cloud service may be a data analytics and visualization service. Furthermore, the method comprises authenticating the tenant to access the requested cloud service via the application based on the tenant identifier and the identifier associated with the cloud service. Also, the method comprises generating a ticket indicating that the tenant is authorized to access the application. The ticket comprises a unique identifier associated with the application associated with the requested cloud service. The ticket is in a format compatible with the third party server. The method comprises transmitting the ticket to the third party server communicatively coupled to the cloud computing system. Moreover, the method comprises providing access to the cloud service to the tenant via the application hosted on the third party server in response to successful validation of the ticket by the third party server. The access to the cloud service is provided without a need to log-in by the tenant to access the application by the third party server.

In a further aspect, the method may comprise determining whether the tenant is authorized to access the requested cloud service based on the tenant identifier and the identifier associated with the cloud service. If the tenant is authorized to access the requested cloud service, the method may comprise determining whether the tenant has a valid role and a valid permission to access the requested cloud service. If the tenant has the valid role and the valid permission to access the cloud service, the method may comprise generating an access token authorizing the tenant to access the cloud service .

In another aspect, the method may comprise verifying the access token which authorizes the tenant to access the cloud service, wherein the access token comprises the role and the permission granted for the tenant, and the tenant identifier associated with the tenant. The method may comprise determining whether the access token which authorizes the tenant to access the cloud service is successfully verified. The method may comprise generating the ticket indicating that the tenant is authorized to access the application associated with the cloud service if the access token is successfully verified .

In yet another aspect, the method may comprise determining an application which can deliver the requested cloud service from a plurality of applications using the unique identifier associated with the cloud service. The method may comprise determining a third party server which hosts the determined application from a plurality of third party servers connected to the cloud computing system. The method may comprise transmitting the ticket to the determined third party server communicatively coupled to the cloud computing system.

In yet a further aspect, the method may comprise receiving at least one visual representation of data from the application hosted on the third party server in response to successful validation of the ticket. The method may comprise rendering the received visual representation of data on a graphical user interface of the tenant device.

Therein, the method may comprise, according to yet another aspect, receiving a request to retrieve time-series data associated with at least one asset stored in a time-series database from the application associated with the requested cloud service. The method may comprise retrieving the time- series data associated with the at least one asset from the time-series database based on the received request. Furthermore, the method may comprise providing the retrieved time-service data associated with the at least one asset to the third party server. Moreover, the method may comprise receiving the visual representation of the processed time- series data from the application associated with the requested cloud service. The method may comprise rendering the visual representation of the processed time-series data on the graphical user interface of the tenant device.

In retrieving the time-series data associated with the at least one asset based on the received request, the method may also comprise, according to still a further aspect, accessing an appropriate application programming interface (API) configured for retrieving time-series data associated with the at least one asset based on the received request. The method may comprise retrieving the time-series data associated the at least one asset from the time-series database in response to accessing the respective application programming interface.

In providing the retrieved time-series data associated with the at least one asset to the third party server, the method may also comprise, according to another aspect, analyzing the retrieved time-series data associated with the at least one asset using at least one analytics algorithm. Then, the method may comprise sending result of analysis along with the analyzed time series data to the third party server.

A still further aspect of the present invention concerns a cloud computing system comprising one or more processing units, and at least one accessible memory coupled to the one or more processing units. The at least one accessible memory comprises a cloud computing platform stored in the form of machine-readable instructions and executable by the one or more processing units. The cloud computing platform is capable of performing method steps described above.

Furthermore, an aspect of the present invention relates to a system comprising a cloud computing system for providing secure access to at least one cloud service as described above, at least one third party server comprising one or more applications and communicatively coupled to the cloud computing system, and one or more tenant devices communicatively to the cloud computing system. The one or more tenant devices are configured to accessing the cloud service via the one or more applications hosted on the third party server. The at least one third party server is configured to re-authenticate a tenant by validating a ticket indicating that the tenant is authorized to access one of the applications .

Another aspect of the present invention concerns a computer program product having machine-readable instructions stored therein, that when executed by at least one processing unit, cause the processing unit to perform method described above.

The above-mentioned and other features of the present invention will now be addressed with reference to the accompanying drawings of the present invention. The illustrated embodiments are intended to illustrate, but not limit the invention.

The present invention is further described hereinafter with reference to illustrated embodiments shown in the accompanying drawings, in which:

FIG 1 is a schematic representation of a cloud computing environment, according to an embodiment of the present invention;

FIG 2 is a flow diagram illustrating a method of providing secure access to cloud service to tenants of the cloud computing system via the applications hosted on the third party server, according to an embodiment of the present invention;

FIG 3 is a schematic representation of components of the cloud computing system configured to provide time-series data of assets to the third party server, according to an embodiment of present invention; FIG 4 illustrates a block diagram of the access control module for managing access to a cloud service by authorized tenant user, according to an embodiment of the present invention;

FIG 5 is a flow diagram illustrating an exemplary method of providing access to a cloud service to authorized tenant users, according to an embodiment of the present invention;

FIG 6 is a schematic representation of a graphical user interface displaying a visual representation of time-series data of an asset; and

FIG 7 illustrates a block diagram of the cloud computing system, according to an embodiment of the present invention .

Various embodiments are described with reference to the drawings, wherein like reference numerals are used to refer the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for the purpose of explanation, numerous specific details are set forth in order to provide thorough understanding of one or more embodiments. It may be evident that such embodiments may be practiced without these specific details .

FIG 1 is a schematic representation of a cloud computing environment 100, according to an embodiment of the present invention. Particularly, FIG 1 depicts the cloud computing system 102 capable of providing cloud services for managing an industrial plant 106 comprising assets 108A-N. The cloud computing system 102 is connected to assets 108A-N in the industrial plant 106 via a network 104 (e.g., Internet) . The assets 108A-N may include servers, robots, switches, automation devices, motors, valves, pumps, actuators, sensors and other industrial equipment. Although, FIG 1 illustrates the cloud computing system 102 connected to a single industrial plant 106, one skilled in the art can envision that the cloud computing system 102 can be connected to several industrial plants 106 located at different locations via the network 104.

The cloud computing system 102 is also connected to tenant devices 126A-N via the network 104. The tenant devices 126A-N can access the cloud computing system 102 for accessing cloud services (e.g., visualization service). The tenant devices 126A-N can be a laptop computer, desktop computer, tablet computer, smart-phone and the like. The tenant devices 126A-N can access cloud services (such as providing data analytics and visual analytics of assets 108A-N) .

The cloud computing system 102 is communicatively connected to third party servers 122 to deliver the cloud service to tenants via proprietary applications hosted on the third party servers 122. The applications 124A-N can be visual analytics application which provides visual representation of time- series data of the assets 108A-N stored in the cloud computing system 102 to the tenants 106.

The cloud computing system 102 may be a public cloud, private cloud or a hybrid cloud configured to provide dedicated cloud services to its tenants. The cloud computing system 102 comprises a cloud interface 110, hardware resources and OS 112, and a cloud computing platform 114. The cloud interface 110 enables communication between the cloud computing system 102 and the industrial plants 106. Also, the cloud interface 110 enables communication between the cloud computing system 102 and the tenant devices 126A-N. The cloud interface 110 enables communication between the cloud computing system 102 and the third party servers 122 or the applications 124A-N residing therein.

The hardware resources and OS 112 may include one or more servers on which an operating system (OS) is installed. The servers may comprise one or more processing units, one or more storage devices (e.g., memory units) for storing data (e.g., time-series database 118 with time-series data of assets 108A- N) and machine-readable instructions (e.g., application programming interfaces 116) , and other peripherals required for providing cloud computing functionality.

The cloud computing platform 114 is a platform which enables functionalities such as data storage, data analysis, data visualization, data communication, etc. using the hardware resources and OS 112, and delivers the aforementioned cloud services using the application programming interfaces 116 deployed therein and the applications 124A-N hosted on the third party servers 122. The cloud computing platform 114 may comprise a combination of dedicated hardware and software built on top of the hardware and OS 112.

According to the present invention, the cloud computing platform 114 comprises a data manager 119 which provides easy access to time-series data of the assets 108A-N stored in the time-series database 118 via the application programming interfaces 116. The data access manager 119 is stored in the form of machine-readable instructions stored on the cloud computing system 102, executable by the processors. The cloud computing system 102 comprises an access control module 120 configured to authenticate a tenant user to access a requested cloud service based on the role and the permissions assigned to the tenant user when a request to access the cloud service is received from the tenant user. The access control module 120 is configured to generate an access token for providing access to the requested cloud service. The access token may comprise the role and the associated permissions granted to the tenant user, the tenant identifier of the tenant user, and the identifier of the cloud service. The cloud computing system 102 comprises a ticket management system 121 configured to generate a ticket indicating the tenant user is authorized to access the requested cloud service. The cloud service can be accessed via one of the applications 124A-N hosted on the third party server 122. The ticket is in a format compatible with the third party server 122. Based on the ticket, the third party server 122 validates the ticket issued for the tenant user and performs the requested operation via the application hosted therein. Thus, a need to log-in to the third party server 122 to access the cloud service via the application hosted on the third party server 122 is eliminated. For example, the third party server 122 access the time-series data and analytics services for analyzing the time-series data from the cloud computing system 102 and provides visual analytics of the time-series data to the tenant user. The steps performed to provide secure and easy access to a cloud service via an application hosted on a third party server 122 is explained in greater detail in the description that follows.

FIG 2 is a flow diagram 200 illustrating a method of providing secure access to cloud service to tenants 106 of the cloud computing system 102 via the applications 124A-N hosted on the third party server 122, according to an embodiment of the present invention. At step 202, a tenant device 126A sends a request to access a cloud service hosted on the cloud computing system 102. The request comprises a tenant identifier associated with the tenant 106, and a unique identifier associated with the requested cloud service. For example, the cloud service may be a data analytics and visualization service. The requested cloud service is accessible via a visual analytics application hosted on the third party server 122 communicatively coupled to the cloud computing system 102.

At step 204, the cloud computing system 102 authenticates the tenant 106 to access the requested cloud service via the visual analytics application based on the tenant identifier and the identifier associated with the cloud service. In some embodiments, the access control module 120 determines whether the tenant 106 is authorized to access the requested cloud service based on the tenant identifier and the identifier associated with the cloud service. If the tenant 106 is authorized to access the requested cloud service, the access control module 120 determines whether the tenant 106 has a valid role and a valid permission to access the requested cloud service. If the tenant 106 has the valid role and the valid permission to access the cloud service, the access control module 120 generates an access token authorizing the tenant 106 to access the cloud service.

At step 206, the cloud computing system 102 generates a ticket indicating that the tenant 106 is authorized to access the visual analytics application. In some embodiments, the ticket management module 121 verifies the access token which authorizes the tenant 106 to access the cloud service. The access token comprises the role and the permission granted for the tenant 106, and the tenant identifier associated with the tenant 106. Then, the ticket management module 121 determines whether the access token which authorizes the tenant 106 to access the cloud service is successfully verified. If the access token is successfully verified, the ticket management module 121 generates the ticket indicating that the tenant 106 is authorized to access the visual analytics application associated with the cloud service. The ticket is generated in a format compatible with the third party server 122 such that the ticket enables automatic authentication of the tenant 106 at the third party server 122. The ticket comprises a unique identifier associated with the visual analytics application.

At step 208, the cloud computing system 102 transmits the ticket to the third party server 122 communicatively coupled to the cloud computing system 102. In some embodiments, the ticket management module 121 determines a visual analytics application 124A which can deliver the requested cloud service from a plurality of applications 124A-N using the unique identifier associated with the cloud service. Then, the ticket management module 121 determines a third party server 122 which hosts the determined visual analytics application 124A from a plurality of third party servers connected to the cloud computing system 102. Accordingly, the ticket management module 121 transmits the ticket to the determined third party server 122.

At step 210, the third party server 122 verifies the ticket indicating that the tenant 106 is authorized to access the visual analytics application. If the ticket is successfully verified, at step 212, the third party server 122 sends a request for time-series data of the asset 108A (e.g., motor) associated with the tenant 106 to the cloud computing system 102. At step 214, the cloud computing system 102 retrieves the time-series data of the asset 108A from the time-series database 118 based on the received request. In some embodiments, the data manager 119 accesses an appropriate application programming interface (API) 116 configured for retrieving time-series data of the asset 108A based on the received request. The data manager 119 retrieves the time- series data of the asset 108A from the time-series database 118 via the respective application programming interface 116.

At step 216, the cloud computing system 102 analyzes the retrieved time-series data of the asset 108A using one or more analytics algorithms. For example, the one or more analytics algorithms may be big data analytics algorithms. At step 218, the cloud computing system 102 sends the result of analysis along with the analyzed time series data to the third party server 122.

At step 220, the third party server 122 generates a visual representation of the time-series data of the asset 108A based on the result of analysis and the analyzed time-series data. For example, the third party server 122 generates the visual representation of the analyzed time-series data of the asset 108A based on visual analytics algorithms. At step 222, the third party server 122 sends the visual representation of the analyzed time-series data of the asset 108A to the cloud computing system 102. At step 224, the cloud computing system 102 renders the visual representation of the analyzed time- series data of the asset 108 on a graphical user interface of the tenant device 126A. The visualization of the time-series data provides deeper insights into performance/condition of the asset 108A. The deeper insights into performance/condition of the asset 108A may enable operator or field engineer to take further actions for efficient operation of the asset 108A and the industrial plant 106. In this manner, the cloud computing system 102 provides secure access to a third party application without a need to manually re-authenticating a tenant at the third party server 122 (via a log-in page) to access the third party application provided by the third party server 122.

For example, the tenant user 210A may want to check performance of a motor (e.g., the asset 108A) in the industrial plant 106. In such a case, the tenant user requests for performance data of the motor collected for a specific time period to the cloud computing system 102. The cloud computing system 102 sends a request to perform the requested operation to the visual analytics application 124A hosted on the third party server 122 along with a ticket authorizing the tenant user access the visual analytics application 124A. The visual analytics application 124A validates the ticket and requests raw/aggregated performance data of motor and its analysis from the cloud computing system 102 if the ticket is successfully validated. Advantageously, the cloud computing system 102 does not redirect the tenant user to a log-in page of the third party server wherein the tenant user is re- authenticated based on log-in credentials entered by the tenant user into the log-in page displayed on the tenant device 126A. Instead, the third party server 122 processes the request from the tenant user based on the ticket issued by the cloud computing system 102, thereby eliminating a need to enter log-in credentials by the tenant user for authentication at the third party server 122. Accordingly, the visual analytics application 124A generates visual representation of the performance data of the motor based on the analysis received from the cloud computing system 102. Then, the visual analytics application 124A sends a response comprising the performance data of the motor to the cloud computing system 102. The cloud computing system 102 renders visual representation of the performance data of the motor on a web page displayed on the tenant device 126A. One skilled in the art can understand that several such operations can be requested and performed by the cloud computing system 102 via the applications 124A-N hosted on the third party server 122 during the active session based on the roles and associated permissions assigned to the tenant user.

FIG 3 is a schematic representation 300 of components of the cloud computing system 102 configured to provide time-series data of assets 108A-N to the third party server 122, according to an embodiment of present invention. As shown in FIG 3, the cloud computing system 102 enables users to monitor performance/condition of assets 108A-N. The cloud computing system 102 employs the data access manager 119, the APIs 116, and the time-series database 118. The API 116 employs functions 302A-N which enables the data manager 119 to access time-series data of the assets 108A-N from the time-series database 118. The time-series database 118 comprises data models 304A-N which stores raw and/or aggregated data of the assets 108A-N. It can be noted that each of the data models 304A-N stores time-series data of particular asset or industrial plant. Also, each of the functions 302A-N is configured to access one or more data models 304A-N in the time-series database 118.

In an exemplary operation, the data manager 119 receives a request for retrieving time-series data of an asset 108A from the time-series database 118. Accordingly, the data manager 119 generates an API call based on the received request. The API call may indicate an asset identifier, one or more aspect information, time period for which time-series data to be retrieved, etc. The data manager 119 forwards the API call to the appropriate API 116 responsible for retrieving time-series data from the time-series database 118.

The API 118 invokes one of the functions 302A-N to retrieve the time-series data of the asset 108A based on the received API call. For example, the API 118 determines an asset identifier associated with the asset 108A whose time-series data is requested from the API call. Then, the API 118 determines a data model which stores the requested time-series data of the asset 108A from the plurality of data models 304A- N stored in the time-series database 118. Finally, the API 116 determines one of the functions 302A-N which is configured to access the determined data model. For the purpose of illustration, consider that the data model 304A stores the requested time-series data of the asset 108A. It can be seen from FIG 3 that the function 302A and the function 302B can access the data model 304A. In such situations, the API 116 may invoke any of the available functions 302A and 302B. Let us consider that, the API 116 invokes the function 302A to access the data model 304A. Accordingly, the function 302A is executed based on the API call. As a result, the function 302A accesses the data model 304A and retrieves the requested time- series data of the asset 108A. The retrieved time-series data may be of particular data type and for time period specified in the API call. The API 116 returns the retrieved time-series data of the asset 108A to the data manager 119. The data manager 119 may analyze the retrieved time-series data and provide the result of analysis and/or the analyzed time-series data of the asset 108A to the third party server 122 in a compatible format.

FIG 4 illustrates a block diagram of the access control module 120 for managing access to a cloud service by authorized tenant user, according to an embodiment of the present invention. The access control module 120 comprises a gateway module 402, an identity module 404, an authorization module 406, and an authentication module 408.

The gateway module 402 is configured to determine whether a valid session is established with a tenant device (e.g., the device 126A) of a tenant user to access the cloud service. The valid session indicates that the tenant user is authenticated. The gateway module 402 is configured to determine whether the tenant associated with the tenant user has valid subscription to access the cloud service. The gateway module 402 is configured to retrieve an access token associated with the session if the session is valid and subscription is valid.

The identity module 404 is configured to determine roles and permissions assigned to the tenant user. The identity module 404 is configured to generate a response including the roles and permissions assigned to the tenant user.

The authorization module 406 is configured to determine whether the roles and permissions assigned to the tenant user matches with at least one role and associated permission defined for the cloud service. In other words, the authorization module 406 determines whether the tenant user is authorized to access the requested cloud service based on the roles and permission assigned to the tenant user. The authorization module 406 is configured to generate an access token including the roles and permissions of the tenant user and the identifier associated with the cloud service if the tenant user is authorized to access the cloud service.

The authentication module 408 is configured to perform initial authentication of a tenant user based on valid credentials of the tenant user for accessing cloud services. For example, the valid credentials may be username and password combination or two factor authentication.

FIG 5 is a flow diagram 500 illustrating an exemplary method of providing access to a cloud service to authorized tenant users, according to an embodiment of the present invention. Consider that a tenant user is trying to access a cloud service (e.g., data analytics and visualization service) via an application 124A (e.g., visual analytics application) hosted on a third party server 122 from a tenant device 126A (e.g., using a web browser) . For example, the data analytics and visualization service may enable monitoring performance of assets 108A-N in an industrial plant 106 (e.g., condition monitoring of a motor) . At step 502, the tenant device 126A sends a request to provide access to the cloud service to the cloud computing system 102. The request comprises a tenant identifier of the tenant user 210A and an identifier of the cloud service. At step 504, the gateway module 404 determines that there is no valid session with the tenant device 126A and redirects the request back to the tenant device 126A. At step 506, the tenant device 126A redirects the request to the authorization module 406. At step 508, the authorization module 406 determines that there is no valid session with the tenant device 126A and redirects the request back to the tenant device 126A.

At step 510, the tenant device 126A redirects the request to the identity module 404. At step 512, the identity module 404 determines that there is no valid session with the tenant device 126A and redirects the request to the tenant device 126A. At step 514, the tenant device 126A redirects the request to the authentication module 408. At step 516, the authentication module 408 authenticates the tenant user based on valid login credentials and sends an authentication response to the tenant device 126A.

At step 518, the tenant device 126A forwards the authentication response from the authentication module 408 to the identity module 404. At step 520, the identity module 404 determines a role and permissions assigned to the tenant user to access the cloud service and sends a response with the assigned role and associated permissions to the tenant device 126A.

At step 522, the tenant device 126A sends the response with a role and permissions assigned to the tenant user to the authorization module 406. At step 524, the authorization module 406 redirects the tenant device 126A to an application callback endpoint. At step 526, the tenant device 126A sends a request to the application callback endpoint to the gateway module 402. At step 528, the gateway module 402 sends a request to issue an access token for providing access to the cloud service to the tenant device 126A. At step 530, the authorization module 406 generates an access token of the session with the tenant device 126A. The access token defines role and permission granted to the tenant user to access the cloud service via the application 124A hosted on third party server 122. The role and permissions are granted to the tenant user based on the role and permissions assigned to the tenant user by the tenant 106, and the role and permissions defined for the cloud service. At step 532, the authorization module 406 sends the access token to the gateway module 402. Also, the authorization module 406 stores the access token so that the access token can be reused for authorizing the tenant user to access the cloud service during the current session. Advantageously, this would save time and efforts to re-authenticate and re authorize the tenant user for providing access to the cloud service during the ongoing session.

At step 534, the gateway module 402 sends the access token associated with the tenant user along with the request to access the cloud service via the application 126A residing on the third party server 122 to the ticket management module 121. At step 536, the ticket management module 121 generates a ticket indicating the tenant user is authorized to access the application 124A residing on the cloud service based on the access token received from the gateway module 402.

FIG 6 is a schematic representation of a graphical user interface 600 displaying a visual representation of time- series data of an asset. The graphical user interface view 600 displays visual representation of time-series data for an aspect 1 and an aspect 2 associated with an asset (e.g., motor) . The visual representation facilitates the tenant user to monitor performance of the asset and take necessary actions for efficient and fail-safe operation of the industrial plant 106.

FIG 7 illustrates a block diagram of the cloud computing system 102 such as those shown in FIG 1, according to an embodiment of the present invention. The cloud computing system 102 comprises processors 702, at least one accessible memory unit 704, a storage unit 706, a cloud interface 110, and an interface 708. The memory unit 704 comprises a data manager 119, an access control module 120, and a ticket management module 121 stored in the form of machine-readable instructions and executable by the processor (s) 702. Alternatively, the data manager 119, the access control module

120, and the ticket management module 121 may take a form of hardware such as a processor with embedded software.

The processor (s) 702 may be one or more processing units (e.g., servers) capable of processing requests from the tenant 106. The processor (s) 702 is also capable of executing machine-readable instructions stored on a computer-readable storage medium such as the memory unit 704 for performing various functions such as processing time-series data, analyzing time-series data, providing visualization of the analyzed time-series data, managing the tenants 106 and the assets 108A-N (authentication, communication, upgradation, etc.) and so on. The memory unit 704 comprises the cloud computing platform 114 stored in the form of machine-readable instructions and executable by the processors 704. The cloud computing platform 114 comprises the data manager 119, the access control module 120, and the ticket management module

121. According to the present invention, when executed by the processor (s) 702, the cloud computing platform 114 enables the processor (s) 702 to provide secure access to a cloud service

(e.g., data analytics and visualization service) via an application 124A hosted on the third party server 122 based on a request from a tenant device 126A. Advantageously, the processor (s) 702 provides secure access to the tenant 106 without providing login credentials (e.g., user name and password) in a login page of the third party server 122. The processor (s) 702 generates a ticket indicating that the tenant 106 is authorized to access the cloud service associated with the application 124A residing in the third party server 122. Accordingly, the third party server 122 validates the ticket, resulting in automatic authentication of the tenant, thereby eliminating a need to sign-in in the login page of the third party server 122.

The storage unit 706 can be volatile or non-volatile storage. In the preferred embodiment, the storage unit 706 is configured to store a time-series database 118. The storage unit 706 may also store cloud applications, software and firmware, asset models, and IoT data models, digital twins of the industrial plant 106 and the assets 108A-N, visualization templates, big data analytics algorithms, application programming interfaces and so on.

The cloud interface 110 is configured to establish and maintain communication links with the assets 108A-N including IoT edge devices. Also, the cloud interface 110 is configured to maintain a communication channel between the cloud computing platform 114 and the tenant devices 126A-N. The cloud interface 110 is also configured to manage communication with the third party server 122. The interface 708 acts as interconnect means between different components of the cloud computing system 102.

The present invention can take a form of a computer program product comprising program modules accessible from computer- usable or computer-readable medium storing program code for use by or in connection with one or more computers, processors, or instruction execution system. For the purpose of this description, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation mediums in and of themselves as signal carriers are not included in the definition of physical computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, random access memory (RAM) , a read only memory (ROM) , a rigid magnetic disk and optical disk such as compact disk read-only memory (CD-ROM) , compact disk read/write, and DVD. Both processors and program code for implementing each aspect of the technology can be centralized or distributed (or a combination thereof) as known to those skilled in the art .

While the present invention has been described in detail with reference to certain embodiments, it should be appreciated that the present invention is not limited to those embodiments. In view of the present disclosure, many modifications and variations would be present themselves, to those skilled in the art without departing from the scope of the various embodiments of the present invention, as described herein. The scope of the present invention is, therefore, indicated by the following claims rather than by the foregoing description. All changes, modifications, and variations coming within the meaning and range of equivalency of the claims are to be considered within their scope. All advantageous embodiments claimed in method claims may also be apply to system/apparatus claims .

Furthermore, the present application comprises as further embodiments the following aspects ("AS") . AS1. A method of providing secure access to a cloud service to tenants (106) of a cloud computing system (102) via applications (124A-N) hosted on a third party server (122), comprising :

receiving, by the cloud computing system (102), a request to access a cloud service hosted on the cloud computing system (102) from a tenant device (126A-N) of the tenant (106), wherein the request comprises a tenant identifier associated with the tenant (106) and a unique identifier associated with the requested cloud service, wherein the requested cloud service is accessible via an application (124A) hosted on the third party server (122) communicatively coupled to the cloud computing system (102);

authenticating the tenant (106) to access the requested cloud service via the application (124A) based on the tenant identifier and the unique identifier associated with the cloud service;

generating a ticket indicating that the tenant (106) is authorized to access the application (124A) , wherein the ticket comprises a unique identifier associated with the application (124A) associated with the requested cloud service;

transmitting the ticket to the third party server (122) communicatively coupled to the cloud computing system (102); and

providing access to the cloud service to the tenant (106) via the application (124A) hosted on the third party server (122) in response to successful validation of the ticket by the third party server (122) . AS2. The method according to aspect AS1, wherein authenticating the tenant (106) to access the requested cloud service comprises:

determining whether the tenant (106) is authorized to access the requested cloud service based on the tenant identifier and the unique identifier associated with the cloud service;

if the tenant (106) is authorized to access the requested cloud service, determining whether the tenant (106) has a valid role and a valid permission to access the requested cloud service; and

if the tenant has the valid role and the valid permission to access the cloud service, generating an access token authorizing the tenant to access the cloud service.

AS3. The method according to aspects AS1 or AS2, wherein generating the ticket indicating that the tenant (106) is authorized to access the application (124A) , comprises:

verifying the access token which authorizes the tenant (106) to access the cloud service, wherein the access token comprises the role and the permission granted for the tenant (106) , and the tenant identifier associated with the tenant (106) ;

determining whether the access token which authorizes the tenant (106) to access the cloud service is successfully verified; and

generating the ticket indicating that the tenant (106) is authorized to access the application (124A) associated with the cloud service if the access token is successfully verified . AS4. The method according to any of the aspects AS1 to AS3, wherein the ticket is in a format compatible with the third party server (122) .

AS5. The method according to any of the aspects AS1 to AS4, wherein transmitting the ticket to the third party server (122) communicatively coupled to the cloud computing system (102), comprises:

determining an application (124A) which can deliver the requested cloud service from a plurality of applications (124A-N) using the unique identifier associated with the cloud service;

determining a third party server (122) which hosts the determined application (124A) from a plurality of third party servers (122) connected to the cloud computing system (102); and

transmitting the ticket to the determined third party server (122) communicatively coupled to the cloud computing system ( 102 ) .

AS6. The method according to any of the aspects AS1 to AS5, wherein providing access to the cloud service to the tenant (106) via the application (124A) hosted on the third party server (122), comprises:

receiving at least one visual representation of data from the application (124A) hosted on the third party server (122) in response to successful validation of the ticket; and

rendering the received visual representation of data on a graphical user interface of the tenant device (126A-N) .

AS7. The method according to aspect AS6, wherein receiving the at least one visual representation of data from the application (124A) hosted on the third party server (122), comprises :

receiving a request to retrieve time-series data associated with at least one asset (108A-N) stored in a time- series database (118) from the application (124A) associated with the requested cloud service;

retrieving the time-series data associated with the at least one asset (108A-N) from the time-series database (118) based on the received request;

providing the retrieved time-service data associated with the at least one asset (108A-N) to the third party server (122) ;

receiving the visual representation of the processed time- series data from the application (124A) associated with the requested cloud service; and

rendering the visual representation of the processed time- series data on the graphical user interface of the tenant device (126A) .

AS8. The method according to aspect AS7, wherein retrieving the time-series data associated with the at least one asset (108A-N) based on the received request comprises:

accessing an appropriate application programming interface (API) (106) configured for retrieving time-series data associated with the at least one asset (108A-N) based on the received request; and

retrieving the time-series data associated the at least one asset (108A-N) from the time-series database in response to accessing the respective APIs (106) .

AS9. The method according to aspect AS7, wherein providing the retrieved time-series data associated with the at least one asset (108A-N) to the third party server (122) comprises: analyzing the retrieved time-series data associated with the at least one asset (108A-N) using at least one analytics algorithm; and

sending result of analysis along with the analyzed time series data to the third party server (122) .

AS10. The method according to any of the aspects AS1 to AS9, wherein providing the access to the cloud service via the application (124A) hosted on the third party server (122), comprises :

providing access to the application (124A) without logging in by the tenant (106) to access the application (124A) by the third party server (122) .

ASH. The method according to any of the aspects AS1 to AS10, wherein the application (124A) is a visual analytics application and the cloud service is a data analytics and visualization service.

AS12. A cloud computing system (102) comprising:

one or more processor (s) (702); and

at least one accessible memory (704) coupled to the one or more processor (s) (702), wherein the at least one accessible memory (704) comprises a cloud computing platform (114) stored in the form of machine-readable instructions and executable by the one or more processor (s) (702), wherein the cloud computing platform (114) is capable of performing method steps according to aspects AS1 to ASH.

AS13. A system (100) comprising:

a cloud computing system (102) for providing secure access to at least one cloud service according to aspect AS12; at least one third party server (122) comprising one or more applications (124A-N) , wherein the at least one third party server (122) is communicatively coupled to the cloud computing system (102); and

one or more tenant devices (126A-N) communicatively to the cloud computing system (102); wherein one or more tenant devices (126A-N) are configured to access the cloud service via the one or more applications (124A-N) hosted on the third party server (122) .

AS14. The system (100) according to aspect AS13, wherein the at least one third party server (122) is configured to re- authenticate a tenant (106) by validating a ticket indicating that the tenant (106) is authorized to access one of the applications (124A-N) .

AS15. A computer program product having machine-readable instructions stored therein, that when executed by at least one processing unit (702), cause the processing unit (702) to perform method steps according to any of the aspects AS1 to ASH .