KR102576794B1 - Intergraged authentication service system for multi-application and operation method thereof - Google Patents

Intergraged authentication service system for multi-application and operation method thereof Download PDF

Info

Publication number
KR102576794B1
KR102576794B1 KR1020220014790A KR20220014790A KR102576794B1 KR 102576794 B1 KR102576794 B1 KR 102576794B1 KR 1020220014790 A KR1020220014790 A KR 1020220014790A KR 20220014790 A KR20220014790 A KR 20220014790A KR 102576794 B1 KR102576794 B1 KR 102576794B1
Authority
KR
South Korea
Prior art keywords
token
server
access token
authentication
reverse proxy
Prior art date
Application number
KR1020220014790A
Other languages
Korean (ko)
Other versions
KR20230118333A (en
Inventor
허수복
웨인라이트 존
유환수
고동엽
Original Assignee
디디에이치 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디디에이치 주식회사 filed Critical 디디에이치 주식회사
Priority to KR1020220014790A priority Critical patent/KR102576794B1/en
Publication of KR20230118333A publication Critical patent/KR20230118333A/en
Application granted granted Critical
Publication of KR102576794B1 publication Critical patent/KR102576794B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Abstract

본 발명의 실시예에 따라 다중 애플리케이션을 위한 통합 인증 서비스 시스템 및 이의 동작 방법이 제공된다. 상기 방법은, 리버스 프록시 서버가 사용자 단말의 웹 브라우저로부터 수신된 접속(log-in) 요청을 인증 서버로 전달하는 단계; 상기 접속 요청에 응답하여, 상기 인증 서버가 사용자의 자격을 검증하는 단계; 상기 사용자의 자격이 인정되면, 상기 인증 서버가 액서스 토큰(access token)과 리프레시 토큰(refresh token)을 생성하는 단계; 상기 인증 서버가 상기 리프레시 토큰을 토큰 캐시(token cache)에 저장하고, 상기 액서스 토큰, 사용자 정보 및 상기 액서스 토큰에 대응하여 생성된 액서스 토큰 해시(access token hash)를 상기 리버스 프록시 서버에 전달하는 단계; 및 상기 리버스 프록시 서버가 인증 토큰 서버의 토큰 캐시에 상기 액서스 토큰을 저장하고, 상기 액서스 토큰 해시를 상기 사용자 단말로 전달하는 단계;를 포함할 수 있다.According to an embodiment of the present invention, an integrated authentication service system for multiple applications and a method of operating the same are provided. The method includes the steps of a reverse proxy server transmitting a log-in request received from a web browser of a user terminal to an authentication server; In response to the connection request, the authentication server verifies the user's credentials; When the user's qualifications are recognized, the authentication server generates an access token and a refresh token; The authentication server storing the refresh token in a token cache and transmitting the access token, user information, and an access token hash generated in response to the access token to the reverse proxy server. ; and the reverse proxy server storing the access token in the token cache of the authentication token server and transmitting the access token hash to the user terminal.

Description

다중 애플리케이션을 위한 통합 인증 서비스 시스템 및 이의 동작 방법{INTERGRAGED AUTHENTICATION SERVICE SYSTEM FOR MULTI-APPLICATION AND OPERATION METHOD THEREOF}Integrated authentication service system for multiple applications and operation method thereof {INTERGRAGED AUTHENTICATION SERVICE SYSTEM FOR MULTI-APPLICATION AND OPERATION METHOD THEREOF}

본 발명은 보안성이 더욱 강화된 다중 애플리케이션을 위한 통합 인증 서비스 시스템 및 이의 동작 방법에 관한 것이다.The present invention relates to an integrated authentication service system for multiple applications with enhanced security and a method of operating the same.

인터넷을 통한 금융 서비스, 쇼핑 서비스, 의료 서비스 등의 업무가 대중화되면서 온라인상에서 개인의 신원에 대한 식별 및 이의 인증을 위한 기술이 중요하게 되었다. 또한, 최근에는 한 사용자가 다수의 서비스를 동시에 이용하는 경우가 늘어나면서 한 번의 인증을 통해 다수의 인터넷 서비스에 접속할 수 있도록 하기 위한 통합 인증 기술(SSO, single sign on)이 도입된 바 있다.As services such as financial services, shopping services, and medical services via the Internet become popular, technologies for identifying and authenticating individual identities online have become important. Additionally, as the number of cases where a user uses multiple services simultaneously increases, integrated authentication technology (SSO, single sign on) has been introduced to allow access to multiple Internet services through one authentication.

이러한 통합 인증 서비스는 복수의 서비스를 이용할 때마다 반복 인증을 수행하는 불편함을 해소하는 장점이 있으나, 인증 정보를 중간에서 탈취당하는 경우, 타인이 해당 인증 정보를 통해 복수의 서비스에 모두 접근이 가능하게 되기 때문에 보안성이 취약할 수 있다는 문제가 있었다.This integrated authentication service has the advantage of relieving the inconvenience of performing repeated authentication every time you use multiple services. However, if your authentication information is stolen, others can access multiple services through that authentication information. There was a problem that security could be weak because of this.

따라서, 기존의 편의성을 가지면서도, 보다 강력한 보안 성능을 가지는 통합 인증 기술이 필요하게 되었다.Therefore, there is a need for an integrated authentication technology that has existing convenience while having stronger security performance.

본 발명은 상기 과제를 해결하기 위해 안출된 것으로서, 본 발명은 보안성이 더욱 강화된 다중 애플리케이션을 위한 통합 인증 서비스 시스템 및 이의 동작 방법을 제공하는 것을 목적으로 한다.The present invention was devised to solve the above problems, and the purpose of the present invention is to provide an integrated authentication service system for multiple applications with further enhanced security and a method of operating the same.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

본 발명의 실시예에 따라 다중 애플리케이션을 위한 통합 인증 서비스 시스템의 동작 방법이 제공된다. 상기 방법은, 리버스 프록시 서버가 사용자 단말의 웹 브라우저로부터 수신된 접속(log-in) 요청을 인증 서버로 전달하는 단계; 상기 접속 요청에 응답하여, 상기 인증 서버가 사용자의 자격을 검증하는 단계; 상기 사용자의 자격이 인정되면, 상기 인증 서버가 액서스 토큰(access token)과 리프레시 토큰(refresh token)을 생성하는 단계; 상기 인증 서버가 상기 리프레시 토큰을 토큰 캐시(token cache)에 저장하고, 상기 액서스 토큰, 사용자 정보 및 상기 액서스 토큰에 대응하여 생성된 액서스 토큰 해시(access token hash)를 상기 리버스 프록시 서버에 전달하는 단계; 및 상기 리버스 프록시 서버가 인증 토큰 서버의 토큰 캐시에 상기 액서스 토큰을 저장하고, 상기 액서스 토큰 해시를 상기 사용자 단말로 전달하는 단계;를 포함할 수 있다.According to an embodiment of the present invention, a method of operating an integrated authentication service system for multiple applications is provided. The method includes the steps of a reverse proxy server transmitting a log-in request received from a web browser of a user terminal to an authentication server; In response to the connection request, the authentication server verifies the user's credentials; When the user's qualifications are recognized, the authentication server generates an access token and a refresh token; The authentication server storing the refresh token in a token cache and transmitting the access token, user information, and an access token hash generated in response to the access token to the reverse proxy server. ; and the reverse proxy server storing the access token in the token cache of the authentication token server and transmitting the access token hash to the user terminal.

예시적인 실시예에 따르면, 상기 액서스 토큰 해시 및 상기 액서스 토큰 해시의 유효 기간은 상기 사용자 단말의 웹 브라우저에 의해 쿠키(cookie) 형태로 저장될 수 있다.According to an exemplary embodiment, the access token hash and the validity period of the access token hash may be stored in the form of a cookie by the web browser of the user terminal.

예시적인 실시예에 따르면, 상기 리버스 프록시 서버가 상기 사용자 단말의 웹 브라우저로부터 복수의 애플리케이션 중 적어도 하나를 구동하기 위한 API(application programming interface) 사용 요청을 수신하는 단계 - 상기 API 사용 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - ; 상기 리버스 프록시 서버가 상기 인증 토큰 서버의 토큰 캐시를 참조하여 상기 API 사용 요청에 상기 액서스 토큰 해시에 대응하는 상기 액서스 토큰을 삽입하고, API 서버로 전달하는 단계; 상기 API 사용 요청에 응답하여 상기 API 서버가 상기 액서스 토큰의 유효성을 검증하는 단계; 및 상기 액서스 토큰이 유효하면, 상기 API 서버가 상기 리버스 프록시 서버를 통해 API 사용 허가를 사용자 단말에 전달하는 단계;를 더 포함할 수 있다.According to an exemplary embodiment, the reverse proxy server receiving a request to use an API (application programming interface) for running at least one of a plurality of applications from a web browser of the user terminal - the API use request includes the access token Contains information about hashes - ; the reverse proxy server inserting the access token corresponding to the access token hash into the API use request by referring to the token cache of the authentication token server and transmitting it to the API server; Verifying the validity of the access token by the API server in response to the API use request; And if the access token is valid, the API server transmits permission to use the API to the user terminal through the reverse proxy server.

예시적인 실시예에 따르면, 상기 액서스 토큰이 유효하지 않으면, 상기 API 서버가 상기 인증 서버에 토큰 갱신 요청을 전달하는 단계; 상기 토큰 갱신 요청에 응답하여, 상기 인증 서버가 상기 액서스 토큰에 대응하는 유효한 상기 리프레시 토큰이 존재하는지를 확인하는 단계; 유효한 상기 리프레시 토큰이 존재하면, 상기 인증 서버가 상기 액서스 토큰 및 상기 액서스 토큰 해시를 갱신하여, 상기 리버스 프록시 서버에 전달하는 단계; 및 상기 리버스 프록시 서버가 상기 인증 토큰 서버의 토큰 캐시에 갱신된 상기 액서스 토큰을 저장하고, 갱신된 상기 액서스 토큰 해시를 상기 사용자 단말로 전달하는 단계;를 더 포함할 수 있다.According to an example embodiment, if the access token is invalid, the API server forwarding a token update request to the authentication server; In response to the token update request, the authentication server confirms whether a valid refresh token corresponding to the access token exists; If the valid refresh token exists, the authentication server updates the access token and the access token hash and transmits them to the reverse proxy server; and the reverse proxy server storing the updated access token in the token cache of the authentication token server and transmitting the updated access token hash to the user terminal.

예시적인 실시예에 따르면, 상기 리버스 프록시 서버가 상기 사용자 단말의 웹 브라우저로부터 수신한 접속 해제(log-out) 요청을 상기 인증 서버로 전달하는 단계 - 상기 접속 해제 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - ; 상기 접속 해제 요청에 응답하여, 상기 인증 서버가 상기 인증 서버의 토큰 캐시로부터 상기 리프레시 토큰을 삭제하는 단계; 및 상기 리버스 프록시 서버가 상기 인증 토큰 서버의 토큰 개시로부터 상기 액서스 토큰을 삭제하고, 접속 해제 결과를 상기 사용자 단말에 전달하는 단계;를 더 포함할 수 있다.According to an exemplary embodiment, the reverse proxy server transmits a log-out request received from a web browser of the user terminal to the authentication server - the log-out request includes information about the access token hash Includes - ; In response to the connection release request, the authentication server deleting the refresh token from the authentication server's token cache; and the reverse proxy server deleting the access token from the token start of the authentication token server and transmitting a result of disconnection to the user terminal.

본 발명의 실시예에 따라 다중 애플리케이션을 위한 통합 인증 서비스 시스템이 제공된다. 상기 시스템은, 사용자 단말의 웹 브라우저로부터 접속(log-in) 요청을 수신하는 리버스 프록시 서버; 상기 리버스 프록시 서버로부터 전달된 상기 접속 요청에 응답하여 사용자의 자격을 검증하고, 상기 사용자의 자격이 인정되면, 액서스 토큰(access token)과 리프레시 토큰(refresh token)을 생성하며, 생성된 상기 리프레시 토큰을 토큰 캐시(token cache)에 저장하는 인증 서버; 및 상기 액서스 토큰을 저장하기 위한 토큰 캐시를 포함하는 인증 토큰 서버;를 포함하고, 상기 인증 서버가 상기 액서스 토큰, 사용자 정보 및 상기 액서스 토큰에 대응하여 생성된 액서스 토큰 해시(access token hash)를 상기 리버스 프록시 서버에 전달하면, 상기 리버스 프록시 서버는 상기 인증 토큰 서버의 토큰 캐시에 상기 액서스 토큰을 저장하고, 상기 액서스 토큰 해시를 상기 사용자 단말로 전달할 수 있다.According to an embodiment of the present invention, an integrated authentication service system for multiple applications is provided. The system includes a reverse proxy server that receives a log-in request from a web browser of a user terminal; In response to the connection request transmitted from the reverse proxy server, the user's qualifications are verified, and if the user's qualifications are recognized, an access token and a refresh token are generated, and the generated refresh token an authentication server that stores in a token cache; and an authentication token server including a token cache for storing the access token, wherein the authentication server receives the access token, the user information, and the access token hash generated in response to the access token. When delivered to the reverse proxy server, the reverse proxy server may store the access token in the token cache of the authentication token server and transmit the access token hash to the user terminal.

예시적인 실시예에 따르면, 상기 액서스 토큰 해시 및 상기 액서스 토큰 해시의 유효 기간은 상기 사용자 단말의 웹 브라우저에 의해 쿠키(cookie) 형태로 저장될 수 있다.According to an exemplary embodiment, the access token hash and the validity period of the access token hash may be stored in the form of a cookie by the web browser of the user terminal.

예시적인 실시예에 따르면, 복수의 애플리케이션 중 적어도 하나를 구동하기 위한 API(application programming interface)를 제공하는 API 서버를 더 포함하고, 상기 리버스 프록시 서버는 상기 사용자 단말의 웹 브라우저로부터 API 사용 요청을 수신하면 - 상기 API 사용 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - , 상기 인증 토큰 서버의 토큰 캐시를 참조하여 상기 API 사용 요청에 상기 액서스 토큰 해시에 대응하는 상기 액서스 토큰을 삽입하여 상기 API 서버로 전달하고, 상기 API 서버는 상기 API 사용 요청에 응답하여 상기 액서스 토큰의 유효성을 검증하고, 상기 액서스 토큰이 유효하면, 상기 리버스 프록시 서버를 통해 API 사용 허가를 사용자 단말에 전달할 수 있다.According to an exemplary embodiment, the reverse proxy server further includes an API server that provides an API (application programming interface) for running at least one of a plurality of applications, and the reverse proxy server receives an API use request from a web browser of the user terminal. If - the API use request includes information about the access token hash - , the access token corresponding to the access token hash is inserted into the API use request by referring to the token cache of the authentication token server and sent to the API server. The API server verifies the validity of the access token in response to the API use request, and if the access token is valid, permission to use the API can be delivered to the user terminal through the reverse proxy server.

예시적인 실시예에 따르면, 상기 API 서버는 상기 액서스 토큰이 유효하지 않으면, 상기 인증 서버에 토큰 갱신 요청을 전달하며, 상기 인증 서버는 상기 토큰 갱신 요청에 응답하여, 상기 액서스 토큰에 대응하는 유효한 상기 리프레시 토큰이 존재하는지를 확인하고, 유효한 상기 리프레시 토큰이 존재하면, 상기 액서스 토큰 및 상기 액서스 토큰 해시를 갱신하여, 상기 리버스 프록시 서버에 전달하며, 상기 리버스 프록시 서버는 상기 인증 토큰 서버의 토큰 캐시에 갱신된 상기 액서스 토큰을 저장하고, 갱신된 상기 액서스 토큰 해시를 상기 사용자 단말로 전달할 수 있다.According to an exemplary embodiment, if the access token is invalid, the API server forwards a token renewal request to the authentication server, and the authentication server responds to the token renewal request, Check whether a refresh token exists, and if a valid refresh token exists, the access token and the access token hash are updated and delivered to the reverse proxy server, and the reverse proxy server updates the token cache of the authentication token server. The access token may be stored, and the updated access token hash may be transmitted to the user terminal.

예시적인 실시예에 따르면, 상기 리버스 프록시 서버가 상기 사용자 단말의 웹 브라우저로부터 수신한 접속 해제(log-out) 요청을 상기 인증 서버로 전달하면 - 상기 접속 해제 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - , 상기 인증 서버는 상기 접속 해제 요청에 응답하여, 상기 인증 서버의 토큰 캐시로부터 상기 리프레시 토큰을 삭제하고, 상기 리버스 프록시 서버는 상기 인증 토큰 서버의 토큰 개시로부터 상기 액서스 토큰을 삭제하며, 상기 접속 해제 결과를 상기 사용자 단말에 전달할 수 있다.According to an exemplary embodiment, when the reverse proxy server forwards a log-out request received from a web browser of the user terminal to the authentication server - the log-out request includes information about the access token hash. Included - in response to the disconnect request, the authentication server deletes the refresh token from the authentication server's token cache, and the reverse proxy server deletes the access token from the authentication token server's token origin, and The result of disconnection may be delivered to the user terminal.

본 발명의 다양한 실시예에 따르면, 리버스 프록시 방식을 통해 전용 네트워크를 외부에 노출되지 않도록 하되, 사용자의 접속 인증을 위한 액서스 토큰을 사용자 단말에 직접 제공하지 않고, 인코딩된 액서스 토큰 해시를 형태로 제공함으로써, 보안성이 더욱 향상된 통합 인증 서비스 시스템을 제공할 수 있다.According to various embodiments of the present invention, the dedicated network is not exposed to the outside through a reverse proxy method, but instead of providing an access token for user access authentication directly to the user terminal, an encoded access token hash is provided in the form of a hash. By doing so, it is possible to provide an integrated authentication service system with further improved security.

본 발명에 따른 방법 및 장치가 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained by the method and device according to the present invention are not limited to the effects mentioned above, and other effects not mentioned above will be clearly understood by those skilled in the art from the description below. It could be.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 다중 애플리케이션을 위한 통합 인증 서비스 시스템의 구성을 간략히 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, 사용자의 접속 과정을 설명하기 위한 흐름도이다.
도 3 및 도 4는 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, API 사용 과정을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, 사용자의 접속 해제 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, 적어도 하나의 서버의 구성을 간략히 도시한 블록도다.
In order to more fully understand the drawings cited in the detailed description of the present invention, a brief description of each drawing is provided.
Figure 1 is a block diagram briefly illustrating the configuration of an integrated authentication service system for multiple applications according to an embodiment of the present invention.
Figure 2 is a flowchart for explaining a user's connection process in the integrated authentication service system according to an embodiment of the present invention.
Figures 3 and 4 are flowcharts for explaining the API use process in the integrated authentication service system according to an embodiment of the present invention.
Figure 5 is a diagram for explaining a user's disconnection process in the integrated authentication service system according to an embodiment of the present invention.
Figure 6 is a block diagram briefly illustrating the configuration of at least one server in the integrated authentication service system according to an embodiment of the present invention.

본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the technical idea of the present invention can be subject to various changes and can have various embodiments, specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the technical idea of the present invention to specific embodiments, and should be understood to include all changes, equivalents, and substitutes included in the scope of the technical idea of the present invention.

본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 발명의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In explaining the technical idea of the present invention, if it is determined that a detailed description of related known technology may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. Additionally, numbers (eg, first, second, etc.) used in the description of the present invention are merely identifiers to distinguish one component from another component.

또한, 본 발명에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in the present invention, when a component is referred to as "connected" or "connected" to another component, the component may be directly connected or directly connected to the other component, but specifically Unless there is a contrary description, it should be understood that it may be connected or connected through another component in the middle.

또한, 본 발명에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as "~unit", "~unit", "~ja", and "~module" described in the present invention refer to a unit that processes at least one function or operation, which refers to a processor, micro Processor (Micro Processer), Micro Controller, CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerate Processor Unit), DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA It can be implemented by hardware or software such as (Field Programmable Gate Array) or a combination of hardware and software.

그리고 본 발명에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, it is to be clarified that the division of components in the present invention is merely a division according to the main function each component is responsible for. That is, two or more components, which will be described below, may be combined into one component, or one component may be divided into two or more components for more detailed functions. In addition to the main functions it is responsible for, each of the components described below may additionally perform some or all of the functions handled by other components, and some of the main functions handled by each component may be performed by other components. Of course, it can also be carried out exclusively by .

이하, 본 발명의 실시예들을 차례로 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail one by one.

도 1은 본 발명의 실시예에 따른 다중 애플리케이션을 위한 통합 인증 서비스 시스템의 구성을 간략히 도시한 블록도이다.Figure 1 is a block diagram briefly illustrating the configuration of an integrated authentication service system for multiple applications according to an embodiment of the present invention.

도 1을 참조하면, 통합 인증 서비스 시스템은, 사용자 단말(10), 리버스 프록시 서버(20), API 서버(30), 인증 토큰 서버(40), 인증 서버(50), 데이터베이스 서버(60) 및 서비스 서버(70)를 포함하여 동작할 수 있다.Referring to Figure 1, the integrated authentication service system includes a user terminal 10, a reverse proxy server 20, an API server 30, an authentication token server 40, an authentication server 50, a database server 60, and It may operate including the service server 70.

사용자 단말(10)은 네트워크에 접속할 수 있는 모든 장치를 포함할 수 있다. 예를 들어, 사용자 단말(10)은 스마트폰, 태블릿, PC, 노트북, 가전 디바이스, 의료 디바이스, 카메라 및 웨어러블 장치 등을 포함할 수 있다. The user terminal 10 may include any device that can access the network. For example, the user terminal 10 may include a smartphone, tablet, PC, laptop, home appliance device, medical device, camera, wearable device, etc.

실시예에서, 사용자 단말(10)은 웹 브라우저를 통해 리버스 프록시 서버(20)에 접속(log-in) 요청 및/또는 접속 해제(log-out) 요청을 전달하며, 한 번의 인증으로 복수의 애플리케이션 중 적어도 하나를 구동함으로써 서비스 서버(70)로부터 적어도 하나의 서비스를 제공받을 수 있다.In an embodiment, the user terminal 10 transmits a connection (log-in) request and/or a connection disconnection (log-out) request to the reverse proxy server 20 through a web browser, and multiple applications can be accessed with one authentication. By running at least one of the above, at least one service can be provided from the service server 70.

리버스 프록시 서버(reverse proxy server, 20)는 클라이언트(즉, 사용자 단말(10))가 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 장치나 응용 프로그램을 가리키는 것으로서, 클라이언트와 서버 사이에 대리로 통신을 수행할 수 있다.A reverse proxy server (reverse proxy server, 20) refers to a computer device or application program that allows a client (i.e., user terminal 10) to indirectly access other network services, and provides proxy communication between the client and the server. can be performed.

즉, 리버스 프록시 서버(20)는 공용 네트워크(public network)에 연결된 사용자 단말(10)과 전용 네트워크(private network)를 통해 연결된 다른 구성 사이에서 데이터, 신호, 요청 등을 전달하는 기능을 수행할 수 있다.In other words, the reverse proxy server 20 can perform the function of transferring data, signals, requests, etc. between the user terminal 10 connected to a public network and other components connected through a private network. there is.

이와 같이, 리버스 프록시 서버(20)는 통합 인증 서비스 시스템의 다른 구성이 공용 네트워크를 통해 외부로 노출되지 않도록 함으로써, 보안성을 향상시킬 수 있다.In this way, the reverse proxy server 20 can improve security by preventing other components of the integrated authentication service system from being exposed to the outside through a public network.

실시예에서, 리버스 프록시 서버(20)는 인증 서버(50)에 의해 생성된 액서스 토큰(access token) 및/또는 액서스 토큰에 대응하는 액서스 토큰 해시(access token hash)를 토큰 캐시(token cache)에 저장하고, 액서스 토큰 해시를 사용자 단말(10)에 전달할 수 있다. 이때, 액서스 토큰 해시는 사용자 단말(10)의 웹 브라우저에 저장되며, 이에 따라, 사용자는 한 번의 자격 확인만으로도 액서스 토큰 해시를 통해 복수의 서비스를 제공받을 수 있게 된다.In an embodiment, reverse proxy server 20 stores the access token generated by authentication server 50 and/or the access token hash corresponding to the access token in the token cache. It is possible to store and transmit the access token hash to the user terminal 10. At this time, the access token hash is stored in the web browser of the user terminal 10, and accordingly, the user can receive multiple services through the access token hash with just one qualification verification.

API 서버(30)는 복수의 애플리케이션 중 적어도 하나를 구동시키기 위한 API(application programming interface)를 리버스 프록시 서버(20)를 통해 접속 승인된(즉, 액서스 토큰이 부여된) 사용자 단말(10)에 제공할 수 있다.The API server 30 provides an API (application programming interface) for running at least one of a plurality of applications to the user terminal 10 that has been approved for connection (i.e., has been granted an access token) through the reverse proxy server 20. can do.

사용자는 API를 통해 적어도 하나의 애플리케이션을 구동시켜, 서비스 서버(70)로부터 적어도 하나의 서비스를 제공받을 수 있다.A user can run at least one application through an API and receive at least one service from the service server 70.

인증 토큰 서버(40)는 토큰 캐시를 포함하며, 리버스 프록시 서버(20)의 요청에 따라, 인증 서버(50)에 의해 생성된 액서스 토큰 및/또는 액서스 토큰 해시를 저장하거나, 삭제할 수 있다.The authentication token server 40 includes a token cache and, upon request from the reverse proxy server 20, can store or delete the access token and/or the access token hash generated by the authentication server 50.

예를 들어, 인증 토큰 서버(40)는 사용자의 로그인 과정에서 생성된 액서스 토큰 및/또는 액서스 토큰 해시를 토큰 캐시에 저장하며, 사용자의 접속 해제 요청에 따라, 이들을 토큰 캐시로부터 삭제할 수 있다.For example, the authentication token server 40 stores the access token and/or the access token hash generated during the user's login process in the token cache, and may delete them from the token cache according to the user's disconnection request.

인증 서버(50)는 사용자 단말(10)의 접속 요청을 리버스 프록시 서버(20)를 통해 전달받아, 사용자의 자격을 검증하고, 사용자의 자격이 인정되며 액서스 토큰 및 리프레시 토큰(refresh token)을 생성할 수 있다.The authentication server 50 receives the connection request from the user terminal 10 through the reverse proxy server 20, verifies the user's qualifications, recognizes the user's qualifications, and generates an access token and a refresh token. can do.

또한, 인증 서버(50)는 액서스 토큰 및 이에 대응하여 인코딩된 액서스 토큰 해시를 리버스 프록시 서버(20)에 전달하여, 액서스 토큰 해시를 통해 사용자 단말(10)의 웹 브라우저가 한 번의 인증으로 서비스 서버(70)로부터 사용자가 복수의 서비스를 제공받도록 할 수 있다.In addition, the authentication server 50 transmits the access token and the corresponding encoded access token hash to the reverse proxy server 20, so that the web browser of the user terminal 10 can access the service server with one authentication through the access token hash. The user can be provided with multiple services from (70).

또한, 인증 서버(50)는 사용자의 로그인 상태에서 액서스 토큰 해시 또는 액서스 토큰의 유효 기간이 만료된 경우, 리프레시 토큰을 기반으로 액서스 토큰 해시 또는 액서스 토큰을 갱신하고, 갱신된 액서스 토큰 해시를 리버스 프록시 서버(20)를 통해 사용자 단말(10)에 제공할 수 있다.In addition, when the validity period of the access token hash or access token expires while the user is logged in, the authentication server 50 renews the access token hash or access token based on the refresh token and sends the updated access token hash to the reverse proxy. It can be provided to the user terminal 10 through the server 20.

인증 서버(50)는 액서스 토큰, 리프레시 토큰 및/또는 액서스 토큰 해시를 적어도 일시적으로 저장하기 위한 토큰 캐시를 포함할 수 있다.Authentication server 50 may include a token cache to at least temporarily store access tokens, refresh tokens, and/or access token hashes.

데이터베이스 서버(60)는 통합 인증 서비스 시스템의 동작을 위한 다양한 데이터, 프로그램 등이 저장될 수 있다. 예를 들어, 데이터베이스 서버(60)에는 자격이 부여된 사용자를 식별하기 위한 사용자 정보, 서비스 서버(70)의 서비스 제공을 위한 각종 데이터가 저장될 수 있다.The database server 60 may store various data, programs, etc. for the operation of the integrated authentication service system. For example, the database server 60 may store user information for identifying qualified users and various data for providing services by the service server 70.

서비스 서버(70)는 로그인된 사용자에게 API에 의해 구동되는 적어도 하나의 애플리케이션을 통해 적어도 하나의 서비스를 제공할 수 있다. 실시예에서, 서비스는 의료 데이터에 기반한 의료 정보 분석 및/또는 의료 정보 제공 서비스를 포함할 수 있다.The service server 70 may provide at least one service to a logged in user through at least one application driven by an API. In embodiments, services may include medical information analysis and/or medical information provision services based on medical data.

다만, 도 1에서 도시되는 구성은, 예시적인 것으로서 이에 한정되는 것은 아니며, 실시예에 따라, 적어도 하나의 구성이 생략되거나, 통합되는 등 다양하게 변형될 수 있다.However, the configuration shown in FIG. 1 is illustrative and not limited thereto, and may be modified in various ways, such as omitting or integrating at least one configuration, depending on the embodiment.

도 2는 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, 사용자의 접속 과정을 설명하기 위한 흐름도이다.Figure 2 is a flowchart for explaining a user's connection process in the integrated authentication service system according to an embodiment of the present invention.

S210 단계에서, 사용자 단말(10)의 웹 브라우저는 공용 네트워크(예를 들어, 인터넷 등)를 통해 리버스 프록시 서버(20)로 접속(log-in) 요청을 전송하고, 리버스 프록시 서버(20)는 수신한 접속 요청을 전용 네트워크를 통해 인증 서버(50)로 전달할 수 있다.In step S210, the web browser of the user terminal 10 transmits a log-in request to the reverse proxy server 20 through a public network (e.g., Internet, etc.), and the reverse proxy server 20 The received connection request can be delivered to the authentication server 50 through a dedicated network.

실시예에서, 접속 요청에는 사용자 단말(10) 및/또는 이의 사용자를 식별하기 위한 고유 정보(예를 들어, 단말의 식별 코드(IMEI, International Mobile Equipment Identity), 전화번호, 사용자 아이디(ID), IP 주소, 생체 정보 등)가 포함될 수 있다.In an embodiment, the connection request includes unique information to identify the user terminal 10 and/or its user (e.g., terminal identification code (IMEI, International Mobile Equipment Identity), phone number, user ID (ID), IP address, biometric information, etc.) may be included.

S220 단계에서, 인증 서버(50)는 수신한 접속 요청에 응답하여, 데이터베이스 서버(60)에 저장된 사용자 정보에 기초하여, 사용자의 접속 자격을 검증할 수 있다.In step S220, the authentication server 50 may verify the user's connection qualifications based on user information stored in the database server 60 in response to the received connection request.

사용자의 자격이 검증되면, S230 단계에서, 인증 서버(50)는 사용자의 통합 접속을 위하여 액서스 토큰(access token) 및 리프레시 토큰(refresh token)을 생성할 수 있다. 또한, 실시예에서, 인증 서버(50)는 생성된 액서스 토큰을 소정의 방식으로 인코딩하여 암호화된 액서스 토큰 해시(access token hash)를 더 생성할 수 있다.If the user's qualifications are verified, in step S230, the authentication server 50 may generate an access token and a refresh token for the user's integrated access. Additionally, in an embodiment, the authentication server 50 may further generate an encrypted access token hash by encoding the generated access token in a predetermined manner.

이때, 생성된 액서스 토큰, 리프레시 토큰 및/또는 액서스 토큰 해시에는 각각의 유효 기간에 대한 정보가 포함될 수 있다.At this time, the generated access token, refresh token, and/or access token hash may include information about each validity period.

이어서, 인증 서버(50)는 생성된 리프레시 토큰을 토큰 캐시에 저장할 수 있다. 실시예에 따라, 인증 서버(50)는 액서스 토큰 및/또는 액서스 토큰 해시를 토큰 캐시에 더 저장할 수 있다.Subsequently, the authentication server 50 may store the generated refresh token in the token cache. Depending on the embodiment, the authentication server 50 may further store the access token and/or the access token hash in the token cache.

이어서, S240 단계에서, 인증 서버(50)는 액서스 토큰, 이에 대응하여 생성된 액서스 토큰 해시 및 사용자 정보를 리버스 프록시 서버(20)에 전송할 수 있다.Subsequently, in step S240, the authentication server 50 may transmit the access token, the access token hash generated correspondingly, and user information to the reverse proxy server 20.

한편, 실시예에서, 액서스 토큰 해시는 리버스 프록시 서버(20)에 의해 생성될 수 있다. 즉, S240 단계에서, 인증 서버(50)가 생성한 액서스 토큰을 리버스 프록시 서버(20)에 전달하면, 리버스 프록시 서버(20)는 소정의 방식으로 액서스 토큰을 인코딩하여 암호화함으로써, 액서스 토큰 해시를 생성하도록 구현될 수 있다.Meanwhile, in embodiments, the access token hash may be generated by the reverse proxy server 20. That is, in step S240, when the access token generated by the authentication server 50 is delivered to the reverse proxy server 20, the reverse proxy server 20 encodes and encrypts the access token in a predetermined manner to generate the access token hash. It can be implemented to generate

이어서, S250 단계에서, 리버스 프록시 서버(20)는 액서스 토큰과 액서스 토큰 해시를 인증 토큰 서버(40)의 토큰 캐시에 저장하고, 접속 승인의 결과물로 액서스 토큰 해시를 사용자 단말(10)에 전송할 수 있다.Subsequently, in step S250, the reverse proxy server 20 stores the access token and the access token hash in the token cache of the authentication token server 40, and transmits the access token hash to the user terminal 10 as a result of access approval. there is.

이어서, S260 단계에서, 사용자 단말(10)의 웹 브라우저는 수신한 액서스 토큰 해시 및 이의 유효 기간을 쿠키(cookie)의 형태로 저장할 수 있다.Next, in step S260, the web browser of the user terminal 10 may store the received access token hash and its validity period in the form of a cookie.

이하, 도 3 및 도 4를 참조하여 상술하는 바와 같이, 사용자 단말(10)의 웹 브라우저는 접속(log-in) 상태, 즉, 단일 인증을 수행한 상태에서 액서스 토큰 해시를 통해 API에 접속하여 복수의 애플리케이션을 구동시킬 수 있다.Hereinafter, as described in detail with reference to FIGS. 3 and 4, the web browser of the user terminal 10 accesses the API through the access token hash in a logged-in state, that is, in a state in which single authentication has been performed. Multiple applications can be run.

다만, 도 2에서 도시되는 방법은, 예시적인 것으로서 이에 한정되는 것은 아니며, 실시예에 따라, 다양한 방식으로 변형될 수 있다.However, the method shown in FIG. 2 is an example and is not limited thereto, and may be modified in various ways depending on the embodiment.

도 3 및 도 4는 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, API 사용 과정을 설명하기 위한 흐름도이다.Figures 3 and 4 are flowcharts for explaining the API use process in the integrated authentication service system according to an embodiment of the present invention.

구체적으로, 도 3은 액서스 토큰이 유효한 경우의 과정을 도시하며, 도 4는 액서스 토큰이 유효하지 않은 경우의 과정을 도시한다.Specifically, Figure 3 shows the process when the access token is valid, and Figure 4 shows the process when the access token is invalid.

먼저, 도 3을 참조하면, S310 단계에서, 사용자 단말(10)의 웹 브라우저는 공용 네트워크를 통해 리버스 프록시 서버(20)로 복수의 애플리케이션 중 적어도 하나를 구동시키기 위한 API 사용 요청을 전송할 수 있다. 이때, API 사용 요청에는 액서스 토큰 해시에 관한 정보가 포함될 수 있다.First, referring to FIG. 3, in step S310, the web browser of the user terminal 10 may transmit a request to use an API for running at least one of a plurality of applications to the reverse proxy server 20 through a public network. At this time, the API use request may include information about the access token hash.

이어서, S320 단계에서, 리버스 프록시 서버(20)는 인증 토큰 서버(40)의 토큰 캐시를 참조하여 API 사용 요청에 액서스 토큰 해시에 대응하는 액서스 토큰을 삽입하고, API 서버(30)로 전달할 수 있다.Subsequently, in step S320, the reverse proxy server 20 may refer to the token cache of the authentication token server 40, insert an access token corresponding to the access token hash into the API use request, and transmit it to the API server 30. .

예를 들어, 리버스 프록시 서버(20)는 http(s) 요청 헤더에 액서스 토큰 해시에 대응하는 액서스 토큰을 자동 삽입하고, API 요청을 API 서버(30)로 전달할 수 있다.For example, the reverse proxy server 20 may automatically insert an access token corresponding to the access token hash into the http(s) request header and transmit the API request to the API server 30.

이어서, S330 단계에서, API 서버(30)는 API 사용 요청에 응답하여, API에 삽입된 액서스 토큰의 유효성을 검증할 수 있다. 예를 들어, API 서버(30)는 인증 토큰 서버(40)의 토큰 캐시 또는 인증 서버(50)의 토큰 캐시를 참조하여, 액서스 토큰의 유효 기간을 확인하고, 전달받은 액서스 토큰의 유효 기간의 만료 여부를 확인함으로써, 액서스 토큰의 유효성을 검증할 수 있다.Next, in step S330, the API server 30 may verify the validity of the access token inserted into the API in response to the API use request. For example, the API server 30 refers to the token cache of the authentication token server 40 or the token cache of the authentication server 50, checks the validity period of the access token, and expires the validity period of the received access token. The validity of the access token can be verified by checking whether or not.

이어서, S340 단계에서, 액서스 토큰이 유효하면, API 서버(30)는 API 사용 허가를 리버스 프록시 서버(20)에 전송하고, 리버스 프록시 서버(20)는 이를 사용자 단말(10)에 전달할 수 있다.Next, in step S340, if the access token is valid, the API server 30 transmits the API use permission to the reverse proxy server 20, and the reverse proxy server 20 can deliver this to the user terminal 10.

이에 따라, 사용자는 사용자 단말(10)의 웹 브라우저에 제공되는 API를 통해 복수의 애플리케이션을 구동하여 서비스 서버(70)로부터 필요한 서비스 또는 데이터를 제공받을 수 있다.Accordingly, the user can receive necessary services or data from the service server 70 by running a plurality of applications through the API provided in the web browser of the user terminal 10.

도 4를 참조하면, 액서스 토큰이 유효하지 않은 경우(특히, 액서스 토큰의 유효 기간이 만료된 경우), 통합 인증 서비스 시스템은 액서스 토큰의 갱신을 수행할 수 있다. 여기서, 도 4의 S410 단계 내지 S430 단계는 도 3의 S310 단계 내지 S330 단계와 동일하므로 중복되는 설명은 생략하기로 한다.Referring to FIG. 4, when the access token is invalid (particularly, when the validity period of the access token has expired), the integrated authentication service system can perform renewal of the access token. Here, steps S410 to S430 of FIG. 4 are the same as steps S310 to S330 of FIG. 3, so overlapping descriptions will be omitted.

예를 들어, API 사용 요청으로부터 획득된 액서스 토큰의 유효 기간이 만료되었다고 판단되는 경우, S440 단계로 진행하여, API 서버(30)는 인증 서버(50)에 토큰 갱신 요청을 전달할 수 있다.For example, if it is determined that the validity period of the access token obtained from the API use request has expired, the API server 30 may transmit a token renewal request to the authentication server 50 in step S440.

이어서, S450 단계에서, 인증 서버(50)는 토큰 캐시를 참조하여, 토큰 갱신 요청으로 전달받은 액서스 토큰에 대응하는 유효한 리프레시 토큰이 존재하는지를 확인할 수 있다. Subsequently, in step S450, the authentication server 50 may refer to the token cache to check whether a valid refresh token exists corresponding to the access token received in the token update request.

유효한 리프레시 토큰이 존재하면, S460 단계로 진행하여, 인증 서버(50)는 액서스 토큰을 갱신하고 갱신 결과를 API 서버(30)에 전달할 수 있다. 또한, 인증 서버(50)는 갱신된 액서스 토큰에 대응하는 액서스 토큰 해시를 생성하고, 이를 액서스 토큰 및 사용자 정보와 함께 리버스 프록시 서버(20)에 전달할 수 있다.If a valid refresh token exists, the process proceeds to step S460, where the authentication server 50 can update the access token and deliver the update result to the API server 30. Additionally, the authentication server 50 may generate an access token hash corresponding to the updated access token and transmit it to the reverse proxy server 20 along with the access token and user information.

한편, 예를 들어, 유효 기간이 만료하는 등으로 인해 유효한 리프레시 토큰이 존재하지 않는다고 판단하는 경우, 인증 서버(50)는 갱신 실패에 대한 결과를 API 서버(30)에 전달하고, API 서버(30)는 API 사용이 불가능하다는 알람을 리버스 프록시 서버(20)를 통해 사용자 단말(10)에 전달할 수 있다.Meanwhile, for example, when it is determined that a valid refresh token does not exist due to expiration of the validity period, the authentication server 50 transmits the result of renewal failure to the API server 30, and the API server 30 ) can deliver an alarm that the API is unavailable to the user terminal 10 through the reverse proxy server 20.

S470 단계에서, 갱신 결과를 수신한 API 서버(30)는 리버스 프록시 서버(20)에 API 사용 허가를 전송하며, 이어서, S480 단계에서, 리버스 프록시 서버(20)는 인증 서버(50)로부터 전달받은 갱신된 액서스 토큰 및/또는 액서스 토큰 해시를 인증 토큰 서버(40)의 토큰 개시에 다시 저장하고, API 사용 허가와 갱신된 액서스 토큰 해시를 사용자 단말(10)에 전달할 수 있다.In step S470, the API server 30, which has received the update result, transmits API use permission to the reverse proxy server 20, and then, in step S480, the reverse proxy server 20 receives the information received from the authentication server 50. The updated access token and/or access token hash may be stored back in the token origin of the authentication token server 40, and the API use permission and the updated access token hash may be transmitted to the user terminal 10.

이어서, S490 단계에서, 사용자 단말(10)의 웹 브라우저는 새롭게 수신된 액서스 토큰 해시와 이의 유효 기간을 쿠키 형태로 저장하고, API를 통해 복수의 애플리케이션 중 적어도 하나를 구동할 수 있다.Next, in step S490, the web browser of the user terminal 10 stores the newly received access token hash and its validity period in the form of a cookie, and runs at least one of a plurality of applications through the API.

다만, 도 3 및 도 4에서 도시되는 방법은, 예시적인 것으로서 이에 한정되는 것은 아니며, 실시예에 따라, 다양한 방식으로 변형될 수 있다.However, the methods shown in FIGS. 3 and 4 are illustrative and are not limited thereto, and may be modified in various ways depending on the embodiment.

도 5는 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, 사용자의 접속 해제 과정을 설명하기 위한 도면이다.Figure 5 is a diagram for explaining a user's disconnection process in the integrated authentication service system according to an embodiment of the present invention.

S510 단계에서, 사용자 단말(10)의 웹 브라우저는 공용 네트워크를 통해 리버스 프록시 서버(20)로 접속 해제(log-out) 요청을 전송하고, 리버스 프록시 서버(20)는 수신한 접속 해제 요청을 전용 네트워크를 통해 인증 서버(50)로 전달할 수 있다. 이때, 접속 해제 요청에는 액서스 토큰 해시에 관한 정보가 포함될 수 있다.In step S510, the web browser of the user terminal 10 transmits a log-out request to the reverse proxy server 20 through the public network, and the reverse proxy server 20 dedicates the received log-out request. It can be transmitted to the authentication server 50 through the network. At this time, the connection release request may include information about the access token hash.

실시예에서, 리버스 프록시 서버(20)가 인증 토큰 서버(40)의 토큰 캐시를 참조하여 액서스 토큰 해시에 대응하는 액서스 토큰을 접속 해제 요청에 삽입하는 단계를 더 포함할 수 있다.In an embodiment, the reverse proxy server 20 may further include referring to the token cache of the authentication token server 40 and inserting an access token corresponding to the access token hash into the disconnection request.

이어서, S520 단계에서, 접속 해제 요청에 응답하여, 인증 서버(50)는 액서스 토큰에 대응하는 리프레시 토큰을 토큰 캐시로부터 삭제할 수 있다. 예를 들어, 인증 서버(50)는 액서스 토큰 해시 또는 액서스 토큰에 대응하는 리프레시 토큰을 토큰 캐시로부터 검출하고, 이를 삭제 처리할 수 있다.Subsequently, in step S520, in response to the connection release request, the authentication server 50 may delete the refresh token corresponding to the access token from the token cache. For example, the authentication server 50 may detect an access token hash or a refresh token corresponding to the access token from the token cache and delete it.

이어서, S530 단계에서, 리버스 프록시 서버(20)는 인증 토큰 서버(40)의 토큰 캐시로부터 액서스 토큰 및/또는 액서스 토큰 해시를 삭제하고, 삭제 결과를 인증 서버(50)로 전송할 수 있다. 예를 들어, 리버스 프록시 서버(20)가 삭제 요청을 인증 토큰 서버(40)에 전달하고, 이에 응답하여 인증 토큰 서버(40)가 액서스 토큰 및/또는 액서스 토큰 해시를 토큰 캐시로부터 삭제한 다음 그 결과를 리버스 프록시 서버(20)로 전달하는 방식으로 액서스 토큰 등에 대한 삭제를 수행할 수 있다.Subsequently, in step S530, the reverse proxy server 20 may delete the access token and/or the access token hash from the token cache of the authentication token server 40 and transmit the deletion result to the authentication server 50. For example, reverse proxy server 20 forwards a delete request to authentication token server 40, and in response, authentication token server 40 deletes the access token and/or access token hash from the token cache and then deletes the access token. Deletion of the access token, etc. can be performed by transmitting the result to the reverse proxy server 20.

이어서, S540 단계에서, 인증 서버(50)는 접속 해제 결과를 리버스 프록시 서버(20)에 전달하고, 리버스 프록시 서버(20)가 이를 사용자 단말(10)로 전송함으로써 접속 해제를 완료할 수 있다.Subsequently, in step S540, the authentication server 50 transmits the disconnection result to the reverse proxy server 20, and the reverse proxy server 20 transmits it to the user terminal 10, thereby completing the disconnection.

다만, 도 5에서 도시되는 방법은, 예시적인 것으로서 이에 한정되는 것은 아니며, 실시예에 따라, 다양한 방식으로 변형될 수 있다.However, the method shown in FIG. 5 is an example and is not limited thereto, and may be modified in various ways depending on the embodiment.

도 6은 본 발명의 실시예에 따른 통합 인증 서비스 시스템에 있어서, 적어도 하나의 서버의 구성을 간략히 도시한 블록도다.Figure 6 is a block diagram briefly illustrating the configuration of at least one server in the integrated authentication service system according to an embodiment of the present invention.

여기서, 서버는 리버스 프록시 서버(20), API 서버(30), 인증 토큰 서버(40), 인증 서버(50), 데이터베이스 서버(60) 및 서비스 서버(70) 중 적어도 하나를 포함할 수 있다.Here, the server may include at least one of a reverse proxy server 20, an API server 30, an authentication token server 40, an authentication server 50, a database server 60, and a service server 70.

도 6에 도시된 바와 같이, 서버는 통신부(610), 입력부(620), 메모리(630) 및 적어도 하나의 프로세서(640)를 포함할 수 있다. 다만, 서버의 구성 요소가 전술한 예에 한정되는 것은 아니다. 예를 들어, 서버는 전술한 구성 요소보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수 있다. 뿐만 아니라, 통신부(610), 입력부(620), 메모리(630), 프로세서(640) 중 적어도 2 이상이 하나의 칩(Chip) 형태로 구현될 수도 있다. As shown in FIG. 6, the server may include a communication unit 610, an input unit 620, a memory 630, and at least one processor 640. However, the server components are not limited to the examples described above. For example, a server may include more or fewer components than those described above. In addition, at least two of the communication unit 610, input unit 620, memory 630, and processor 640 may be implemented in the form of a single chip.

통신부(610)는 외부로부터 데이터를 송, 수신할 수 있다. 통신부(610)는 유무선 통신부를 포함할 수 있다. 통신부(610)가 유선 통신부를 포함하는 경우, 통신부(610)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 또한, 통신부(610)가 무선 통신부를 포함하는 경우, 통신부(610)는 셀룰러 통신, 무선랜(예를 들어, 와이-파이(Wi-Fi)) 등을 이용하여 무선으로 데이터 또는 신호를 송수신할 수 있다. 실시예에서, 통신부는 프로세서(640)의 제어에 의해 외부 장치 또는 외부 서버와 데이터 또는 신호를 송수신할 수 있다. The communication unit 610 can transmit and receive data from the outside. The communication unit 610 may include a wired or wireless communication unit. When the communication unit 610 includes a wired communication unit, the communication unit 610 includes a local area network (LAN), a wide area network (WAN), a value added network (VAN), and a mobile communication network ( It may include one or more components that enable communication through a mobile radio communication network, a satellite communication network, and a combination thereof. In addition, when the communication unit 610 includes a wireless communication unit, the communication unit 610 can transmit and receive data or signals wirelessly using cellular communication, wireless LAN (e.g., Wi-Fi), etc. You can. In an embodiment, the communication unit may transmit and receive data or signals with an external device or external server under the control of the processor 640.

입력부(620)는 외부의 조작을 통해 다양한 사용자 명령을 수신할 수 있다. 이를 위해, 입력부(620)는 하나 이상의 입력 장치를 포함하거나 연결할 수 있다. 예를 들어, 입력부(620)는 키패드, 마우스 등 다양한 입력을 위한 인터페이스와 연결되어 사용자 명령을 수신할 수 있다. 이를 위해, 입력부(620)는 USB 포트 뿐만 아니라 선더볼트 등의 인터페이스를 포함할 수도 있다. 또한, 입력부(620)는 터치스크린, 버튼 등의 다양한 입력 장치를 포함하거나 이들과 결합하여 외부의 사용자 명령을 수신할 수 있다.The input unit 620 can receive various user commands through external manipulation. To this end, the input unit 620 may include or connect one or more input devices. For example, the input unit 620 may be connected to various input interfaces such as a keypad and mouse to receive user commands. To this end, the input unit 620 may include not only a USB port but also an interface such as Thunderbolt. Additionally, the input unit 620 may include or be combined with various input devices such as a touch screen and buttons to receive external user commands.

메모리(630)는 프로세서(640)의 동작을 위한 프로그램 및/또는 프로그램 명령을 저장할 수 있고, 입/출력되는 데이터들을 임시 또는 영구 저장할 수 있다. 메모리(630)는 플래시 메모리(flash memory) 타입, 하드디스크(hard disk) 타입, 멀티미디어 카드 마이크로(multimedia card micro) 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM), SRAM, 롬(ROM), EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 630 may store programs and/or program instructions for operating the processor 640, and temporarily or permanently store input/output data. The memory 630 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory, etc.), and RAM. , SRAM, ROM, EEPROM, PROM, magnetic memory, magnetic disk, and optical disk may include at least one type of storage medium.

또한, 메모리(630)는 다양한 네트워크 함수 및 알고리즘을 저장할 수 있으며, 서버를 구동하고 제어하기 위한 다양한 데이터, 프로그램(하나 이상이 인스트럭션들), 애플리케이션, 소프트웨어, 명령, 코드 등을 저장할 수 있다.Additionally, the memory 630 can store various network functions and algorithms, and can store various data, programs (one or more instructions), applications, software, commands, codes, etc. for driving and controlling the server.

프로세서(640)는 서버의 전반적인 동작을 제어할 수 있다. 프로세서(640)는 메모리(630)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다. 프로세서(640)는 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU) 또는 본 개시의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(640)는 복수 개일 수 있으며, 프로세서(640)는 메모리(630)에 저장된 프로그램을 실행함으로써 서버의 동작을 수행할 수 있다.The processor 640 can control the overall operation of the server. The processor 640 may execute one or more programs stored in the memory 630. The processor 640 may refer to a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present disclosure are performed. There may be a plurality of processors 640, and the processor 640 may perform server operations by executing a program stored in the memory 630.

본 발명의 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Methods according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and constructed for the present invention or may be known and usable by those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.

또한, 본 발명의 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.Additionally, methods according to embodiments of the present invention may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers.

컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.A computer program product may include a S/W program and a computer-readable storage medium in which the S/W program is stored. For example, a computer program product may include a product in the form of a S/W program (e.g., a downloadable app) distributed electronically by the manufacturer of an electronic device or through an electronic marketplace (e.g., Google Play Store, App Store). there is. For electronic distribution, at least part of the S/W program may be stored in a storage medium or temporarily created. In this case, the storage medium may be a manufacturer's server, an electronic market server, or a relay server's storage medium that temporarily stores the SW program.

컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제 3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제 3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제 3 장치로 전송되거나, 제 3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.A computer program product, in a system comprised of a server and a client device, may include a storage medium of a server or a storage medium of a client device. Alternatively, if there is a third device (eg, a smartphone) in communication connection with the server or client device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the S/W program itself, which is transmitted from a server to a client device or a third device, or from a third device to a client device.

이 경우, 서버, 클라이언트 장치 및 제 3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제 3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the client device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of a server, a client device, and a third device may execute the computer program product and perform the methods according to the disclosed embodiments in a distributed manner.

예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.For example, a server (eg, a cloud server or an artificial intelligence server, etc.) may execute a computer program product stored on the server and control a client device connected to the server to perform the method according to the disclosed embodiments.

이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.Although the embodiments have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements made by those skilled in the art using the basic concept of the present invention defined in the following claims are also included in the scope of the present invention. belongs to

Claims (11)

다중 애플리케이션을 위한 통합 인증 서비스 시스템의 동작 방법에 있어서,
리버스 프록시 서버가 사용자 단말의 웹 브라우저로부터 수신된 접속(log-in) 요청을 인증 서버로 전달하는 단계;
상기 접속 요청에 응답하여, 상기 인증 서버가 사용자의 자격을 검증하는 단계;
상기 사용자의 자격이 인정되면, 상기 인증 서버가 액서스 토큰(access token)과 리프레시 토큰(refresh token)을 생성하는 단계;
상기 인증 서버가 상기 리프레시 토큰을 토큰 캐시(token cache)에 저장하고, 상기 액서스 토큰, 사용자 정보 및 상기 액서스 토큰에 대응하여 생성된 액서스 토큰 해시(access token hash)를 상기 리버스 프록시 서버에 전달하는 단계; 및
상기 리버스 프록시 서버가 인증 토큰 서버의 토큰 캐시에 상기 액서스 토큰을 저장하고, 상기 액서스 토큰 해시를 상기 사용자 단말로 전달하는 단계;를 포함하는, 방법.
In a method of operating an integrated authentication service system for multiple applications,
A reverse proxy server transmitting a log-in request received from a web browser of a user terminal to an authentication server;
In response to the connection request, the authentication server verifies the user's credentials;
When the user's qualifications are recognized, the authentication server generates an access token and a refresh token;
The authentication server storing the refresh token in a token cache and transmitting the access token, user information, and an access token hash generated in response to the access token to the reverse proxy server. ; and
The reverse proxy server storing the access token in a token cache of an authentication token server and transmitting the access token hash to the user terminal.
제 1 항에 있어서,
상기 액서스 토큰 해시 및 상기 액서스 토큰 해시의 유효 기간은 상기 사용자 단말의 웹 브라우저에 의해 쿠키(cookie) 형태로 저장되는, 방법.
According to claim 1,
The method wherein the access token hash and the validity period of the access token hash are stored in the form of a cookie by the web browser of the user terminal.
제 2 항에 있어서,
상기 리버스 프록시 서버가 상기 사용자 단말의 웹 브라우저로부터 복수의 애플리케이션 중 적어도 하나를 구동하기 위한 API(application programming interface) 사용 요청을 수신하는 단계 - 상기 API 사용 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - ;
상기 리버스 프록시 서버가 상기 인증 토큰 서버의 토큰 캐시를 참조하여 상기 API 사용 요청에 상기 액서스 토큰 해시에 대응하는 상기 액서스 토큰을 삽입하고, API 서버로 전달하는 단계;
상기 API 사용 요청에 응답하여 상기 API 서버가 상기 액서스 토큰의 유효성을 검증하는 단계; 및
상기 액서스 토큰이 유효하면, 상기 API 서버가 상기 리버스 프록시 서버를 통해 API 사용 허가를 사용자 단말에 전달하는 단계;를 더 포함하는, 방법.
According to claim 2,
Receiving, by the reverse proxy server, a request to use an API (application programming interface) for running at least one of a plurality of applications from a web browser of the user terminal - The API use request includes information about the access token hash - ;
the reverse proxy server inserting the access token corresponding to the access token hash into the API use request by referring to the token cache of the authentication token server and transmitting it to the API server;
Verifying the validity of the access token by the API server in response to the API use request; and
If the access token is valid, the API server transmits API use permission to the user terminal through the reverse proxy server.
제 3 항에 있어서,
상기 액서스 토큰이 유효하지 않으면, 상기 API 서버가 상기 인증 서버에 토큰 갱신 요청을 전달하는 단계;
상기 토큰 갱신 요청에 응답하여, 상기 인증 서버가 상기 액서스 토큰에 대응하는 유효한 상기 리프레시 토큰이 존재하는지를 확인하는 단계;
유효한 상기 리프레시 토큰이 존재하면, 상기 인증 서버가 상기 액서스 토큰 및 상기 액서스 토큰 해시를 갱신하여, 상기 리버스 프록시 서버에 전달하는 단계; 및
상기 리버스 프록시 서버가 상기 인증 토큰 서버의 토큰 캐시에 갱신된 상기 액서스 토큰을 저장하고, 갱신된 상기 액서스 토큰 해시를 상기 사용자 단말로 전달하는 단계;를 더 포함하는, 방법.
According to claim 3,
If the access token is invalid, the API server forwarding a token renewal request to the authentication server;
In response to the token update request, the authentication server confirms whether a valid refresh token corresponding to the access token exists;
If the valid refresh token exists, the authentication server updates the access token and the access token hash and transmits them to the reverse proxy server; and
The method further comprising: the reverse proxy server storing the updated access token in the token cache of the authentication token server and transmitting the updated access token hash to the user terminal.
제 2 항에 있어서,
상기 리버스 프록시 서버가 상기 사용자 단말의 웹 브라우저로부터 수신한 접속 해제(log-out) 요청을 상기 인증 서버로 전달하는 단계 - 상기 접속 해제 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - ;
상기 접속 해제 요청에 응답하여, 상기 인증 서버가 상기 인증 서버의 토큰 캐시로부터 상기 리프레시 토큰을 삭제하는 단계; 및
상기 리버스 프록시 서버가 상기 인증 토큰 서버의 토큰 개시로부터 상기 액서스 토큰을 삭제하고, 접속 해제 결과를 상기 사용자 단말에 전달하는 단계;를 더 포함하는, 방법.
According to claim 2,
Forwarding, by the reverse proxy server, a log-out request received from a web browser of the user terminal to the authentication server - the log-out request includes information about the access token hash -;
In response to the connection release request, the authentication server deleting the refresh token from the authentication server's token cache; and
The method further comprising: the reverse proxy server deleting the access token from the token start of the authentication token server and transmitting a result of disconnection to the user terminal.
다중 애플리케이션 접속을 위한 통합 인증 서비스 시스템에 있어서,
사용자 단말의 웹 브라우저로부터 접속(log-in) 요청을 수신하는 리버스 프록시 서버;
상기 리버스 프록시 서버로부터 전달된 상기 접속 요청에 응답하여 사용자의 자격을 검증하고, 상기 사용자의 자격이 인정되면, 액서스 토큰(access token)과 리프레시 토큰(refresh token)을 생성하며, 생성된 상기 리프레시 토큰을 토큰 캐시(token cache)에 저장하는 인증 서버; 및
상기 액서스 토큰을 저장하기 위한 토큰 캐시를 포함하는 인증 토큰 서버;를 포함하고,
상기 인증 서버가 상기 액서스 토큰, 사용자 정보 및 상기 액서스 토큰에 대응하여 생성된 액서스 토큰 해시(access token hash)를 상기 리버스 프록시 서버에 전달하면,
상기 리버스 프록시 서버는 상기 인증 토큰 서버의 토큰 캐시에 상기 액서스 토큰을 저장하고, 상기 액서스 토큰 해시를 상기 사용자 단말로 전달하는, 시스템.
In an integrated authentication service system for multiple application access,
A reverse proxy server that receives a log-in request from the web browser of the user terminal;
In response to the connection request transmitted from the reverse proxy server, the user's qualifications are verified, and if the user's qualifications are recognized, an access token and a refresh token are generated, and the generated refresh token an authentication server that stores in a token cache; and
An authentication token server including a token cache for storing the access token,
When the authentication server transmits the access token, user information, and an access token hash generated in response to the access token to the reverse proxy server,
The reverse proxy server stores the access token in the token cache of the authentication token server and transmits the access token hash to the user terminal.
제 6 항에 있어서,
상기 액서스 토큰 해시 및 상기 액서스 토큰 해시의 유효 기간은 상기 사용자 단말의 웹 브라우저에 의해 쿠키(cookie) 형태로 저장되는, 시스템.
According to claim 6,
The system wherein the access token hash and the validity period of the access token hash are stored in the form of a cookie by the web browser of the user terminal.
제 7 항에 있어서,
복수의 애플리케이션 중 적어도 하나를 구동하기 위한 API(application programming interface)를 제공하는 API 서버를 더 포함하고,
상기 리버스 프록시 서버는 상기 사용자 단말의 웹 브라우저로부터 API 사용 요청을 수신하면 - 상기 API 사용 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - ,
상기 인증 토큰 서버의 토큰 캐시를 참조하여 상기 API 사용 요청에 상기 액서스 토큰 해시에 대응하는 상기 액서스 토큰을 삽입하여 상기 API 서버로 전달하고,
상기 API 서버는 상기 API 사용 요청에 응답하여 상기 액서스 토큰의 유효성을 검증하고, 상기 액서스 토큰이 유효하면, 상기 리버스 프록시 서버를 통해 API 사용 허가를 사용자 단말에 전달하는, 시스템.
According to claim 7,
It further includes an API server that provides an API (application programming interface) for running at least one of the plurality of applications,
When the reverse proxy server receives an API use request from the web browser of the user terminal - the API use request includes information about the access token hash -
Referring to the token cache of the authentication token server, inserting the access token corresponding to the access token hash into the API use request and transmitting it to the API server,
The API server verifies the validity of the access token in response to the API use request, and if the access token is valid, transmits API use permission to the user terminal through the reverse proxy server.
제 8 항에 있어서,
상기 API 서버는 상기 액서스 토큰이 유효하지 않으면, 상기 인증 서버에 토큰 갱신 요청을 전달하며,
상기 인증 서버는 상기 토큰 갱신 요청에 응답하여, 상기 액서스 토큰에 대응하는 유효한 상기 리프레시 토큰이 존재하는지를 확인하고, 유효한 상기 리프레시 토큰이 존재하면, 상기 액서스 토큰 및 상기 액서스 토큰 해시를 갱신하여, 상기 리버스 프록시 서버에 전달하며,
상기 리버스 프록시 서버는 상기 인증 토큰 서버의 토큰 캐시에 갱신된 상기 액서스 토큰을 저장하고, 갱신된 상기 액서스 토큰 해시를 상기 사용자 단말로 전달하는, 시스템.
According to claim 8,
If the access token is invalid, the API server transmits a token renewal request to the authentication server,
In response to the token update request, the authentication server verifies whether a valid refresh token corresponding to the access token exists, and if a valid refresh token exists, updates the access token and the access token hash, and performs the reverse. Forwarded to proxy server,
The reverse proxy server stores the updated access token in the token cache of the authentication token server and transmits the updated access token hash to the user terminal.
제 7 항에 있어서,
상기 리버스 프록시 서버가 상기 사용자 단말의 웹 브라우저로부터 수신한 접속 해제(log-out) 요청을 상기 인증 서버로 전달하면 - 상기 접속 해제 요청에는 상기 액서스 토큰 해시에 관한 정보가 포함됨 - ,
상기 인증 서버는 상기 접속 해제 요청에 응답하여, 상기 인증 서버의 토큰 캐시로부터 상기 리프레시 토큰을 삭제하고,
상기 리버스 프록시 서버는 상기 인증 토큰 서버의 토큰 개시로부터 상기 액서스 토큰을 삭제하며, 상기 접속 해제 결과를 상기 사용자 단말에 전달하는, 시스템.
According to claim 7,
When the reverse proxy server forwards a log-out request received from the web browser of the user terminal to the authentication server - the log-out request includes information about the access token hash -
The authentication server, in response to the disconnection request, deletes the refresh token from the token cache of the authentication server,
The reverse proxy server deletes the access token from the token origin of the authentication token server and delivers the disconnection result to the user terminal.
제 1 항 내지 제 5 항 중 어느 한 항의 방법을 실행하기 위하여 기록 매체에 저장된 컴퓨터 프로그램.A computer program stored in a recording medium for executing the method of any one of claims 1 to 5.
KR1020220014790A 2022-02-04 2022-02-04 Intergraged authentication service system for multi-application and operation method thereof KR102576794B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220014790A KR102576794B1 (en) 2022-02-04 2022-02-04 Intergraged authentication service system for multi-application and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220014790A KR102576794B1 (en) 2022-02-04 2022-02-04 Intergraged authentication service system for multi-application and operation method thereof

Publications (2)

Publication Number Publication Date
KR20230118333A KR20230118333A (en) 2023-08-11
KR102576794B1 true KR102576794B1 (en) 2023-09-11

Family

ID=87565940

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220014790A KR102576794B1 (en) 2022-02-04 2022-02-04 Intergraged authentication service system for multi-application and operation method thereof

Country Status (1)

Country Link
KR (1) KR102576794B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004274429A (en) 2003-03-10 2004-09-30 Sony Corp Information processor, access control processing method, information processing method, and computer program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102318279B1 (en) * 2014-02-18 2021-10-28 삼성전자주식회사 Method and apparatus for transmitting and receiving authentication information in a wireless communication system
KR101753535B1 (en) * 2016-08-24 2017-07-03 주식회사 이베이코리아 Security authentification system for membership login of online website and method thereof
KR102519627B1 (en) * 2018-10-26 2023-04-06 삼성에스디에스 주식회사 Method for authenticating legacy service based on token and platform service server supporting the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004274429A (en) 2003-03-10 2004-09-30 Sony Corp Information processor, access control processing method, information processing method, and computer program

Also Published As

Publication number Publication date
KR20230118333A (en) 2023-08-11

Similar Documents

Publication Publication Date Title
KR102175772B1 (en) Controller-based data transmission system and method
US11882108B2 (en) Application user single sign-on
WO2018036314A1 (en) Single-sign-on authentication method and apparatus, and storage medium
TWI465932B (en) Method of establishing a trust relationship between mobile devices, vehicle system, and cloud services and the mobile device and computer-readable media thereof
US20200051348A1 (en) Method, server, smart terminal and storage device for access authentication
TWI462553B (en) Face recognition control and social networking
JP6949064B2 (en) Authentication and approval method and authentication server
US8745390B1 (en) Mutual authentication and key exchange for inter-application communication
US9268922B2 (en) Registration of devices in a digital rights management environment
KR20170128534A (en) Using temporary credentials in guest mode
US20140095286A1 (en) Private Third Party Validation of Hardware Identification for Offer Enrollment
US9600671B2 (en) Systems and methods for account recovery using a platform attestation credential
US20170279798A1 (en) Multi-factor authentication system and method
CN111669351B (en) Authentication method, service server, client and computer readable storage medium
JP5940671B2 (en) VPN connection authentication system, user terminal, authentication server, biometric authentication result evidence information verification server, VPN connection server, and program
US11528265B2 (en) Multi-factor authentication methods and related systems
TWI572208B (en) Verification method applied to remote connection and related verification system and related ip camera
KR20200050813A (en) Payment method using biometric authentication and electronic device thereof
US11868476B2 (en) Boot-specific key access in a virtual device platform
KR101206854B1 (en) Authentication system and method based by unique identifier
WO2016131272A1 (en) Online authentication method based on smart card, smart card and authentication server
CN111541649A (en) Password resetting method, device, server and storage medium
KR102576794B1 (en) Intergraged authentication service system for multi-application and operation method thereof
KR20200106435A (en) Method and apparatus for authenticating user
KR20160129930A (en) Game Server for being Loaded Game Resources, Game Method using the same and Game Developing System including the same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant