1. Field of the Invention
The present invention relates to an authentication system, an authentication method, a program, and a communication system.
2. Description of the Related Art
Teleconference systems for holding a teleconference with a remote location via a communication network such as the Internet are in common use. According to the conference system, in a conference room where one of parties such as attendees of the teleconference is present, a terminal device of the teleconference system is used to shoot images and collect voice sound of the party of the conference in the conference room. Data on the images and the voice sound are converted into digital data and transmitted to a terminal device of another party. The transmitted digital data is displayed on a display screen and the voice sound is output from a loudspeaker in a conference room of the other party, thereby holding the teleconference in a manner similar to an actual conference (Patent Document 1).
There are cases where a third party other than a provider of the teleconference system provides services operating on the teleconference system by using the teleconference system. In such cases, it is necessary to have a mechanism of access control that authenticates a terminal or a user and authorizes use of services depending on a contract state, for example. In order to perform user authentication for a plurality of services by using authentication information managed in a single access control service, a protocol called OAuth is used as described in Non-Patent Document 1. In accordance with this, a user is able to use the services by authorizing a client (a terminal or a program) via an authorization server.
Further, a feature of a server that allows a service program on a client to use a function on the server in accordance with presence or absence of association of identifiers of the service program and the client is disclosed (Patent Document 2).
It is a general object of at least one embodiment of the present invention to be able to determine availability of service that uses an authentication mechanism in related art on the basis of a service expiration date.
In an embodiment, an authentication system is provided. The authentication system includes: a storage unit that stores a service expiration date of a service provided by a client; a reception unit that receives from the client a request to issue an access token used to authorize use of the service; an issuing unit that issues, in response to the reception of the request, the access token based on the service expiration date to the client; and a determining unit that, in response to the issued access token transmitted by the client, determines that the access token is valid if the current date and time does not exceed the service expiration date of the service, or determines that the access token is not valid if the current date and time exceeds the service expiration date.
According to the present invention, it is possible to determine availability of service that uses an authentication mechanism in related art on the basis of a service expiration date.
Other objects and further features of embodiments will become apparent from the following detailed description when read in conjunction with the accompanying drawings, in which:
In the following, embodiments of the present invention will be described with reference to the accompanying drawings.
The user installs the client 30 in advance on his/her own terminal 10 such as a smartphone, the client 30 being provided by the service provider. The client 30 can execute a service by accessing the authentication apparatus 50 and receiving authentication from the authentication apparatus 50 via the Internet 2, for example.
The authentication apparatus 50 authenticates the client 30 using an access token employed in OAuth. Before the access token is issued, the authentication apparatus 50 authenticates the client 30 using an ID and a password transmitted from the client 30. The authentication apparatus 50 manages a service expiration date of a service for each client 30 (namely, for each user). The authentication apparatus 50 can issue the access token to the client 30 if the authentication using the ID and the password is successful and the current date and time does not exceed the service expiration date. In addition, service expiration dates for a plurality of different services may be associated with the same user and managed.
In accordance with this, the authentication system 1 is capable of performing access control within a framework of OAuth based on the service expiration date for each client 30.
In
The storage unit 55 is implemented by the HD 204 shown in
The client management DB 5001 is a database that manages a name of a client, a connection status, and the like.
The authentication management DB 5002 is a database that stores a pair of a password and the communication ID which serves as identification information for identifying the client 30 or the user of the client 30.
The function authorization management DB 5003 is a database that stores information that associates available services with functions for each client 30 (namely, for each communication ID).
User information providing function to provide access to attribute information (name, group, contact address, residence, sex, and the like) about a user of the client 30.
Contact information (an address book) providing function to provide access to an address book that serves as a list of addresses to which a teleconference is broadcast.
Video conference relay function to relay images and voice sound to perform a teleconference.
Text message relay function to send or receive a text message.
In addition, as shown in
The service authorization management DB 5004 is a database that manages a service expiration date for each client 30 (namely, for each communication ID).
The refresh token management DB 5005 is a database that manages a refresh token generated together with an access token.
The communication unit 51 shown in
The storing/reading process unit 52 is implemented by a process of the HDD 205 shown in
The transmission management unit 53 is implemented by a process of the CPU 201 shown in
The client management unit 531 receives a log-in request including a communication ID and a service ID from a client 30 and obtains connection information about the client 30. The client management unit 531 also receives an access token together with the log-in request from the client 30.
The client management unit 531 passes the communication ID, the service ID, and the access token to the access token verification unit 532. If the access token is valid, the client management unit 531 performs a log-in process for the client 30 and reports that the log-in process is completed to the client 30. The log-in process here includes a process to update a connection status and an IP address of the client 30 in the client management DB 5001 shown in
The access token verification unit 532 verifies a signature of the access token received from the client management unit 531. If the signature of the access token is illicit, the access token verification unit 532 determines that the access token is not valid and reports this information to the client management unit 531.
If the signature of the access token is normal, the access token verification unit 532 searches the service authorization management DB 5004 shown in
The access control unit 54 is implemented by a process of the CPU 201 shown in
The authentication management unit 541 verifies, in response to an instruction of the authentication/authorization control unit 546, whether a pair of a communication ID and a password received from the client 30 is registered with the authentication management DB 5002 shown in
The authentication management unit 541 may convert the received password into a hash value using a predetermined hash function and use the hash value and the communication ID to confirm whether the pair is correct.
The function authorization management unit 542 verifies, in response to an instruction of the authentication/authorization control unit 546, whether a set of the communication ID, a service ID, and a function ID is registered with the function authorization management DB 5003 shown in
The service authorization management unit 543 searches, in response to an instruction of the authentication/authorization control unit 546, the service authorization management DB 5004 shown in
If the current date and time is between the starting date and time and the service expiration date, the service authorization management unit 543 determines that use of a service is authorized and reports this information to the authentication/authorization control unit 546. In this case, the service authorization management unit 543 also reports the starting date and time and the service expiration date to the authentication/authorization control unit 546. By contrast, if the current date and time comes before the starting date and time or after the service expiration date, the service authorization management unit 543 determines that the use of the service is not authorized and reports this information to the authentication/authorization control unit 546.
The access token issuing unit 544 issues, in response to an instruction of the authentication/authorization control unit 546, an access token that has a validity expiration date for each service executed by the client 30. The access token issued by the access token issuing unit 544 has a validity period determined in advance as a default value. The validity period is set not to exceed the service expiration date.
In addition, the access token issuing unit 544 can issue an access token in a form of JSON Web Token (draft-ietf-oauth-json-web-token-16), for example. The access token includes information at least about a communication ID, a service ID, a function ID, a validity period, and an issuing date and time of the access token and is signed with a private key of the authentication apparatus 50. A service that verifies the access token can extract the included information by verifying a signature of the access token with a public key of the authentication apparatus 50 and then interpreting the form (JSON Web Token, for example) used to create the access token.
The refresh token management unit 545 issues a refresh token for the client 30 in response to an instruction of the authentication/authorization control unit 546. The refresh token includes an unpredictable character string necessary, when the validity expiration date of the access token has come, to issue a new access token. The refresh token management unit 545 stores information about a generated refresh token in the refresh token management DB 5005 shown in
The refresh token has a given structure. For example, the refresh token may have a structure used in the OAuth protocol described in Non-Patent Document 1. In general, a validity period is set for the refresh token. In this case, a period (several days to several months) during which authentication is possible without prompting a user to input a communication ID and a password again is specified.
The authentication/authorization control unit 546 receives a request to issue an access token from the client 30 and performs a process to issue an access token and a refresh token using the above-mentioned units. If the access token and the refresh token are correctly issued, the authentication/authorization control unit 546 transmits the access token to the client 30. By contrast, if the access token is not correctly issued, the authentication/authorization control unit 546 reports that authentication/authorization has failed to the client 30.
The client 30 of the terminal 10 displays a dialog box to prompt a user to input a communication ID and a password (S101). In this dialog box, a text field where the communication ID and the password are to be input and a “Log-in” button are arranged. The user inputs a communication ID “aaa” and a password “pass01” and then presses the “Log-in” button (S102). The client 30 transmits the communication ID, the password, a service ID (video_meeting) of a video conference, and the following function IDs necessary to perform the video conference to the authentication/authorization control unit 546 of the authentication apparatus 50 and requests issuance of an access token (S103).
Function IDs
https://example.com/scopes/user_info
https://example.com/scopes/contacts
https://example.com/scopes/conference
This request and communication using the access token below are all performed via a communication path encrypted using SSL/TLS.
The authentication/authorization control unit 546 of the authentication apparatus 50 sends the communication ID “aaa” and the password “pass01” that have been received to the authentication management unit 541 (S104). The authentication management unit 541 verifies whether a pair of the communication ID and the password received are registered with the authentication management DB 5002 shown in
Next, the authentication/authorization control unit 546 of the authentication apparatus 50 sends the communication ID “aaa”, the service ID “video_meeting”, and the above-mentioned function IDs to the function authorization management unit 542 (S107). The function authorization management unit 542 verifies whether a set of the communication ID, the service ID, and the function IDs is registered with the function authorization management DB 5003 shown in
Next, the authentication/authorization control unit 546 of the authentication apparatus 50 sends the communication ID “aaa” and the service ID “video_meeting” to the service authorization management unit 543 (S110). The service authorization management unit 543 searches the service authorization management DB 5004 shown in
Next, the authentication/authorization control unit 546 of the authentication apparatus 50 sends an instruction to issue an access token to the access token issuing unit 544 (S114). In this case, the authentication/authorization control unit 546 sends the starting date and time, the service expiration date, the communication ID, the password, the service ID, and the function IDs to the access token issuing unit 544. The access token issuing unit 544 issues an access token that has a validity expiration date that does not exceed the service expiration date (S115). The access token includes information at least about the communication ID, the service ID, the function IDs, a validity period, and an issuing date and time of the access token and is signed with a private key of the authentication apparatus 50. How the validity expiration date of the access token is determined will be described later. Next, the access token issuing unit 544 reports the issued access token to the authentication/authorization control unit 546 (S116).
The authentication/authorization control unit 546 of the authentication apparatus 50 further sends an instruction to issue a refresh token to the refresh token management unit 545 (S117). In this case, the authentication/authorization control unit 546 may send information such as the starting date and time, the service expiration date, the communication ID, the password, and the service ID to the refresh token management unit 545 where necessary. The refresh token management unit 545 uses the received information to issue a refresh token (S118). The refresh token management unit 545 also stores information about the issued refresh token in the refresh token management DB 5005 shown in
The authentication/authorization control unit 546 of the authentication apparatus 50 transmits the issued access token and the issued refresh token to the client 30 (S121).
First, the access token issuing unit 544 receives an instruction to issue an access token (S114 in
By contrast, if the period obtained by subtracting the current date and time from the service expiration date is not greater than the default access token validity period (No in S203), the access token issuing unit 544 further determines whether the service expiration date is greater than the current date and time (S204). If the service expiration date comes after the current date and time (Yes in S204), the access token issuing unit 544 sets the period obtained by subtracting the current date and time from the service expiration date as the validity period of the access token (S205). By contrast, if the service expiration date comes before the current date and time (No in S204), the access token issuing unit 544 determines that the service expiration date has already come (S206).
If the access token issuing unit 544 determines that the service expiration date has already come, the access token issuing unit 544 reports this information to the authentication/authorization control unit 546. In this case, the authentication/authorization control unit 546 reports that authentication/authorization has failed to the client 30.
First, the client 30 that has an access token transmits the access token and a log-in request to the client management unit 531 of the authentication apparatus 50 (S301). The client management unit 531 passes the received access token to the access token verification unit 532 (S302). The access token verification unit 532 verifies a signature of the access token to confirm that the access token has not been forged (S303). Next, the access token verification unit 532 checks whether the current date and time is included in the validity period of the access token from the issuing date and time of the access token and the validity period stored in the access token (S304). If the current date and time is within the validity period of the access token, the access token verification unit 532 reports this information to the client management unit 531 (S305).
The client management unit 531 reads out the communication ID from the access token and performs a log-in process using the communication ID (S306). The log-in process includes setting a connection status in the client management DB 5001 to “online”, for example. When the log-in process is completed, the client management unit 531 reports the completion of the log-in process to the client 30 (S307).
In S304, if the current date and time is not included in the validity period of the access token, the access token verification unit 532 reports this information to the client management unit 531. In this case, the client management unit 531 does not perform the log-in process and reports that the log-in is impossible to the client 30.
First, the client 30 transmits the refresh token “abcd1234”, the communication ID “aaa”, the service ID “video_ meeting”, and the following function ID list to the authentication/authorization control unit 546 of the authentication apparatus 50 (S401).
Function IDs
https://example.com/scopes/user_info
https://example.com/scopes/contacts
https://example.com/scopes/conference
The authentication/authorization control unit 546 sends the refresh token, the communication ID, the service ID, and the function IDs that have been received to the refresh token management unit 545 (S402).
The refresh token management unit 545 reads the refresh token management DB 5005 shown in
If the service IDs match and the function IDs match, so that the verification of the refresh token is correctly completed, the refresh token management unit 545 reads the service authorization management DB 5004 shown in
If the service IDs do not match and the function IDs do not match in S404 or if the current date and time comes before the starting date and time or after the service expiration date in S406, the refresh token management unit 545 reports that the refresh token is not valid to the authentication/authorization control unit 546.
The authentication/authorization control unit 546 that has received the report that the refresh token is valid issues an access token and a refresh token anew in accordance with the same procedure as in S114 to S121 shown in
In accordance with the above-mentioned configuration, in the authentication system 1 according to the present embodiment, the authentication apparatus 50 verifies user authentication information, determines whether the current date and time is included in a period during which a service is available, and returns an authentication result based on a determination result. In accordance with this, when a service provider provides services to a user while using the authentication apparatus 50 which is a platform that provides an authentication service, the service provider can correctly control availability of the services. In particular, according to the present embodiment, it is possible to perform detailed access control in accordance with a service expiration date without changing an authentication procedure of the OAuth protocol in the client 30.
In the following description, the service authorization management unit 543 (see
The service authorization device management DB 5006 manages connection information about the service authorization device 60 that provides functions of the service authorization management unit 543.
Upon determining the service expiration date, the authentication/authorization control unit 546 in the present embodiment refers to the service authorization device management DB 5006 shown in
In
The storage unit 65 is implemented by the HD 204 shown in
The communication unit 61 is implemented by the network I/F 209 shown in
The service authorization management unit 63 has the same functions as in the service authorization management unit 543 of the authentication apparatus 50 shown in
Next, the authentication/authorization control unit 546 of the authentication apparatus 50 sends the communication ID “aaa” and the service ID “video_meeting” to the service authorization management unit 63 of the service authorization device 60 (S511). The service authorization management unit 63 searches the service authorization management DB 5004 shown in
S515 to S522 are steps where the authentication apparatus 50 subsequently issues an access token and a refresh token and reports them to the client 30 in the same manner as in S114 to S121 shown in
In accordance with the above-mentioned configuration, in the authentication system 1 according to the present embodiment, the service authorization device 60 provided by a service provider different from the authentication apparatus 50 provided by a platform provider determines the service expiration date of a service. In other words, the platform provider does not control the service expiration date of each service operating on a platform. Instead, each service provider that provides the client 30 can manage the service expiration date using the service authorization device 60 operated by the service provider. In accordance with this, the service provider does not need to report information about the service expiration date of the service to the authentication apparatus 50 each time the service expiration date for a user is changed.
The present invention can be implemented in any convenient form, for example using dedicated hardware, or a mixture of dedicated hardware and software. The present invention may be implemented as computer software implemented by one or more networked processing apparatuses. The network can comprise any conventional terrestrial or wireless communications network, such as the Internet. The processing apparatuses can comprise any suitably programmed apparatuses such as a general-purpose computer, a personal digital assistant, a mobile telephone (such as a WAP or 3G-compliant phone) and so on. Since the present invention can be implemented as software, each and every aspect of the present invention thus encompasses computer software implementable on a programmable device. The computer software can be provided to the programmable device using any storage medium for storing processor readable code such as a floppy disk, a hard disk, a CD ROM, a magnetic tape device or a solid state memory device.
The hardware platform includes any desired kind of hardware resources including, for example, a central processing unit (CPU), a random access memory (RAM), and a hard disk drive (HDD). The CPU may be implemented by any desired kind of any desired number of processors. The RAM may be implemented by any desired kind of volatile or non-volatile memory. The HDD may be implemented by any desired kind of non-volatile memory capable of storing a large amount of data. The hardware resources may additionally include an input device, an output device, or a network device, depending on the type of apparatus. Alternatively, the HDD may be provided outside of the apparatus as long as the HDD is accessible. In this example, the CPU, such as a cache memory of the CPU, and the RAM may function as a physical memory or a primary memory of the apparatus, while the HDD may function as a secondary memory of the apparatus.
Further, the present invention is not limited to these embodiments, and various variations and modifications may be made without departing from the scope of the present invention.
The present application is based on and claims the benefit of priority of Japanese Priority Application No. 2014-143091 filed on Jul. 11, 2014, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | Kind |
---|---|---|---|
2014-143091 | Jul 2014 | JP | national |