This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-3330, filed on Jan. 11, 2011, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein relate to session management.
A single sign-on system may be used when a client terminal accesses a business server. Suppose that, when a client terminal attempts to access a business server, an authentication control system performs an authentication process and permits the access from the client terminal. In this case, the single sign-on system allows the client terminal to access the business server thereafter without performing the authentication process. In such a single sign-on system, information on the access-permitted session, namely, session information such as session identification information and access time information, is stored in the business server once the access is permitted by the authentication control system as a result of the authentication process. When the client terminal that has been permitted to access the business server attempts to access the business server thereafter, the authentication control system evaluates the session information stored in the business server and determines whether or not to perform the authentication process. When the single sign-on system includes a plurality of business servers, the session information is synchronized between the plurality of business servers. Each of the plurality of business servers determines whether or not to perform the authentication process based on evaluation of the, synchronized session information.
As techniques for synchronizing session information between a plurality of business servers, Japanese Laid-open Patent Publication No. 2006-31064 discloses the following technique. When session information is modified because one of the plurality of business servers is accessed by a client terminal after the client terminal has logged in to the plurality of business servers, the accessed business server sends the session information to the other business servers, whereby the session information is synchronized between the plurality of business servers.
In the technique described above, the business servers communicate with each other so as to synchronize the session information every time any of the business servers is accessed by the client terminal. Accordingly, the number of times communication is performed for synchronization of session information undesirably increases as the number of times the client terminal accesses the business servers increases.
According to an aspect of the invention, an apparatus includes a memory and a processor to executes a procedure, the procedure including storing, in the memory of the apparatus, identification information for identifying a session used for first access made to the server apparatus, until a certain length of time elapses from access time of the first access, obtaining the time information which indicates access time of an access made to another server apparatus, and when time information, which indicates access time of second access made to the another server apparatus after the first access by using the same session as the session used for the first access, is obtained by the obtaining until the certain length of time elapses from access time of the first access, controlling the memory to store the identification information until the certain length of time further elapses from the access time indicated by the obtained time information.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
A session management system, a session management apparatus, a server apparatus, and a session management method according to embodiments will be described in detail below with reference to the accompanying drawings.
A configuration of a session management system according to a first embodiment, the flow of a process performed by the session management system, and advantages offered by the first embodiment will be sequentially described below.
A configuration of a session management system 1 according to the first embodiment will now be described using
The authentication control system 10 includes a repository server 10A and an authentication server 10B. The repository server 10A manages authentication information for use in authentication and session information. The authentication server 10B receives an authentication request from the client terminal 30 and performs an authentication process. The detailed configuration and process of the authentication control system 10 will be described later using
The business servers 20A and 20B receive a request for content from the client terminal 30. When session information is not cached in the business servers 20A and 20B at the time of reception of the request, the business servers 20A and 20B request the authentication control system 10 to evaluate the session information, and receives the session information from the repository server 10A. When the session information is cached in the business servers 20A and 20B at the time of reception of the request for content from the client terminal 30, the business servers 20A and 20B returns a response in accordance with the cached session information. The detailed configuration and process of the business servers 20 will be described later using
The client terminal 30 sends a request for content to the business servers 20A and 20B, and receives the content from the business servers 20A and 20B. The client terminal 30 also sends an authentication request to the authentication server 10B at the time of sign-on, and sends a sign-off request to the authentication server 10B at the time of sign-off.
Now, a process of evaluating session information performed by the authentication control system 10 will be described concretely using an example illustrated in
As illustrated in
When the session information is cached in the business server 20A, the business server 20A evaluates the session information upon reception of a request for content from the client terminal 30. Now, a process of evaluating session information performed by the business server 20A will be concretely described using an example illustrated in
Now, the description will be given for the process performed by the business server 20A to evaluate the session information cached in the business server 20A. Upon reception of a request for content from the client terminal 30 (see (1) in
The detailed configuration of the authentication control system 10 will now be described using
The communication control I/F 11 controls communication carried out for exchanging various types of information between the business servers 20 and authentication server 10B that are coupled to the repository server 10A. For example, the communication control I/F 11 sends session information to the business servers 20, and also receives an authentication result from the authentication server 10B.
The storage section 13 stores data and programs for use in various processes executed by the control section 12. The storage section 13 includes a session management table 13a and a business-server management table 13b. The session management table 13a stores session information, which is information regarding communication sessions established between, the client terminal 30 and the plurality of business servers 20.
For example, as illustrated in
The business-server management table 13b stores information on the plurality of business servers 20. For example, as illustrated in
The control section 12 includes an internal memory for storing programs that define procedures of various processes and data to be used in the various processes, and executes the various processes by using the programs and the data. The control section 12 includes a session-information storing unit 12a, a session-information sending unit 12b, a session-information updating unit 12c, a synchronization requesting unit 12d, and a deletion requesting unit 12e.
When the authentication server 10B permits communication between the business server 20 and the client terminal 30 as a result of authentication, the session-information storing unit 12a stores, in the session management table 13a, session information, which is information regarding a communication session established between the business server 20 and the client terminal 30.
When the authentication server 10B permits communication between the business server 20 and the client terminal 30 as a result of authentication, the session-information sending unit 12b sends session information to the business server 20 in response to an evaluation request to evaluate the session information sent from the business server 20.
The synchronization requesting unit 12d periodically sends a synchronization request to the individual business servers 20 so that the session information stored in the session management table 13a and the session information stored by the plurality of business servers 20 are updated to the latest information. Details about the synchronization process will be described later using
When the latest session information is received from the business servers 2Q as a response to the synchronization request that has been sent by the synchronization requesting unit 12d, the session-information updating unit 12c updates the corresponding session information stored in the session management table 13a to the received latest session information.
Upon reception of a sign-off request for requesting to terminate the communication, the deletion requesting unit 12e sends a request to delete the session information to the individual business servers 20. Details about the sign-off process will be described later using
The configuration of the authentication server 10B will now be described. The communication control I/F 14 of the authentication server 10B controls communication carried out for exchanging various types of information between the client terminal 30 and the repository server 10A that are coupled the authentication server 10B. For example, the communication control I/F 14 receives an authentication request from the client terminal 30, and also sends an authentication result to the repository server 10A.
The control section 15 includes an internal memory for storing programs that define procedures of various processes and data to be used in the various processes, and executes the various processes by using the programs and the data. The control section 15 includes an authentication unit 15a. When an authentication request is received from the client terminal 30 that has made a communication request to the business server 20, the authentication unit 15a performs authentication to determine whether or not to permit the communication between the client terminal 30 and the business server 20.
The detailed configuration of the business server 20 will now be described using
The communication control I/F 21 controls communication carried out for exchanging various types of information between the authentication control system 10 and the client terminal 30 that are coupled to the business server 20. For example, the communication control I/F 21 receives session information and a synchronization request to synchronize the session information from the authentication control system 10. The communication control I/F 21 also receives a request for content from the client terminal 30, and sends the content to the client terminal 30.
The storage section 23 stores data and programs for use in various processes executed by the control section 22, and includes a session management table 23a. The session management table 23a stores session information, which is information regarding a communication session established between the business server 20 and the client terminal 30.
For example, as illustrated in
The control section 22 includes an internal memory for storing programs that define procedures of various processes and data to be used in the various processes, and executes the various processes by using the programs and the data. The control section 22 includes a session-information storing unit 22a, a session-information updating unit 22b, and a session-information deleting unit 22c.
Upon reception of session information sent from the repository server 10A, the session-information storing unit 22a caches the session information in the session management table 23a. The session-information storing unit 22a updates the content of the session management table 23a when the business server 20 is accessed by the client terminal 30.
Upon reception of a synchronization request from the repository server 10A, the session-information updating unit 22b compares session information contained in the synchronization request with session information stored in the session management table 23a. If the session-information updating unit 22b determines that the session information contained in the synchronization request is the latest session information, the session-information updating unit 22b updates the session information stored in the session management table 23a to the session information contained in the synchronization request.
Upon reception of a request to delete session information from the repository server 10A, the session-information deleting unit 22c deletes the session information stored in the session management table 23a. Details about the sign-off process will be described later using
Now, the description will be given using
For example, as illustrated in
The business server 20A receives the response, extracts the session information contained in the response, and caches the session information in the session management table 23a (see (4) in
The description will now be given using
For example, in response to a request for content received after the session information has been cached in the business server 20A, the business server 20A evaluates a state of a corresponding session using the cached session information. The business server 20A returns a response based on a result of the evaluation. As illustrated in
The response performance improves by using the foregoing configuration compared with the case where the business server 20A requests the authentication control system 10 to evaluate session information every time the client terminal 30 attempts to access the business server 20A. In the foregoing process, the business server 20A also updates the cache expiration time and the last access time which are contained in the session information cached in the business server 20A. Accordingly, the real-time property of the session information cached in the business server 20A may be maintained.
The synchronization process of synchronizing session information will be described next.
The business server 20A that has received the synchronization request compares the last access time of the cached session information with the last access time of the session information contained in the synchronization request, and performs the following processing in accordance with a result of the comparison. The business server 20A then returns a response to the repository server 10A (see (2) in
For example, when the last access timeof the cached session time is later than the last access time contained in the synchronization request as a result of the comparison, the business server 20A includes the cached session information in a response, and sends the response to the repository server 10A. In this case, the business server 20A does not update the cache expiration time and the last access time of the session information cached in the business server 20A. The repository server 10A that has received the response updates the last access time and the idle monitoring period stored in the repository server 10A to the last access time and the idle monitoring period contained in the response, respectively.
When the last access time of the cached session information is not later than the last access time contained in the synchronization request as a result of the comparison, the business server 20A updates the cached last access time to the last access time of the session information contained in the synchronization request. In this case, the business server 20A also updates the cache expiration time of the cached session information. Here, the cache expiration time indicates the time at which a session is invalidated if the idle monitoring period elapses from the last access time contained in the synchronization request.
The repository server 10A that has received the response from the business server 20A updates only items of the session information contained in the response. Only items of the session information cached in the business server 20A that are determined to be the latest information are contained in the response. That is, the items of the session information to be updated are the last access time and the idle monitoring period. As a result the foregoing process, the last access time stored by the business server 20A and the last access time stored by the repository server 10A indicate the same value and, thus, the real-time property of the session information may be maintained. When session information subjected to synchronization is not cached in the business server 20A to reduce the load of the business server 20A and the repository server 10A, the repository server 10A does not send the synchronization request to the business server 20A.
A process of synchronizing session information between a plurality of business servers will now be described using
For example, as illustrated in
Subsequently, the repository server 10A sends a synchronization request to synchronize session information to the business server 20B (see (5) in
As described above, the repository server 10A updates the session information using the latest information among from the pieces of information contained in the responses sent from the plurality of business servers 20A and 20B. With this configuration, the real-time property of the session information may be maintained even when the plurality of business servers 20A and 20B exist.
The flow of the synchronization process will now be described using
The business server 20B that has received an access request from the same client terminal 30 sends an evaluation request to evaluate session information to the repository server 10A (authentication control system 10). The business server 20B then receives a response from the repository server 10A. Just like the business server 20A, the business server 20B caches the session information contained in the response (see (2) in
After the synchronization-request sending interval set for the business server 20A has elapsed, synchronization requesting unit 12d of the repository server 10A notifies the last access time to the business server 20A by sending the synchronization request. In other words, the business server 20A obtains the session information including the last access time of the business server 20B from the business server 20B via the repository server 10A with the synchronization request. The last access time of the session information managed by the repository server 10A is later than the last access time cached in the business server 20A. Accordingly, the business server 20A updates the last access time and the cache expiration time so that the storage section 23 stores the session information until the expiration time elapses from the updated last access time (see (3) in
After the synchronization-request sending interval set for the business server 20B has elapsed, the repository server 10A sends the synchronization request to the business server 20B. The business server 20B does not update the session information because the last access time of the session information managed by the repository server 10A is the same as the last access time of the cached session information (see (4) in
After the synchronization-request sending interval set for the business server 20A has elapsed, the repository server 10A similarly sends the synchronization request to the business server 20A (see (5) in
When the business server 20A is accessed by the client terminal 30 after the cache expiration time has elapsed, the business server 20A requests the repository server 10A to evaluate a session as in the first access because the cached session information is invalidated. The session information managed by the repository server 10A is updated to the session information notified by the business server 20B. Accordingly, the repository server 10A considers that the request is made during the idle monitoring period and may send a response for permitting the access to the business server 20B without performing authentication (see (7) in
As described above, the synchronization request to synchronize session information is periodically sent to the business servers 20A and 20B from the authentication control system 10, whereby content of the session information of the authentication control system 10 and the business servers 20A and 20B are updated to the latest information. In contrast, when the synchronization process of synchronizing session information is not performed, the business server that has received a request for content from a client terminal may correctly update the last access time but the other business servers may fail to update the last access time. For this reason, the integrity of the session information cached in the business servers is not maintained. As a result, the real-time property of the session information may no longer be maintained in the entire single sign-on system.
The case where the synchronization process of synchronizing session information is not performed will now be described concretely using
When the business server 20A is accessed by the client terminal 30 for the first time, the business server 20A similarly sends an evaluation request to evaluate session information to the authentication control system 10. The business server 20A then receives a response from the authentication control system 10, and caches session information contained in the response (see (2) in
When the business server 20B is accessed by the client terminal 30 thereafter, the business server 20B evaluates the session and updates the cached session information because the cached session information is valid. Here, the business server 20B updates the last access time of the session information, thereby updating the session expiration time (see (3) in
In the example illustrated in
When the business server 20A receives an access request from the client terminal 30 after the validity of the session information has expired, the business server 20A sends an evaluation request to evaluate session information to the authentication control system 10. Since the last access time of the session information stored by the authentication control system 10 is not also updated, authentication may occur at a timing when authentication is supposed to be unnecessary (see (4) in
The sign-off process will be described next using
Upon reception of the deletion request, the business server 20A deletes the cached session information (see (3) in
The description will now be given using
Thereafter, the business server 20A that has received an access request from the client terminal 30 sends an evaluation request to evaluate session information to the repository server 10A (authentication control system 10). The business server 20A then receives a response containing the session information from the repository server 10A, and caches the session information (see (2) in
Then, the business server 20B receives an access request from the client terminal 30, and updates the session information cached in the business server 20B (see (3) in
Subsequently, after the synchronization-request sending interval set for the business server 20A has elapsed, the repository server 10A sends a synchronization request to the business server 20A. Since the last access time of the session information managed in the repository server 10A is later than the last access time of the cached session information, the business server 20A updates the last access time and the cache expiration time (see (5) in
The business server 20A then receives an access request from the client terminal 30. At this time, an evaluation request to evaluate session information does not occur since the cache expiration time cached in the business server 20A is updated to the cached expiration time contained in the synchronization request. The business server 20A updates the cached session information (see (6) in
The process performed by the session management system 1 according to the first embodiment will now be described using
As illustrated in
When the business server 20 determines that the received request is not the sign-off request, the business server 20 determines whether or not the received request is a synchronization request (S105). When the business server 20 determines that the received request is the synchronization request as a result of the determination, the business server 20 determines whether or not the last access time of the cached session information is earlier than the last access time of the session information contained in the synchronization request (S106). When the business server 20 determines that the last access time of the cached session information is earlier than the last access time of the session information contained in the synchronization request as a result of the determination, the business server 20 updates the cached session information (S108). When the business server 20 determines that the last access time of the cached session information is not earlier than the last access time of the session information contained in the synchronization request, the business server 20 sends a response containing the last access time of the cached session information to the repository server 10A (S107).
When the business server 20 determines that the received request is not the synchronization request, the business server 20 determines whether or not the received request is a request to access protected content (S109). When the business server 20 determines that the received request is the request to access unprotected content as a result of the determination, the business server 20 returns the content to the client terminal 30 because an authentication process is not needed (S110). When the business server 20 determines that the received request is the request to access protected content, the business server 20 determines whether or not the client terminal 30 has already been authenticated (S111). When the business server 20 determines that the client terminal 30 has not been authenticated as a result of the determination, the business server 20 requests the authentication server 1013 to perform authentication (S112).
When the business server 20 determines that the client terminal 30 has been authenticated, the business server 20 searches for corresponding session information (S113) and determines whether or not the session information is stored in the session management table 23a (S114). When the business server 20 determines that the session information is stored in the session management table 23a as a result of the determination, the business server 20 determines whether or not the cache expiration time has elapsed (S115). When the business server 20 determines that the cache expiration time has not elapsed, the business server 20 updates the session information (S117) and returns the content to the client terminal 30 (S122).
When the business server 20 determines that the cache expiration time has elapsed, the business server 20 deletes the session information (S116). When the business server 20 determines that the session information is not stored in the session management table 23a, the business server 20 requests the authentication control system 10 to evaluate session information and obtains the session information (S118). The business server 20 then determines whether or not the session information is valid (S119). When the session information is valid, the business server 20 registers the session information (S121) and returns the content to the client terminal 30 (S122). When the business server 20 determines that the session information is invalid, the business server 20 requests the authentication server 10B to perform authentication (S120).
The process performed by the repository server 10A will now be described using
The flow of the synchronization process performed by the repository server 10A will now be described using
When the business server 20 has the session information subjected to synchronization, the repository server 10A sends a synchronization request to the individual business servers 20 (S305) and reflects the result in the session information (S306). The repository server 10A changes the processing status contained in the business-server management table 13b to “done” (S307) and terminates the process.
As described above, when the authentication control system 10 receives an authentication request from the client terminal 30 that has made a communication request to the business server 20, the authentication control system 10 performs authentication and determines whether or not to permit communication of the client terminal 30. When the authentication control system 10 permits the communication of the client terminal 30, the authentication control system 10 stores, in the session management table 13a, session information which is information regarding a communication session established between the client terminal 30 and the business server 20. When the authentication control system 10 receives an evaluation request to evaluate session information from the business server 20 thereafter, the authentication control system 10 sends the session information to the business server 20. The authentication control system 10 further requests the plurality of business servers 20 to perform synchronization so that the session information stored in the authentication control system 10 and the session information stored in the plurality of business servers 20 are updated to the latest information. As a result, even when the plurality of business servers 20A and 20B exist, the real-time property of the session information may be maintained and the performance of processing a request of the client terminal 30 may be improved in the entire session management system 1.
In addition, according to the first embodiment, the authentication control system 10 sends, to the business servers 20, a synchronization request to request the business servers 20 to synchronize the session information stored in the session management table 13a and the session information stored in the business servers 20 at intervals shorter than the idle monitoring period, during which whether or not communication from the client terminal 30 to the corresponding business servers 20 is performed is monitored. Accordingly, the authentication control system 10 may perform synchronization so that the session information is updated to the latest information before the session information is invalidated as the idle monitoring period has elapsed. Thus, the authentication control system 10 may appropriately synchronize the session information between the business servers 20A and 20B and may allow the latest synchronized information to be stored in the business servers 20A and 20B. As a result, the real-time property of the session information may be maintained and the performance of processing a request of the client terminal 30 may be improved in the entire session management system 1.
Furthermore, according to the first embodiment, when the authentication control system 10 receives the latest session information from the business server 20 as a response to a synchronization request that has been sent, the authentication control system 10 updates the session information stored in the session management table 13a based on the latest session information. With this configuration, the authentication control system 10 may appropriately synchronize the session information between the business servers 20A and 20B and may allow the latest synchronized information to be stored in the business servers 20A and 20B. As a result, the real-time property of the session information may be maintained and the performance of processing a request of the client terminal 30 may be improved in the entire session management system 1.
Moreover, according to the first embodiment, when the authentication control system 10 receives a request to terminate communication, the authentication control system 10 sends a request to delete session information to the business servers 20. Accordingly, the authentication control system 10 may appropriately delete the session information. According to the embodiment, an increase in the number of times communication is performed for synchronization of session information may be suppressed even when the number of times a client terminal accesses business servers increases.
Meanwhile, each component of the repository server 10A and the authentication server 10B illustrated in
Additionally, the functions of the apparatuses illustrated in
As illustrated in
The hard disk drive 270 stores the session management program 270a that has the same functions as the session-information storing unit 12a, the session-information sending unit 12b, the session-information updating unit 12c, the synchronization requesting unit 12d, and the deletion requesting unit 12e illustrated in
The CPU 210 reads out the session management program 270a from the hard disk drive 270 and loads the session management program 270a into the RAM 260, whereby the session management program 270a functions as a session management process 260a. The session management process 260a loads the session management data 270b into the RAM 260, and executes various session management processes.
The session management program 270a does not have to be stored in the hard disk drive 270. For example, the session management program 270a stored on a storage medium, such as a CD-ROM, may be read out and executed by the computer 200. The session management program 270a may be stored in a device coupled via a public line, the Internet, a local area network (LAN), a wide area network (WAN), or the like, and the computer 200 may read out and execute the session management program 270a therefrom.
The computer 200 illustrated in
The computer 200 illustrated in
The computer 200 illustrated in
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2011-003330 | Jan 2011 | JP | national |