Information processing apparatus and control method thereof

When execution of a job requiring user authentication included in an application program is reserved, a job identifier of the job and stored user identification information are linked to each other and registered. Then, upon execution of the reserved job, the user identification information linked to the registered job identifier is referred to, and authentication is performed as to whether or not the job is executed. When the authentication is successful, the job is executed. Further, it is determined whether or not an unexecuted job exists among registered reserved jobs. When it is determined that an unexecuted job exists, control is performed so as to maintain the linkage between the identifier of the registered unexecuted job and the stored user identification information.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a technique of reserving execution of a job requiring authentication included in an application program and executing the job.

2. Description of the Related Art

An image processing apparatus such as a printer, a copier, a scanner or a facsimile machine has various functions and abilities for adjustment for a particular purpose or combination of purposes. The image processing apparatus having such functions is generally a multi function peripheral (MFP) having a combination of two or more functions of conventionally separate apparatuses. The MFP may have an arbitrary number of functions. Generally, the MFP has functions of a printer, an image reader, a copier and a facsimile machine.

Further, among image processing apparatuses of this type, some apparatus have a computing resource for data storage and processing (for example, a processor, a hard disk drive, a memory and other devices). Then, as more complicated image processing apparatus and MFP, an apparatus having a network connection function for communication with e.g. another computing device (for example, a personal computer, another image processing apparatus, a network server or another device). This connection function enables the image processing apparatus to use an external resource (another computing device) available on the connected network.

Further, these image processing apparatuses have an input panel with plural buttons, knobs and other user input mechanisms. Further, some image processing apparatuses have a display panel. This display panel may be used only for display, or may be used for a user's direct input on the display. An apparatus having a touch panel or an apparatus having hardware key buttons in addition to the display panel can display menu data for user's selection input. The function corresponding to the menu data is performed by a server module generally installed in the image processing apparatus.

Further, in these image processing apparatuses, authentication processing is required in accordance with the application program. The problem is that, even when plural application programs to use the same authentication information exist, it is necessary to input authentication information in respective use of the application programs. To solve the problem, Single sign-on (SSO) is known.

For example, Japanese Patent Laid-Open No. 2003-50781 discloses a system having an authentication database to store authentication information including information for personal authentication based on an inputted ID number and a password. In this system, a client PC requests authentication information from the authentication database, then obtains the authentication information and temporarily stores the information on the client PC. Then the client PC starts an arbitrary application program based on the temporarily-stored authentication information by its authentication core.

Further, a method for realizing Single sign-on in the image processing apparatus by volatile shared authentication information (credential) management system as follows is known.

FIG. 1is a block diagram for explanation of general authentication information management method. In this example, for the sake of convenience of explanation, as the time axis, time elapses in a top-to-bottom direction inFIG. 1.

A shared credential service101for volatile credential management is registered as one of services of the image processing apparatus. Upon log-in time, a log-in application (log-in service)102generates a log-in context_A105from log-in information. The log-in context_A105is an interface provided with the log-in application102so as to obtain user information for authentication. The log-in application102generates a credential_A106and registers the credential_A106in the shared credential service101. At this time, the shared credential service101manages this credential with the log-in context_A105as a key. Similarly, an application_A103can register a credential_B107with respect to the shared credential service101. As a result, as denoted by numeral120, the shared credential service101links the plural credentials_A106and B107to the user's log-in context_A105and manages the plural credentials_A106and B107.

FIG. 2depicts a view illustrating an example of a credential management table at this time. In this example, the credentials_A106and B107linked to the log-in context_A105and the credentials_C and D linked to the log-in context_B are managed. Note that inFIG. 1, only the status where the credentials_A106and B107are linked to the log-in context_A105is shown.

On the other hand, an example where a job_B153is executed by an application_B104to re-use the credential_A106obtained by the shared credential service101will be described. In this case, the job_B153, to access a PC108using the credential_A106, is enabled to obtain or refer to the credential_A106from the credential management table inFIG. 2, with designation of the log-in context_A105as a key with respect to the shared credential service101. Thus the job_B153accesses the PC108using the credential_A106. Further, thereafter, upon execution of log-out, the log-in context_A105is deleted. Further, the shared credential service101can release all the registered credential information (credential_A106and credential_B107) linked to the log-in context_A105and under the volatile management.

Such a Single sign-on system has the following problems.

In the above-described image processing apparatus, when a user has logged in and reserved a job, there is a possibility that the job is executed after log-out of the user. At this time, as described above, when a credential is managed with a log-in context_A as a key, the log-in context is deleted upon log-out. Then, as the registration of the credential is also released in accordance with the deletion, the job referring to the credential cannot be executed.

Accordingly, in the conventional technique, when transmission of image data obtained by image scanning is reserved, a user name and a password are inputted upon reservation of the transmission, and this function is realized based on the inputted user name and password. In this manner, conventionally, it is necessary for each application to manage a user name and password to execute a job. Further, as each application manages authentication information, there is a security problem, and further, the load is heavy in consideration of management cost.

Accordingly, it is necessary to provide a frame work of Single sign-on authentication in consideration of the problem upon execution of a reserved job after log-out.

SUMMARY OF THE INVENTION

An aspect of the present invention is to eliminate the above-mentioned problems in the conventional technology.

The invention provides a technique for, upon execution of a job requiring authentication, referring to linkage between the registered reserved job and user identification information and performing user authentication, then, when a reserved unexecuted job exists, maintaining the linkage between the reserved job and the user identification information. With this technique, it is possible to execute the reserved unexecuted job even after log-out.

According to an aspect of the present invention, there is provided an information processing apparatus for executing an application program including a job requiring user authentication, the apparatus comprising: a reservation unit configured to reserve execution of a job requiring the user authentication included in the application program; a storage unit configured to hold user identification information necessary for the user authentication; a register unit configured to, when execution of the job is reserved by the reservation unit, link an identifier of the job to the user identification information stored in the storage unit and register the job identifier; an authentication unit configured to, upon execution of the reserved job, refer to the user identification information linked to the job identifier registered by the register unit and authenticate whether or not the job is executed; an execution unit configured to execute the job for which authentication by the authentication unit is successful; a determination unit configured to determine whether or not an unexecuted job exists among reserved jobs registered by the register unit; and a control unit configured to, when the determination unit determines that the unexecuted job exists, perform control to maintain linkage between the identifier of the unexecuted job registered in the register unit and the user identification information stored in the storage unit.

DESCRIPTION OF THE EMBODIMENTS

FIG. 3is a block diagram showing the entire configuration of a print system including an image forming apparatus according to embodiments of the present invention. Note that in the embodiments, a copier, a printer or a multi function peripheral having functions particularly described later will be described as an example of the image forming apparatus. However, the present invention is not limited to the image forming apparatus, but is applicable to an information processing apparatus such as a PC.

An image forming apparatus310is connected to, together with a client computer320and a server computer330, to a LAN340such as Ethernet (registered trademark). Note that in this print system, the number of devices connected to the system is not limited to this number. The image forming apparatus310has a console unit311, a scanner unit312, a printer unit313, a FAX transmitter/receiver314, and a mail transmitter/receiver315.

The server computer330having a CPU executes an operating system (OS) and various application programs, to perform various data processing by executing the application under the management of the OS. The client computer320operates similarly to the server computer330.

FIG. 4is a block diagram showing a configuration of a controller400to control the image forming apparatus310according to the embodiments.

The image forming apparatus310having a copier function, a facsimile function, an electronic mail transmission function and the like, further has a data transmission function of reading an original and transmitting image data obtained by reading to the respective units of the LAN340. The image forming apparatus310receives image data read with the scanner unit312or data designated from a computer connected to the LAN340, and stores the image data in a particular region of the hard disk drive404of the image forming apparatus310. Further, the image forming apparatus310can read an original and stores read data as digital image data on the hard disk drive404. Further, the image forming apparatus310can print-output digital image data stored in a hard disk region.

The scanner unit312converts image information into an electric signal by inputting reflected light, obtained by expose-scanning on the image of the original, into a CCD. Further, the scanner unit312converts the electric signal into a luminance signal in respective R, G and B colors, and outputs the luminance signal as image data to the controller400. Note that the original is set on a document feeder. When the user instructs from the console unit311to start reading, an original reading instruction is given from the controller400to the scanner unit312. The scanner unit312receives the instruction, then feeds the originals from an original feeder one by one, and performs original reading. Note that the original reading method may be, not automatic feeding with an original feeder but original scanning by moving an exposure member on an original placed on a glass surface (not shown). The printer unit313is an image forming device to form (print) an image based on the image data received from the controller400on a print sheet.

The controller400, electrically connected to the scanner unit312and the printer unit313, is also connected via the LAN340to the client computer320and the server computer330. This connection enables input/output of image data and device information. The CPU401expands a program from the HDD404on the RAM403by a boot program stored on the ROM402, and controls access to the connected various devices based on the program or the like. The RAM403further provides a work memory for operation of the CPU401, and serves as a memory for temporary storage of image data. The RAM403is an SRAM to hold stored contents after power-off or a DRAM in which the stored contents are deleted after the power-off. The HDD404is a hard disk drive holding the OS of the system, various application software programs and image data.

The console unit I/F405is an interface unit for connection between a system bus412and the console unit311. The console unit I/F405receives image data to be displayed on the console unit311from the system bus412and outputs the image data to the console unit311, and outputs information inputted from the console unit311to the system bus412. A network I/F406, connected to the LAN340, a WAN (Wide Area Network)450and the system bus412, performs information input/output.

A scanner I/F408performs correction, processing and editing on the image data received from the scanner unit312. Note that the scanner I/F408determines whether the received image data is color data or monochrome data, or whether character original data or photo original data. Then the scanner I/F408outputs the result of the determination as attribute data of the image data.

The image processor409performs rotation, compression and decompression of image data. The printer I/F410receives image data outputted from the image processor409, refers to the attribute data attached to the image data, and performs image processing on the image data. Thus image-processed image data is outputted, upon printing, to the printer unit313and print-outputted. A FAX I/F411outputs the image data outputted from the image processor409to the FAX transmitter/receiver314. By this operation, the image data is facsimile-transmitted to a designated transmission destination through the LAN340(or the WAN450). A mail I/F407outputs the image data outputted from the image processor409to the mail transmitter/receiver315. The mail transmitter/receiver315transmits the mail to a designated destination through the LAN340(or the WAN450). Further, the data received by the mail transmitter/receiver315or the FAX transmitter/receiver314is transmitted to the CPU401via the respective corresponding I/F, and is displayed on the display unit of the console unit311or print-outputted by the printer unit313.

Note that the user instruction with respect to the image forming apparatus310and the presentation of information to the user may be performed via e.g. the console unit311, otherwise, may be performed via the client computer320connected via the LAN340.

First Embodiment

FIG. 5is a block diagram showing a configuration upon execution of reserved job by an application utilizing a credential after log-out in the image processing apparatus according to a first embodiment. For the sake of convenience of explanation, a time axis190indicates that time flows in a top-to-bottom direction inFIG. 5.

In the present embodiment, in the image processing apparatus to execute an application including a job requiring user authentication, execution of a job requiring user authentication included in an application is reserved. Then, user identification information for the user authentication is stored as a credential.

A shared credential service501to manage credentials is registered as one of services of the image processing apparatus. Upon log-in denoted by numeral550, a log-in application (log-in service)502generates log-in context_A505from log-in information. Further, the log-in application502generates a credential_A506, and registers the credential_A506in the shared credential service501(551). At the same time, an application_A503can register a credential_B507in the shared credential service501(552).

Next, reservation of a job_B512by an application_B511to re-use the credential_A506in the shared credential service501will be described. Note that the job_B512is accompanied by processing to access the PC320utilizing the credential_A506. Upon reservation of the job_B512(513), the application_B511inquires of the user as to whether or not the shared credential service501is used when the reserved job_B512is executed after log-out. When the user replies that the credential is used, the application_B511designates the log-in context_A505as a key with respect to the shared credential service501. Then the application_B511obtains the credential_A506from the credential management table as shown inFIG. 2and refers to the credential. Then the application_B511registers an identifier of the reserved job_B512with respect to the credential_A506in the shared credential service501by a method to be described later with reference toFIG. 7.

Similarly, reservation of a job_C522by an application_C521to re-use the credential_A506in the shared credential service501will be described. Upon reservation of the job_C522(523), the application_C521inquires of the user as to whether or not the shared credential service501is used when the reserved job_C522is executed after log-out. When the user replies that the shared credential service501is used, the application_C521designates the log-in context_A505as a key with respect to the shared credential service501, and obtains the credential_A506from the credential management table and refers to the credential_A506. The application_C521registers an identifier of the reserved job_C522with respect to the credential_A506in the shared credential service501by a method to be described later with reference toFIG. 7.

FIG. 6Adepicts a view illustrating an example of the credential management table.

In the table, identifiers of the reserved job_B512and job_C522are registered with respect to the credential_A506linked to the log-in context_A505. When the reserved job is registered with respect to the credential, the value of a reference counter corresponding to the credential is incremented by one (+1). InFIG. 6A, as two jobs (job_B and job_C) are registered with respect to the credential_A506linked to the log-in context_A505, the value of the reference counter is “2”. In this manner, the reference counter functions as a counter to count the number of reserved jobs registered with linkage to user identification information (credential). When the counter value is “0”, the linkage between the job and the credential is deleted upon log-out.

Next, the operation of the shared credential service501upon log-out will be described. Generally, upon log-out, as a log-in context is deleted, registration of the credential information linked to the log-in context is also deleted. However, a credential, regarding which an identifier of a reserved job is held in the credential management table is linked to the reserved job identifier registered in the table and the credential is held.

FIG. 6Bdepicts a view illustrating an example of the credential management table after the log-out.

In the table, credentials_C and D linked to a log-in context_B are deleted since there is no reserved job (the value of the reference counter is “0”). Similarly, a credential_B linked to the log-in context_A is deleted since there is no reserved job. InFIG. 6B, a hatched item indicates that the registration is deleted.

Next, execution of the job_B512after log-out will be described. Upon execution of the job_B512(555), in place of log-in context, the credential management table is referred to with the identifier of the reserved job as a key (556). With this operation, the credential_A506is retrieved. Then, it is possible to access the PC320using the credential_A506(557). When the job_B512has been normally executed, the application_B511issues a decrement instruction to decrement the value of the reference counter for the job_B512by one (−1) to the credential management table.

Further, after log-out, the reserved job_C522is normally executed by similar processing, the value of the reference counter for the credential_A506in the credential management table is decremented by one (−1), and the value of the reference counter is “0”. Then the credential_A506is deleted from the shared credential service501.

FIG. 7is a flowchart for describing processing of registration of a credential in the credential management table upon job reservation in the image processing apparatus in the present embodiment. Note that a program to execute this processing is installed in the HDD404, and upon execution, the program is loaded to the RAM403and executed under the control of the CPU401. Note that in this example, the application_B511reserves the job_B512.

First, in step S701, reservation setting for the application_B511to reserve the job_B512is performed. Then in step S702, the application_B511inquires of the user as to whether or not the shared credential service501is used after log-out. When the user replies that the shared credential service is used, the process proceeds to step S703, otherwise, the process ends without any processing. When the user replies that the shared credential service is not used, when the job_B512is executed after log-out, the credential_A506cannot be used.

In step S703, the reserved job_B512is registered in the credential management table (513inFIG. 5). Next, in step S704, at which an identifier of the reserved job is generated, and registered in a corresponding credential in the credential management table. Next, in step S705, the value of a reference counter for the corresponding credential in the credential management table is incremented by one (+1). Next, in step S706, the application511receives the identifier of the reserved job generated in step S704, and holds the identifier, with linkage to the job for use upon execution of the reserved job.

Note that as the identifier of the reserved job, any identifier may be used as long as it can be uniquely used for identification of the job. Note that it may be arranged such that the identifier of the reserved job is generated by generating an UUID while its uniqueness is being assured by an application itself and the ID is utilized. That is, the application_B511generates a unique UUID, and registers the UUID in the credential management table. Further, the linkage between the UUID and the job_B512is held for use upon execution of reserved job.

FIG. 8is a flowchart for describing processing upon execution of a reserved job_B by an application_B511utilizing a credential_A506after log-out. Note that a program to perform this processing is installed in the HDD404, and loaded to the RAM403upon execution and is executed under the control of the CPU401.

First, in step S801, the reserved job_B512is executed after log-out. Next, in step S802, the application_B511refers to the credential management table, to retrieve the credential_A506with the identifier of the reserved job_B512as a key in step S706inFIG. 7. When the retrieval of the credential_A506is successful, the process proceeds from step S802to step S803, at which the job_B512is executed utilizing the credential_A506, and the process proceeds to step S805. On the other hand, when the retrieval of the credential_A506in step S802is unsuccessful, the process proceeds from step S802to step S804, in which the job_B512is cancelled, and the process ends.

When the execution of the job in step S805is successful, the process proceeds to step S806, in which the application_B511decrements the value of the reference counter for the credential_A506in the credential management table by one (−1). On the other hand, when the execution of the job in step S805is unsuccessful, the process proceeds to step S807, in which retry is performed. In step S807, when it is determined that the number of retry is less than a predetermined value, the process proceeds to step S802, on the other hand, when it is determined that the frequency is higher than the predetermined value, the process proceeds to step S806, in which the value of the reference counter for the credential_A506in the credential management table is decremented by one (−1). When the value of the reference counter is decremented (−1) in step S806, then the process proceeds to step S808, in which it is determined whether or not the value of the reference counter for the credential is “0”. When it is determined that the value of the reference counter for the credential is “0”, as no unexecuted reserved job exists, the process proceeds to step S809, to release the registration of the credential (in this case, the credential_A). On the other hand, when it is determined in step S808that the value of the reference counter is not “0”, as an unexecuted reserved job exists, the processing is terminated in the status where the registration of the credential is maintained.

Note that in the flowchart ofFIG. 8, when the execution of the job is unsuccessful, retry processing is performed, however, the present invention is not limited to this processing but is applicable to a case where the retry is not performed.

As described above, according to the first embodiment, a credential used in a reserved job, linked to the reserved job, is registered in the credential management table. Then, a counter indicating whether or not several reserved jobs are related to the credential is provided. Thus, even when log-out occurs, the credential is not deleted from the credential management table, but when the value of the counter is “0”, the credential is deleted from the credential management table. In this arrangement, even upon log-out, as a reserved job and information on a credential used in the job are held, the reserved job can be executed using the credential after the log-out.

Second Embodiment

In the first embodiment, a reserved job is executed after log-out. In the second embodiment, the job reserved in the first embodiment is executed before log-out.

FIG. 9is a flowchart for describing processing of execution of reservation-processed job before log-out in the image processing apparatus according to a second embodiment of the present invention. Note that a program to perform this processing is installed in the HDD404and upon execution, loaded to the RAM403and executed under the control of the CPU401.

First, in step S901, reservation of a job is registered by the method described inFIG. 7, and the identifier of the reserved job is registered in the credential management table as shown inFIG. 6A. Next, in step S902, it is determined whether or not an interface to obtain user information for authentication is to be used, i.e., whether or not a log-in context is referred to. When it is determined that the log-in context is not referred to, the process proceeds to step S906, in which a credential is referred to based on the identifier of the reserved job as described in the flowchart ofFIG. 8.

On the other hand, when it is determined in step S902that the log-in contest is referred to, the process proceeds to step S903, in which the credential is referred to with the log-in context_A as a key. When the reference to the credential is successful, the process proceeds to step S904, in which the value of a reference counter for the credential in the credential management table is decremented by one (−1). Then in step S905, the credential obtained from the credential management table is referred to, the reserved job is executed, and the process ends.

As described above, according to the second embodiment, even when a reserved job is executed before log-out, the value of the reference counter for the credential in the credential management table is updated. In this arrangement, when the execution of a reserved job is completed before log-out, the job is not re-executed after the log-out.

Other Embodiments

This application claims the benefit of Japanese Patent Application No. 2010-230699, filed Oct. 13, 2010 which is hereby incorporated by reference herein in its entirety.