1. Field of the Invention
The disclosures discussed herein relate to an authentication system, an authentication method, an authentication apparatus, and a non-transitory computer-readable recording medium storing an authentication program.
2. Description of the Related Art
In the related art authentication technology (e.g., OAuth protocol), client applications installed in terminals and the like acquire access tokens from an authentication server so that the client applications are allowed to have access to protected resources. The access tokens are issued by the authentication server with the approval of the resource owner. Web services or clients use the access tokens to have access to the protected resources owned by the resource server (see Non-Patent Document 1).
Further, Japanese Laid-open Patent Publication No. 2007-515127 (hereinafter referred to as “Patent Document 1”) discloses a server configuration to improve security. This configuration issues client IDs to the clients who desire to access the APIs so as to only allow the authorized clients to have access to the API.
For example, in the existing OAuth 2.0, client information (such as client_id or client_secret) for identifying the client applications that utilize OAuth 2.0 is uniquely determined in accordance with types of the clients. However, when the client is installed in a general-purpose computing device such as smartphone or a PC, the client information (specifically, client_secret) held inside the client may be leaked. When the client information is leaked, all the users who use the same type of the client may need to update the client_secret. The related art technology may also need to conduct an update process or the like similar to the above when the client ID is leaked.
Accordingly, it is a general object in one embodiment of the present invention to provide a technology to reduce an effect due to the leakage of the client information that is used for generating the access tokens.
According to an aspect of embodiments, there is disclosed an authentication system that includes a communications terminal; an authentication apparatus configured to provide a function to the communications terminal using an access token; a first request part configured to request the authentication apparatus to transmit client information for issuing the access token; a first transmitter configured to generate the client information and transmit the generated client information to the communications terminal in response to the request from the first request part; a second request part configured to transmit the client information to the authentication apparatus and request the authentication apparatus to provide the access token; a determination part configured to determine whether the received client information is the client information transmitted from the first transmitter in response to the request from the second request part; a generator configured to generate the access token when the determination part determines that the received client information is the client information transmitted from the first transmitter; and a second transmitter configured to transmit the generated access token to the communications terminal.
Other objects, features and advantages of the present invention will become more apparent from the following detailed description when read in conjunction with the accompanying drawings.
In the following, a description is given of embodiments with reference to accompanying drawings.
The authentication apparatus 50 is a server computer (or system) configured to externally disclose APIs (Application Programming Interfaces) to provide other apparatuses with functions. The authentication apparatus 50 may, for example, operate as an OAuth server in the OAuth protocol.
The communications terminal 10 is a device used by a user such as smartphone, a tablet, a PC, and the like. In the communications terminal 10, a client application 30 (hereinafter simply called a client 30) is installed. The client 30 may, for example, be provided from the client providing apparatus 70 via the Internet 2. The client 30 may operate as an OAuth client in the OAuth protocol, and be able to use functions of the authentication apparatus 50 via APIs provided by the authentication apparatus 50.
The client 30 installed in the communications apparatus 10 may be able to use the APIs provided by the authentication apparatus 50 by using access tokens issued by the authentication apparatus 50 in accordance with the OAuth protocol. The authentication apparatus 50 generates an access token by using client information (client_secret, client_id) assigned to the client 30.
Note that the authentication apparatus 50 according to an embodiment generates different client information for each of clients 30 as a unit installed in the corresponding communications terminals 10 used by different users. The client 30 is installed in the communications terminal 10, and subsequently accesses the authentication apparatus 50 to acquire the client information before the client 30 acquires an access token. The client 30 then requests the authentication apparatus 50 to provide an access token using the acquired client information. When the client information is correct, the authentication apparatus 50 issues an access token to the client 30.
By performing the above-described operations, even when the client information of the client 30 installed in one of the communications terminals 10 is leaked to a third party, it is not necessary to update the client information of all the clients 30 installed in the other communications terminals 10. The service provider providing the clients 30 may only change the leaked client information. Accordingly, the service provider merely requests the user of the client 30 associated with the leaked client information to change the client information. In the following, a detailed illustration is given of the embodiment.
Note that in
Further, the authentication apparatus 50 may be an authentication server configured to operate an authentication protocol other than the OAuth protocol.
Note that
The client manager 11 may be implemented by a process of the CPU 101, and the like illustrated in
The client manager 11 reads this program in the RAM 103, and causes the CPU 101 to execute the program to implement the functions of the client 30. In the following, a detailed description is given of the respective functions of the client information acquisition part 31, the authentication request part 32, and the token acquisition part 33 included in the client 30.
The client information acquisition part 31 may be implemented by a process of the CPU 101, the network I/F 109, and the like, and is configured to request the authentication apparatus 50 to transmit the client information (client_secret, client_id). The client information acquisition part 31 may be able to request the authentication apparatus 50 to transmit the client information upon initial activation of the client 30 or upon receiving a change report of the client information from the authentication apparatus 50. At this time, the client information acquisition part 31 may report a client number or a client name (e.g., Apps for Phone) uniquely assigned to the client 30 to the authentication apparatus 50. The client information acquisition part 31 may receive the client information from the authentication apparatus 50, and store the received client information in a not-illustrated storage part.
The authentication request part 32 may be implemented by a process of the CPU 101, the network I/F 109, and the like, and is configured to request the authentication apparatus to perform user authentication utilizing an ID and a password for allowing the client 30 to access the functions provided by the authentication apparatus 50. The authentication request part 32 receives an authorization code from the authentication apparatus 50 in response to successful user authentication.
The token acquisition part 33 may be implemented by the CPU 101, the network I/F 109, and the like. The token acquisition part 33 is configured to request the authentication apparatus 50 to transmit an access token by using the authorization code that the authentication request part 32 has received from the authentication apparatus 50, and the client information received by the client information acquisition part 31. Then, the token acquisition part 33 receives the access token from the authentication apparatus 50, and stores the received access token in a not-illustrated storage part. Thereafter, the client 30 may be able to use on APIs provided by the authentication apparatus 50 by utilizing the stored access token.
Further, the authentication apparatus 50 in the embodiment includes a storage part 51, a client information manager 52, a client information generator 53, an authentication processor 54, a token manager 55, a token generator 56, an access recorder 57, a detector 58, a change receiver 59, and a reporting part 60.
The storage part 51 may be implemented by the HD 204 and HDD 205 illustrated in
The management information 5001 manages client information issued for each of the clients 30, or information of the clients 30 themselves.
The authentication information 5002 manages authentication information of users of the communications terminals 10 that have the clients 30 installed.
The access information 5003 saves records of accesses made by the client 30.
The client information manager 52 may mainly be implemented by the CPU 201 illustrated in
The client information generator 53 may mainly be implemented by the CPU 201 illustrated in
Further, the client information manager 53 stores the generated client information in the management information 5001. At this time, the client information manager 53 may store the generated client information together with the client number or the client name reported from the client 30 in the management information 5001. Further, the client information manager 53 may also store in the management information 500 the provider's number of the service provider of the client 30 specified by the client name. The client information generator 53 reports the generated client information to the client information manager 52.
The authentication processor 54 may mainly be implemented by the CPU 201 illustrated in
The token manager 55 may mainly be implemented by the CPU 201 illustrated in
The token generator 56 may mainly be implemented by the CPU 201 illustrated in
The access recorder 57 may mainly be implemented by the CPU 201 illustrated in
The detector 58 may mainly be implemented by the CPU 201 illustrated in
For example, the detector 58 may be able to report the indication of the unauthorized access and the like by using an email address of the service provider registered in advance. In addition, the detector 58 may report the indication of the unauthorized access and the like to a site that may be accessed by the service provider.
The change receiver 59 may mainly be implemented by the CPU 201 illustrated in
The client information change screen illustrated in
The reporting part 60 may mainly be implemented by the CPU 201 illustrated in
Initially, the client information acquisition part 31 of the communications terminal 10 transmits a client information transmission request to the authentication apparatus 50 via the Internet 2 (step S101). In this case, the client information acquisition part 31 may also report the client number “101”, or the client name “Apps for Phone” to the authentication apparatus 50.
The client information manager 52 of the authentication apparatus 50 transmits a client information generation instruction to the client information generator 53 in response to reception of the client information transmission request (step S102). The client information generator 53 may generate, for example, the following client information in response to the instruction from the client information manager 52 (step S103).
The client information generator 53 reports the generated client information to the client information manager 52 (step S105). The client information manager 52 transmits the received client information to the client information acquisition part 31 of the communications terminal 10 via the Internet 2 (step S106).
In the following, a description is given on the basis of an assumption in which user has attempted to use predetermined functions of the client 30 that internally utilize APIs of the authentication apparatus 50. The authentication request part 32 prompts the user to look at an authentication screen of the authentication apparatus 50 and to input a user name and password combination via the authentication screen, and receives the user name and password combination input by the user so as to utilize an authentication function of the authentication apparatus 50 (step S107). Subsequently, the authentication request part 32 reports the received user name “user1” and password “pass01” combination to the authentication processor 54 of the authentication apparatus 50, and requests the authentication processor 54 to authenticate the user (step S108).
The authentication processor 54 of the authentication apparatus 50 verifies whether the user name and password combination received from the authentication request part 32 is registered in the authentication information 5002 illustrated in
The authentication request part 32 of the communications terminal 10 reports the received authorization code to the token acquisition part 33 (step S111). The token acquisition part 33 transmits the received authorization code and the client information acquired in step S106 to the token manager 55 of the authentication apparatus 50 so as to make an access token transmission request of the token manager 55 (step S112).
The token manager 55 of the authentication apparatus 50 determines whether the received authorization code is identical to the authorization code transmitted by the authentication processor 54, and whether the received client information is registered in the management information 5001 (step S113). Subsequently, when the received authorization code is identical to the authorization code transmitted by the authentication processor 54, and the received client information is registered, the token manager 55 transmits an access token generation instruction to the token generator 56 (step S114).
The token generator 56 generates an access token upon receiving of the access token generation instruction from the token manager 55 (step S115). The token generator 56 reports the generated access token to the token manager 55 (step S116). The token manager 55 transmits the received access token to the token acquisition part 33 of the communications terminal 10 (step S117).
The detector 58 of the authentication apparatus 50 periodically or non-periodically monitors the access information illustrated in
Subsequently, the change receiver 59 of the authentication apparatus 50 presents the client information change screen illustrated in
The reporting part 60 transmits the report indicating that the client information has been changed to the client information acquisition part 31 of the communications terminal 10 in response to the report from the change receiver 59 (step S206). When receiving the report, the client information acquisition part 31 of the communications terminal 10 transmits a client information transmission request to the client information manager 52 of the authentication apparatus 50 (step S207). The client information manager 52 of the authentication apparatus 50 transmits the changed client information to the communications terminal 10 (step S208).
In the authentication system according to the embodiment, even though the clients are the same type, the client information “client_secret” for identifying the clients is issued per client installation unit. Hence, even though the client information “client— secret” is leaked, updating work necessary for updating the client information “client_secret” may be performed only on this one client from which the client_secret is leaked. Accordingly, the management cost borne by the client provider for managing the client information “client_secret” may be reduced.
Note that the OAuth 2.0 is provided with an ImplicitFlow technique, which is prepared for clients such as smartphones or PCs that are susceptible to disclosure of the client information “client_secret”. However, the ImplicitFlow technique has properties of easily allowing the clients to be spoofed. Hence, the embodiment of the present invention utilizes the client information “client_secret” to harden the spoofing of the clients. Even though the client information “client_secret” is leaked by chance, the effect of the leakage may be limited to the client that utilizes the leaked client information “client_secret”.
However, in the system of the present embodiment, even though the client information “client_secret” is leaked from the environment of the user 1, other users may continue to perform an authentication process utilizing different client information “client_secrets”. Accordingly, the service provider may simply reissue and update the client information “client_secret” of the user 1.
As described above, the authentication system 1 according to the embodiment may be able to minimize an adverse effect caused by the leakage of the client information used for the generation of the access token.
According to the embodiment of the present invention, it may be possible to minimize the adverse effect caused by the leakage of the client information used for the generation of the access token.
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 compromise any suitably programmed apparatuses such as a general purpose computer, personal digital assistant, 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, hard disk, CD ROM, magnetic tape device or 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 the apparatus. Alternatively, the HDD may be provided outside of the apparatus as long as the HDD is accessible. In this example, 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.
The present invention is not limited to the specifically disclosed embodiments, and 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-131745 filed on Jun. 26, 2014, the entire contents of which are hereby incorporated herein by reference.
Number | Date | Country | Kind |
---|---|---|---|
2014-131745 | Jun 2014 | JP | national |