Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7809930B2 - Information processing system, information processing device, information processing method and program - Google Patents
[go: Go Back, main page]

JP7809930B2 - Information processing system, information processing device, information processing method and program - Google Patents

Information processing system, information processing device, information processing method and program

Info

Publication number
JP7809930B2
JP7809930B2 JP2021143698A JP2021143698A JP7809930B2 JP 7809930 B2 JP7809930 B2 JP 7809930B2 JP 2021143698 A JP2021143698 A JP 2021143698A JP 2021143698 A JP2021143698 A JP 2021143698A JP 7809930 B2 JP7809930 B2 JP 7809930B2
Authority
JP
Japan
Prior art keywords
scope
screen
information
unit
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021143698A
Other languages
Japanese (ja)
Other versions
JP2023037139A (en
Inventor
祐亮 吉岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2021143698A priority Critical patent/JP7809930B2/en
Publication of JP2023037139A publication Critical patent/JP2023037139A/en
Application granted granted Critical
Publication of JP7809930B2 publication Critical patent/JP7809930B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Facsimiles In General (AREA)

Description

この発明は、情報処理システム、情報処理装置、情報処理方法及びプログラムに関する。 This invention relates to an information processing system, an information processing device, an information processing method, and a program.

近年、クラウドコンピューティング等により多種多様な外部サービスが提供されるようになった。外部サービスと連携して処理を行う際に用いられる認証方法には、OAuthと呼ばれる技術が知られている。OAuthでは、外部サービスと連携して処理を行うアプリケーションに対して、スコープとして設定された範囲内で当該外部サービスのリソースの利用を認可する。 In recent years, a wide variety of external services have become available through cloud computing and other technologies. A technology known as OAuth is a well-known authentication method used when performing processing in conjunction with external services. With OAuth, applications performing processing in conjunction with external services are authorized to use the resources of those external services within a set scope.

特許文献1には、外部サービスと連携した処理を行うアプリケーションに対して適切なスコープを設定する情報処理システムが開示されている。 Patent Document 1 discloses an information processing system that sets an appropriate scope for an application that performs processing in conjunction with an external service.

しかしながら、外部サービスと連携した処理を行う従来の情報処理システムでは、複数のアプリケーションをグループ化したパッケージを導入する場合、当該パッケージに含まれる一部のアプリケーションを利用する場合でも、当該パッケージに含まれるすべてのアプリケーションについて必要とされるすべてのスコープを認可する必要がある、という課題がある。 However, in conventional information processing systems that perform processing in conjunction with external services, when introducing a package that groups multiple applications, there is an issue in that even if only some of the applications in the package are used, it is necessary to authorize all of the required scopes for all of the applications included in the package.

この発明の一実施形態は、上記のような技術的課題に鑑みて、複数のアプリケーションから選択された利用機能に対して適切なスコープを設定することを目的とする。 In consideration of the technical challenges described above, one embodiment of the present invention aims to set an appropriate scope for a function selected from multiple applications.

上記の課題を解決するために、この発明の一実施形態の情報処理システムは、端末装置と情報処理装置とを含み、外部サービスと連携した処理を行う複数のアプリケーションを実行する情報処理システムであって、情報処理装置は、複数のアプリケーションから1以上の処理を含む利用機能をユーザが選択する画面を示す画面情報をユーザ端末に送信する画面提供部と、画面に対するユーザの操作に応じて、利用機能に含まれる処理で必要とされるスコープを外部サービス毎に決定するスコープ判断部と、外部サービスへスコープの認可を要求する認証部と、を備え、ユーザ端末は、画面情報に基づいて、画面を表示部に表示させるブラウザと、を備えることを特徴とする。 To solve the above problems, an information processing system according to one embodiment of the present invention includes a terminal device and an information processing device, and executes multiple applications that perform processing in conjunction with external services. The information processing device includes a screen providing unit that transmits screen information to the user terminal, which displays a screen on which the user selects a function to be used, including one or more processes, from the multiple applications; a scope determining unit that determines, for each external service, the scope required for the process included in the function to be used, in accordance with the user's operation on the screen; and an authentication unit that requests scope authorization from the external service. The user terminal includes a browser that displays the screen on a display unit based on the screen information.

この発明の一実施形態によれば、複数のアプリケーションから選択された利用機能に対して適切なスコープを設定することができる。 According to one embodiment of the present invention, it is possible to set an appropriate scope for the functions to be used selected from multiple applications.

一実施形態における情報処理システムの全体構成を例示する図である。1 is a diagram illustrating an example of the overall configuration of an information processing system according to an embodiment; 一実施形態における情報処理装置のハードウェア構成を例示する図である。FIG. 1 is a diagram illustrating an example of a hardware configuration of an information processing device according to an embodiment. 一実施形態における画像形成装置のハードウェア構成を例示する図である。FIG. 1 is a diagram illustrating an example of a hardware configuration of an image forming apparatus according to an embodiment. 一実施形態における情報処理システムの機能構成を例示する図である。FIG. 1 is a diagram illustrating an example of a functional configuration of an information processing system according to an embodiment. 一実施形態におけるアプリ情報テーブルの一例を示す図である。FIG. 10 is a diagram illustrating an example of an application information table according to an embodiment. 一実施形態におけるアプリデータ情報テーブルの一例を示す図である。FIG. 10 is a diagram illustrating an example of an application data information table according to an embodiment. 一実施形態におけるパッケージ情報テーブルの一例を示す図である。FIG. 10 is a diagram illustrating an example of a package information table according to an embodiment. 一実施形態におけるアプリインスタンス情報テーブルの一例を示す図である。FIG. 10 is a diagram illustrating an example of an application instance information table according to an embodiment. 一実施形態におけるユーザ情報テーブルの一例を示す図である。FIG. 10 is a diagram illustrating an example of a user information table according to an embodiment. 一実施形態におけるOAuth登録情報テーブルの一例を示す図である。FIG. 10 is a diagram illustrating an example of an OAuth registration information table according to an embodiment. 一実施形態における認可トークン情報テーブルの一例を示す図である。FIG. 10 illustrates an example of a permission token information table according to an embodiment. 一実施形態におけるロジック処理部の機能構成を例示する図である。FIG. 2 is a diagram illustrating an example of the functional configuration of a logic processing unit according to an embodiment. 一実施形態におけるコンポーネント情報テーブルの一例を示す図である。FIG. 10 is a diagram illustrating an example of a component information table according to an embodiment. 一実施形態におけるアプリ追加処理の手順を例示する図である。FIG. 10 is a diagram illustrating an example of a procedure for an application addition process according to an embodiment. 一実施形態におけるアプリ追加画面(選択時)の一例を示す図である。FIG. 10 is a diagram illustrating an example of an application addition screen (when selected) according to an embodiment. 一実施形態におけるアプリ追加画面(設定時)の一例を示す図である。FIG. 10 is a diagram illustrating an example of an application addition screen (at the time of setting) according to an embodiment. 一実施形態におけるホーム画面の一例を示す図である。FIG. 10 is a diagram illustrating an example of a home screen according to an embodiment. 一実施形態における認証連携処理の手順を例示する図である。FIG. 10 is a diagram illustrating an example of a procedure for authentication federation processing according to an embodiment. 一実施形態におけるスコープの決定の一例を示す図である。FIG. 10 is a diagram illustrating an example of determining a scope according to an embodiment. 一実施形態における認証連携画面(連携前)の一例を示す図である。FIG. 10 is a diagram illustrating an example of an authentication collaboration screen (before collaboration) according to an embodiment. 一実施形態における認証画面の一例を示す図である。FIG. 10 is a diagram illustrating an example of an authentication screen according to an embodiment. 一実施形態における確認画面の一例を示す図である。FIG. 10 is a diagram illustrating an example of a confirmation screen according to an embodiment. 一実施形態における認証連携画面(連携後)の一例を示す図である。FIG. 10 is a diagram illustrating an example of an authentication collaboration screen (after collaboration) according to an embodiment.

以下、図面を参照しながら、この発明の実施の形態について、詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。 Embodiments of the present invention will be described in detail below with reference to the drawings. Note that components having the same functions in the drawings will be assigned the same numbers, and duplicate explanations will be omitted.

[実施形態]
<情報処理システム1の全体構成>
まず、本実施形態における情報処理システム1の構成について、図1を参照しながら説明する。図1は、本実施形態における情報処理システムの一例の構成を示す図である。
[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.

本実施形態における情報処理システム1は、サービス提供システム10と、機器20と、端末装置30と、外部サービスシステム40とを含み、インターネット等の広域的な通信ネットワークN1を介して通信可能に接続されている。 In this embodiment, the information processing system 1 includes a service providing system 10, a device 20, a terminal device 30, and an external service system 40, which are communicatively connected via a wide-area communication network N1 such as the Internet.

サービス提供システム10は、一台以上の情報処理装置で実現され、通信ネットワークN1を介して、クラウドサービス等の外部サービスシステム40と連携した一連の処理により実現される各種のサービスを提供する。なお、以降では、サービス提供システム10が提供するサービスを「アプリケーション」とも表す。また、サービスを実現する一連の処理を「処理フロー」とも表す。 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. Hereinafter, the services provided by the service providing system 10 will also be referred to as "applications." The series of processes that realize the services will also be referred to as "processing flows."

本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、これに限られない。本実施形態は、例えば、ASP(Application Service Provider)によって提供されるサービスやWebサービス等のネットワークを介して提供される各種の外部サービスに関して適用されてもよい。 In this embodiment, a cloud service is used as a specific example of an external service, but this is not limiting. This embodiment may also be applied to various external services provided via a network, such as services provided by an ASP (Application Service Provider) or web services.

機器20は、ユーザが使用する各種の電子機器である。端末装置30は、ユーザが使用する情報処理装置である。ユーザは、機器20又は端末装置30を用いて、サービス提供システム10が提供する各種のサービスを利用することができる。なお、以降では、ユーザが使用する機器20及び端末装置30を総称して「ユーザ端末」とも表す。 Devices 20 are various electronic devices used by users. Terminal devices 30 are information processing devices used by users. Users can use devices 20 or terminal devices 30 to access various services provided by the service providing system 10. Note that hereafter, devices 20 and terminal devices 30 used by users will also be collectively referred to as "user terminals."

ユーザは、機器20を用いてサービス提供システム10が提供する各種のサービスを利用してもよいし、端末装置30を用いてサービス提供システム10が提供する各種のサービスを利用してもよい。以降では、端末装置30を用いてサービス提供システム10が提供する各種のサービスを利用する例を説明する。 A user may use the device 20 to access various services provided by the service providing system 10, or may use the terminal device 30 to access various services provided by the service providing system 10. Below, an example of using the terminal device 30 to access various services provided by the service providing system 10 will be described.

機器20の一例は、画像形成装置(プリンタ、FAX装置、MFP(Multifunction Peripheral/Product/Printer:デジタル複合機)、スキャナ装置)である。また、端末装置30の一例は、コンピュータである。 An example of a device 20 is an image forming device (printer, fax machine, MFP (Multifunction Peripheral/Product/Printer: digital multifunction device), scanner device). An example of a terminal device 30 is a computer.

なお、機器20は、通信機能を備えた装置であれば、画像形成装置に限られない。また、端末装置30は、通信機能を備えた装置であれば、コンピュータに限られない。 Note that the device 20 is not limited to an image forming device, as long as it is a device with communication capabilities. Furthermore, the terminal device 30 is not limited to a computer, as long as it is a device with communication capabilities.

すなわち、機器20及び端末装置30は、例えば、画像形成装置、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC又はデスクトップPC等であってもよい。 In other words, the device 20 and the terminal device 30 may be, for example, an image forming device, a PJ (Projector), an IWB (Interactive White Board: an electronic whiteboard with the functionality of a blackboard that allows for intercommunication), 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.

以降では、複数の機器20について、各々を区別するときは、「機器20」、「機器20」等と添え字を用いて記載する。また、複数の端末装置30について、各々を区別するときは、「端末装置30」、「端末装置30」等と添え字を用いて記載する。 Hereinafter, when distinguishing between the multiple devices 20, they will be referred to using subscripts such as "device 20 1 ", "device 20 2 ", etc. Also, when distinguishing between the multiple terminal devices 30, they will be referred to using subscripts such as "terminal device 30 1 ", "terminal device 30 2 ", etc.

外部サービスシステム40は、通信ネットワークN1を介して各種のクラウドサービスを提供するコンピュータシステムである。外部サービスシステムの一例は、ストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスである。ストレージサービスとは、外部サービスシステム40のストレージの記憶領域を貸し出すサービスである。 The external service system 40 is a computer system that provides various cloud services via the communication network N1. One example of an external service system is a cloud service called a storage service (or online storage). A storage service is a service that rents out storage space in the storage of the external service system 40.

以降では、複数の外部サービスシステム40について、各々を区別するときは、「外部サービスシステム40」、「外部サービスシステム40」等と添え字を用いて記載する。また、外部サービスシステム40により提供される外部サービスの名称を「外部サービスA」、外部サービスシステム40により提供される外部サービスの名称を「外部サービスB」等と呼ぶ。 Hereinafter, when distinguishing between the multiple external service systems 40, they will be referred to using subscripts such as "external service system 40 1 ", "external service system 40 2 ", etc. Furthermore, the name of the external service provided by external service system 40 1 will be referred to as "external service A," the name of the external service provided by external service system 40 2 will be referred to as "external service B," etc.

外部サービスシステム40は、複数台の情報処理装置によって実現されるシステムであってもよい。 The external service system 40 may be a system realized by multiple information processing devices.

図1に示す情報処理システム1の構成は一例であって、他の構成であってもよい。例えば、本実施形態における情報処理システム1には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム10により提供される各種サービスを利用してもよい。 The configuration of the information processing system 1 shown in FIG. 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.

<情報処理システム1に含まれる各装置のハードウェア構成>
≪情報処理装置のハードウェア構成≫
次に、本実施形態におけるサービス提供システム10、端末装置30、及び外部サービスシステム40が情報処理装置で実現される場合のハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態における情報処理装置の一例のハードウェア構成を示す図である。
<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.

図2に示されているように、情報処理装置は、CPU501、ROM502、RAM503、HD504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F(Interface)508、ネットワークI/F509、バスライン510、キーボード511、ポインティングデバイス512、DVD-RW(Digital Versatile Disk Rewritable)ドライブ514、メディアI/F516を備えている。 As shown in FIG. 2, the information processing device includes a CPU 501, ROM 502, RAM 503, HDD 504, HDD (Hard Disk Drive) controller 505, display 506, external device connection I/F (Interface) 508, network I/F 509, bus line 510, keyboard 511, pointing device 512, DVD-RW (Digital Versatile Disk Rewritable) drive 514, and media I/F 516.

これらのうち、CPU501は、情報処理装置全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出し又は書き込みを制御する。ディスプレイ506は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F508は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F509は、通信ネットワークN1を利用してデータ通信をするためのインターフェースである。バスライン510は、図2に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。 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 IPL. The RAM 503 is used as a work area for the CPU 501. The HDD 504 stores various data, such as programs. The HDD controller 505 controls the reading and writing of various data from the HDD 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, external devices include, for example, USB (Universal Serial Bus) memory and 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, data bus, etc. for electrically connecting the various components, such as the CPU 501, shown in FIG. 2.

また、キーボード511は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ514は、着脱可能な記録媒体の一例としてのDVD-RW513に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出し又は書き込み(記憶)を制御する。 The keyboard 511 is a type of input device equipped with multiple keys for inputting characters, numbers, various instructions, etc. The pointing device 512 is a type of input device for selecting and executing various instructions, selecting processing targets, moving the cursor, etc. The DVD-RW drive 514 controls the 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 or the like. The media I/F 516 controls the reading and writing (storage) of data from a recording medium 515, such as a flash memory.

≪画像形成装置のハードウェア構成≫
次に、本実施形態における機器20が画像形成装置である場合のハードウェア構成について、図3を参照しながら説明する。図3は、本実施形態における画像形成装置の一例のハードウェア構成を示す図である。
<Hardware configuration of image forming device>
Next, the hardware configuration of the device 20 in this embodiment when it 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.

図3に示されているように、画像形成装置は、コントローラ910、近距離通信回路920、エンジン制御部930、操作パネル940、ネットワークI/F950を備えている。 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.

これらのうち、コントローラ910は、コンピュータの主要部であるCPU901、システムメモリ(MEM-P)902、ノースブリッジ(NB)903、サウスブリッジ(SB)904、ASIC(Application Specific Integrated Circuit)906、記憶部であるローカルメモリ(MEM-C)907、HDDコントローラ908、及び、記憶部であるHD909を有し、NB903とASIC906との間をAGP(Accelerated Graphics Port)バス921で接続した構成となっている。 Of these, the controller 910 includes 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 HDD 909, which is also a storage unit, with the NB 903 and ASIC 906 connected via an AGP (Accelerated Graphics Port) bus 921.

これらのうち、CPU901は、画像形成装置の全体制御を行う制御部である。NB903は、CPU901と、MEM-P902、SB904、及びAGPバス921とを接続するためのブリッジであり、MEM-P902に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。 Of these, the CPU 901 is a control unit that performs overall control of the image forming device. The NB 903 is a bridge that connects the CPU 901 with the MEM-P 902, SB 904, and 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.

MEM-P902は、コントローラ910の各機能を実現させるプログラムやデータの格納用メモリであるROM902a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM902bとからなる。なお、RAM902bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。 MEM-P902 consists of ROM902a, which is memory for storing programs and data that realize the various functions of controller 910, and RAM902b, which is used for expanding programs and data and as drawing memory during memory printing. The programs stored in RAM902b may also be provided by being recorded in installable or executable files on a computer-readable recording medium such as a CD-ROM, CD-R, or DVD.

SB904は、NB903とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC906は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス921、PCIバス922、HDD908およびMEM-C907をそれぞれ接続するブリッジの役割を有する。このASIC906は、PCIターゲットおよびAGPマスタ、ASIC906の中核をなすアービタ(ARB)、MEM-C907を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部931及びプリンタ部932との間でPCIバス922を介したデータ転送を行うPCIユニットとからなる。なお、ASIC906には、USB(Universal Serial Bus)のインターフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインターフェースを接続するようにしてもよい。 SB904 is a bridge connecting NB903 with PCI devices and peripheral devices. ASIC906 is an integrated circuit (IC) for image processing applications that contains hardware elements for image processing and acts as a bridge connecting AGP bus 921, PCI bus 922, HDD 908, and MEM-C 907. This ASIC 906 consists of a PCI target and AGP master, an arbiter (ARB) that forms the core of ASIC 906, a memory controller that controls MEM-C 907, multiple DMACs (Direct Memory Access Controllers) that perform image data rotation using hardware logic, and a PCI unit that transfers data between scanner unit 931 and printer unit 932 via PCI bus 922. A USB (Universal Serial Bus) interface or an IEEE 1394 (Institute of Electrical and Electronics Engineers 1394) interface may also be connected to the ASIC 906.

MEM-C907は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD909は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD909は、CPU901の制御にしたがってHD909に対するデータの読出又は書込を制御する。AGPバス921は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P902に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。 MEM-C907 is local memory used as a copy image buffer and code buffer. HD909 is storage for storing image data, font data used during printing, and forms. HD909 controls the reading and writing of data from and to HD909 under the control of CPU901. AGP bus921 is a bus interface for a graphics accelerator card proposed to speed up graphics processing; direct high-throughput access to MEM-P902 enables the graphics accelerator card to operate at high speed.

また、近距離通信回路920には、近距離通信回路920aが備わっている。近距離通信回路920は、NFC、Bluetooth等の通信回路である。 The short-range communication circuit 920 also includes a short-range communication circuit 920a. The short-range communication circuit 920 is a communication circuit such as NFC or Bluetooth.

更に、エンジン制御部930は、スキャナ部931及びプリンタ部932によって構成されている。また、操作パネル940は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部940a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作パネル940bを備えている。コントローラ910は、画像形成装置全体の制御を行い、例えば、描画、通信、操作パネル940からの入力等を制御する。スキャナ部931又はプリンタ部932には、誤差拡散やガンマ変換などの画像処理部分が含まれている。 The engine control unit 930 is further composed 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 settings and selection screens and accepts input from the operator, and an operation panel 940b that consists of a numeric keypad that accepts settings for image formation conditions such as density settings and a start key that accepts a copy start command. The controller 910 controls the entire image forming apparatus, and controls, for example, drawing, communication, and input from the operation panel 940. The scanner unit 931 or printer unit 932 includes image processing functions such as error diffusion and gamma conversion.

なお、画像形成装置は、操作パネル940のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、およびファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。 The image forming device can be used to sequentially switch between 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 device enters document box mode; when the copy function is selected, the device enters copy mode; when the printer function is selected, the device enters printer mode; and when the facsimile mode is selected, the device enters facsimile mode.

また、ネットワークI/F950は、通信ネットワークN1を利用してデータ通信をするためのインターフェースである。近距離通信回路920及びネットワークI/F950は、PCIバス922を介して、ASIC906に電気的に接続されている。 The network I/F 950 is an interface for 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 the PCI bus 922.

<情報処理システム1に含まれる各装置の機能構成>
次に、本実施形態における情報処理システム1の機能構成について、図4を参照しながら説明する。図4は、本実施形態における情報処理システム1の一例の機能構成を示す図である。
<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 an example of the functional configuration of the information processing system 1 in this embodiment.

図4は、ユーザが端末装置30を用いてサービス提供システム10が提供する各種のサービスを利用する場合の例である。ユーザが機器20を用いてサービス提供システム10が提供する各種のサービスを利用する場合における機器20の機能構成は、図4に示した端末装置30の機能構成と同様である。 Figure 4 shows an example in which a user uses a terminal device 30 to use various services provided by the service providing system 10. When a user uses a device 20 to use various services provided by the service providing system 10, the functional configuration of the device 20 is the same as the functional configuration of the terminal device 30 shown in Figure 4.

≪サービス提供システム10の機能構成≫
図4に示されるように、本実施形態におけるサービス提供システム10は、サービス処理部110と、画面提供部120と、認証部130と、ドキュメントサービス部140と、外部サービス連携部150とを備える。これらの各部は、サービス提供システム10にインストールされた1以上のプログラムが、CPU501に実行させる処理により実現される。
<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 linkage 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.

また、サービス提供システム10は、OAuth登録情報記憶部160と、認可トークン情報記憶部170と、アプリ情報記憶部180とを備える。これらの各記憶部は、HD504を用いて実現可能である。なお、これらの各記憶部は、サービス提供システム10とネットワークを介して接続される記憶装置を用いて実現されてもよい。 The service providing system 10 also includes an OAuth registration information storage unit 160, an authorization token information storage unit 170, and an app information storage unit 180. Each of these storage units can be realized using HDD 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.

サービス処理部110は、サービス提供システム10が提供する各種のサービスを実現するための処理を行う。サービス処理部110は、アプリ管理部111と、ロジック処理部112と、データI/F部113と、スコープ判断部114と、アプリデータ管理部115とを備える。 The service processing unit 110 performs processing to realize the 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.

アプリ管理部111は、アプリ情報記憶部180に記憶されているアプリ情報1000を管理する。アプリ管理部111は、ブラウザ210からの要求に応じて、アプリ情報1000に含まれる画面定義1100に基づくアプリ画面を返信する。 The app management unit 111 manages the app information 1000 stored in the app information storage unit 180. In response to a request from the browser 210, the app management unit 111 returns an app screen based on the screen definition 1100 included in the app information 1000.

これにより、端末装置30のブラウザ210には、サービス提供システム10により提供されるサービスを利用するためのアプリ画面が表示される。なお、アプリ情報1000には、上述したアプリ画面をブラウザ210に表示させるための画面定義1100と、当該アプリ画面が利用するサービスを実現する一連の処理を示す処理内容1200とが含まれる。 As a result, an app screen for using the service provided by the service providing system 10 is displayed on the browser 210 of the terminal device 30. The app information 1000 includes a screen definition 1100 for displaying the above-mentioned app screen on the browser 210, and processing content 1200 that indicates a series of processes for realizing the service used by the app screen.

また、アプリ管理部111は、ロジック処理部112からの要求に応じて、アプリ情報1000に含まれる処理内容1200を返信する。処理内容1200は、上述したように、サービス提供システム10により提供されるサービスを実現する一連の処理である。 In addition, in response to a request from the logic processing unit 112, the application management unit 111 replies with the 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.

さらに、アプリ管理部111は、アプリ情報1000により実現されるアプリケーションに関するアプリ情報テーブル1110を利用する。ここで、アプリ情報テーブル1110の詳細について、図5を参照しながら説明する。図5は、アプリ情報テーブル1110の一例を示す図である。 Furthermore, the app management unit 111 uses an app information table 1110 related to applications realized by the app information 1000. Details of the app information table 1110 will now be explained with reference to Figure 5. Figure 5 is a diagram showing an example of the app information table 1110.

図5に示すアプリ情報テーブル1110に格納されるアプリ情報は、データ項目として、アプリIDと、アプリ名と、フロー名と、フロー情報と、パラメータ定義とを有する。アプリIDは、当該アプリケーションを識別する識別情報である。アプリ名は、当該アプリケーションを表す名称である。フロー名は、当該アプリケーションに含まれる処理フローを表す名称である。フロー情報は、当該処理フローで実行されるコンポーネントのオペレーションとそれらが実行される順番を定義する情報である。パラメータ定義は、当該処理フローを実行する際に用いるパラメータを定義する情報である。すなわち、アプリ情報は、アプリケーション毎に、処理フローとパラメータの定義とが関連付けられた情報である。 The app information stored in the app information table 1110 shown in Figure 5 has the following data items: app ID, app name, flow name, flow information, and parameter definition. The app ID is identification information that identifies the application. The app 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 component operations 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 app information is information that associates processing flows and parameter definitions for each application.

例えば、アプリIDが「app001」であるアプリケーション「Scan to 外部サービスA」には処理フロー「uploadA」が関連付けられている。処理フロー「uploadA」にはフロー情報「{uploadFile: ...}」とパラメータ定義「{parameters: …}」とが関連付けられている。これは、アプリIDが「app001」であるアプリケーションは、オペレーション「uploadFile」を含む処理フロー「uploadA」を実行し、その際に用いるパラメータは「{parameters: …}」で定義されていることを示している。 For example, the application "Scan to External Service A" with the app ID "app001" is associated with the process flow "uploadA." The process flow "uploadA" is associated with flow information "{uploadFile: ...}" and parameter definition "{parameters: ...}." This indicates that the application with the app ID "app001" executes the process flow "uploadA" which includes the operation "uploadFile," and the parameters used in this process are defined in "{parameters: ...}."

図4に戻って説明する。ロジック処理部112は、ブラウザ210からの要求に応じて、アプリ管理部111を介して、アプリ情報1000に含まれる処理内容1200を取得する。そして、ロジック処理部112は、アプリ管理部111を介して取得した処理内容1200に基づいて、認証部130、ドキュメントサービス部140、又は外部サービス連携部150等に対して処理の実行を要求する。 Referring back to Figure 4, the logic processing unit 112 acquires the processing content 1200 included in the application information 1000 via the application management unit 111 in response to a request from the browser 210. Then, based on the processing content 1200 acquired via the application management unit 111, the logic processing unit 112 requests the authentication unit 130, document service unit 140, external service collaboration unit 150, or the like to execute processing.

これにより、サービス提供システム10により提供される各種のサービスが実現される。なお、ロジック処理部112の詳細については後述する。 This enables the various services provided by the service providing system 10. Details of the logic processing unit 112 will be described later.

データI/F部113は、ブラウザ210からの要求に応じて、外部サービス連携部150のデータ処理部152に対して、データ処理に関する所定の要求(例えば、フォルダ一覧の取得要求等)を行う。 In response to a request from the browser 210, the data I/F unit 113 makes a specific request regarding data processing (e.g., a request to obtain a folder list) to the data processing unit 152 of the external service collaboration unit 150.

スコープ判断部114は、外部サービスシステム40に対する認可のスコープを決定する。すなわち、スコープ判断部114は、後述する認証部130により取得される認可トークンのスコープを決定する。なお、スコープとは、アプリ情報1000により実現されるアプリケーションにおいて、当該アプリケーションが外部サービスシステム40のリソースを利用可能な範囲を特定する情報である。 The scope determination unit 114 determines the scope of authorization for the external service system 40. In other words, the scope determination unit 114 determines the scope of the authorization token obtained 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.

ここで、スコープ判断部114は、アプリケーションに含まれる処理フローに基づいて、適切なスコープを決定する。したがって、本実施形態におけるサービス提供システム10では、例えば、ユーザは、認可トークンのスコープを明示的に設定する必要がない。 Here, the scope determination unit 114 determines the 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.

アプリデータ管理部115は、アプリ情報1000により実現されるアプリケーションに関するアプリデータ情報、複数のアプリケーションをグループ化したパッケージに関するパッケージ情報、及びホームに追加されたアプリケーションに関するアプリインスタンス情報を管理する。 The application data management unit 115 manages application data information related to applications realized by the application information 1000, package information related to packages that group multiple applications, and application instance information related to applications added to the home.

パッケージとは、複数のアプリケーションをグループ化したものである。情報処理システム1の管理者等がテナントへパッケージを導入することで、当該テナントに属するユーザは当該パッケージに含まれるアプリケーションを利用可能となる。 A package is a group of multiple applications. When an administrator of information processing system 1 or the like installs a package into a tenant, users belonging to that tenant can use the applications included in that package.

なお、テナントとは、サービス提供システム10のリソースを複数のアカウントで共有するための仕組みである。あるアカウントで作成されたユーザは、そのアカウントに対応するテナントに割り当てられたリソースのみが利用可能となり、異なるテナントに割り当てられたリソースへはアクセスできない。したがって、あるテナントにパッケージを導入すると、そのテナントに属するユーザは、そのパッケージに含まれるアプリケーションを利用できるが、他のテナントに属するユーザは、そのパッケージに含まれるアプリケーションを利用することができない。 Note that a tenant is a mechanism for sharing resources in the service providing system 10 among multiple accounts. A user created with a certain account can only use resources assigned to the tenant corresponding to that account, and cannot access resources assigned to other tenants. Therefore, when a package is introduced to a certain tenant, users belonging to that tenant can use the applications included in that package, but users belonging to other tenants cannot use the applications included in that package.

ホームとは、ユーザがサービス提供システム10へログインした後に表示される画面領域である。ホームにアプリケーションを追加することで、ユーザが利用するアプリケーションを少ない操作で起動することが可能となる。 Home is the screen area that is displayed after a user logs in to the service providing system 10. By adding applications to Home, users can launch the applications they use with fewer operations.

テナントの管理者等が当該テナントに導入されているパッケージから1以上のアプリケーションを選択してホームに追加することで、当該アプリケーションに対応するアプリインスタンスが生成される。当該アプリインスタンスは、当該テナントに関連付けられ、当該テナントに属するすべてのユーザに利用可能となる。なお、以降では、ホームに追加されたアプリケーションを「利用機能」とも表す。 When a tenant administrator or other person selects one or more applications from the packages installed in that tenant and adds them to Home, an app instance corresponding to the applications is generated. The app instance is associated with the tenant and becomes available to all users belonging to that tenant. Note that hereafter, applications added to Home will also be referred to as "used functions."

アプリデータ情報は、アプリデータ管理部115が保持するアプリデータ情報テーブル1120に格納される。アプリデータ情報テーブル1120の詳細について、図6を参照しながら説明する。図6は、アプリデータ情報テーブル1120の一例を示す図である。 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 explained with reference to Figure 6. Figure 6 is a diagram showing an example of the application data information table 1120.

図6に示すアプリデータ情報テーブル1120に格納されるアプリデータ情報は、データ項目として、アプリIDと、アプリ名と、フロー名と、フロー情報と、パラメータ候補とを有する。パラメータ候補は、当該処理フローを実行する際に用いるパラメータに設定できる値の選択肢を示す情報である。したがって、アプリデータ情報は、アプリケーション毎に、処理フローとパラメータの候補とが関連付けられた情報である。 The app data information stored in the app data information table 1120 shown in FIG. 6 has the following data items: app ID, app name, flow name, flow information, and parameter candidates. Parameter candidates are information that indicates options for values that can be set for parameters used when executing the processing flow. Therefore, the app data information associates processing flows and parameter candidates for each application.

例えば、アプリIDが「app001」であるアプリケーション「Scan to 外部サービスA」には処理フロー「uploadA」が関連付けられている。処理フロー「uploadA」にはフロー情報「{uploadFile: ...}」とパラメータ候補「{parameters: …}」とが関連付けられている。これは、アプリIDが「app001」であるアプリケーションは、オペレーション「uploadFile」を含む処理フロー「uploadA」を実行し、その際に用いられるパラメータは「{parameters: …}」から選択できることを示している。 For example, the application "Scan to External Service A" with the app ID "app001" is associated with the process flow "uploadA." The process flow "uploadA" is associated with flow information "{uploadFile: ...}" and parameter candidates "{parameters: ...}." This indicates that the application with the app ID "app001" executes the process flow "uploadA" which includes the operation "uploadFile," and the parameters used at that time can be selected from "{parameters: ...}."

アプリデータ情報は、アプリ情報のサブセットであり、アプリ情報がアプリ情報テーブル1110に追加されると同時に、対応するアプリデータ情報がアプリデータ情報テーブル1120に追加される。アプリ情報は、主にサービス提供システム10がサービスを提供する際に用いられるが、アプリデータ情報は、主にサービス提供システム10がサービスを提供するために表示する各画面を生成するために用いられる。 App data information is a subset of app information, and when app information is added to app information table 1110, the corresponding app data information is added to app data information table 1120 at the same time. App information is mainly used by the service providing system 10 when providing a service, and app data information is mainly used to generate each screen that the service providing system 10 displays to provide the service.

パッケージ情報は、アプリデータ管理部115が保持するパッケージ情報テーブル1130に格納される。パッケージ情報テーブル1130の詳細について、図7を参照しながら説明する。図7は、パッケージ情報テーブル1130の一例を示す図である。 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 explained with reference to Figure 7. Figure 7 shows an example of the package information table 1130.

図7に示すパッケージ情報テーブル1130に格納されるパッケージ情報は、データ項目として、パッケージIDと、パッケージ名と、アプリIDとを有する。パッケージIDは、当該パッケージを識別する識別情報である。パッケージ名は、当該パッケージを表す名称である。したがって、パッケージ情報は、パッケージ毎に、当該パッケージに含まれるアプリケーションが関連付けられた情報である。 The package information stored in the package information table 1130 shown in Figure 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 the applications included in each package with each package.

例えば、パッケージIDが「pkg001」であるパッケージ「サービスAパッケージ」には、アプリIDが「app001」「app002」「app003」であるアプリケーション「Scan to 外部サービスA」「Print from 外部サービスA」「ファイル削除 from 外部サービスA」が含まれることを示している。 For example, this shows that the package "Service A Package" with package ID "pkg001" includes the applications "Scan to External Service A," "Print from External Service A," and "Delete File from External Service A," with app IDs "app001," "app002," and "app003."

アプリインスタンス情報は、アプリデータ管理部115が保持するアプリインスタンス情報テーブル1140に格納される。アプリインスタンス情報テーブル1140の詳細について、図8を参照しながら説明する。図8は、アプリインスタンス情報テーブル1140の一例を示す図である。 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 Figure 8. Figure 8 is a diagram showing an example of the application instance information table 1140.

図8に示すアプリインスタンス情報テーブル1140に格納されるアプリインスタンス情報は、データ項目として、インスタンスIDと、テナントIDと、アプリIDと、パラメータ設定とを有する。インスタンスIDは、当該アプリインスタンスを識別する識別情報である。パラメータ設定は、当該アプリインスタンスを実行する際に用いるパラメータの設定値を示す情報である。したがって、アプリインスタンス情報は、アプリインスタンス毎に、テナントとアプリケーションと設定されたパラメータとが関連付けられた情報である。 The application instance information stored in the application instance information table 1140 shown in FIG. 8 has the following data items: instance ID, tenant ID, 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 associates the tenant, application, and set parameters for each application instance.

例えば、インスタンスIDが「ins001」であるアプリインスタンスは、テナント「tenantA」においてアプリIDが「app002」であるアプリケーション「Print from 外部サービスA」をホームに追加したことで生成されたものであり、実行する際にパラメータ「{parameters: …}」を用いることを示している。 For example, the app instance with instance ID "ins001" was created by adding the application "Print from External Service A" with app ID "app002" to the home page of tenant "tenantA," and indicates that the parameter "{parameters: ...}" is used when executing.

図4に戻って説明する。画面提供部120は、ブラウザ210からの要求に応じて、ブラウザ210へホーム画面121、アプリ追加画面122、及び認証連携画面123を示す画面情報を提供(送信)する。 Referring back to Figure 4, the screen providing unit 120 provides (transmits) screen information indicating a home screen 121, an app addition screen 122, and an authentication linkage screen 123 to the browser 210 in response to a request from the browser 210.

なお、画面提供部120が提供する各画面情報は、例えば、HTML(HyperText Markup Language)等で記述された画面情報であり、JavaScript(登録商標)等で記述されたアプリケーションを含んでもよい。ホーム画面121、アプリ追加画面122、及び認証連携画面123を示す画面情報がブラウザ210上で実行されることにより、ブラウザ210が備えるホーム表示部211、機能選択部212、及び認可処理部213が実現される。 The 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 applications written in JavaScript (registered trademark) or the like. The screen information showing the home screen 121, app addition screen 122, and authentication linkage screen 123 is executed on the browser 210, thereby realizing the home display unit 211, function selection unit 212, and authorization processing unit 213 provided in the browser 210.

認証部130は、認可処理部213からの要求に応じて、OAuth登録情報記憶部160からOAuth登録情報を取得する。なお、OAuth登録情報とは、例えば、外部サービスシステム40における認可サーバURL等であり、情報処理システム1の管理者等により外部サービスシステム40毎に設定された情報である。OAuth登録情報の詳細については後述する。 In response to a request from the authorization processing unit 213, the authentication unit 130 obtains OAuth registration information from the OAuth registration information storage unit 160. Note that the OAuth registration information is, for example, the 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, etc. Details of the OAuth registration information will be described later.

また、認証部130は、認可処理部213からの要求に応じて、外部サービスシステム40から認可トークンを取得する。そして、認証部130は、取得した認可トークンを認可トークン情報記憶部170に保存する。認可トークンの詳細については後述する。 In addition, the authentication unit 130 acquires an authorization token from the external service system 40 in response to a request from the authorization processing unit 213. The authentication unit 130 then stores the acquired authorization token in the authorization token information storage unit 170. Details of the authorization token will be described later.

これにより、本実施形態におけるサービス提供システム10では、スコープ判断部114により決定されたスコープの認可トークンが保存される。このため、本実施形態におけるサービス提供システム10では、保存された認可トークンを用いて、外部サービスシステム40と連携した一連の処理により実現されるサービスを提供することができる。 As a result, in the service providing system 10 of this embodiment, the authorization token for the scope determined by the scope determination unit 114 is stored. Therefore, in the service providing system 10 of this embodiment, the stored authorization token can be used to provide a service realized by a series of processes in cooperation with the external service system 40.

さらに、認証部130は、ブラウザ210からの要求に応じて、ユーザが入力した認証情報に基づいて当該ユーザの認証を行う。本実施形態の認証部130は、サービス提供システム10のユーザに関するユーザ情報を保持する。 Furthermore, the authentication unit 130 authenticates the user based on the authentication information entered by the user in response to a request from the browser 210. In this embodiment, the authentication unit 130 stores user information related to users of the service providing system 10.

ユーザ情報は、ユーザ情報テーブル1300に格納される。ここで、ユーザ情報テーブル1300の詳細について、図9を参照しながら説明する。図9は、ユーザ情報テーブル1300の一例を示す図である。 User information is stored in the user information table 1300. Details of the user information table 1300 will now be explained with reference to Figure 9. Figure 9 shows an example of the user information table 1300.

図9に示すユーザ情報テーブル1300に格納されるユーザ情報は、データ項目として、ユーザIDと、ユーザ名と、テナントIDとを有する。ユーザIDは、サービス提供システム10のユーザを識別する識別情報である。ユーザ名は、当該ユーザを表す名称である。したがって、ユーザ情報は、ユーザ毎に、当該ユーザが属するテナントが関連付けられた情報である。 The user information stored in the user information table 1300 shown in FIG. 9 has the following data items: user ID, user name, and 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 each user with the tenant to which the user belongs.

図4に戻って説明する。ドキュメントサービス部140は、サービス提供システム10により提供されるサービスを実現するための一連の処理に含まれる一の処理を実現するプログラム(モジュール)群である。ドキュメントサービス部140には、例えば、電子ファイルに対してバーコード認識処理を実行するバーコード認識部141又は電子ファイルをPDF(Portable Document Format)形式に変換するPDF変換部142等が含まれる。 Referring back to Figure 4, the document service unit 140 is a group of programs (modules) that implement one process included in a series of processes for implementing the services provided by the service providing system 10. The document service unit 140 includes, for example, a barcode recognition unit 141 that performs barcode recognition processing on electronic files, or a PDF conversion unit 142 that converts electronic files into PDF (Portable Document Format) format.

なお、ドキュメントサービス部140は、これら以外にも、例えば、電子ファイルに対してOCR(Optical Character Recognition)処理を実行するためのプログラム、電子ファイルの圧縮又は解凍するためのプログラム、言語の翻訳処理を行うためのプログラム等の各種のプログラムが含まれていてもよい。 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.

外部サービス連携部150は、ロジック処理部112及びデータI/F部113からの要求に応じて、外部サービスシステム40に対して、各種の処理の実行を要求する。 The external service collaboration unit 150 requests the external service system 40 to execute various processes in response to requests from the logic processing unit 112 and the data I/F unit 113.

ここで、本実施形態におけるサービス提供システム10は、外部サービスシステム40毎に、外部サービス連携部150を備える。すなわち、本実施形態におけるサービス提供システム10は、外部サービスシステム40に対して処理の実行を要求するための外部サービス連携部150を備える。同様に、本実施形態におけるサービス提供システム10は、外部サービスシステム40に対して処理の実行を要求するための外部サービス連携部150等を備える。 Here, the service providing system 10 in this embodiment includes an external service cooperation unit 150 for each external service system 40. That is, the service providing system 10 in this embodiment includes an external service cooperation unit 150-1 for requesting the external service system 40-1 to execute a process. Similarly, the service providing system 10 in this embodiment includes an external service cooperation unit 150-2 for requesting the external service system 40-2 to execute a process.

このように、本実施形態におけるサービス提供システム10は、連携して処理を行う外部サービスシステム40毎に、それぞれ対応する外部サービス連携部150を備える。なお、以降では、複数の外部サービス連携部150について、各々を区別するときは、上記のように「外部サービス連携部150」、「外部サービス連携部150」等と添え字を用いて表す。 In this way, the service providing system 10 in this embodiment includes a corresponding external service cooperation unit 150 for each external service system 40 that performs processing in cooperation with the external service system 40. Note that hereinafter, when distinguishing between the multiple external service cooperation units 150, they will be referred to using subscripts such as "external service cooperation unit 150 1 ,""external service cooperation unit 150 2, " etc., as described above.

外部サービス連携部150は、ロジック処理部112からの要求を受け付けるファイル処理部151と、データI/F部113からの要求を受け付けるデータ処理部152とを備える。 The external service collaboration unit 150 includes a file processing unit 151 that accepts requests from the logic processing unit 112, and a data processing unit 152 that accepts requests from the data I/F unit 113.

ファイル処理部151は、外部サービスシステム40に保存されている電子ファイルに対する操作(例えば、取得、保存、編集等)を行うためのAPI(Application Programming Interface)が定義されたインターフェースを有する。 The file processing unit 151 has an interface that defines an API (Application Programming Interface) for performing operations (e.g., acquisition, saving, editing, etc.) on electronic files stored in the external service system 40.

データ処理部152は、外部サービスシステム40に保存されている電子ファイルの書誌情報等のメタデータ(例えば、ファイル一覧、フォルダ一覧等)を取得等するためのAPIが定義されたインターフェースを有する。 The data processing unit 152 has an interface with a defined API for obtaining metadata such as bibliographic information of electronic files stored in the external service system 40 (e.g., file lists, folder lists, etc.).

なお、外部サービス連携部150の追加又は変更等は、外部サービスシステム40が提供するSDK(Software Development Kit)等を用いて行うことができる。 Additions or changes to the external service integration unit 150 can be made using an SDK (Software Development Kit) provided by the external service system 40.

OAuth登録情報記憶部160は、OAuth登録情報が格納されているOAuth登録情報テーブル1600を記憶する。ここで、OAuth登録情報テーブル1600の詳細について、図10を参照しながら説明する。図10は、OAuth登録情報テーブル1600の一例を示す図である。 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 Figure 10. Figure 10 is a diagram showing an example of the OAuth registration information table 1600.

図10に示すOAuth登録情報テーブル1600に格納されるOAuth登録情報は、データ項目として、サービスIDと、クライアントIDと、クライアントシークレットと、認可サーバURLと、リダイレクト先URLとを有する。サービスIDは、外部サービスシステム40を識別する識別情報である。したがって、OAuth登録情報は、外部サービスシステム40毎に、OAuthの認可に用いるクライアントIDと、クライアントシークレットと、認可サーバURLと、リダイレクト先URLとが関連付けられた情報である。 The OAuth registration information stored in the OAuth registration information table 1600 shown in FIG. 10 has the following data items: service ID, client ID, client secret, authorization server URL, and redirect destination URL. The service ID is identification information that identifies the external service system 40. Therefore, the OAuth registration information is information that associates the client ID, client secret, authorization server URL, and redirect destination URL used for OAuth authorization for each external service system 40.

認可トークン情報記憶部170は、認可トークン情報が格納されている認可トークン情報テーブル1700を記憶する。ここで、認可トークン情報テーブル1700の詳細について、図11を参照しながら説明する。図11は、認可トークン情報テーブル1700の一例を示す図である。 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.

図11に示す認可トークン情報テーブル1700に格納される認可トークン情報は、データ項目として、ユーザIDと、アプリIDと、サービスIDと、認可トークンと、スコープと、有効期限とを有する。したがって、認可トークン情報は、ユーザ及びアプリケーション毎に、外部サービスシステム40の認可トークンと、当該認可トークンのスコープと、当該認可トークンの有効期限とが関連付けられた情報である。 The permission token information stored in the permission token information table 1700 shown in FIG. 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 that associates, for each user and application, the permission token of the external service system 40, the scope of the permission token, and the expiration date of the permission token.

図4に戻って説明する。アプリ情報記憶部180は、サービス提供システム10がサービスを提供するためのアプリ情報1000を記憶する。アプリ情報1000には、ブラウザ210にアプリ画面を表示させるための画面定義1100と、ブラウザ210に提供するサービスを実現するための一連の処理を示す処理内容1200とが含まれる。アプリ情報1000には、当該アプリ情報1000を識別するためのアプリIDが関連付けられている。 Returning to Figure 4, the explanation will be given below. The app information storage unit 180 stores app information 1000 for the service providing system 10 to provide a service. The app information 1000 includes a screen definition 1100 for displaying an app 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 app information 1000 is associated with an app ID for identifying the app information 1000.

なお、本実施形態では、アプリ情報1000には、一の画面定義1100と、一の処理内容1200とが含まれるものとして説明する。ただし、これに限られず、アプリ情報1000には、複数の画面定義1100や複数の処理内容1200が含まれていてもよい。 In this embodiment, the app information 1000 is described as including one screen definition 1100 and one processing content 1200. However, this is not limited to this, and the app information 1000 may include multiple screen definitions 1100 and multiple processing contents 1200.

次に、本実施形態におけるロジック処理部112の詳細な機能構成について、図12を参照しながら説明する。図12は、本実施形態におけるロジック処理部112の一例の機能構成を示す図である。 Next, the detailed functional configuration of the logic processing unit 112 in this embodiment will be described with reference to Figure 12. Figure 12 is a diagram showing an example functional configuration of the logic processing unit 112 in this embodiment.

図12に示されるように、本実施形態におけるロジック処理部112は、フロー実行部401と、コンポーネント管理部402と、コンポーネント群403とを備える。また、本実施形態におけるロジック処理部112は、コンポーネント情報テーブル2000を利用する。 As shown in FIG. 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. Furthermore, the logic processing unit 112 in this embodiment uses a component information table 2000.

フロー実行部401は、ブラウザ210から処理の実行要求を受け付けると、アプリ管理部111を介して、アプリ情報1000に含まれる処理内容1200を取得する。そして、フロー実行部401は、取得した処理内容1200に基づいてコンポーネント群403に含まれるいずれかのコンポーネントに対して処理の実行を要求する。 When the flow execution unit 401 receives a process execution request from the browser 210, it acquires the process content 1200 included in the app information 1000 via the app management unit 111. Then, based on the acquired process content 1200, the flow execution unit 401 requests one of the components included in the component group 403 to execute the process.

なお、コンポーネントとは、処理内容1200により示される一連の処理に含まれる一の処理を実行するためのモジュール等であり、例えばクラスや関数等で定義される。コンポーネントは、1以上のオペレーションを含んでおり、上記の一の処理はコンポーネントがオペレーションを実行することにより実現される。すなわち、処理内容1200により示される一連の処理は、コンポーネントが実行する処理により実現される。また、コンポーネントは、上記の一の処理を実行するためのオペレーションを複数含むこともある。 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, for example, by a class or 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 is realized by the processes executed by the component. Furthermore, a component may include multiple operations for executing the above-mentioned one process.

コンポーネント管理部402は、フロー実行部401からの要求に応じて、コンポーネントの生成を行う。なお、コンポーネントの生成とは、例えばクラスで定義されたコンポーネントを、メモリ(例えばRAM503)上に展開することを意味する。 The component management unit 402 generates components in response to requests from the flow execution unit 401. Note that generating a component means, for example, expanding a component defined by a class into memory (e.g., RAM 503).

また、コンポーネント管理部402は、スコープ判断部114からの要求に応じて、コンポーネント情報テーブル2000に格納されるコンポーネント情報を返信する。ここで、コンポーネント情報テーブル2000の詳細について、図13を参照しながら説明する。図13は、コンポーネント情報テーブル2000の一例を示す図である。 In addition, the component management unit 402 returns component information stored in the component information table 2000 in response to a request from the scope determination unit 114. 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.

図13に示すコンポーネント情報テーブル2000に格納されるコンポーネント情報は、データ項目として、コンポーネントIDと、コンポーネント名と、オペレーションと、サービスIDと、スコープと、包含スコープとを有する。 The component information stored in the component information table 2000 shown in FIG. 13 includes the following data items: component ID, component name, operation, service ID, scope, and containment scope.

コンポーネントIDは、当該コンポーネントを識別する識別情報である。オペレーションは、当該コンポーネントに含まれるオペレーションを表す情報である。スコープは、当該オペレーションを実行するために必要な外部サービスシステム40のスコープを表す情報である。包含スコープは、当該スコープに包含される外部サービスシステム40のスコープを表す情報である。したがって、コンポーネント情報は、コンポーネントのオペレーション毎に、当該オペレーションを実行するために必要な外部サービスシステム40のスコープと、当該スコープに包含される外部サービスシステム40のスコープとが関連付けられた情報である。 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 contained 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 required to execute the operation and the scope of the external service system 40 that is contained in the scope.

なお、あるスコープが他のスコープを包含する関係とは、包含するスコープで設定される権限の範囲が、包含されるスコープで設定される権限の範囲をすべて含む関係を表す。したがって、包含するスコープを有していれば包含されるスコープを有する必要はない。 Note that the relationship in which one scope encompasses another refers to a relationship in which the range of permissions set in the encompassing scope encompasses all of the range of permissions set in the encompassed scope. Therefore, if you have an encompassing scope, it is not necessary to have the encompassed scope.

例えば、コンポーネント「外部サービスA連携」のオペレーション「uploadFile」には、サービスID「serviceA」に対応する外部サービスシステム40におけるスコープ「write」が関連付けられている。これは、コンポーネント「外部サービスA連携」が有するオペレーション「uploadFile」の処理を実行するために、外部サービスシステム40の認可トークンのスコープが「write」である必要があることを示している。また、外部サービスシステム40の認可トークンのスコープ「write」にはスコープ「read」が包含されていることを示している。 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".

なお、PDF変換コンポーネントやバーコード認識コンポーネントには、スコープが設定されていない。これは、これらのコンポーネントが外部サービスシステム40のリソースを利用しない、又は認可の必要がないリソースを利用するためである。 Note that no scope is set for the PDF conversion component or barcode recognition component. This is because these components do not use resources from the external service system 40 or use resources that do not require authorization.

図12に戻って説明する。コンポーネント群403は、コンポーネントの集合である。コンポーネント群403には、外部サービスシステム40(外部サービスA)と連携した処理を行うための連携Aコンポーネント411、外部サービスAの認可トークンを取得するための認証Aコンポーネント412が含まれる。また、コンポーネント群403には、電子ファイルをPDF形式に変換するためのPDF変換コンポーネント413が含まれる。 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 the external service system 40 1 (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 electronic files into PDF format.

なお、コンポーネント群403には、これら以外にも、例えば、外部サービスシステム40(外部サービスB)と連携した処理を行うための連携Bコンポーネント、電子ファイルにOCR処理を実行するためのOCRコンポーネント等が含まれる。 In addition to these, the component group 403 also includes, for example, a linkage B component for performing processing in cooperation with an external service system 40 2 (external service B), an OCR component for performing OCR processing on electronic files, and the like.

≪端末装置30の機能構成≫
図4に示されるように、端末装置30は、CPU501により実行されるブラウザ210を備える。端末装置30のユーザは、ブラウザ210を介して、サービス提供システム10により提供されるサービスを利用することができる。
<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.

このように、本実施形態における端末装置30は、ブラウザ210が搭載されていればよい。したがって、本実施形態における情報処理システム1では、サービス提供システム10により提供されるサービスを端末装置30が利用するための専用のアプリケーションを開発等する必要がない。 As such, 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.

ブラウザ210は、ホーム表示部211、機能選択部212、及び認可処理部213を備える。ホーム表示部211、機能選択部212、及び認可処理部213は、サービス提供システム10が備える画面提供部120を介して取得されたホーム画面121、アプリ追加画面122、及び認証連携画面123を示す画面情報がブラウザ210上で実行されることにより、それぞれ実現される。 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 each realized by executing on the browser 210 screen information indicating a home screen 121, an app addition screen 122, and an authentication linkage screen 123, which are acquired via a screen provision unit 120 provided in the service providing system 10.

ホーム表示部211は、ブラウザ210にログインしているユーザが属するテナントでホームに追加されたアプリケーションを表示する。 The home display unit 211 displays applications added to the home page of the tenant to which the user logged in to the browser 210 belongs.

機能選択部212は、ユーザの操作に応じて、当該テナントに導入されているパッケージに含まれるアプリケーションから1以上のアプリケーションを選択してホームに追加する処理を行う。 The function selection unit 212, in response to user operations, selects one or more applications from the applications included in the packages installed in the tenant and adds them to the home.

認可処理部213は、ユーザの操作に応じて、外部サービスシステム40に対するOAuthの認可(以降、単に「認可」とも表す。)に関する処理を行う。 The authorization processing unit 213 performs processing related to OAuth authorization (hereinafter simply referred to as "authorization") for the external service system 40 in response to user operations.

<情報処理システム1の処理手順>
次に、本実施形態における情報処理システム1が実行する情報処理方法の詳細について説明する。以下では、本実施形態における情報処理システム1が実行する情報処理方法を、アプリ追加処理と認証連携処理とに分けて説明する。
<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 according to the present embodiment. The information processing method executed by the information processing system 1 according to the present embodiment will be described below, with the method being divided into an application addition process and an authentication collaboration process.

≪アプリ追加処理≫
まず、ユーザが利用するアプリケーションをホームに追加するアプリ追加処理について、図14を参照しながら説明する。図14は、本実施形態における情報処理システム1が実行するアプリ追加処理の一例を示すシーケンス図である。
<<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 according to this embodiment.

ステップS1001において、情報処理システム1の管理者は、複数のアプリケーションが含まれるパッケージをサービス提供システム10へ導入する。このとき、管理者は、パッケージを導入するテナントを指定する。管理者は、複数のテナントを指定してパッケージを導入してもよい。パッケージを導入できるテナントの数等の条件は、当該パッケージの提供元との契約に基づいて決定される。テナントにパッケージが導入されると、当該パッケージを当該テナントと関連付けるパッケージ情報が、パッケージ情報テーブル1130に格納される。 In step S1001, the administrator of the information processing system 1 introduces a package containing multiple applications to the service providing system 10. At this time, the administrator specifies the tenant to which the package will be introduced. The administrator may specify multiple tenants to which the package will be introduced. 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 to a tenant, package information associating the package with the tenant is stored in the package information table 1130.

ステップS1002において、ユーザは、ブラウザ210を介して、サービス提供システム10へログインする操作を行う。ブラウザ210は、ユーザの操作に応じて、当該ユーザの認証を認証部130に要求する。当該認証要求には、ユーザがブラウザ210に入力した認証情報が含まれる。認証情報は、例えば、テナントID、ユーザID及びパスワードである。また、認証情報は、例えば、ユーザIDとしてメールアドレスを用いてもよい。どのような情報を認証情報として送信するかは、事前に管理者が認証部130に設定すればよい。 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 entered by the user into the browser 210. The authentication information may be, 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.

ステップS1003において、認証部130は、ブラウザ210から認証要求を受け取る。認証部130は、当該認証要求に含まれる認証情報に基づいて、ユーザの認証を実行する。認証に成功した場合、認証部130は、認証チケットを発行し、ブラウザ210へ返信する。以降では、認証部130がユーザの認証に成功したものとして説明を続ける。 In step S1003, the authentication unit 130 receives an authentication request from the browser 210. The authentication unit 130 performs user authentication based on the authentication information included in the authentication request. If authentication is successful, the authentication unit 130 issues an authentication ticket and returns it to the browser 210. The following explanation will continue assuming that the authentication unit 130 has successfully authenticated the user.

ステップS1004において、ユーザは、ブラウザ210上で、アプリ追加画面122を開くための操作を行う。ブラウザ210は、ユーザの操作に応じて、画面提供部120からアプリ追加画面122を示す画面情報を取得し、ブラウザ210上で実行する。これにより、機能選択部212が生成される。 In step S1004, the user performs an operation on the browser 210 to open the app addition screen 122. In response to the user's operation, the browser 210 obtains screen information indicating the app addition screen 122 from the screen providing unit 120 and executes it on the browser 210. This generates the function selection unit 212.

機能選択部212は、当該テナントで利用可能なアプリケーションの一覧である利用可能アプリ一覧の取得を、アプリデータ管理部115に要求する。当該取得要求には、認証部130により発行された認証チケットが含まれる。 The function selection unit 212 requests the application data management unit 115 to obtain a list of available applications, which is a list of applications available to the tenant. The request includes the authentication ticket issued by the authentication unit 130.

ステップS1005において、アプリデータ管理部115は、機能選択部212から利用可能アプリ一覧の取得要求を受け取る。アプリデータ管理部115は、当該取得要求に含まれる認証チケットに基づいて、認証部130からユーザ情報を取得する。ユーザ情報には、ブラウザ210にログインしているユーザを識別するユーザID及び当該ユーザが属するテナントを識別するテナントIDが含まれる。 In step S1005, the application data management unit 115 receives a request to obtain a list of available applications from the function selection unit 212. The application data management unit 115 obtains user information from the authentication unit 130 based on the authentication ticket included in the obtainment request. The user information includes a user ID that identifies the user logged in to the browser 210 and a tenant ID that identifies the tenant to which the user belongs.

ステップS1006において、アプリデータ管理部115は、認証部130から取得したテナントIDに基づいて、当該テナントに導入されているパッケージ情報を、パッケージ情報テーブル1130から取得する。 In step S1006, the application data management unit 115 obtains package information installed in the tenant from the package information table 1130 based on the tenant ID obtained from the authentication unit 130.

ステップS1007において、アプリデータ管理部115は、ステップS1006で取得したパッケージ情報に含まれるアプリIDに基づいて、各パッケージに含まれるアプリケーションに対応するアプリデータ情報を、アプリデータ情報テーブル1120から取得する。アプリデータ管理部115は、取得したアプリデータ情報を、当該テナントにおける利用可能アプリ一覧としてブラウザ210へ返信する。機能選択部212は、アプリデータ管理部115から受け取った利用可能アプリ一覧をアプリ追加画面122へ表示する。 In step S1007, the application data management unit 115 obtains 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 obtained in step S1006. The application data management unit 115 returns the obtained 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.

ステップS1008において、ユーザは、ブラウザ210に表示されたアプリ追加画面122において、ホームに追加するアプリケーションを選択する操作を行う。ここで、本実施形態におけるアプリ追加画面122の詳細について、図15及び図16を参照しながら説明する。本実施形態におけるアプリ追加画面122は、ホームに追加するアプリケーションを選択するためのアプリ追加画面122Aと、選択されたアプリケーションの表示内容を設定するためのアプリ追加画面122Bとからなる。 In step S1008, the user performs an operation to select an application to add to the home screen on the app addition screen 122 displayed on the browser 210. Details of the app addition screen 122 in this embodiment will now be described with reference to Figures 15 and 16. The app addition screen 122 in this embodiment consists of an app addition screen 122A for selecting an application to add to the home screen, and an app addition screen 122B for setting the display content of the selected application.

図15は、ホームに追加するアプリケーションを選択するためのアプリ追加画面122Aの一例である。図15に示されるように、アプリ追加画面122Aは、利用可能アプリ表示欄1221、アプリ検索欄1222、新規アプリ表示欄1223、及び「次へ」ボタン1224を含む。 Figure 15 shows an example of an app addition screen 122A for selecting an application to add to the home screen. As shown in Figure 15, the app addition screen 122A includes an available app display field 1221, an app search field 1222, a new app display field 1223, and a "Next" button 1224.

利用可能アプリ表示欄1221は、アプリデータ管理部115から取得した利用可能アプリ一覧を表示する。利用可能アプリ表示欄1221は、各アプリケーションを選択できる形式で利用可能アプリ一覧に含まれるアプリケーションを表示する。図14の例では、各アプリケーションがトグルボタン形式で表示されており、ユーザが当該ボタンを押下することで、当該ボタンに対応するアプリケーションを選択することができる。 The available app display field 1221 displays a list of available apps obtained from the app data management unit 115. The available app display field 1221 displays the applications included in the available app list in a format that allows each application to be selected. In the example of Figure 14, each application is displayed in the form of a toggle button, and the user can press the button to select the application corresponding to that button.

利用可能アプリ一覧に含まれるすべてのアプリケーションを利用可能アプリ表示欄1221に表示できない場合は、利用可能アプリ表示欄1221をページ分割して表示してもよい。ページ分割された利用可能アプリ表示欄1221においては、ユーザがページを遷移する操作を行うことで、他のページに表示したアプリケーションを選択可能としてもよい。 If it is not possible to display all applications included in the list of available applications in the available application display field 1221, the available application display field 1221 may be split into pages. In the paginated available application display field 1221, the user may be able to select applications displayed on other pages by performing an operation to transition between pages.

アプリ追加画面122Aは、利用可能アプリ一覧から目的のアプリケーションを発見し易いように、利用可能アプリ表示欄1221の表示内容を絞り込む機能を備えてもよい。例えば、アプリ追加画面122Aは、アプリ検索欄1222を備えてもよい。ユーザがアプリ検索欄1222に検索語を入力することで、当該検索語を含む名称のアプリケーションのみを利用可能アプリ表示欄1221に表示することができる。 The app addition screen 122A may have a function to narrow down the display content of the available app display field 1221 to make it easier to find the desired application from the list of available apps. For example, the app addition screen 122A may have an app search field 1222. When the user enters a search term in the app search field 1222, only applications with names that include the search term can be displayed in the available app display field 1221.

また、例えば、アプリ追加画面122Aは、新規アプリ表示欄1223を備えてもよい。ユーザが新規アプリ表示欄1223にチェックを入れることで、予め定めた期間内に当該テナントに導入されたアプリケーションのみを利用可能アプリ表示欄1221に表示することができる。 Furthermore, for example, the app addition screen 122A may include a new app display field 1223. When the user checks the new app display field 1223, only applications that have been introduced to the tenant within a predetermined period of time can be displayed in the available app display field 1221.

アプリ追加画面122Aにおいて、ユーザが「次へ」ボタン1224を押下することで、利用可能アプリ表示欄1221におけるアプリケーションの選択が確定し、アプリ追加画面122Bへ遷移する。 When the user presses the "Next" button 1224 on the app addition screen 122A, the application selection in the available app display field 1221 is confirmed and the screen transitions to the app addition screen 122B.

図16は、ホームに追加するアプリケーションの表示内容を設定するためのアプリ追加画面122Bの一例である。図16に示されるように、アプリ追加画面122Bは、ラベル入力欄1225、アイコン設定欄1226、及び「保存する」ボタン1227を含む。 Figure 16 shows an example of an app addition screen 122B for setting the display content of an application to be added to the home screen. As shown in Figure 16, the app addition screen 122B includes a label input field 1225, an icon setting field 1226, and a "Save" button 1227.

ラベル入力欄1225は、選択したアプリケーションをホーム画面121に表示する際に用いる名称を表す文字列の入力を受け付ける。 The label input field 1225 accepts input of a string representing the name to be used when displaying the selected application on the home screen 121.

アイコン設定欄1226は、選択したアプリケーションをホーム画面121に表示する際に用いるアイコンを表す画像ファイルの入力を受け付ける。 The icon setting field 1226 accepts input of an image file representing the icon to be used when displaying the selected application on the home screen 121.

アプリ追加画面122Bにおいて、ユーザが「保存する」ボタン1227を押下することで、ホームに追加するアプリケーションの表示設定が確定する。機能選択部212は、ユーザの操作に応じて、選択したアプリケーションの追加要求をアプリデータ管理部115へ送信する。 When the user presses the "Save" button 1227 on the app addition screen 122B, the display settings for the application to be added to the home screen are finalized. In response to the user's operation, the function selection unit 212 sends an addition request for the selected application to the app data management unit 115.

図14に戻って説明する。ステップS1009において、機能選択部212は、ユーザの操作に応じて、選択されたアプリケーションをホームに追加することを、アプリデータ管理部115に要求する。なお、当該追加要求には、ユーザが選択したアプリケーションを識別するアプリIDが含まれる。 Referring back to Figure 14, in step S1009, the function selection unit 212 requests the application data management unit 115 to add the selected application to the home screen in response to a user operation. The addition request includes an application ID that identifies the application selected by the user.

ステップS1010において、アプリデータ管理部115は、機能選択部212から追加要求を受け取る。アプリデータ管理部115は、当該追加要求に含まれるアプリIDに基づいて、当該アプリIDにより識別されるアプリデータ情報を、アプリデータ情報テーブル1120から取得する。 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 retrieves application data information identified by the application ID from the application data information table 1120.

ステップS1011において、アプリデータ管理部115は、ステップS1010で取得したアプリデータ情報に基づいて、当該アプリデータ情報に対応するアプリインスタンスを生成する。アプリデータ管理部115は、生成したアプリインスタンスに関するアプリインスタンス情報を、アプリインスタンス情報テーブル1140へ格納する。 In step S1011, the application data management unit 115 generates an application instance corresponding to the application data information acquired in step S1010. The application data management unit 115 stores application instance information about the generated application instance in the application instance information table 1140.

アプリデータ管理部115は、認証部130から取得したテナントIDに基づいて、当該テナントに関連付けられたアプリインスタンス情報を、アプリインスタンス情報テーブル1140から取得する。アプリデータ管理部115は、取得したアプリインスタンス情報を、当該テナントにおける利用アプリ一覧としてブラウザ210へ返信する。 The application data management unit 115 obtains application instance information associated with the tenant from the application instance information table 1140 based on the tenant ID obtained from the authentication unit 130. The application data management unit 115 returns the obtained application instance information to the browser 210 as a list of applications used in the tenant.

ステップS1012において、ユーザは、ブラウザ210上で、ホーム画面121を開くための操作を行う。ブラウザ210は、ユーザの操作に応じて、画面提供部120からホーム画面121を示す画面情報を取得し、ブラウザ210上で実行する。これにより、ホーム表示部211が生成される。 In step S1012, the user performs an operation on the browser 210 to open the home screen 121. In response to the user's operation, the browser 210 obtains 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.

ホーム表示部211は、アプリデータ管理部115から受け取った利用アプリ一覧をホーム画面121へ表示する。ここで、本実施形態におけるホーム画面121の詳細について、図17を参照しながら説明する。 The home display unit 211 displays the list of used 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 Figure 17.

図17は、ホーム画面121の一例である。図17に示されるように、ホーム画面121は、利用アプリ表示欄1211及びパッケージ選択欄1212を含む。 Figure 17 is an example of the home screen 121. As shown in Figure 17, the home screen 121 includes a used app display section 1211 and a package selection section 1212.

利用アプリ表示欄1211は、アプリデータ管理部115から取得した利用アプリ一覧を表示する。このとき、利用アプリ表示欄1211は、アプリ追加画面122Bで設定した名称及びアイコンを用いて、利用アプリ一覧に含まれるアプリケーションを表示する。 The used app display field 1211 displays a list of used apps obtained from the app data management unit 115. At this time, the used app display field 1211 displays the applications included in the used app list using the names and icons set on the app addition screen 122B.

パッケージ選択欄1212は、利用アプリ一覧に含まれるアプリケーションが含まれるパッケージの一覧を表示する。ユーザがパッケージ選択欄1212においてパッケージを選択することで、利用アプリ表示欄1211において、当該パッケージに含まれるアプリケーションのみが絞り込まれて表示される。 The 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, the used application display field 1211 narrows down the display to only the applications included in that package.

≪認証連携処理≫
次に、ホームに追加されたアプリケーションを認可する認証連携処理について、図18を参照しながら説明する。図18は、本実施形態における情報処理システム1が実行する認証連携処理の一例を示すシーケンス図である。
<<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.

ステップS1101において、ユーザは、ブラウザ210上で、認証連携画面123を開くための操作を行う。ブラウザ210は、ユーザの操作に応じて、画面提供部120から認証連携画面123を示す画面情報を取得し、ブラウザ210上で実行する。これにより、認可処理部213が生成される。 In step S1101, the user performs an operation on the browser 210 to open the authentication collaboration screen 123. In response to the user's operation, the browser 210 obtains screen information showing 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.

認可処理部213は、ホームに追加されたアプリケーションで認可が必要な外部サービス毎のスコープ一覧の取得を、アプリデータ管理部115に要求する。当該取得要求には、認証部130により発行された認証チケットが含まれる。 The authorization processing unit 213 requests the application data management unit 115 to obtain a list of scopes for each external service that requires authorization for an application added to the home. The request includes the authentication ticket issued by the authentication unit 130.

ステップS1102において、アプリデータ管理部115は、認可処理部213からスコープ一覧の取得要求を受け取る。アプリデータ管理部115は、当該取得要求に含まれる認証チケットに基づいて、認証部130からユーザ情報を取得する。ユーザ情報は、ブラウザ210にログインしているユーザを識別するユーザID及び当該ユーザが属するテナントを識別するテナントIDが含まれる。 In step S1102, the application data management unit 115 receives a request to obtain a scope list from the authorization processing unit 213. The application data management unit 115 obtains user information from the authentication unit 130 based on the authentication ticket included in the obtainment request. The user information includes a user ID that identifies the user logged in to the browser 210 and a tenant ID that identifies the tenant to which the user belongs.

ステップS1103において、アプリデータ管理部115は、認証部130から取得したテナントIDに基づいて、当該テナントに関連付けられたアプリインスタンス情報を、アプリインスタンス情報テーブル1140から取得する。 In step S1103, the application data management unit 115 obtains application instance information associated with the tenant from the application instance information table 1140 based on the tenant ID obtained from the authentication unit 130.

ステップS1104において、アプリデータ管理部115は、ステップS1103で取得したアプリインスタンス情報に含まれるアプリIDに基づいて、当該アプリIDにより識別されるアプリデータ情報を、アプリデータ情報テーブル1120から取得する。 In step S1104, the application data management unit 115 obtains application data information identified by the application ID from the application data information table 1120 based on the application ID included in the application instance information obtained in step S1103.

ステップS1105において、アプリデータ管理部115は、認可が必要な外部サービス毎のスコープ一覧の取得を、スコープ判断部114に要求する。なお、当該取得要求には、ステップS1104で取得したアプリデータ情報が含まれる。 In step S1105, the application data management unit 115 requests the scope determination unit 114 to obtain a list of scopes for each external service that requires authorization. Note that this request includes the application data information obtained in step S1104.

ステップS1106において、スコープ判断部114は、アプリデータ管理部115からスコープ一覧の取得要求を受け取る。スコープ判断部114は、当該取得要求に含まれるアプリデータ情報に関するフロー情報の取得を、アプリ管理部111に要求する。なお、当該取得要求には、ステップS1104で取得したアプリデータ情報に含まれるアプリID及びフロー名が含まれる。 In step S1106, the scope determination unit 114 receives a request to obtain a scope list from the application data management unit 115. The scope determination unit 114 requests the application management unit 111 to obtain flow information related to the application data information included in the request. The request includes the application ID and flow name included in the application data information obtained in step S1104.

アプリ管理部111は、スコープ判断部114からフロー情報の取得要求を受け取ると、当該取得要求に含まれるアプリID及びフロー名に基づいて、当該アプリID及びフロー名で識別されるアプリ情報を、アプリ情報テーブル1110から取得する。アプリ管理部111は、取得したアプリ情報に含まれるフロー情報を、スコープ判断部114へ返信する。 When the application management unit 111 receives a request to obtain flow information from the scope determination unit 114, it obtains application information identified by the application ID and flow name from the application information table 1110 based on the application ID and flow name included in the request. The application management unit 111 returns the flow information included in the obtained application information to the scope determination unit 114.

ステップS1107において、スコープ判断部114は、アプリ管理部111からフロー情報を受け取る。スコープ判断部114は、当該フロー情報で実行されるオペレーションに関するコンポーネント情報の取得を、ロジック処理部112に要求する。なお、当該取得要求には、当該フロー情報で実行されるオペレーションを示す情報が含まれる。 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 operations executed in the flow information. The acquisition request includes information indicating the operations executed in the flow information.

ロジック処理部112は、スコープ判断部114からコンポーネント情報の取得要求を受け取ると、当該取得要求に含まれるオペレーションを示す情報に基づいて、当該オペレーションを含むコンポーネントに関するコンポーネント情報を、コンポーネント情報テーブル2000から取得する。ロジック処理部112は、取得したコンポーネント情報を、スコープ判断部114へ返信する。 When the logic processing unit 112 receives a request to obtain component information from the scope determination unit 114, it obtains component information about the component that includes the operation from the component information table 2000 based on the information indicating the operation included in the request. The logic processing unit 112 returns the obtained component information to the scope determination unit 114.

ステップS1108において、スコープ判断部114は、ロジック処理部112からコンポーネント情報を受け取る。スコープ判断部114は、当該コンポーネント情報に基づいて、認可が必要なスコープ一覧を外部サービス毎に生成する。スコープ判断部114は、ロジック処理部112から受け取ったコンポーネント情報から、ホームに追加されたアプリケーションに含まれる処理フローで実行されるオペレーションに設定されたスコープ及び包含スコープを抽出することで、認可が必要なスコープ一覧を生成する。 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 a list of scopes that require authorization by extracting, from the component information received from the logic processing unit 112, the scopes and included scopes set for operations executed in the processing flows included in the applications added to the home.

上記のステップS1106からS1108は、アプリデータ管理部115がステップS1104で取得したアプリデータ情報に含まれる各アプリIDについて、繰り返し実行する。 The above steps S1106 to S1108 are repeatedly executed for each app ID included in the app data information acquired by the app data management unit 115 in step S1104.

ステップS1109において、スコープ判断部114は、認可が必要なスコープ一覧に含まれるスコープを、外部サービス毎に統合し、外部サービス毎のスコープを決定する。スコープ判断部114は、認可が必要なスコープ一覧に含まれるスコープの和を、外部サービス毎に求めることで、外部サービス毎のスコープを決定する。 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.

スコープ判断部114は、認可が必要なスコープ一覧に包含スコープが設定されているものが含まれ、認可が必要なスコープに包含スコープと同一のものがある場合、スコープの和と包含スコープとの差を、外部サービス毎のスコープとして決定してもよい。例えば、あるアプリケーションが、外部サービスAのスコープ「write」が必要なオペレーションと、外部サービスAのスコープ「read」が必要なオペレーションとを実行する処理フローを含むとする。このとき、外部サービスAについて求めたスコープの和は「write, read」となる。しかしながら、スコープ「write」はスコープ「read」を包含するため、スコープ「write」のみ認可されていれば当該アプリケーションは実行できる。そのため、スコープの和「write, read」と包含スコープ「read」との差である「write」を外部サービスAのスコープとして決定すればよい。 If the list of scopes requiring authorization includes a scope for which an inclusion scope is set, and the scopes requiring authorization include one that is identical to the inclusion scope, the scope determination unit 114 may determine the difference between the sum of the scopes and the inclusion 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, because the scope "write" includes the scope "read," the application can be executed if only the scope "write" is authorized. Therefore, the difference between the sum of the scopes "write, read" and the inclusion scope "read," "write," can be determined as the scope for external service A.

スコープ判断部114がスコープを決定する処理の例を、図19を参照しながら具体的に説明する。図19は、本実施形態におけるサービス提供システム10が提供するサービスの一例を示す図である。 An example of the process by which the scope determination unit 114 determines the scope will be described in detail with reference to Figure 19. Figure 19 is a diagram showing an example of a service provided by the service providing system 10 in this embodiment.

図19の例では、パッケージ1に、アプリケーション1及びアプリケーション2が含まれる。アプリケーション1には、フロー1-1及びフロー1-2が含まれ、アプリケーション2には、フロー2-1及びフロー2-2が含まれる。 In the example of Figure 19, Package 1 includes Application 1 and Application 2. Application 1 includes Flow 1-1 and Flow 1-2, and Application 2 includes Flow 2-1 and Flow 2-2.

アプリケーション1に含まれるフロー1-1は、コンポーネント「外部サービスA連携」のオペレーション「getFiles」とコンポーネント「外部サービスA連携」のオペレーション「downloadFiles」とを順に実行する。フロー1-2は、コンポーネント「バーコード認識」のオペレーション「recognize」とコンポーネント「外部サービスA連携」のオペレーション「downloadFiles」とコンポーネント「PDF変換」のオペレーション「convert」とを順に実行する。 Flow 1-1 included in Application 1 sequentially executes operation "getFiles" of component "External Service A Integration" and operation "downloadFiles" of component "External Service A Integration." Flow 1-2 sequentially executes operation "recognize" of component "Barcode Recognition," operation "downloadFiles" of component "External Service A Integration," and operation "convert" of component "PDF Conversion."

図13に示したコンポーネント情報テーブル2000の例によれば、オペレーション「getFiles」は外部サービス「serviceA」のスコープ「read」を必要とする。オペレーション「downloadFile」は外部サービス「serviceA」のスコープ「read」を必要とする。オペレーション「recognize」及び「convert」は外部サービスとの連携を行わない。したがって、アプリケーション1に対する外部サービス「serviceA」のスコープは「read」となる。 According to the example component information table 2000 shown in Figure 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 interact with external services. Therefore, the scope of the external service "serviceA" for application 1 is "read".

また、アプリケーション2に含まれるフロー2-1は、コンポーネント「外部サービスB連携」のオペレーション「getFolders」とコンポーネント「外部サービスB連携」のオペレーション「createFolders」とを順に実行する。フロー2-2は、コンポーネント「外部サービスB連携」のオペレーション「getFolders」とコンポーネント「外部サービスB連携」のオペレーション「deleteFolders」とを順に実行する。 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."

図13に示したコンポーネント情報テーブル2000の例によれば、オペレーション「getFolders」は外部サービス「serviceB」のスコープ「scopeC」を必要とする。オペレーション「createFolders」は外部サービス「serviceB」のスコープ「scopeA」を必要とする。オペレーション「deleteFolders」は外部サービス「serviceB」のスコープ「scopeB」を必要とする。したがって、アプリケーション2に対する外部サービス「serviceB」のスコープは「scopeA, scopeB, scopeC」となる。 According to the example component information table 2000 shown in Figure 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 scope of the external service "serviceB" for application 2 is "scopeA, scopeB, scopeC".

そして、スコープ判断部114は、決定した外部サービス毎のスコープをブラウザ210へ返信する。ブラウザ210は、外部サービス毎のスコープを受け取ると、認証連携画面123を表示する。 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 the authentication collaboration screen 123.

ここで、本実施形態における認証連携画面123の詳細について、図20を参照しながら説明する。図20は、認証連携を実行する前の状態を表示する認証連携画面123Aの一例である。図20に示されるように、認証連携画面123Aは、サービス表示欄1231と、連携状態表示欄1232と、「連携する」ボタン1233と、「連携解除」ボタン1234とを含む。 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 the 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.

サービス表示欄1231は、ホームに追加したアプリケーションで連携する外部サービスシステム40の一覧を表示する。連携状態表示欄1232は、サービス表示欄1231に表示した外部サービスシステム40との連携状態を表示する。連携状態とは、連携が設定済みか未設定かを表す。連携状態は、当該外部サービスシステム40に対応する有効な認可トークンが認可トークン情報テーブル1700に存在するか否かを確認することにより判定できる。 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 up or not. The linkage status can be determined by checking whether a valid authorization token corresponding to the external service system 40 exists in the authorization token information table 1700.

「連携する」ボタン1233は、当該外部サービスシステム40に対して認証連携を要求するためのボタンである。「連携解除」ボタン1234は、当該外部サービスシステム40に対する連携を解除するためのボタンである。認証連携を要求する処理については後述する。連携解除は、認可トークン情報テーブル1700に格納された当該外部サービスシステム40に対応する認可トークンを削除又は無効な状態に更新する(例えば、有効期限を過去の日時にする等)ことで行われる。 The "Link" button 1233 is a button for requesting authentication federation with the external service system 40. The "Cancel Link" button 1234 is a button for canceling the link with the external service system 40. The process of requesting authentication federation will be described later. Linkage is canceled by deleting or updating the authorization token corresponding to the external service system 40 stored in the authorization token information table 1700 to an invalid state (for example, by setting the expiration date to a past date and time).

「連携する」ボタン1233及び「連携解除」ボタン1234は、外部サービスシステム40との連携状態と連動して、有効又は無効に制御してもよい。すなわち、ある外部サービスシステム40の連携状態が設定済みである場合、当該外部サービスシステム40に対応する「連携する」ボタン1233を無効化し、「連携解除」ボタン1234を有効化すればよい。あるいは、ある外部サービスシステム40の連携状態が未設定である場合、当該外部サービスシステム40に対応する「連携する」ボタン1233を有効化し、「連携解除」ボタン1234を無効化すればよい。 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. In other words, 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.

図18に戻って説明する。ステップS1110において、ユーザは、ブラウザ210を介して、サービス提供システム10へOAuthの認可を要求する操作を行う。認可処理部213は、ユーザの操作に応じて、OAuth登録情報の取得を認証部130に要求する。当該取得要求には、認可を要求する外部サービスシステム40のサービスIDが含まれる。 Referring back to Figure 18, 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.

認証部130は、OAuth登録情報の取得要求を受け取ると、当該取得要求に含まれるサービスIDに対応するOAuth登録情報をOAuth登録情報テーブル1600から取得する。認証部130は、取得したOAuth登録情報を、認可処理部213へ返信する。 When the authentication unit 130 receives a request to obtain OAuth registration information, it obtains the OAuth registration information corresponding to the service ID included in the request from the OAuth registration information table 1600. The authentication unit 130 returns the obtained OAuth registration information to the authorization processing unit 213.

ステップS1111において、認可処理部213は、OAuth登録情報を受け取ると、当該OAuth登録情報に含まれる認可サーバURLにブラウザ210をリダイレクトさせる。ここで、認可サーバURLとは、外部サービスシステム40に対する認証を行うための認証画面(例えば、ログイン画面)等のURLである。 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 the URL of an authentication screen (e.g., a login screen) for performing authentication with the external service system 40.

ここで、本実施形態における認証画面124の詳細について、図21を参照しながら説明する。図21は、本実施形態における認証画面124の一例を示す図である。認証画面124は、認証情報入力欄1241と、「承認」ボタン1242とを含む。 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.

認証情報入力欄1241は、ユーザが認証情報を入力するための入力欄である。「承認」ボタン1242は、認証情報入力欄1241に入力した認証情報を用いて認証部130に認証を要求するためのボタンである。 The authentication information input field 1241 is an input field for the user to enter authentication information. The "Approve" button 1242 is a button for requesting authentication from the authentication unit 130 using the authentication information entered in the authentication information input field 1241.

図18に戻って説明する。ユーザは、認証画面124において、認証を行うための認証情報を入力して認証を行う。すると、認証部130は、認証を外部サービスシステム40に要求する。なお、当該認証要求には、認証情報が含まれる。 Referring back to Figure 18, the user performs authentication by entering authentication information on the authentication screen 124. The authentication unit 130 then requests authentication from the external service system 40. Note that this authentication request includes the authentication information.

外部サービスシステム40は、認証要求を受け取ると、当該認証要求に対する認証結果を返信する。以降では、外部サービスシステム40は、認証成功を示す認証結果を返信したものとして説明を続ける。 When the external service system 40 receives an authentication request, it replies with the authentication result for that authentication request. In the following explanation, we will assume that the external service system 40 replies with an authentication result indicating successful authentication.

ステップS1112において、認可処理部213は、認証成功を示す認証結果を受け取ると、OAuthの認可を外部サービスシステム40に要求する。なお、当該認可要求には、スコープ判断部114から返信されたスコープ、OAuth登録情報に含まれるクライアントID、及びリダイレクト先URLが含まれる。 In step S1112, upon receiving an authentication result indicating successful authentication, the authorization processing unit 213 requests OAuth authorization from the external service system 40. 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.

外部サービスシステム40は、OAuthの認可要求を受け取ると、当該認可要求に対する認可応答を示す認可コードを発行し、ブラウザ210へ返信するとともに、当該ブラウザ210をリダイレクト先URLにリダイレクトさせる。 When the external service system 40 receives an 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.

なお、上記のステップS1111で認証が成功した後、ブラウザ210に、例えば図22に示す確認画面125を表示させてもよい。図22に示す確認画面125は、サービス提供システム10が該当の外部サービスシステム40においてスコープで設定された範囲内でリソースを利用することを、ユーザに確認させるための画面である。そして、図22に示す確認画面125において、ユーザが「アクセスを許可」ボタン1251を押下した場合に、ステップS1112における認可要求を該当の外部サービスシステム40へ送信するようにしてもよい。 After successful authentication in step S1111 above, the browser 210 may display, for example, a confirmation screen 125 as shown in FIG. 22. The confirmation screen 125 shown in FIG. 22 is a screen for allowing the user to confirm that the service providing system 10 will use resources within the range set by the scope in the relevant external service system 40. Then, when the user presses the "Allow access" button 1251 on the confirmation screen 125 shown in FIG. 22, the authorization request in step S1112 may be sent to the relevant external service system 40.

図18に戻って説明する。ステップS1113において、認可処理部213は、ステップS1112で取得した認可コードを認証部130へ送信する。また、このとき、認可処理部213は、サービスIDも認証部130へ送信する。 Referring back to Figure 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.

ステップS1114において、認証部130は、認可コード及びサービスIDを受け取ると、当該サービスIDにより示される外部サービスシステム40に認可トークンの取得を要求する。なお、認可トークンの取得要求には、上記の認可コード、OAuth登録情報においてサービスIDに対応付けられたクライアントID及びクライアントシークレットが含まれる。 In step S1114, upon receiving the authorization code and service ID, the authentication unit 130 requests the external service system 40 indicated by the service ID to obtain an authorization token. The request to obtain an authorization token includes the authorization code, the client ID associated with the service ID in the OAuth registration information, and the client secret.

外部サービスシステム40は、認可トークンの取得要求を受け取ると、認可トークンを発行し、当該認可トークン及び当該認可トークンの有効期限を返信する。なお、このとき、外部サービスシステム40は、認可トークンの有効期限が経過した場合に認可トークンを再取得するためのリフレッシュトークンを併せて返信してもよい。 When the external service system 40 receives a request to obtain an authorization token, it issues the authorization token and replies with the authorization token and its expiration date. At this time, the external service system 40 may also replies with a refresh token for re-acquiring the authorization token if the authorization token's expiration date has passed.

ステップS1115において、認証部130は、認可トークン及び有効期限を受け取ると、当該認可トークン及び有効期限を認可トークン情報テーブル1700に格納する。このとき、認証部130は、認可トークン及び有効期限を、ユーザID、認可対象のアプリケーションのアプリID、連携して処理を行う外部サービスシステム40のサービスID、及びスコープ判断部114により決定されたスコープに関連付けて格納する。 In step S1115, upon receiving the authorization token and expiration date, the authentication unit 130 stores the authorization token and expiration date in the authorization token information table 1700. At this time, the authentication unit 130 stores the authorization token and expiration date in association with the user ID, the app ID of the application to be authorized, the service ID of the external service system 40 that will perform processing in cooperation with the authorization token, and the scope determined by the scope determination unit 114.

ブラウザ210は、認証部130から認可結果を受け取ると、認証連携画面123に認可結果を表示する。図23は、認証連携が成功した後の状態を表示する認証連携画面123Bの一例である。図23に示されるように、認証連携画面123Bは、認可に成功した旨を表すメッセージ1235を表示すると共に、連携状態表示欄1232において認証に成功した外部サービスシステム40の連携状態を更新する。 When the browser 210 receives the authorization result from the authentication unit 130, it displays the authorization result on the authentication federation screen 123. Figure 23 is an example of the authentication federation screen 123B that displays the status after successful authentication federation. As shown in Figure 23, the authentication federation screen 123B displays a message 1235 indicating that 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.

<変形例>
本実施形態では、テナントにパッケージ単位で利用可能なアプリケーションを導入し、当該パッケージの中から利用するアプリケーションを選択し、選択したアプリケーションで必要とされるスコープを外部サービス毎に統合して認可を要求する例を説明した。しかしながら、単体のアプリケーションの中から利用する処理フローを選択し、選択された処理フローで必要とされるスコープを外部サービス毎に統合して認可を要求してもよい。
<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.

また、テナントに導入された1個のパッケージの中から利用するアプリケーション又は処理フローを選択するだけでなく、テナントに導入された複数のパッケージの中から利用するアプリケーション又は処理フローを選択して、必要とされるスコープを外部サービス毎に統合して認可を要求してもよい。 In addition to selecting an application or process flow to be used from one package installed in the tenant, it is also possible to select an application or process flow to be used from multiple packages installed in the tenant, and integrate the required scope for each external service to request authorization.

さらに、本実施形態では、テナント毎にアプリケーションをホームに追加する例を説明したが、同一のテナントに関連付けられた異なるユーザそれぞれが選択したアプリケーションをホームに追加するように構成してもよい。すなわち、本実施形態ではテナント毎に1個のホームが存在したが、ユーザ毎にホームが存在するように構成してもよい。 Furthermore, in this embodiment, an example was described in which an application was added to the home for each tenant, but it is also possible to configure it so that applications selected by different users associated with the same tenant are added to the home. In other words, while in this embodiment there was one home for each tenant, it is also possible to configure it so that there is a home for each user.

<実施形態の効果>
本実施形態におけるサービス提供システム10では、複数のアプリケーションをグループ化したパッケージが導入される等により、複数のアプリケーションが利用可能であるとき、当該複数のアプリケーションから選択された機能(アプリケーション又は処理フロー)で必要となるスコープのみに対して認可を要求することができる。従来のサービス提供システムでは、複数のアプリケーションが利用可能であるとき、当該複数のアプリケーションで必要となるすべてのスコープに対して認可を要求していた。
<Effects of the embodiment>
In the service providing system 10 of this embodiment, when a plurality of applications are available by introducing a package that groups a plurality of applications, authorization can be requested only for the scope required for a function (application or processing flow) selected from the plurality of applications. In conventional service providing systems, when a plurality of applications are available, authorization is requested for all scopes required by the plurality of applications.

本実施形態におけるサービス提供システム10によれば、選択していない機能で必要となるスコープに対して認可を要求しないため、アプリケーションの誤設定又は誤動作等により、ユーザが意図しないリソースに対するアクセスが発生してしまうといった事態を防止することができる。 The service providing system 10 in this embodiment does not request authorization for scopes required by functions that are not selected, thereby preventing situations in which access to resources unintended by the user occurs due to incorrect application configuration or malfunction, etc.

例えば、ファイルをダウンロードするアプリケーションで必要なスコープが「read」であるとき、他のアプリケーションで必要な「delete」のスコープまで含んでいると、ファイルをダウンロードするアプリで誤ってファイルが削除されてしまうかもしれない。当該アプリケーションで必要としない「delete」のスコープを含んでいなければファイルが削除されることはない。したがって、利用しない機能が要求するスコープまで含めて認可を行うべきではない。 For example, if the scope required by an application that downloads a file is "read," and the "delete" scope required by another application is also included, the file may be accidentally deleted by the application that downloads the file. If the "delete" scope, which is not 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.

[補足]
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
[supplement]
Each function of the above-described embodiments can be realized by one or more processing circuits. Here, the term "processing circuit" as used herein includes a processor programmed to perform each function by software, such as a processor implemented by electronic circuits, 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 of the above-described functions.

実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。ある実施形態では、サービス提供システム10は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。 The devices described in the examples represent only one of several computing environments for practicing the embodiments disclosed herein. In one embodiment, the service providing system 10 includes multiple computing devices, such as a server cluster. The multiple computing devices are 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.

以上、本発明の実施の形態について詳述したが、本発明はこれらの実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。 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 variations are possible within the scope of the gist of the present invention as set forth in the claims.

1 情報処理システム
10 サービス提供システム
20 機器
30 端末装置
40 外部サービスシステム
110 サービス処理部
111 アプリ管理部
112 ロジック処理部
113 データI/F部
114 スコープ判断部
115 アプリデータ管理部
120 画面提供部
130 認証部
140 ドキュメントサービス部
141 バーコード認識部
142 PDF変換部
150 外部サービス連携部
151 ファイル処理部
152 データ処理部
160 OAuth登録情報記憶部
170 認可トークン情報記憶部
180 アプリ情報記憶部
210 ブラウザ
211 ホーム表示部
212 機能選択部
213 認可処理部
1 Information processing system 10 Service providing system 20 Device 30 Terminal device 40 External service system 110 Service processing unit 111 Application management unit 112 Logic processing unit 113 Data I/F unit 114 Scope determination unit 115 Application data management unit 120 Screen providing unit 130 Authentication unit 140 Document service unit 141 Barcode recognition unit 142 PDF conversion unit 150 External service cooperation unit 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 unit 212 Function selection unit 213 Authorization processing unit

特開2017-59219号公報JP 2017-59219 A

Claims (9)

ユーザ端末と情報処理装置とを含み、外部サービスと連携した処理を行う複数のアプリケーションを実行する情報処理システムであって、
情報処理装置は、
前記ユーザ端末から受信した認証情報に基づいて、ユーザの認証を行う第一の認証部と、
前記複数のアプリケーションから、前記ユーザの認証後に表示するホーム画面に表示されるアプリケーションであって、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:
請求項1に記載の情報処理システムであって、
前記情報処理装置は、前記スコープの認可要求に応じて前記外部サービスが発行した認可トークンを前記利用機能と関連付けて記憶する認可トークン情報記憶部をさらに備える、
情報処理システム。
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.
請求項に記載の情報処理システムであって、
前記利用機能は、前記アプリケーションをグループ化したパッケージから選択された1以上の前記アプリケーションである、
情報処理システム。
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. 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. 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.
請求項に記載の情報処理システムであって、
前記テナントは、複数の前記パッケージが関連付けられており、
前記利用機能は、異なる前記パッケージからそれぞれ1以上選択される、
情報処理システム。
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.
外部サービスと連携した処理を行う複数のアプリケーションを実行する情報処理装置であって、
ユーザ端末から受信した認証情報に基づいて、ユーザの認証を行う第一の認証部と、
前記複数のアプリケーションから、前記ユーザの認証後に表示するホーム画面に表示されるアプリケーションであって、1以上の前記処理を含むアプリケーションである利用機能を、前記ユーザが選択する画面を示す第一の画面情報を前記ユーザ端末に送信する第一の画面提供部と、
前記画面に対する前記ユーザの操作に応じて、前記ホーム画面に表示される前記利用機能に含まれる前記処理で必要とされるスコープを前記外部サービス毎に決定するスコープ判断部と、
前記外部サービスへ前記スコープの認可を要求する第二の認証部と、
前記利用機能を表示する前記ホーム画面を示す第二の画面情報を前記ユーザ端末に送信する第二の画面提供部と、
を備え
前記スコープ判断部は、前記処理で必要とされる複数のスコープのいずれかに、当該スコープに包含されるスコープを示す包含スコープが設定されており、前記複数のスコープが前記包含スコープを含む場合、前記複数のスコープの和と前記包含スコープとの差を前記外部サービス毎のスコープとして決定する、
情報処理装置。
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.
コンピュータが、外部サービスと連携した処理を行う複数のアプリケーションを実行する情報処理方法であって、
第一の認証部が、ユーザ端末から受信した認証情報に基づいて、ユーザの認証を行うステップと、
第一の画面提供部が、前記複数のアプリケーションから、前記ユーザの認証後に表示するホーム画面に表示されるアプリケーションであって、1以上の前記処理を含むアプリケーションである利用機能を、前記ユーザが選択する画面を示す第一の画面情報を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記第一の画面情報に基づいて、前記画面を表示部に表示させるステップと、
スコープ判断部が、前記画面に対する前記ユーザの操作に応じて、前記ホーム画面に表示される前記利用機能に含まれる前記処理で必要とされるスコープを前記外部サービス毎に決定するステップと、
第二の認証部が、前記外部サービスへ前記スコープの認可を要求するステップと、
第二の画面提供部が、前記利用機能を表示する前記ホーム画面を示す第二の画面情報を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記第二の画面情報に基づいて、前記ホーム画面を前記表示部に表示させるステップと、
を有し、
前記スコープ判断部は、前記処理で必要とされる複数のスコープのいずれかに、当該スコープに包含されるスコープを示す包含スコープが設定されており、前記複数のスコープが前記包含スコープを含む場合、前記複数のスコープの和と前記包含スコープとの差を前記外部サービス毎のスコープとして決定する、
情報処理方法。
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.
外部サービスと連携した処理を行う複数のアプリケーションを実行するコンピュータを、
ユーザ端末から受信した認証情報に基づいて、ユーザの認証を行う第一の認証部、
前記複数のアプリケーションから、前記ユーザの認証後に表示するホーム画面に表示されるアプリケーションであって、1以上の前記処理を含むアプリケーションである利用機能を、前記ユーザが選択する画面を示す第一の画面情報を前記ユーザ端末に送信する第一の画面提供部、
前記画面に対する前記ユーザの操作に応じて、前記ホーム画面に表示される前記利用機能に含まれる前記処理で必要とされるスコープを前記外部サービス毎に決定するスコープ判断部、
前記外部サービスへ前記スコープの認可を要求する第二の認証部、及び、
前記利用機能を表示する前記ホーム画面を示す第二の画面情報を前記ユーザ端末に送信する第二の画面提供部、
として機能させ
前記スコープ判断部は、前記処理で必要とされる複数のスコープのいずれかに、当該スコープに包含されるスコープを示す包含スコープが設定されており、前記複数のスコープが前記包含スコープを含む場合、前記複数のスコープの和と前記包含スコープとの差を前記外部サービス毎のスコープとして決定する、
プログラム。
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.
JP2021143698A 2021-09-03 2021-09-03 Information processing system, information processing device, information processing method and program Active JP7809930B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021143698A JP7809930B2 (en) 2021-09-03 2021-09-03 Information processing system, information processing device, information processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021143698A JP7809930B2 (en) 2021-09-03 2021-09-03 Information processing system, information processing device, information processing method and program

Publications (2)

Publication Number Publication Date
JP2023037139A JP2023037139A (en) 2023-03-15
JP7809930B2 true JP7809930B2 (en) 2026-02-03

Family

ID=85509194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021143698A Active JP7809930B2 (en) 2021-09-03 2021-09-03 Information processing system, information processing device, information processing method and program

Country Status (1)

Country Link
JP (1) JP7809930B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017059219A (en) 2015-09-18 2017-03-23 株式会社リコー Information processing system, information processing apparatus, and information processing method
JP2019061383A (en) 2017-09-25 2019-04-18 株式会社リコー INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE, AND INFORMATION PROCESSING METHOD
JP2021043902A (en) 2019-09-13 2021-03-18 株式会社リコー Computer system, login screen display method, program
JP2021076986A (en) 2019-11-06 2021-05-20 株式会社リコー At least one information processor and information processing system and roll setting method
JP2021108443A (en) 2019-12-27 2021-07-29 株式会社リコー Service provision system, information processing system, information processing method, program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017059219A (en) 2015-09-18 2017-03-23 株式会社リコー Information processing system, information processing apparatus, and information processing method
JP2019061383A (en) 2017-09-25 2019-04-18 株式会社リコー INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE, AND INFORMATION PROCESSING METHOD
JP2021043902A (en) 2019-09-13 2021-03-18 株式会社リコー Computer system, login screen display method, program
JP2021076986A (en) 2019-11-06 2021-05-20 株式会社リコー At least one information processor and information processing system and roll setting method
JP2021108443A (en) 2019-12-27 2021-07-29 株式会社リコー Service provision system, information processing system, information processing method, program

Also Published As

Publication number Publication date
JP2023037139A (en) 2023-03-15

Similar Documents

Publication Publication Date Title
US20210377277A1 (en) Service providing system, information processing system, and use permission assigning method
JP7605264B2 (en) One or more information processing devices, information processing system, and role setting method
US20210349974A1 (en) System and method for providing service, and recording medium
JP2022172598A (en) Information processing system, information processing device, processing execution method, program
JP2026041875A (en) Information processing system, system, information processing method, program and method
US11606361B2 (en) Cloud system, information processing system, and user registration method
JP7809930B2 (en) Information processing system, information processing device, information processing method and program
JP7222246B2 (en) Service system, cloud service, user registration method, program
US20230134065A1 (en) Information processing system, service providing system, and application execution method
US11729331B2 (en) Service providing system to generate duplicated application and transmit it to the electronic device for display on a display, information processing method, and non-transitory recording medium
JP7757677B2 (en) Information processing device, information processing method, and program
JP7459649B2 (en) Cloud system, information processing system, and user registration method
US20220075579A1 (en) Server, information processing system, and information processing method
US12210482B2 (en) Data management device, data management system, and recording medium for managing access to documents
JP2022076739A (en) Distribution system, distribution method, and program
JP7434840B2 (en) Information processing system, information processing device, information processing method and program
JP7826635B2 (en) Information processing device, information processing system, information processing method and program
JP7647355B2 (en) Information processing device, information processing method, information processing program, and information processing system
US20220300269A1 (en) Information processing apparatus, information processing system, and information processing method
US20210168130A1 (en) Information processing apparatus, information processing system, method of processing information, and non-transitory recording medium
JP2023138123A (en) Data management device, data management system, data management method, and program
JP2024054723A (en) Information processing system, setting method, program, and service providing system
JP2023110498A (en) Information processing device, information processing system, information processing method and program
JP2023066191A (en) Information processing device, information processing system, information processing method and program
JP2024017327A (en) Information processing system, information processing method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260105

R150 Certificate of patent or registration of utility model

Ref document number: 7809930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150