Information processing system, information processing device, information processing method and program
The information processing system addresses the issue of unnecessary scope authorization by allowing users to select and authorize only the required functions from a package of applications, optimizing the authorization process for external services.
Patent Information
- Application Number
- JP2021143698
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-03
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2041-09-03
AI Technical Summary
In conventional information processing systems that perform processing in cooperation with external services, when a package that groups multiple applications is introduced, there is a problem in that even if only some of the applications included in the package are used, it is necessary to authorize all of the scopes required for all of the applications included in the package.
An information processing system that includes a terminal device and an information processing device, which executes a plurality of applications that perform processing in cooperation with external services, featuring a screen providing unit, a scope determination unit, and an authentication unit to allow users to select a function and determine the appropriate scope required for the processing, thereby requesting authorization from the external service.
Enables setting an appropriate scope for a function selected from a plurality of applications, allowing selective authorization rather than requiring authorization for all applications in the package.
Smart Images

Figure 0007809930000001 
Figure 0007809930000002 
Figure 0007809930000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing system, an information processing device, an information processing method, and a program. [Background technology]
[0002] In recent years, a wide variety of external services have become available through cloud computing and other technologies. A technology called OAuth is known as an authentication method used when performing processing in cooperation with external services. OAuth authorizes applications that perform processing in cooperation with external services to use the resources of those external services within a set scope.
[0003] Patent Document 1 discloses an information processing system that sets an appropriate scope for an application that performs processing in cooperation with an external service. Summary of the Invention [Problem to be solved by the invention]
[0004] However, in conventional information processing systems that perform processing in cooperation with external services, when a package that groups multiple applications is introduced, there is a problem in that even if only some of the applications included in the package are used, it is necessary to authorize all of the scopes required for all of the applications included in the package.
[0005] In view of the above technical problems, an embodiment of the present invention aims to set an appropriate scope for a use function selected from a plurality of applications. [Means for solving the problem]
[0006] In order to solve the above problems, an information processing system according to one embodiment of the present invention is an information processing system that includes a terminal device and an information processing device, and executes a plurality of applications that perform processing in cooperation with external services. The information processing device includes a screen providing unit that transmits screen information to the user terminal, which screen information indicates a screen on which a user selects a function to be used that includes one or more processes from the plurality of applications, a scope determination unit that determines, for each external service, the scope required for the processing included in the function to be used in accordance with the user's operation on the screen, and an authentication unit that requests authorization of the scope from the external service. The user terminal includes a browser that displays the screen on a display unit based on the screen information. [Effects of the Invention]
[0007] According to one embodiment of the present invention, it is possible to set an appropriate scope for a function to be used selected from a plurality of applications. [Brief explanation of the drawings]
[0008] [Figure 1] 1 is a diagram illustrating an example of the overall configuration of an information processing system according to an embodiment; [Figure 2] FIG. 1 is a diagram illustrating an example of a hardware configuration of an information processing device according to an embodiment. [Figure 3] FIG. 1 is a diagram illustrating an example of a hardware configuration of an image forming apparatus according to an embodiment. [Figure 4] FIG. 1 is a diagram illustrating an example of a functional configuration of an information processing system according to an embodiment. [Figure 5] FIG. 10 is a diagram illustrating an example of an application information table according to an embodiment. [Figure 6] FIG. 10 is a diagram illustrating an example of an application data information table according to an embodiment. [Figure 7] FIG. 10 is a diagram illustrating an example of a package information table according to an embodiment. [Figure 8] FIG. 10 is a diagram illustrating an example of an application instance information table according to an embodiment. [Figure 9]FIG. 10 is a diagram illustrating an example of a user information table according to an embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of an OAuth registration information table according to an embodiment. [Figure 11] FIG. 10 illustrates an example of a permission token information table according to an embodiment. [Figure 12] FIG. 2 is a diagram illustrating an example of the functional configuration of a logic processing unit according to an embodiment. [Figure 13] FIG. 10 is a diagram illustrating an example of a component information table according to an embodiment. [Figure 14] FIG. 10 is a diagram illustrating an example of a procedure for an application addition process according to an embodiment. [Figure 15] FIG. 10 is a diagram illustrating an example of an application addition screen (when selected) according to an embodiment. [Figure 16] FIG. 10 is a diagram illustrating an example of an application addition screen (at the time of setting) according to an embodiment. [Figure 17] FIG. 10 is a diagram illustrating an example of a home screen according to an embodiment. [Figure 18] FIG. 10 is a diagram illustrating an example of a procedure for authentication federation processing according to an embodiment. [Figure 19] FIG. 10 is a diagram illustrating an example of determining a scope according to an embodiment. [Figure 20] FIG. 10 is a diagram illustrating an example of an authentication collaboration screen (before collaboration) according to an embodiment. [Figure 21] FIG. 10 is a diagram illustrating an example of an authentication screen according to an embodiment. [Figure 22] FIG. 10 is a diagram illustrating an example of a confirmation screen according to an embodiment. [Figure 23] FIG. 10 is a diagram illustrating an example of an authentication collaboration screen (after collaboration) according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0009] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the drawings, components having the same functions are designated by the same reference numerals, and duplicated explanations will be omitted.
[0010] [Embodiment] <Overall configuration of information processing system 1> First, the configuration of an information processing system 1 according to this embodiment will be described with reference to Fig. 1. Fig. 1 is a diagram showing the configuration of an example of an information processing system according to this embodiment.
[0011] The information processing system 1 in this embodiment includes a service providing system 10, a device 20, a terminal device 30, and an external service system 40, which are communicably connected via a wide area communication network N1 such as the Internet.
[0012] The service providing system 10 is realized by one or more information processing devices, and provides various services realized by a series of processes in cooperation with an external service system 40, such as a cloud service, via a communication network N1. Note that hereinafter, the services provided by the service providing system 10 are also referred to as "applications." Furthermore, the series of processes that realize the services are also referred to as "processing flows."
[0013] In this embodiment, a cloud service is used as a specific example of an external service, but the present invention is not limited to this. For example, the present embodiment may be applied to various external services provided via a network, such as services provided by an ASP (Application Service Provider) or web services.
[0014] The devices 20 are various electronic devices used by users. The terminal devices 30 are information processing devices used by users. The users can use the devices 20 or the terminal devices 30 to utilize various services provided by the service providing system 10. Hereinafter, the devices 20 and terminal devices 30 used by users will also be collectively referred to as "user terminals."
[0015] A user may use the various services provided by the service providing system 10 using the device 20, or may use the various services provided by the service providing system 10 using the terminal device 30. An example of using the various services provided by the service providing system 10 using the terminal device 30 will be described below.
[0016] An example of the device 20 is an image forming device (a printer, a fax machine, a digital multifunction peripheral (MFP) or a scanner), and an example of the terminal device 30 is a computer.
[0017] The device 20 is not limited to an image forming device as long as it has a communication function, and the terminal device 30 is not limited to a computer as long as it has a communication function.
[0018] That is, the equipment 20 and the terminal device 30 may be, for example, an image forming device, a PJ (Projector), an IWB (Interactive White Board: an electronic white board with a blackboard function that allows mutual communication), an output device such as digital signage, a HUD (Head Up Display) device, industrial machinery, an imaging device, a sound collection device, medical equipment, a network home appliance, an automobile (Connected Car), a notebook PC (Personal Computer), a mobile phone, a smartphone, a tablet terminal, a game console, a PDA (Personal Digital Assistant), a digital camera, a wearable PC or a desktop PC, etc.
[0019] Hereinafter, when distinguishing between the multiple devices 20, they will be referred to using subscripts such as "device 201," "device 202," etc. When distinguishing between the multiple terminal devices 30, they will be referred to using subscripts such as "terminal device 301," "terminal device 302," etc.
[0020] The external service system 40 is a computer system that provides various cloud services via the communication network N1. An example of an external service system is a cloud service called a storage service (or online storage). The storage service is a service that rents out storage space in the storage of the external service system 40.
[0021] Hereinafter, when distinguishing between the multiple external service systems 40, they will be referred to using subscripts such as "external service system 401," "external service system 402," etc. Furthermore, the name of the external service provided by external service system 401 will be referred to as "external service A," the name of the external service provided by external service system 402 will be referred to as "external service B," etc.
[0022] The external service system 40 may be a system realized by a plurality of information processing devices.
[0023] 1 is an example, and other configurations may be used. For example, the information processing system 1 in this embodiment may include various devices that input and / or output electronic data, and these devices may use various services provided by the service providing system 10.
[0024] <Hardware configuration of each device included in information processing system 1> <Hardware configuration of information processing device> Next, a hardware configuration in the case where the service providing system 10, the terminal device 30, and the external service system 40 in this embodiment are realized by an information processing device will be described with reference to Fig. 2. Fig. 2 is a diagram showing the hardware configuration of an example of the information processing device in this embodiment.
[0025] As shown in FIG. 2, the information processing device includes a CPU 501, a ROM 502, a RAM 503, a HD 504, an HDD (Hard Disk Drive) controller 505, a display 506, an external device connection I / F (Interface) 508, a network I / F 509, a bus line 510, a keyboard 511, a pointing device 512, a DVD-RW (Digital Versatile Disk Rewritable) drive 514, and a media I / F 516.
[0026] Of these, the CPU 501 controls the operation of the entire information processing device. The ROM 502 stores programs used to drive the CPU 501, such as the IPL. The RAM 503 is used as a work area for the CPU 501. The HD 504 stores various data, such as programs. The HDD controller 505 controls the reading and writing of various data from and to the HD 504 under the control of the CPU 501. The display 506 displays various information, such as a cursor, menus, windows, characters, or images. The external device connection I / F 508 is an interface for connecting various external devices. In this case, the external devices are, for example, USB (Universal Serial Bus) memories or printers. The network I / F 509 is an interface for data communication using the communication network N1. The bus line 510 is an address bus, a data bus, or the like for electrically connecting the components, such as the CPU 501, shown in FIG. 2.
[0027] The keyboard 511 is a type of input means having multiple keys for inputting characters, numbers, various instructions, etc. The pointing device 512 is a type of input means for selecting and executing various instructions, selecting a processing target, moving a cursor, etc. The DVD-RW drive 514 controls reading and writing of various data from a DVD-RW 513, which is an example of a removable recording medium. Note that this is not limited to a DVD-RW, and may be a DVD-R, etc. The media I / F 516 controls reading and writing (storing) of data from a recording medium 515, such as a flash memory.
[0028] <Hardware configuration of image forming device> Next, a hardware configuration in the case where the device 20 in this embodiment is an image forming apparatus will be described with reference to Fig. 3. Fig. 3 is a diagram showing the hardware configuration of an example of an image forming apparatus in this embodiment.
[0029] As shown in FIG. 3, the image forming apparatus includes a controller 910, a short-range communication circuit 920, an engine control unit 930, an operation panel 940, and a network I / F 950.
[0030] Of these, the controller 910 has a CPU 901, which is the main part of the computer, a system memory (MEM-P) 902, a north bridge (NB) 903, a south bridge (SB) 904, an ASIC (Application Specific Integrated Circuit) 906, a local memory (MEM-C) 907, which is a storage unit, an HDD controller 908, and an HD 909, which is also a storage unit, and is configured such that the NB 903 and the ASIC 906 are connected by an AGP (Accelerated Graphics Port) bus 921.
[0031] Of these, the CPU 901 is a control unit that performs overall control of the image forming apparatus. The NB 903 is a bridge that connects the CPU 901 with the MEM-P 902, the SB 904, and the AGP bus 921, and includes a memory controller that controls reading and writing to the MEM-P 902, a PCI (Peripheral Component Interconnect) master, and an AGP target.
[0032] The MEM-P 902 comprises a ROM 902a, which is memory for storing programs and data that realize the functions of the controller 910, and a RAM 902b, which is used for expanding the programs and data and as a drawing memory during memory printing. The programs stored in the RAM 902b may be provided by being recorded in an installable or executable file format on a computer-readable recording medium such as a CD-ROM, CD-R, or DVD.
[0033] The SB 904 is a bridge for connecting the NB 903 with PCI devices and peripheral devices. The ASIC 906 is an integrated circuit (IC) for image processing applications that has hardware elements for image processing and functions as a bridge connecting the AGP bus 921, PCI bus 922, HDD 908, and MEM-C 907. The ASIC 906 includes a PCI target and AGP master, an arbiter (ARB) that forms the core of the ASIC 906, a memory controller that controls the MEM-C 907, multiple direct memory access controllers (DMACs) that perform image data rotation using hardware logic, and a PCI unit that transfers data between the scanner unit 931 and printer unit 932 via the PCI bus 922. A USB (Universal Serial Bus) interface or an IEEE 1394 (Institute of Electrical and Electronics Engineers) interface may also be connected to the ASIC 906.
[0034] The MEM-C907 is a local memory used as an image buffer for copying and a code buffer. The HD909 is a storage for storing image data, font data used during printing, and forms. The HD909 controls the reading and writing of data from and to the HD909 under the control of the CPU901. The AGP bus 921 is a bus interface for a graphics accelerator card proposed to speed up graphics processing, and direct high-throughput access to the MEM-P902 enables the graphics accelerator card to operate at high speed.
[0035] Further, the short-distance communication circuit 920 includes a short-distance communication circuit 920a. The short-distance communication circuit 920 is a communication circuit such as NFC or Bluetooth.
[0036] Furthermore, the engine control unit 930 is made up of a scanner unit 931 and a printer unit 932. The operation panel 940 is equipped with a panel display unit 940a, such as a touch panel, that displays current setting values and selection screens and receives inputs from the operator, and an operation panel 940b that includes a numeric keypad that receives setting values for image formation conditions such as density setting conditions and a start key that receives a copy start command. The controller 910 controls the entire image forming apparatus, and controls, for example, drawing, communication, and inputs from the operation panel 940. The scanner unit 931 or the printer unit 932 includes an image processing unit that performs error diffusion, gamma conversion, and the like.
[0037] The image forming apparatus can sequentially switch among the document box function, copy function, printer function, and facsimile function using the application switching key on the operation panel 940. When the document box function is selected, the apparatus enters document box mode, when the copy function is selected, the apparatus enters copy mode, when the printer function is selected, the apparatus enters printer mode, and when the facsimile mode is selected, the apparatus enters facsimile mode.
[0038] The network I / F 950 is an interface for performing data communication using the communication network N1. The short-range communication circuit 920 and the network I / F 950 are electrically connected to the ASIC 906 via a PCI bus 922.
[0039] <Functional configuration of each device included in information processing system 1> Next, the functional configuration of the information processing system 1 in this embodiment will be described with reference to Fig. 4. Fig. 4 is a diagram showing the functional configuration of an example of the information processing system 1 in this embodiment.
[0040] 4 shows an example in which a user uses a terminal device 30 to use various services provided by the service providing system 10. The functional configuration of the device 20 when the user uses a device 20 to use various services provided by the service providing system 10 is the same as the functional configuration of the terminal device 30 shown in FIG.
[0041] <Functional configuration of service providing system 10> 4, the service providing system 10 in this embodiment includes a service processing unit 110, a screen providing unit 120, an authentication unit 130, a document service unit 140, and an external service cooperation unit 150. Each of these units is realized by a process executed by a CPU 501 of one or more programs installed in the service providing system 10.
[0042] The service providing system 10 also includes an OAuth registration information storage unit 160, an authorization token information storage unit 170, and an application information storage unit 180. Each of these storage units can be realized using the HD 504. Note that each of these storage units may also be realized using a storage device connected to the service providing system 10 via a network.
[0043] The service processing unit 110 performs processing for realizing various services provided by the service providing system 10. The service processing unit 110 includes an application management unit 111, a logic processing unit 112, a data I / F unit 113, a scope determination unit 114, and an application data management unit 115.
[0044] The application management unit 111 manages application information 1000 stored in the application information storage unit 180. In response to a request from the browser 210, the application management unit 111 returns an application screen based on a screen definition 1100 included in the application information 1000.
[0045] As a result, an application screen for utilizing the service provided by the service providing system 10 is displayed on the browser 210 of the terminal device 30. The application information 1000 includes a screen definition 1100 for displaying the above-described application screen on the browser 210, and processing content 1200 indicating a series of processes for realizing the service utilized by the application screen.
[0046] In addition, in response to a request from the logic processing unit 112, the application management unit 111 returns processing content 1200 included in the application information 1000. As described above, the processing content 1200 is a series of processes that realizes the service provided by the service providing system 10.
[0047] Furthermore, the application management unit 111 uses an application information table 1110 related to applications realized by the application information 1000. Details of the application information table 1110 will now be described with reference to Fig. 5. Fig. 5 is a diagram showing an example of the application information table 1110.
[0048] The application information stored in the application information table 1110 shown in FIG. 5 has the following data items: application ID, application name, flow name, flow information, and parameter definition. The application ID is identification information that identifies the application. The application name is a name that represents the application. The flow name is a name that represents the processing flow included in the application. The flow information is information that defines the operations of the components executed in the processing flow and the order in which they are executed. The parameter definition is information that defines the parameters used when executing the processing flow. In other words, the application information is information in which the processing flow and parameter definitions are associated for each application.
[0049] For example, the application "Scan to External Service A" with the application ID "app001" is associated with the process flow "uploadA." The process flow "uploadA" is associated with the flow information "{uploadFile: ...}" and the parameter definition "{parameters: ...}." This indicates that the application with the application ID "app001" executes the process flow "uploadA" which includes the operation "uploadFile," and the parameters used at that time are defined in "{parameters: ...}."
[0050] 4, in response to a request from the browser 210, the logic processing unit 112 acquires processing content 1200 included in the application information 1000 via the application management unit 111. Then, based on the processing content 1200 acquired via the application management unit 111, the logic processing unit 112 requests the authentication unit 130, the document service unit 140, the external service cooperation unit 150, or the like to execute processing.
[0051] This enables various services to be provided by the service providing system 10. Details of the logic processing unit 112 will be described later.
[0052] In response to a request from the browser 210, the data I / F unit 113 makes a predetermined request regarding data processing (for example, a request to acquire a folder list) to the data processing unit 152 of the external service cooperation unit 150.
[0053] The scope determination unit 114 determines the scope of authorization for the external service system 40. That is, the scope determination unit 114 determines the scope of the authorization token acquired by the authentication unit 130, which will be described later. Note that the scope is information that specifies the range within which an application realized by the app information 1000 can use the resources of the external service system 40.
[0054] Here, the scope determination unit 114 determines an appropriate scope based on the processing flow included in the application. Therefore, in the service providing system 10 of this embodiment, for example, the user does not need to explicitly set the scope of the authorization token.
[0055] The application data management unit 115 manages application data information relating to applications realized by the application information 1000, package information relating to packages in which multiple applications are grouped, and application instance information relating to applications added to the home.
[0056] A package is a group of multiple applications. When an administrator of the information processing system 1 or the like installs a package into a tenant, users belonging to the tenant can use the applications included in the package.
[0057] A tenant is a mechanism for sharing resources of the service providing system 10 among multiple accounts. A user created with a certain account can only use resources allocated to the tenant corresponding to that account, and cannot access resources allocated to other tenants. Therefore, when a package is installed in a certain tenant, users belonging to that tenant can use applications included in the package, but users belonging to other tenants cannot use applications included in the package.
[0058] The home screen is a screen area that is displayed after the user logs in to the service providing system 10. By adding an application to the home screen, the user can start the application with fewer operations.
[0059] When a tenant administrator or the like selects one or more applications from the packages installed in the tenant and adds them to Home, an app instance corresponding to the selected applications is generated. The app instance is associated with the tenant and becomes available to all users belonging to the tenant. In the following, applications added to Home are also referred to as "used functions."
[0060] The application data information is stored in an application data information table 1120 held by the application data management unit 115. Details of the application data information table 1120 will be described with reference to Fig. 6. Fig. 6 is a diagram showing an example of the application data information table 1120.
[0061] 6 includes the following data items: an application ID, an application name, a flow name, flow information, and parameter candidates. The parameter candidates are information indicating options for values that can be set for parameters used when executing the processing flow. Therefore, the application data information is information in which the processing flow and parameter candidates are associated with each other for each application.
[0062] For example, the application "Scan to External Service A" with the application ID "app001" is associated with the process flow "uploadA." The process flow "uploadA" is associated with the flow information "{uploadFile: ...}" and parameter candidates "{parameters: ...}." This indicates that the application with the application ID "app001" executes the process flow "uploadA" which includes the operation "uploadFile," and the parameters used at that time can be selected from "{parameters: ...}."
[0063] The application data information is a subset of the application information, and when application information is added to the application information table 1110, the corresponding application data information is simultaneously added to the application data information table 1120. The application information is mainly used when the service providing system 10 provides a service, and the application data information is mainly used to generate each screen that the service providing system 10 displays to provide the service.
[0064] The package information is stored in a package information table 1130 held by the application data management unit 115. Details of the package information table 1130 will be described with reference to Fig. 7. Fig. 7 is a diagram showing an example of the package information table 1130.
[0065] The package information stored in package information table 1130 shown in Fig. 7 has the following data items: package ID, package name, and application ID. The package ID is identification information that identifies the package. The package name is a name that represents the package. Therefore, the package information is information that associates each package with an application included in the package.
[0066] For example, this indicates that the package "Service A Package" with the package ID "pkg001" includes the applications "Scan to External Service A," "Print from External Service A," and "Delete File from External Service A," with the app IDs "app001," "app002," and "app003."
[0067] The application instance information is stored in an application instance information table 1140 held by the application data management unit 115. Details of the application instance information table 1140 will be described with reference to Fig. 8. Fig. 8 is a diagram showing an example of the application instance information table 1140.
[0068] The application instance information stored in the application instance information table 1140 shown in Fig. 8 includes, as data items, an instance ID, a tenant ID, an application ID, and parameter settings. The instance ID is identification information that identifies the application instance. The parameter settings are information that indicates the setting values of parameters used when executing the application instance. Therefore, the application instance information is information in which, for each application instance, a tenant, an application, and set parameters are associated with each other.
[0069] For example, the app instance with the instance ID "ins001" was generated by adding the application "Print from External Service A" with the app ID "app002" to the home page of the tenant "tenantA", and indicates that the parameter "{parameters: ...}" is used when executing the app instance.
[0070] 4, the screen providing unit 120 provides (transmits) screen information indicating a home screen 121, an application addition screen 122, and an authentication collaboration screen 123 to the browser 210 in response to a request from the browser 210.
[0071] Each piece of screen information provided by the screen providing unit 120 is, for example, screen information written in HTML (HyperText Markup Language) or the like, and may include an application written in JavaScript (registered trademark) or the like. By executing the screen information showing the home screen 121, the application addition screen 122, and the authentication collaboration screen 123 on the browser 210, a home display unit 211, a function selection unit 212, and an authorization processing unit 213 provided in the browser 210 are realized.
[0072] In response to a request from the authorization processing unit 213, the authentication unit 130 acquires OAuth registration information from the OAuth registration information storage unit 160. Note that the OAuth registration information is, for example, an authorization server URL in the external service system 40, and is information set for each external service system 40 by an administrator of the information processing system 1 or the like. Details of the OAuth registration information will be described later.
[0073] Furthermore, the authentication unit 130 acquires a permission token from the external service system 40 in response to a request from the permission processing unit 213. Then, the authentication unit 130 stores the acquired permission token in the permission token information storage unit 170. Details of the permission token will be described later.
[0074] As a result, the service providing system 10 in this embodiment stores the permission token for the scope determined by the scope determination unit 114. Therefore, the service providing system 10 in this embodiment can provide a service realized by a series of processes in cooperation with the external service system 40, using the stored permission token.
[0075] Furthermore, the authentication unit 130 authenticates the user based on the authentication information input by the user in response to a request from the browser 210. The authentication unit 130 of this embodiment holds user information related to users of the service providing system 10.
[0076] The user information is stored in a user information table 1300. Details of the user information table 1300 will now be described with reference to Fig. 9. Fig. 9 is a diagram showing an example of the user information table 1300.
[0077] 9 has the following data items: a user ID, a user name, and a tenant ID. The user ID is identification information that identifies a user of the service providing system 10. The user name is a name that represents the user. Therefore, the user information is information that associates, for each user, the tenant to which the user belongs.
[0078] Returning to Fig. 4, the document service unit 140 is a group of programs (modules) that implement one process included in a series of processes for implementing a service provided by the service providing system 10. The document service unit 140 includes, for example, a barcode recognition unit 141 that executes barcode recognition processing on an electronic file, or a PDF conversion unit 142 that converts an electronic file into a PDF (Portable Document Format) format.
[0079] In addition to these, the document service unit 140 may also include various other programs, such as a program for performing OCR (Optical Character Recognition) processing on electronic files, a program for compressing or decompressing electronic files, and a program for performing language translation processing.
[0080] In response to requests from the logic processing unit 112 and the data I / F unit 113, the external service cooperation unit 150 requests the external service system 40 to execute various processes.
[0081] Here, the service providing system 10 in this embodiment includes an external service collaboration unit 150 for each external service system 40. That is, the service providing system 10 in this embodiment includes an external service collaboration unit 1501 for requesting the external service system 401 to execute processing. Similarly, the service providing system 10 in this embodiment includes an external service collaboration unit 1502 for requesting the external service system 402 to execute processing, etc.
[0082] As described above, the service providing system 10 in this embodiment includes an external service collaboration unit 150 corresponding to each external service system 40 that performs processing in collaboration with the external service system 40. Note that, hereinafter, when distinguishing between the multiple external service collaboration units 150, they will be referred to using subscripts such as "external service collaboration unit 1501," "external service collaboration unit 1502," etc., as described above.
[0083] The external service cooperation unit 150 includes a file processing unit 151 that receives a request from the logic processing unit 112 and a data processing unit 152 that receives a request from the data I / F unit 113 .
[0084] The file processing unit 151 has an interface in which an API (Application Programming Interface) for performing operations (for example, acquisition, storage, editing, etc.) on electronic files stored in the external service system 40 is defined.
[0085] The data processing unit 152 has an interface in which an API is defined for obtaining metadata such as bibliographic information of electronic files stored in the external service system 40 (for example, a file list, a folder list, etc.).
[0086] The external service cooperation unit 150 can be added or modified using a software development kit (SDK) provided by the external service system 40.
[0087] The OAuth registration information storage unit 160 stores an OAuth registration information table 1600 in which OAuth registration information is stored. Details of the OAuth registration information table 1600 will now be described with reference to Fig. 10. Fig. 10 is a diagram showing an example of the OAuth registration information table 1600.
[0088] 10 has the following data items: a service ID, a client ID, a client secret, an authorization server URL, and a redirect destination URL. The service ID is identification information that identifies the external service system 40. Therefore, the OAuth registration information is information in which the client ID, client secret, authorization server URL, and redirect destination URL used for OAuth authorization are associated with each other for each external service system 40.
[0089] The permission token information storage unit 170 stores a permission token information table 1700 in which permission token information is stored. Details of the permission token information table 1700 will now be described with reference to Fig. 11. Fig. 11 is a diagram showing an example of the permission token information table 1700.
[0090] 11 has the following data items: user ID, application ID, service ID, permission token, scope, and expiration date. Therefore, the permission token information is information in which the permission token of the external service system 40, the scope of the permission token, and the expiration date of the permission token are associated with each other for each user and application.
[0091] Returning to Fig. 4, the application information storage unit 180 stores application information 1000 for the service providing system 10 to provide a service. The application information 1000 includes a screen definition 1100 for displaying an application screen on the browser 210, and processing content 1200 indicating a series of processes for realizing the service to be provided to the browser 210. The application information 1000 is associated with an application ID for identifying the application information 1000.
[0092] In this embodiment, the application information 1000 is described as including one screen definition 1100 and one processing content 1200. However, this is not limiting, and the application information 1000 may include a plurality of screen definitions 1100 and a plurality of processing contents 1200.
[0093] Next, a detailed functional configuration of the logic processing unit 112 in this embodiment will be described with reference to Fig. 12. Fig. 12 is a diagram showing an example functional configuration of the logic processing unit 112 in this embodiment.
[0094] 12, the logic processing unit 112 in this embodiment includes a flow execution unit 401, a component management unit 402, and a component group 403. The logic processing unit 112 in this embodiment also uses a component information table 2000.
[0095] When the flow execution unit 401 receives a process execution request from the browser 210, it acquires the process content 1200 included in the application information 1000 via the application management unit 111. Then, the flow execution unit 401 requests one of the components included in the component group 403 to execute the process based on the acquired process content 1200.
[0096] Note that a component is a module or the like for executing one process included in the series of processes indicated by the process content 1200, and is defined by, for example, a class or a function. A component includes one or more operations, and the above-mentioned one process is realized by the component executing the operations. In other words, the series of processes indicated by the process content 1200 are realized by the processes executed by the component. Furthermore, a component may include multiple operations for executing the above-mentioned one process.
[0097] The component management unit 402 generates a component in response to a request from the flow execution unit 401. Note that generating a component means, for example, expanding a component defined by a class into a memory (for example, the RAM 503).
[0098] Furthermore, in response to a request from the scope determination unit 114, the component management unit 402 returns component information stored in the component information table 2000. Details of the component information table 2000 will now be described with reference to Fig. 13. Fig. 13 is a diagram showing an example of the component information table 2000.
[0099] The component information stored in the component information table 2000 shown in FIG. 13 includes, as data items, a component ID, a component name, an operation, a service ID, a scope, and an inclusion scope.
[0100] The component ID is identification information that identifies the component. The operation is information that represents the operation included in the component. The scope is information that represents the scope of the external service system 40 required to execute the operation. The containing scope is information that represents the scope of the external service system 40 that is contained in the scope. Therefore, the component information is information that associates, for each operation of the component, the scope of the external service system 40 that is required to execute the operation and the scope of the external service system 40 that is contained in the scope.
[0101] Note that the relationship in which one scope contains another scope means that the range of permissions set in the containing scope includes all of the range of permissions set in the contained scope. Therefore, if you have an containing scope, it is not necessary to have the contained scope.
[0102] For example, the operation "uploadFile" of the component "external service A collaboration" is associated with the scope "write" in the external service system 401 corresponding to the service ID "serviceA." This indicates that the scope of the authorization token of the external service system 401 must be "write" in order to execute the processing of the operation "uploadFile" of the component "external service A collaboration." It also indicates that the scope "write" of the authorization token of the external service system 401 includes the scope "read."
[0103] Note that no scope is set for the PDF conversion component or the barcode recognition component, because these components do not use resources of the external service system 40 or use resources that do not require authorization.
[0104] Returning to Fig. 12, the component group 403 is a collection of components. The component group 403 includes a cooperation A component 411 for performing processing in cooperation with an external service system 401 (external service A), and an authentication A component 412 for acquiring an authorization token for external service A. The component group 403 also includes a PDF conversion component 413 for converting an electronic file into PDF format.
[0105] In addition to these, the component group 403 also includes, for example, a collaboration B component for performing processing in collaboration with the external service system 402 (external service B), an OCR component for performing OCR processing on electronic files, etc.
[0106] <Functional configuration of terminal device 30> 4, the terminal device 30 includes a browser 210 executed by a CPU 501. A user of the terminal device 30 can use the services provided by the service providing system 10 via the browser 210.
[0107] As described above, the terminal device 30 in this embodiment only needs to be equipped with the browser 210. Therefore, in the information processing system 1 in this embodiment, there is no need to develop a dedicated application for the terminal device 30 to use the services provided by the service providing system 10.
[0108] The browser 210 includes a home display unit 211, a function selection unit 212, and an authorization processing unit 213. The home display unit 211, the function selection unit 212, and the authorization processing unit 213 are respectively realized by executing, on the browser 210, screen information indicating a home screen 121, an application addition screen 122, and an authentication collaboration screen 123, which are acquired via a screen providing unit 120 included in the service providing system 10.
[0109] The home display unit 211 displays applications that have been added to the home of the tenant to which the user who is logged in to the browser 210 belongs.
[0110] The function selection unit 212 performs a process of selecting one or more applications from the applications included in the package installed in the tenant in response to a user operation and adding the applications to the home.
[0111] The authorization processing unit 213 performs processing related to OAuth authorization (hereinafter also simply referred to as "authorization") for the external service system 40 in response to a user operation.
[0112] <Processing procedure of information processing system 1> Next, a detailed description will be given of an information processing method executed by the information processing system 1 in this embodiment. The information processing method executed by the information processing system 1 in this embodiment will be described below, with the method being divided into an application addition process and an authentication collaboration process.
[0113] <<App Addition Process>> First, an application addition process for adding an application used by a user to the home screen will be described with reference to Fig. 14. Fig. 14 is a sequence diagram showing an example of the application addition process executed by the information processing system 1 in this embodiment.
[0114] In step S1001, the administrator of the information processing system 1 introduces a package including multiple applications into the service providing system 10. At this time, the administrator specifies the tenant into which the package is to be introduced. The administrator may specify multiple tenants to introduce the package. Conditions such as the number of tenants that can introduce the package are determined based on the contract with the provider of the package. When the package is introduced into a tenant, package information that associates the package with the tenant is stored in the package information table 1130.
[0115] In step S1002, the user performs an operation to log in to the service providing system 10 via the browser 210. In response to the user's operation, the browser 210 requests the authentication unit 130 to authenticate the user. The authentication request includes authentication information that the user inputs into the browser 210. The authentication information is, for example, a tenant ID, a user ID, and a password. Alternatively, the authentication information may use, for example, an email address as the user ID. The administrator can set in advance in the authentication unit 130 what information to send as authentication information.
[0116] In step S1003, authentication unit 130 receives an authentication request from browser 210. Authentication unit 130 performs user authentication based on the authentication information included in the authentication request. If authentication is successful, authentication unit 130 issues an authentication ticket and returns it to browser 210. In the following description, it is assumed that authentication unit 130 has successfully authenticated the user.
[0117] In step S1004, the user performs an operation to open the application addition screen 122 on the browser 210. In response to the user's operation, the browser 210 acquires screen information indicating the application addition screen 122 from the screen providing unit 120 and executes it on the browser 210. As a result, the function selecting unit 212 is generated.
[0118] The function selection unit 212 requests the application data management unit 115 to acquire an available application list, which is a list of applications that can be used in the tenant. The acquisition request includes the authentication ticket issued by the authentication unit 130.
[0119] In step S1005, the application data management unit 115 receives a request to acquire a list of available applications from the function selection unit 212. Based on the authentication ticket included in the acquisition request, the application data management unit 115 acquires user information from the authentication unit 130. The user information includes a user ID that identifies the user who is logged in to the browser 210 and a tenant ID that identifies the tenant to which the user belongs.
[0120] In step S1006, the application data management unit 115 acquires, based on the tenant ID acquired from the authentication unit 130, package information installed in the tenant from the package information table 1130.
[0121] In step S1007, the application data management unit 115 acquires application data information corresponding to the applications included in each package from the application data information table 1120, based on the application ID included in the package information acquired in step S1006. The application data management unit 115 returns the acquired application data information to the browser 210 as a list of available applications for the tenant. The function selection unit 212 displays the list of available applications received from the application data management unit 115 on the application addition screen 122.
[0122] In step S1008, the user performs an operation to select an application to add to the home screen on the application addition screen 122 displayed on the browser 210. Details of the application addition screen 122 in this embodiment will now be described with reference to Fig. 15 and Fig. 16. The application addition screen 122 in this embodiment is made up of an application addition screen 122A for selecting an application to add to the home screen, and an application addition screen 122B for setting the display content of the selected application.
[0123] 15 is an example of an application addition screen 122A for selecting an application to add to the home screen. As shown in FIG. 15, the application addition screen 122A includes an available application display field 1221, an application search field 1222, a new application display field 1223, and a "Next" button 1224.
[0124] The available application display field 1221 displays a list of available applications acquired from the application data management unit 115. The available application display field 1221 displays applications included in the available application list in a format that allows each application to be selected. In the example of Fig. 14, each application is displayed in the form of a toggle button, and the user can select the application corresponding to the button by pressing the button.
[0125] If all applications included in the available application list cannot be displayed in the available application display field 1221, the available application display field 1221 may be divided into pages. In the divided-page available application display field 1221, the user may select applications displayed on other pages by performing an operation to transition between pages.
[0126] To make it easier to find a desired application from the list of available applications, application addition screen 122A may have a function for narrowing down the display contents of available application display field 1221. For example, application addition screen 122A may have an application search field 1222. When a user inputs a search term into application search field 1222, only applications whose names include the search term can be displayed in available application display field 1221.
[0127] Furthermore, for example, the application addition screen 122A may include a new application display field 1223. When the user checks the new application display field 1223, only applications that have been introduced into the tenant within a predetermined period can be displayed in the available application display field 1221.
[0128] When the user presses the "Next" button 1224 on the application addition screen 122A, the selection of the application in the available application display field 1221 is confirmed, and the screen transitions to the application addition screen 122B.
[0129] 16 is an example of an application addition screen 122B for setting the display content of an application to be added to the home screen. As shown in FIG. 16, the application addition screen 122B includes a label input field 1225, an icon setting field 1226, and a "Save" button 1227.
[0130] The label input field 1225 accepts input of a character string representing the name to be used when the selected application is displayed on the home screen 121.
[0131] The icon setting field 1226 accepts input of an image file representing an icon to be used when the selected application is displayed on the home screen 121 .
[0132] On the application addition screen 122B, the user presses the "Save" button 1227 to finalize the display settings of the application to be added to the home screen. In response to the user's operation, the function selection unit 212 transmits an addition request for the selected application to the application data management unit 115.
[0133] 14, in step S1009, function selection unit 212 requests application data management unit 115 to add the selected application to the home page in response to a user operation. The request for addition includes an application ID that identifies the application selected by the user.
[0134] In step S1010, the application data management unit 115 receives an addition request from the function selection unit 212. Based on the application ID included in the addition request, the application data management unit 115 obtains, from the application data information table 1120, application data information identified by the application ID.
[0135] In step S1011, the application data management unit 115 generates an application instance corresponding to the application data information acquired in step S1010, based on the application data information. The application data management unit 115 stores application instance information about the generated application instance in the application instance information table 1140.
[0136] The application data management unit 115 acquires application instance information associated with the tenant from the application instance information table 1140 based on the tenant ID acquired from the authentication unit 130. The application data management unit 115 returns the acquired application instance information to the browser 210 as a list of applications used in the tenant.
[0137] In step S1012, the user performs an operation to open the home screen 121 on the browser 210. In response to the user's operation, the browser 210 acquires screen information indicating the home screen 121 from the screen providing unit 120 and executes it on the browser 210. As a result, the home display unit 211 is generated.
[0138] The home display unit 211 displays the list of available applications received from the application data management unit 115 on the home screen 121. Details of the home screen 121 in this embodiment will now be described with reference to FIG.
[0139] 17 is an example of the home screen 121. As shown in FIG. 17, the home screen 121 includes a use application display field 1211 and a package selection field 1212.
[0140] The used application display field 1211 displays a list of used applications acquired from the application data management unit 115. At this time, the used application display field 1211 displays applications included in the list of used applications using the names and icons set on the application addition screen 122B.
[0141] A package selection field 1212 displays a list of packages that include applications included in the list of used applications. When the user selects a package in the package selection field 1212, only the applications included in the selected package are narrowed down and displayed in the used application display field 1211.
[0142] <<Authentication collaboration process>> Next, an authentication collaboration process for authorizing an application added to a home will be described with reference to Fig. 18. Fig. 18 is a sequence diagram showing an example of the authentication collaboration process executed by the information processing system 1 in this embodiment.
[0143] In step S1101, the user performs an operation to open the authentication collaboration screen 123 on the browser 210. In response to the user's operation, the browser 210 acquires screen information indicating the authentication collaboration screen 123 from the screen providing unit 120 and executes it on the browser 210. As a result, the authorization processing unit 213 is generated.
[0144] The authorization processing unit 213 requests the application data management unit 115 to acquire a list of scopes for each external service that requires authorization for an application added to the home. The acquisition request includes the authentication ticket issued by the authentication unit 130.
[0145] In step S1102, the application data management unit 115 receives a request to acquire a scope list from the authorization processing unit 213. Based on the authentication ticket included in the acquisition request, the application data management unit 115 acquires user information from the authentication unit 130. The user information includes a user ID that identifies the user who is logged in to the browser 210 and a tenant ID that identifies the tenant to which the user belongs.
[0146] In step S1103, the application data management unit 115 acquires, from the application instance information table 1140, application instance information associated with the tenant based on the tenant ID acquired from the authentication unit .
[0147] In step S1104, the application data management unit 115 acquires, from the application data information table 1120, application data information identified by the application ID included in the application instance information acquired in step S1103.
[0148] In step S1105, the application data management unit 115 requests the scope determination unit 114 to acquire a list of scopes for each external service that requires authorization. The acquisition request includes the application data information acquired in step S1104.
[0149] In step S1106, the scope determination unit 114 receives a request to acquire a scope list from the application data management unit 115. The scope determination unit 114 requests the application management unit 111 to acquire flow information related to the application data information included in the acquisition request. Note that the acquisition request includes the application ID and flow name included in the application data information acquired in step S1104.
[0150] When the application management unit 111 receives a request to acquire flow information from the scope determination unit 114, the application management unit 111 acquires, based on the application ID and flow name included in the acquisition request, application information identified by the application ID and flow name from the application information table 1110. The application management unit 111 returns the flow information included in the acquired application information to the scope determination unit 114.
[0151] In step S1107, the scope determination unit 114 receives flow information from the application management unit 111. The scope determination unit 114 requests the logic processing unit 112 to acquire component information related to the operation executed in the flow information. The acquisition request includes information indicating the operation executed in the flow information.
[0152] When the logic processing unit 112 receives a request to acquire component information from the scope determination unit 114, it acquires component information related to the component including the operation based on the information indicating the operation included in the acquisition request from the component information table 2000. The logic processing unit 112 returns the acquired component information to the scope determination unit 114.
[0153] In step S1108, the scope determination unit 114 receives component information from the logic processing unit 112. Based on the component information, the scope determination unit 114 generates a list of scopes that require authorization for each external service. The scope determination unit 114 generates the list of scopes that require authorization by extracting, from the component information received from the logic processing unit 112, the scopes and included scopes that are set in the operations that are executed in the processing flows included in the applications that have been added to the home.
[0154] The above steps S1106 to S1108 are repeatedly executed for each application ID included in the application data information acquired by application data management unit 115 in step S1104.
[0155] In step S1109, the scope determination unit 114 integrates the scopes included in the list of scopes requiring authorization for each external service, and determines the scope for each external service. The scope determination unit 114 determines the scope for each external service by calculating the sum of the scopes included in the list of scopes requiring authorization for each external service.
[0156] If the list of scopes requiring authorization includes a scope for which an inclusive scope is set and the scopes requiring authorization include one that is identical to the inclusive scope, the scope determination unit 114 may determine the difference between the sum of the scopes and the inclusive scope as the scope for each external service. For example, suppose an application includes a processing flow that executes an operation that requires the scope "write" of external service A and an operation that requires the scope "read" of external service A. In this case, the sum of the scopes determined for external service A is "write, read." However, since the scope "write" includes the scope "read," the application can be executed if only the scope "write" is authorized. Therefore, the scope of external service A can be determined to be "write," which is the difference between the sum of the scopes "write, read" and the inclusive scope "read."
[0157] An example of the process in which the scope determination unit 114 determines the scope will be specifically described with reference to Fig. 19. Fig. 19 is a diagram showing an example of a service provided by the service providing system 10 in this embodiment.
[0158] 19, package 1 includes application 1 and application 2. Application 1 includes flows 1-1 and 1-2, and application 2 includes flows 2-1 and 2-2.
[0159] Flow 1-1 included in Application 1 sequentially executes the operation "getFiles" of the component "External Service A Integration" and the operation "downloadFiles" of the component "External Service A Integration." Flow 1-2 sequentially executes the operation "recognize" of the component "Barcode Recognition," the operation "downloadFiles" of the component "External Service A Integration," and the operation "convert" of the component "PDF Conversion."
[0160] According to the example of the component information table 2000 shown in FIG. 13, the operation "getFiles" requires the scope "read" of the external service "serviceA". The operation "downloadFile" requires the scope "read" of the external service "serviceA". The operations "recognize" and "convert" do not link with external services. Therefore, the scope of the external service "serviceA" for application 1 is "read".
[0161] Furthermore, flow 2-1 included in application 2 sequentially executes the operation "getFolders" of the component "External Service B Integration" and the operation "createFolders" of the component "External Service B Integration." Flow 2-2 sequentially executes the operation "getFolders" of the component "External Service B Integration" and the operation "deleteFolders" of the component "External Service B Integration."
[0162] According to the example of component information table 2000 shown in FIG. 13, the operation "getFolders" requires the scope "scopeC" of the external service "serviceB". The operation "createFolders" requires the scope "scopeA" of the external service "serviceB". The operation "deleteFolders" requires the scope "scopeB" of the external service "serviceB". Therefore, the scopes of the external service "serviceB" for application 2 are "scopeA, scopeB, scopeC".
[0163] Then, the scope determination unit 114 returns the determined scope for each external service to the browser 210. Upon receiving the scope for each external service, the browser 210 displays an authentication collaboration screen 123.
[0164] Here, details of the authentication federation screen 123 in this embodiment will be described with reference to Fig. 20. Fig. 20 is an example of an authentication federation screen 123A that displays the state before authentication federation is performed. As shown in Fig. 20, the authentication federation screen 123A includes a service display field 1231, a federation status display field 1232, a "Link" button 1233, and a "Cancel federation" button 1234.
[0165] The service display field 1231 displays a list of external service systems 40 that are linked with the application added to the home page. The linkage status display field 1232 displays the linkage status with the external service system 40 displayed in the service display field 1231. The linkage status indicates whether linkage has been set or not. The linkage status can be determined by checking whether a valid permission token corresponding to the external service system 40 exists in the permission token information table 1700.
[0166] The "Link" button 1233 is a button for requesting authentication federation with the external service system 40. The "Cancel Linkage" button 1234 is a button for canceling the linkage with the external service system 40. The process of requesting authentication federation will be described later. Linkage is canceled by deleting the authorization token corresponding to the external service system 40 stored in the authorization token information table 1700 or updating it to an invalid state (for example, by setting the expiration date to a past date and time).
[0167] The "Link" button 1233 and the "Cancel Link" button 1234 may be enabled or disabled in conjunction with the link status with the external service system 40. That is, if the link status with a certain external service system 40 has already been set, the "Link" button 1233 corresponding to that external service system 40 may be disabled, and the "Cancel Link" button 1234 may be enabled. Alternatively, if the link status with a certain external service system 40 has not yet been set, the "Link" button 1233 corresponding to that external service system 40 may be enabled, and the "Cancel Link" button 1234 may be disabled.
[0168] Returning to Fig. 18, the explanation will be given. In step S1110, the user performs an operation to request OAuth authorization from the service providing system 10 via the browser 210. In response to the user's operation, the authorization processing unit 213 requests the authentication unit 130 to acquire OAuth registration information. The acquisition request includes the service ID of the external service system 40 for which authorization is requested.
[0169] When the authentication unit 130 receives the request to acquire OAuth registration information, it acquires the OAuth registration information corresponding to the service ID included in the acquisition request from the OAuth registration information table 1600. The authentication unit 130 returns the acquired OAuth registration information to the authorization processing unit 213.
[0170] In step S1111, upon receiving the OAuth registration information, the authorization processing unit 213 redirects the browser 210 to the authorization server URL included in the OAuth registration information. Here, the authorization server URL is a URL such as an authentication screen (for example, a login screen) for performing authentication with the external service system 40.
[0171] Here, details of the authentication screen 124 in this embodiment will be described with reference to Fig. 21. Fig. 21 is a diagram showing an example of the authentication screen 124 in this embodiment. The authentication screen 124 includes an authentication information input field 1241 and an "Approve" button 1242.
[0172] The authentication information input field 1241 is an input field for the user to input authentication information. The "Approve" button 1242 is a button for requesting authentication from the authentication unit 130 using the authentication information input in the authentication information input field 1241.
[0173] Returning to Fig. 18, the user performs authentication by inputting authentication information for authentication on the authentication screen 124. Then, the authentication unit 130 requests authentication from the external service system 40. Note that the authentication request includes the authentication information.
[0174] Upon receiving the authentication request, the external service system 40 returns an authentication result in response to the authentication request. In the following description, it is assumed that the external service system 40 returns an authentication result indicating successful authentication.
[0175] In step S1112, upon receiving the authentication result indicating successful authentication, the authorization processing unit 213 requests OAuth authorization from the external service system 40. Note that the authorization request includes the scope returned from the scope determination unit 114, the client ID included in the OAuth registration information, and the redirect destination URL.
[0176] When the external service system 40 receives the OAuth authorization request, it issues an authorization code indicating an authorization response to the authorization request, returns it to the browser 210, and redirects the browser 210 to the redirect destination URL.
[0177] After the authentication is successful in step S1111, the browser 210 may display, for example, a confirmation screen 125 shown in Fig. 22. The confirmation screen 125 shown in Fig. 22 is a screen for prompting the user to confirm that the service providing system 10 will use resources within the range set by the scope in the corresponding external service system 40. Then, when the user presses an "Allow access" button 1251 on the confirmation screen 125 shown in Fig. 22, an authorization request may be sent to the corresponding external service system 40 in step S1112.
[0178] 18, in step S1113, the authorization processing unit 213 transmits the authorization code acquired in step S1112 to the authentication unit 130. At this time, the authorization processing unit 213 also transmits the service ID to the authentication unit 130.
[0179] In step S1114, upon receiving the authorization code and the service ID, the authentication unit 130 requests the external service system 40 indicated by the service ID to acquire an authorization token. The request to acquire an authorization token includes the authorization code, and the client ID and client secret associated with the service ID in the OAuth registration information.
[0180] When the external service system 40 receives the request to acquire an authorization token, it issues the authorization token and returns the authorization token and its expiration date. At this time, the external service system 40 may also return a refresh token for re-acquiring the authorization token when the expiration date of the authorization token has passed.
[0181] In step S1115, upon receiving the permission token and the expiration date, the authentication unit 130 stores the permission token and the expiration date in the permission token information table 1700. At this time, the authentication unit 130 stores the permission token and the expiration date in association with the user ID, the application ID of the application to be authorized, the service ID of the external service system 40 that performs processing in cooperation with the permission token, and the scope determined by the scope determination unit 114.
[0182] When the browser 210 receives the authorization result from the authentication unit 130, it displays the authorization result on the authentication federation screen 123. Fig. 23 is an example of the authentication federation screen 123B that displays the state after the authentication federation is successful. As shown in Fig. 23, the authentication federation screen 123B displays a message 1235 indicating that the authorization was successful, and updates the federation status of the external service system 40 that was successfully authenticated in the federation status display field 1232.
[0183] <Modification> In this embodiment, an example has been described in which available applications are installed in package units to a tenant, an application to be used is selected from the package, and the scopes required for the selected application are integrated for each external service, and authorization is requested. However, it is also possible to select a processing flow to be used from a single application, and to integrate the scopes required for the selected processing flow for each external service, and authorization is requested.
[0184] Furthermore, instead of selecting an application or a processing flow to be used from one package installed in the tenant, an application or a processing flow to be used may be selected from multiple packages installed in the tenant, and authorization may be requested by integrating the required scope for each external service.
[0185] Furthermore, in this embodiment, an example has been described in which an application is added to a home for each tenant, but it is also possible to configure so that applications selected by different users associated with the same tenant are added to a home. That is, in this embodiment, one home exists for each tenant, but it is also possible to configure so that one home exists for each user.
[0186] <Effects of the embodiment> In the service providing system 10 of this embodiment, when a package that groups a plurality of applications is introduced, and multiple applications are available, authorization can be requested only for the scope required for a function (application or processing flow) selected from the multiple applications. In conventional service providing systems, when multiple applications are available, authorization is requested for all scopes required by the multiple applications.
[0187] According to the service providing system 10 of this embodiment, authorization is not requested for scopes required for functions that are not selected, thereby preventing situations in which access to resources that the user does not intend occurs due to incorrect configuration or malfunction of an application.
[0188] For example, if the scope required by an application that downloads a file is "read," and the scope required by another application is also included, the file may be accidentally deleted by the application that downloads the file. If the scope required by the application is not included, the file will not be deleted. Therefore, authorization should not include scopes required by functions that are not used.
[0189] [supplement] Each function of the above-described embodiments can be realized by one or more processing circuits. Here, the term "processing circuit" in this specification includes a processor programmed to perform each function by software, such as a processor implemented by an electronic circuit, as well as devices such as an ASIC (Application Specific Integrated Circuit), a DSP (Digital Signal Processor), an FPGA (Field Programmable Gate Array), or a conventional circuit module designed to perform each function described above.
[0190] The devices described in the example are merely one of several computing environments for implementing the embodiments disclosed herein. In one embodiment, the service providing system 10 includes multiple computing devices, such as a server cluster, configured to communicate with each other via any type of communication link, including a network, shared memory, etc., and to perform the processes disclosed herein.
[0191] Although the embodiments of the present invention have been described in detail above, the present invention is not limited to these embodiments, and various modifications and changes are possible within the scope of the gist of the present invention described in the claims. [Explanation of symbols]
[0192] 1. Information Processing Systems 10 Service provision system 20 equipment 30 Terminal Equipment 40 External Service Systems 110 Service Processing Department 111 App Management Department 112 Logic processing section 113 Data I / F section 114 Scope Determination Unit 115 App Data Management Department 120 Screen provision department 130 Authentication Department 140 Document Services Department 141 Barcode recognition unit 142 PDF Conversion Unit 150 External Service Collaboration Department 151 File Processing Unit 152 Data Processing Unit 160 OAuth registration information storage unit 170 Authorization token information storage unit 180 Application information storage unit 210 Browser 211 Home display 212 Function selection section 213 Authorization Processing Unit [Prior art documents] [Patent documents]
[0193] [Patent Document 1] Japanese Patent Application Laid-Open No. 2017-59219
Claims
1. An information processing system including a user terminal and an information processing device, and executing a plurality of applications that perform processing in cooperation with an external service, The information processing device a first authentication unit that authenticates a user based on authentication information received from the user terminal; a first screen providing unit that transmits to the user terminal first screen information indicating a screen on which the user selects a utilization function from the plurality of applications, the utilization function being an application that is displayed on a home screen that is displayed after authentication of the user and that includes one or more of the processes; a scope determination unit that determines, for each external service, a scope required for the process included in the use function displayed on the home screen in response to an operation by the user on the screen; a second authentication unit that requests authorization of the scope from the external service; a second screen providing unit that transmits second screen information indicating the home screen that displays the use function to the user terminal; Equipped with The user terminal displaying the screen on a display unit based on the first screen information; displaying the home screen on the display unit based on the second screen information; the scope determination unit, when an including scope indicating a scope included in one of a plurality of scopes required for the processing is set to the scope in question, and the plurality of scopes includes the including scope, determines the difference between the sum of the plurality of scopes and the including scope as the scope for each of the external services; An information processing system comprising:
2. 2. The information processing system according to claim 1, the information processing device further includes an authorization token information storage unit that stores an authorization token issued by the external service in response to the authorization request for the scope in association with the function to be used; Information processing system.
3. 3. The information processing system according to claim 2, The function to be used is one or more applications selected from a package that groups the applications. Information processing system.
4. 4. The information processing system according to claim 3, The package is associated with a predetermined tenant; The use function is selected from the package for each tenant. Information processing system.
5. 5. The information processing system according to claim 4, The use function is selected from the package for each user belonging to the tenant. Information processing system.
6. 6. The information processing system according to claim 5, The tenant is associated with a plurality of the packages, The utilization functions are selected from one or more different packages. Information processing system.
7. An information processing device that executes a plurality of applications that perform processing in cooperation with an external service, a first authentication unit that authenticates a user based on authentication information received from the user terminal; a first screen providing unit that transmits to the user terminal first screen information indicating a screen on which the user selects a utilization function from the plurality of applications, the utilization function being an application that is displayed on a home screen that is displayed after authentication of the user and that includes one or more of the processes; a scope determination unit that determines, for each external service, a scope required for the process included in the use function displayed on the home screen in response to an operation by the user on the screen; a second authentication unit that requests authorization of the scope from the external service; a second screen providing unit that transmits second screen information indicating the home screen that displays the use function to the user terminal; Equipped with the scope determination unit, when an including scope indicating a scope included in one of a plurality of scopes required for the processing is set to the scope in question, and the plurality of scopes includes the including scope, determines the difference between the sum of the plurality of scopes and the including scope as the scope for each of the external services; Information processing device.
8. 1. An information processing method in which a computer executes a plurality of applications that perform processing in cooperation with an external service, comprising: a step of a first authentication unit authenticating the user based on authentication information received from the user terminal; a first screen providing unit transmitting, to the user terminal, first screen information indicating a screen on which the user selects a utilization function from the plurality of applications, the utilization function being an application to be displayed on a home screen that is displayed after authentication of the user, the application including one or more of the processes; a step of causing the user terminal to display the screen on a display unit based on the first screen information; a scope determination unit determining, for each of the external services, a scope required for the process included in the available function displayed on the home screen in response to an operation by the user on the screen; a step in which a second authentication unit requests authorization of the scope from the external service; a second screen providing unit transmitting second screen information indicating the home screen displaying the use function to the user terminal; a step of causing the user terminal to display the home screen on the display unit based on the second screen information; and the scope determination unit, when an including scope indicating a scope included in one of a plurality of scopes required for the processing is set to the scope in question, and the plurality of scopes includes the including scope, determines the difference between the sum of the plurality of scopes and the including scope as the scope for each of the external services; Information processing methods.
9. A computer that runs multiple applications that perform processing in conjunction with external services. a first authentication unit that authenticates a user based on authentication information received from the user terminal; a first screen providing unit that transmits to the user terminal first screen information indicating a screen on which the user selects a utilization function from the plurality of applications, the utilization function being an application that is displayed on a home screen that is displayed after authentication of the user and that includes one or more of the processes; a scope determination unit that determines, for each external service, a scope required for the process included in the use function displayed on the home screen in response to an operation by the user on the screen; a second authentication unit that requests authorization of the scope from the external service; and a second screen providing unit that transmits second screen information indicating the home screen that displays the use function to the user terminal; It functions as the scope determination unit, when an including scope indicating a scope included in one of a plurality of scopes required for the processing is set to the scope in question, and the plurality of scopes includes the including scope, determines the difference between the sum of the plurality of scopes and the including scope as the scope for each of the external services; program.
Citation Information
Patent Citations
Information processing system, information processing apparatus, and information processing method
JP2017059219A
Information processing system, information processing apparatus, and information processing method
JP2019061383A
Computer system, log-in screen display method, and program
JP2021043902A
At least one information processor and information processing system and roll setting method
JP2021076986A
Service providing system, information processing system, information processing method, and program
JP2021108443A