KR102307361B1 - Web based authentication method, and computer program, recording medium and server device for the authentication method - Google Patents

Web based authentication method, and computer program, recording medium and server device for the authentication method Download PDF

Info

Publication number
KR102307361B1
KR102307361B1 KR1020200047927A KR20200047927A KR102307361B1 KR 102307361 B1 KR102307361 B1 KR 102307361B1 KR 1020200047927 A KR1020200047927 A KR 1020200047927A KR 20200047927 A KR20200047927 A KR 20200047927A KR 102307361 B1 KR102307361 B1 KR 102307361B1
Authority
KR
South Korea
Prior art keywords
authentication
server
parameter
client
information
Prior art date
Application number
KR1020200047927A
Other languages
Korean (ko)
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 KR1020200047927A priority Critical patent/KR102307361B1/en
Application granted granted Critical
Publication of KR102307361B1 publication Critical patent/KR102307361B1/en

Links

Images

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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Provided are a web-based authentication method to reduced risk of leaking verification codes, and a computer program, a recording medium, and a server device for the same. According to the present invention, the web-based authentication method comprises the following steps by a client server: initiating an authentication procedure with a user terminal; generating and storing state information having uniqueness for the authentication procedure on the basis of initiation of the authentication procedure; transmitting a first parameter including status information and authority range information of the client server to the authentication server; receiving an authentication code corresponding to the status information from then authentication server when the first parameter is valid; mapping the received authentication code to the status information; receiving a second parameter including the status information and the authority range information from the authentication server; when the second parameter is valid, (a) transmitting the authentication code mapped to the status information and a third parameter including the status information to the authentication server and (b) receiving a token corresponding to the third parameter from the authentication server; and transmitting a message of completion of the authentication procedure to the user terminal on the basis of the received token.

Description

웹 기반 인증 방법, 상기 인증 방법을 위한 컴퓨터 프로그램, 기록매체 및 서버 장치 {Web based authentication method, and computer program, recording medium and server device for the authentication method}Web based authentication method, computer program, recording medium and server device for the authentication method {Web based authentication method, and computer program, recording medium and server device for the authentication method}

본 발명은 웹 기반 인증 방법, 상기 인증 방법을 위한 컴퓨터 프로그램, 기록매체 및 서버 장치에 관한 것이다. The present invention relates to a web-based authentication method, a computer program for the authentication method, a recording medium, and a server device.

웹 기반의 인증 및 권한 부여를 위한 대표적인 프로토콜인 OAuth (Open Authorization) 가 있다. 구체적으로, OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. 일반적으로, OAuth 인증 방법으로는, 서버를 보유한 클라이언트에 의해 사용되는 인증 코드 승인 방법 (authorization code grant method)이 사용된다. 인증 코드 승인 방법에 따르면, 인증 서버가 클라이언트 서버를 인증하기 위해 클라이언트 식별자 (예: client_id) 및 클라이언트 비밀 정보 (예: client_secret) 을 사용한다. 또한, OAuth 와 유사한 의사인증 프로토콜(예: OpenID, SAML (Security Assertion Markup Language) 등)들도 동일/유사하게 설계된다.There is OAuth (Open Authorization), a representative protocol for web-based authentication and authorization. Specifically, OAuth is an open standard for access delegation, used as a common means by which Internet users can authorize websites or applications to access their information on other websites without providing a password. In general, as the OAuth authentication method, an authorization code grant method used by a client holding a server is used. According to the authentication code approval method, the authentication server uses a client identifier (eg, client_id) and client secret information (eg, client_secret) to authenticate the client server. Also, pseudo-authentication protocols similar to OAuth (eg, OpenID, SAML (Security Assertion Markup Language), etc.) are designed in the same/similar way.

특히, 클라우드 서버 환경 하에서, 앱/웹 기반 서비스 회사들은 일반적으로, 단일 또는 소수의 서버가 아닌 서비스의 기능별로 구분된 다수의 서버를 운용한다. 이 경우, 클라이언트 식별자 및 클라이언트 비밀 정보는 다수의 서버에 각각 저장되어 사용되게 된다. 이에 따라, 서비스의 복잡도가 증가할수록, 클라이언트 식별자 및 클라이언트 비밀 정보를 저장하고 있는 서버의 개수는 이에 비례하여 증가하게 된다.In particular, under a cloud server environment, app/web-based service companies generally operate a plurality of servers divided by service function rather than a single or few servers. In this case, the client identifier and the client secret information are respectively stored and used in a plurality of servers. Accordingly, as the complexity of the service increases, the number of servers storing the client identifier and client secret information increases proportionally.

앞서 상술한 클라이언트 비밀 정보 (예: Client_secret)는, 클라이언트와 인증 서버 사이에서 사전에 정의한 임의의 문자열 키로써, 사용자 인증을 위해 필수적인 키 값이다. 따라서, 정보 유출 등의 보완 문제 발생을 방지하기 위해, 주기적으로 클라이언트 비밀 정보를 변경하는 것이 필요할 수 있다.The above-mentioned client secret information (eg, Client_secret) is an arbitrary string key defined in advance between the client and the authentication server, and is an essential key value for user authentication. Therefore, in order to prevent the occurrence of supplementary problems such as information leakage, it may be necessary to periodically change client secret information.

하지만, 현실적으로 앱/웹 기반 서비스 회사들이 주기적으로 클라이언트 비밀 정보를 변경함에는 어려움이 있을 수 있다. 게다가, 클라이언트의 실수에 의한 클라이언트 비밀 정보가 유출될 경우, 이는 클라이언트뿐만 아니라 인증을 제공하는 IP(Identity Provider)회사의 회원개인정보 또는 데이터 유출로 직결될 수 있다. However, in reality, it may be difficult for app/web-based service companies to periodically change client secret information. In addition, when client secret information is leaked due to a client's mistake, it may directly lead to leakage of personal information or data of not only the client but also the IP (Identity Provider) company that provides authentication.

공개특허공보 제10-2015-0052897호, 2015.05.15Laid-open Patent Publication No. 10-2015-0052897, 2015.05.15

이에, 본 발명이 해결하고자 하는 과제는 웹 기반 인증 방법에 있어 기존의 클라이언트 비밀 정보 없이 수행 가능한 사용자 단말 및 인증 서버 간 인증 방법, 이를 위한 컴퓨터 프로그램, 기록매체 및 서버 장치를 제공하는 것이다.Accordingly, the problem to be solved by the present invention is to provide an authentication method between a user terminal and an authentication server that can be performed without the existing client secret information in a web-based authentication method, and a computer program, a recording medium and a server device for the same.

또한, 본 발명이 해결하고자 하는 과제는, 웹 기반 인증 방법에 있어, 기존의 클라이언트 비밀 정보를 대체하여 정상 클라이언트와 가짜 (fake) 클라이언트를 구분할 수 있고, 상기 클라이언트 비밀 정보가 유출될 위험이 없는 인증 방법, 이를 위한 컴퓨터 프로그램, 기록매체 및 서버 장치를 제공하는 것이다.In addition, the problem to be solved by the present invention is that, in a web-based authentication method, a normal client and a fake client can be distinguished by replacing the existing client secret information, and there is no risk of the client secret information being leaked. To provide a method, a computer program for the same, a recording medium and a server device.

이를 통해, 본 발명이 해결하고자 하는 과제는, IP (Identity Provider)에게 개인 정보 및 데이터 유출에 대한 위험이 전가되지 않는 인증 방법, 이를 위한 컴퓨터 프로그램, 기록매체 및 서버 장치를 제공하는 것이다.Through this, the problem to be solved by the present invention is to provide an authentication method in which the risk of personal information and data leakage is not transferred to an Identity Provider (IP), and a computer program, a recording medium and a server device therefor.

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

상술한 과제를 해결하기 위한 본 발명의 일면에 따른 클라이언트 서버가 사용자 단말 및 인증 서버 간 인증 절차를 수행하는 인증 방법은, 상기 사용자 단말과의 인증 절차를 시작하는 단계; 상기 인증 절차의 시작에 기반하여, 상기 인증 절차를 위해 유일성을 갖는 상태 정보를 생성하여 저장하는 단계; 상기 상태 정보 및 상기 클라이언트 서버의 권한 범위 정보를 포함한 제1 파라미터를 상기 인증 서버로 전송하는 단계; 상기 제1 파라미터가 유효한 경우, 상기 인증 서버로부터 상기 상태 정보에 대응하는 인증 코드를 수신하는 단계; 상기 수신된 인증 코드를 상기 상태 정보와 매핑하는 단계; 상기 상태 정보 및 상기 권한 범위 정보를 포함한 제2 파라미터를 상기 인증 서버로부터 수신하는 단계; 상기 제2 파라미터가 유효한 경우, (a) 상기 상태 정보에 매핑된 상기 인증 코드 및 상기 상태 정보를 포함하는 제3 파라미터를 상기 인증 서버로 전송하고, (b) 상기 제3 파라미터에 대응하는 토큰을 상기 인증 서버로부터 수신하는 단계; 및 상기 수신된 토큰에 기반하여, 상기 인증 절차의 완료 메시지를 상기 사용자 단말로 전송하는 단계를 포함한다.An authentication method in which a client server performs an authentication procedure between a user terminal and an authentication server according to an aspect of the present invention for solving the above-described problems includes the steps of: starting an authentication procedure with the user terminal; generating and storing state information having uniqueness for the authentication procedure based on the start of the authentication procedure; transmitting a first parameter including the status information and the privilege range information of the client server to the authentication server; receiving an authentication code corresponding to the status information from the authentication server when the first parameter is valid; mapping the received authentication code with the status information; receiving a second parameter including the status information and the authority range information from the authentication server; If the second parameter is valid, (a) transmits the authentication code mapped to the state information and a third parameter including the state information to the authentication server, (b) a token corresponding to the third parameter receiving from the authentication server; and transmitting a completion message of the authentication procedure to the user terminal based on the received token.

본 발명의 일면에 따른 인증 방법에 있어, 인증 코드를 수신하는 단계는, 클라이언트 서버가 인증 서버로부터 상태 정보에 대응하는 인증 코드를 직접 수신하는 것을 포함할 수 있다.In the authentication method according to an aspect of the present invention, the receiving of the authentication code may include, by the client server, directly receiving the authentication code corresponding to the status information from the authentication server.

본 발명의 일면에 따른 인증 방법에 있어, 상기 클라이언트 서버가 상기 인증 서버로, 상기 수신된 인증 코드와 상기 상태 정보의 매핑 결과 메시지를 전송하는 단계를 더 포함할 수 있다.In the authentication method according to an aspect of the present invention, the method may further include transmitting, by the client server, a mapping result message between the received authentication code and the status information to the authentication server.

본 발명의 일면에 따른 인증 방법에 있어, 제1 파라미터, 제2 파라미터 및 제3 파라미터는, 각각 클라이언트 서버의 식별 정보를 더 포함할 수 있다.In the authentication method according to an aspect of the present invention, the first parameter, the second parameter, and the third parameter may further include identification information of the client server, respectively.

본 발명의 일면에 따른 인증 방법에 있어, 상태 정보를 생성하여 저장하는 단계는, 상기 상태 정보를 데이터 베이스에 저장하는 것을 포함할 수 있다.In the authentication method according to an aspect of the present invention, generating and storing the state information may include storing the state information in a database.

본 발명의 일면에 따른 인증 방법에 있어, 제2 파라미터는, 상기 제2 파라미터에 포함된 상태 정보에 대응하는 상기 인증 코드를 포함하지 않을 수 있다. 또한, 제3 파라미터는, 별도의 클라이언트 비밀 정보를 포함하지 않을 수 있다.In the authentication method according to an aspect of the present invention, the second parameter may not include the authentication code corresponding to the state information included in the second parameter. Also, the third parameter may not include separate client secret information.

본 발명의 다른 면에 따른 컴퓨터 프로그램은 앞서 상술한 인증 방법을 하드웨어와의 결합을 통해 실행시키기 위한 매체에 저장된다.The computer program according to another aspect of the present invention is stored in a medium for executing the above-described authentication method through combination with hardware.

본 발명의 또 다른 면에 따른 컴퓨터 판독가능 기록매체는 앞서 상술한 인증 방법을 수행하는 프로그램을 기록한다.A computer-readable recording medium according to another aspect of the present invention records a program for performing the above-described authentication method.

본 발명의 또 다른 면에 따른 인증 시스템은 사용자 단말 및 인증 서버 간 인증 절차를 수행하는 클라이언트 서버를 포함한다. 상기 클라이언트 서버는, 상기 사용자 단말과의 인증 절차를 시작하는, 인증 시작 수단; 상기 인증 절차의 시작에 기반하여, 상기 인증 절차를 위해 유일성을 갖는 상태 정보를 생성하여 저장하고, 상기 상태 정보 및 상기 클라이언트 서버의 권한 범위 정보를 포함한 제1 파라미터를 상기 인증 서버로 제공하는, 상태 정보 관리 수단; 상기 제1 파라미터가 유효한 경우, 상기 인증 서버로부터 상기 상태 정보에 대응하는 인증 코드를 수신하고, 상기 상태 정보와 상기 인증 코드를 매핑하는, 인증 코드 매핑 수단; 및 상기 상태 정보 및 상기 권한 범위 정보를 포함한 제2 파라미터를 상기 인증 서버로부터 수신하고, 상기 제2 파라미터가 유효한 경우 (a) 상기 상태 정보에 매핑된 상기 인증 코드 및 상기 상태 정보를 포함하는 제3 파라미터를 상기 인증 서버로 전송하고 (b) 상기 제3 파라미터에 대응하는 토큰을 상기 인증 서버로부터 수신하고, (c) 상기 수신된 토큰에 기반하여 상기 인증 절차의 완료 메시지를 상기 사용자 단말로 전송하는, 인증 절차 완료 수단을 포함한다.An authentication system according to another aspect of the present invention includes a client server that performs an authentication procedure between a user terminal and an authentication server. The client server may include: authentication initiating means for starting an authentication procedure with the user terminal; Based on the start of the authentication procedure, generating and storing state information having uniqueness for the authentication procedure, and providing a first parameter including the state information and the privilege range information of the client server to the authentication server information management means; authentication code mapping means for receiving an authentication code corresponding to the state information from the authentication server when the first parameter is valid, and for mapping the state information and the authentication code; and receiving a second parameter including the state information and the privilege range information from the authentication server, and when the second parameter is valid (a) a third including the authentication code mapped to the state information and the state information transmitting a parameter to the authentication server, (b) receiving a token corresponding to the third parameter from the authentication server, and (c) transmitting a completion message of the authentication procedure to the user terminal based on the received token , including means of completing the certification process.

본 발명의 또 다른 면에 따른 인증 시스템에 있어, 클라이언트 서버는 인증 서버로부터 상태 정보에 대응하는 인증 코드를 직접 수신할 수 있다.In the authentication system according to another aspect of the present invention, the client server may directly receive the authentication code corresponding to the status information from the authentication server.

본 발명의 또 다른 면에 따른 인증 시스템에 있어, 제1 파라미터, 제2 파라미터 및 제3 파라미터는, 각각 클라이언트 서버의 식별 정보를 더 포함할 수 있다.In the authentication system according to another aspect of the present invention, the first parameter, the second parameter, and the third parameter may further include identification information of the client server, respectively.

본 발명의 또 다른 면에 따른 인증 시스템에 있어, 인증 시작 수단은 클라이언트 서버를 위한 시작 URL (Uniform Resource Locator)과 관련되고, 상태 정보 관리 수단은 상기 클라이언트 서버를 위한 상태 URL과 관련되고, 인증 코드 매핑 수단은 상기 클라이언트 서버를 위한 인증 URL과 관련되고, 인증 절차 완료 수단은 상기 클라이언트 서버를 위한 랜딩 (landing) URL과 관련될 수 있다.In the authentication system according to another aspect of the present invention, the authentication initiating means is related to a starting URL (Uniform Resource Locator) for the client server, the status information management means is related to the status URL for the client server, and an authentication code A mapping means may be associated with an authentication URL for the client server, and an authentication procedure completion means may be associated with a landing URL for the client server.

본 발명의 또 다른 면에 따른 인증 시스템에 있어, 클라이언트 서버의 상태 정보 관리 수단은, 상태 정보를 데이터 베이스에 저장할 수 있다.In the authentication system according to another aspect of the present invention, the state information management means of the client server may store the state information in a database.

본 발명의 또 다른 면에 따른 인증 시스템에 있어, 제2 파라미터는, 상기 제2 파라미터에 포함된 상태 정보에 대응하는 상기 인증 코드를 포함하지 않을 수 있다. 또한, 제3 파라미터는, 별도의 클라이언트 비밀 정보를 포함하지 않을 수 있다.In the authentication system according to another aspect of the present invention, the second parameter may not include the authentication code corresponding to the state information included in the second parameter. Also, the third parameter may not include separate client secret information.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

본 발명에 따르면, 인증 서버에 의해 생성되는 인증 코드는 사용자 단말을 거치지 않고 바로 클라이언트 서버로 전달될 수 있다. 이를 통해, 인증 코드가 유출될 위험이 감소할 수 있다.According to the present invention, the authentication code generated by the authentication server can be directly transmitted to the client server without going through the user terminal. Through this, the risk of leaking the authentication code may be reduced.

또한, 기존의 클라이언트 비밀 정보 (예: Client_secret) 에 대응하는 인증 URL (예: auth_url) 가 유출된다 하더라도, 공격자가 클라이언트 서버를 변조하지 않는 이상 상기 공격자는 인증코드를 탈취할 수 없다.Also, even if the authentication URL (eg, auth_url) corresponding to the existing client secret information (eg, Client_secret) is leaked, the attacker cannot steal the authentication code unless the attacker modifies the client server.

따라서, 본 발명에 따르면, 인증 코드는 안전하게 관리될 수 있다. 이에 따라, 상기 인증 코드의 비교만을 통해, 인증 서버는 정상 클라이언트와 가짜 클라이언트를 구분할 수 있다.Therefore, according to the present invention, the authentication code can be managed securely. Accordingly, only through the comparison of the authentication code, the authentication server can distinguish between a normal client and a fake client.

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

도 1은 본 발명에 따른 인증 방법을 수행하는 인증 시스템을 간단히 나타낸 도면이다.
도 2는 종래 인증 방법을 나타낸 흐름도이다.
도 3은 본 발명에 따른 인증 방법을 나타낸 흐름도이다.
도 4는 본 발명에 적용 가능한 클라이언트 서버의 인증 방법을 나타낸 흐름도이고, 도 5는 본 발명에 적용 가능한 클라이언트 서버의 블록 구성을 나타낸 도면이다.
1 is a diagram briefly showing an authentication system for performing an authentication method according to the present invention.
2 is a flowchart illustrating a conventional authentication method.
3 is a flowchart illustrating an authentication method according to the present invention.
4 is a flowchart illustrating an authentication method of a client server applicable to the present invention, and FIG. 5 is a diagram illustrating a block configuration of a client server applicable to the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

1. 용어 정의1. Definition of Terms

본 발명의 실시예를 설명하기 위해 본 발명에서 활용하는 용어들은 다음과 같이 정의될 수 있다.Terms used in the present invention to describe embodiments of the present invention may be defined as follows.

- 사용자 (User): 본 발명에서 개시하는 인증 절차 (예: 클라이언트에게 인증을 제공하는 회사 (예: IP (Identity Provider))가 가지고 있는 본인의 개인정보 또는 데이터에 대한 접근 권한을 허용하는 동작 등)를 수행하는 주체로서, 특정 기기를 통해 상기 인증 절차를 수행하는 주체. 일반적으로, 사용자는 IP의 회원일 수 있다.- User: The authentication procedure disclosed in the present invention (eg, an operation that allows access to personal information or data of a company that provides authentication to clients (eg, IP (Identity Provider)) ), as a subject performing the authentication procedure through a specific device. In general, a user may be a member of an IP.

- 사용자 단말: 본 발명에서 개시하는 인증 절차를 수행하는 기기, 또는 상기 기기가 상기 인증 절차를 위해 실행하는 프로그램 (또는 애플리케이션). 이때, 상기 기기는 컴퓨터, 모바일 폰, 태블릿 PC 등 유/무선 통신을 통해 상기 인증 절차를 수행하는 모든 기기를 포함할 수 있다. 상기 프로그램 (또는 애플리케이션)은 웹 환경을 구동할 수 있는 웹 브라우저, 클라이언트가 제공하는 프로그램 (예: 모바일 앱 (Mobile App)), 또는 상기 클라이언트가 제공하는 프로그램에 내장된 내장 웹 브라우저 시스템 (예: 웹 뷰(web view) 등을 포함할 수 있다.- User terminal: a device that performs the authentication procedure disclosed in the present invention, or a program (or application) that the device executes for the authentication procedure. In this case, the device may include any device that performs the authentication procedure through wired/wireless communication, such as a computer, a mobile phone, and a tablet PC. The program (or application) is a web browser capable of driving a web environment, a program provided by a client (eg, a mobile app), or a built-in web browser system (eg, a built-in web browser system) provided by the client. It may include a web view and the like.

- IP (Identity Provider): 사용자의 인증 정보와 데이터를 보유하고 있는 주체로서, 인증 서버, 자원 서버 등을 제공/포함할 수 있다. 일 예로, IP는, 다양한 포털 사이트, SNS (Social Network Service) 프로그램 등을 제공하는 회사, 또는 상기 회사가 제공하는 다양한 포털 사이트, SNS 프로그램 등을 모두 포함할 수 있다.- IP (Identity Provider): A subject that holds the user's authentication information and data, and can provide/include an authentication server, resource server, etc. For example, the IP may include all of a company that provides various portal sites, social network service (SNS) programs, and the like, or various portal sites and SNS programs provided by the company.

- 클라이언트 (Client): 사용자로부터 권한을 위임 받아, IP 가 가지고 있는 사용자의 데이터에 접근하려는 회사 또는 서비스 제공자- Client: A company or service provider who wants to access the user's data possessed by IP by receiving authority from the user

- 클라이언트 서버 (Client Server): 사용자로부터 권한 위임을 받는 절차 일체를 수행하거나, 상기 사용자로부터 위임 받은 접근 권한을 이용하여, 사용자의 데이터에 접근하는 서버 또는 프로그램. 상기 클라이언트 서버는 클라이언트에 의해 제어될 수 있다.- Client Server: A server or program that performs all procedures for receiving authorization from the user or accesses the user's data by using the access authority delegated from the user. The client server may be controlled by the client.

- 인증 서버 (Authorization Server, AS): 사용자 인증과 권한 부여 등의 인증 절차를 수행하는 서버 또는 프로그램. AS는 IP에 의해 제어될 수 있다.- Authorization Server (AS): A server or program that performs authentication procedures such as user authentication and authorization. AS can be controlled by IP.

- 자원 서버 (Resource Server, RS): 사용자로부터 위임된 권한(예: 접근 토큰)에 기반하여 데이터에 접근할 수 있는 엔드-포인트 (End-point)를 제공하는 서버 또는 프로그램. 상기 자원 서버는 IP에 의해 제어될 수 있다.- Resource Server (RS): A server or program that provides an endpoint to access data based on privileges delegated by the user (eg, access token). The resource server may be controlled by IP.

- 임시 저장소: 클라이언트 서버 또는 AS 에서, 사용자 단말의 요청 정보 (예: HTTP (HyperText Transfer Protocol) 요청 정보 등)에 기반하여, 사용자 단말을 구분/식별할 수 있는 임시 저장소. 일반적으로, 상기 임시 저장소는 웹 서버의 세션 (session)을 포함할 수 있다. 이때, 세션(session)은 일정 시간 동안 사용자 (또는 웹 브라우저 등)로부터 제공되는 요청 정보를 하나의 상태 (예: 쿠키 등)로 유지 관리하는 방법을 포함할 수 있다.- Temporary storage: Temporary storage that can classify/identify user terminals in the client server or AS based on user terminal request information (eg, HTTP (HyperText Transfer Protocol) request information, etc.). In general, the temporary storage may include a session of a web server. In this case, a session may include a method of maintaining request information provided from a user (or a web browser, etc.) in one state (eg, a cookie, etc.) for a predetermined time.

- 영구 저장소: 클라이언트 서버 또는 AS 에서, 데이터를 영구적으로 저장할 수 있는 저장소. 일 예로, 사용자 단말의 요청 (예: HTTP 요청)에 따라 독립적으로 수행되는 클라이언트 인증을 위해, 상기 클라이언트 서버 또는 상기 AS는 일부 데이터를 임시 저장소 이외의 다른 저장소인 영구 저장소에 저장할 수 있다. 일반적으로, 상기 영구 저장소는 데이터 베이스 (DB)를 포함할 수 있다.- Persistent storage: Storage that can permanently store data, either on the client server or on the AS. For example, for client authentication independently performed according to a request (eg, HTTP request) of a user terminal, the client server or the AS may store some data in a permanent storage other than temporary storage. In general, the persistent storage may include a database (DB).

- 사용자 인증: 사용자 데이터에 대한 권한을 클라이언트에게 위임하는 과정 중, 상기 권한을 위임하는 주체가 사용자 본인이 맞는지 인증하는 절차. 이때, 인증의 방법은 IP 가 제공할 수 있고, 부여되는 권한의 범위는 클라이언트 서버에 의해 요청될 수 있다.- User authentication: During the process of delegating the authority for user data to the client, the process of authenticating whether the subject delegating the authority is the user. In this case, the authentication method may be provided by IP, and the scope of the granted authority may be requested by the client server.

- 클라이언트 인증: 클라이언트가 사용자에 대한 권한 위임을 요청하는 과정 중, (i) 상기 클라이언트가 정상적인 클라이언트인지 여부, (ii) 상기 권한 위임 요청이 정상적인 요청인지 여부 등을 확인하는 일련의 절차- Client authentication: A series of procedures for verifying (i) whether the client is a normal client, (ii) whether the request for delegation of authority is a normal request, etc. during the process of the client requesting authorization for the user

- client_id 값: IP (또는 AS)가 클라이언트를 구분하기 위한 정보. 일 예로, client_id 값은 클라이언트별로 구분되는 독특한 (unique) 키 값을 포함할 수 있다.- client_id value: Information for IP (or AS) to identify a client. As an example, the client_id value may include a unique key value that is distinguished for each client.

- 상태 (State) 값: 권한 위임 절차 중, 클라이언트 서버가 외부의 접근 (예: 사용자를 사칭)을 막기 위해 자체 생성한 문자열 값. 본 발명에 있어, 상기 상태 값은 위임 절차 중에만 사용되고, 위임 절차가 끝나면 파기(discard)될 수 있다. 또한, 상기 상태 값은, 동일한 클라이언트 서버 내에서 전부 또는 일부 중첩되는 시간 구간 동안 진행중인 다른 인증 절차에서 사용되는 상태 값과 구분되도록 유일성(unique)이 보장될 수 있다. 일 예로, 상기 상태 값은, 외부의 공격에 대응한 보안 강화를 위해, 일정 길이 이상의 값을 갖도록 설정될 수 있다.- State value: A string value generated by the client server to prevent external access (eg, impersonating a user) during the authorization process. In the present invention, the status value is used only during the delegation procedure, and may be discarded after the delegation procedure is completed. In addition, the uniqueness of the state value may be ensured so as to be distinguished from the state value used in other authentication procedures in progress during all or part overlapping time intervals within the same client server. For example, the state value may be set to have a value greater than or equal to a certain length in order to enhance security in response to an external attack.

- 사용자 데이터의 접근 권한과 관련된 범위 (Scope) 값: 클라이언트가 접근하고자 하는 사용자 데이터의 범위. 클라이언트 서버는 하나 이상의 범위 값 (예: 권한)을 나열하여 IP 에 요청할 수 있다. 이때, 권한의 종류는 IP 에 의해 지시/설정될 수 있다. 이때, 최종적으로 클라이언트에게 허용되는 권한의 범위는 사용자에 의해 제한될 수 있다.- Scope value related to the access right of user data: The scope of user data that the client wants to access. A client server can make a request to an IP by listing one or more scope values (eg, permissions). In this case, the type of authority may be indicated/set by the IP. In this case, the scope of the authority finally allowed to the client may be limited by the user.

- 랜딩 URL (uniform Resource Locator) (landing_url): AS 가 클라이언트 인증 시, 권한 위임 절차 완료를 전달하는 클라이언트 서버의 URL. landing_url은, 종래 인증 시스템 (예: OAuth)에서 정의된 redirect_url 과는 다르게, 인증 코드를 전달하지 않을 수 있다.- Landing URL (uniform Resource Locator) (landing_url): URL of the client server to which the AS sends the completion of the authorization delegation procedure when the AS authenticates the client. Unlike redirect_url defined in the conventional authentication system (eg OAuth), landing_url may not deliver an authentication code.

- 인증 URL (auth_url): AS 가 클라이언트 서버에게 인증코드를 전달하기 위한 클라이언트 서버의 URL. 일반적으로, Auth_url은 외부에 공개되지 않는 값을 가질 수 있다. 또한, 인증 URL은 클라이언트와 IP 간에 사전에 약속되거나 사용자 또는 IP의 요청에 의해 설정될 수 있다.- Authentication URL (auth_url): URL of client server for AS to deliver authentication code to client server. In general, Auth_url may have a value that is not disclosed to the outside. In addition, the authentication URL may be previously agreed between the client and the IP or may be set by a user or an IP request.

- 인증 코드(authorization code): 클라이언트가 AS 에게 접근 토큰을 요청하기 위해 사용되는, 임시 (예: 1회용) 키 값- Authorization code: A temporary (eg one-time) key value used by the client to request an access token from the AS

- 토큰(token): 권한 위임 절차가 완료된 후, AS 가 클라이언트 서버에게 발급/제공하는 키 값. 일반적으로, 상기 토큰은 리프세시 토큰 (Refresh Token) 및 액세스 토큰 (Access Token)을 포함할 수 있다. 상기 토큰을 이용하여, 클라이언트 서버는 RS 로부터 특정 데이터를 호출하거나, 특정 API (Application Programming Interface)를 호출 할 수 있다. 본 발명에 있어, 상기 토큰에는 클라이언트, 사용자, 클라이언트가 요청한 권한 범위(scope) 등의 정보가 매핑될 수 있다.- Token: A key value issued/provided by the AS to the client server after the authority delegation procedure is completed. In general, the token may include a refresh token and an access token. Using the token, the client server can call specific data from the RS or call a specific API (Application Programming Interface). In the present invention, information such as a client, a user, and a permission scope requested by the client may be mapped to the token.

2. 본 발명에 적용 가능한 실시예들2. Embodiments applicable to the present invention

도 1은 본 발명에 따른 인증 방법을 수행하는 인증 시스템을 간단히 나타낸 도면이다.1 is a diagram briefly showing an authentication system for performing an authentication method according to the present invention.

본 발명에 개시된 인증 방법을 위해, 사용자는 사용자 단말 (user equipment, UE, 100)을 통해 클라이언트 서버 (200) 및/또는 인증 서버 (300)와 신호 또는 메시지를 송수신할 수 있다. 이와 같은 동작을 위해, 상기 사용자 단말 (100)은 적어도 프로세서 및 송수신기 (예: RF 모듈)을 포함할 수 있다. 이때, 송수신기는 상기 사용자 단말 (100)이 송수신하는 신호 또는 메시지를 송수신하도록 설정될 수 있다. 또한, 상기 프로세서는 상기 송수신기를 제어하여 상기 사용자 단말(100)의 동작을 제어할 수 있다.For the authentication method disclosed in the present invention, a user may transmit and receive signals or messages with the client server 200 and/or the authentication server 300 through a user equipment (UE) 100 . For this operation, the user terminal 100 may include at least a processor and a transceiver (eg, an RF module). In this case, the transceiver may be configured to transmit/receive a signal or message transmitted/received by the user terminal 100 . In addition, the processor may control the transceiver to control the operation of the user terminal 100 .

클라이언트 서버 (200)는 사용자 단말 (100)을 통해 사용자로부터 접근 권한을 위임받고, 해당 접근 권한에 기반하여 별도의 자원 서버로 접근하여 사용자의 데이터를 획득/처리할 수 있다. 이와 같은 동작을 위해, 상기 클라이언트 서버 (200)는 적어도 프로세서 및 송수신기 (예: RF 모듈)을 포함할 수 있다. 이때, 송수신기는 상기 클라이언트 서버 (200)가 송수신하는 신호 또는 메시지를 송수신하도록 설정될 수 있다. 또한, 상기 프로세서는 상기 송수신기를 제어하여 상기 클라이언트 서버 (200)의 동작을 제어할 수 있다.The client server 200 may be delegated an access right from the user through the user terminal 100 , and may access a separate resource server based on the access right to obtain/process the user's data. For this operation, the client server 200 may include at least a processor and a transceiver (eg, an RF module). In this case, the transceiver may be configured to transmit/receive a signal or message transmitted/received by the client server 200 . Also, the processor may control the transceiver to control the operation of the client server 200 .

인증 서버 (300)는, 사용자 인증 및 클라이언트 인증을 통해, 클라이언트 서버 (200)가 자원 서버로 접근하기 위한 인증 절차를 수행할 수 있다. 이와 같은 동작을 위해, 상기 인증 서버 (300)는 적어도 프로세서 및 송수신기 (예: RF 모듈)을 포함할 수 있다. 이때, 송수신기는 상기 인증 서버 (300)가 송수신하는 신호 또는 메시지를 송수신하도록 설정될 수 있다. 또한, 상기 프로세서는 상기 송수신기를 제어하여 상기 인증 서버 (300)의 동작을 제어할 수 있다.The authentication server 300 may perform an authentication procedure for the client server 200 to access the resource server through user authentication and client authentication. For this operation, the authentication server 300 may include at least a processor and a transceiver (eg, an RF module). In this case, the transceiver may be set to transmit/receive a signal or message transmitted/received by the authentication server 300 . Also, the processor may control the transceiver to control the operation of the authentication server 300 .

이하에서는, 본 발명에 따른 인증 시스템이 인증 방법을 수행하는 방법에 대해 상세히 설명한다.Hereinafter, a method for the authentication system according to the present invention to perform the authentication method will be described in detail.

본 발명에 따른 인증 방법 중 특정 절차 (예: 권한 위임 절차 등)을 위해, 클라이언트 서버 (또는 클라이언트)는 다음의 절차를 통해 클라이언트 서버 (또는 클라이언트)를 미리 인증 서버 (또는 IP)에 등록할 수 있다.For a specific procedure (eg, authorization delegation procedure, etc.) among the authentication methods according to the present invention, the client server (or client) can register the client server (or client) with the authentication server (or IP) in advance through the following procedure. have.

(1) 클라이언트 서버 (또는 클라이언트)는 인증 서버 (또는 IP)에 클라이언트 식별자 (예: client_id)를 요청할 수 있다. 이에 대응하여, 상기 인증 서버 (또는 IP)는 상기 클라이언트 서버 (또는 클라이언트)에게 상기 클라이언트 식별자를 할당/설정할 수 있다.(1) Client The server (or client) may request a client identifier (eg, client_id) from the authentication server (or IP). Correspondingly, the authentication server (or IP) may allocate/set the client identifier to the client server (or client).

(2) 클라이언트 서버 (또는 클라이언트)는 다음의 기본적인 정보를 포함한 클라이언트 정보를 미리 인증 서버 (또는 IP)에 등록할 수 있다.(2) Client The server (or client) can register client information including the following basic information in advance with the authentication server (or IP).

- 인증 서버 (또는 IP)에 권한 위임 절차를 수행할 도메인- Domain to perform delegation procedure to authentication server (or IP)

- 인증 URL (예: auth_url)- Authentication URL (eg auth_url)

- 랜딩 URL (예: landing_url)- Landing URL (e.g. landing_url)

- 최대 요청 가능한 범위 (scope)- Maximum requestable scope

- 기타 클라이언트 정보- Other client information

이때, 클라이언트 서버는 앞서 상술한 인증 URL 및 랜딩 URL을 처리 가능하도록 구현될 수 있다.In this case, the client server may be implemented to process the above-described authentication URL and landing URL.

(3) 인증 서버 (또는 IP)는 클라이언트 서버 관련 도메인 및 인증 URL을 다양한 방법을 이용하여 검증할 수 있다. 일 예로, 상기 인증 서버 (또는 IP)는 IP에 의해 설정되는 특정 방법에 기반하여 상기 클라이언트 서버 관련 도메인 및 인증 URL을 검증할 수 있다.(3) The authentication server (or IP) can verify the domain and authentication URL related to the client server using various methods. For example, the authentication server (or IP) may verify the client server-related domain and the authentication URL based on a specific method set by the IP.

상기와 같은 절차에 따라 클라이언트 서버 (또는 클라이언트)가 인증 서버 (또는 IP)에 등록될 경우, 사용자 단말은 본 발명에 따른 인증 방법을 실시할 수 있다.When the client server (or client) is registered with the authentication server (or IP) according to the above procedure, the user terminal may perform the authentication method according to the present invention.

앞서 상술한 등록 절차는 다양한 방법을 통해 수행될 수 있다. 일 예로, 클라이언트가 IP로 서면을 통해 등록을 요청하거나, 상기 클라이언트는 등록을 위한 별도의 사이트 (site) 등을 통해 등록을 요청할 수 있다. 이에 대응하여, 상기 IP는 상기 클라이언트로부터 등록 받은 내용을 자동 또는 수동 작업을 통해 승인할 수 있다. 다른 예로, 상기 등록 절차는 서버 간 통신에 의해 수행될 수도 있다. 따라서, 본 발명에 적용 가능한 인증 시스템 (또는 인증 방법)에 있어, 상기 등록 절차로는 앞서 상술한 다양한 예시가 적용될 수 있다.The above-described registration procedure may be performed through various methods. As an example, the client may request registration in writing with an IP, or the client may request registration through a separate site for registration. Correspondingly, the IP may approve the content registered from the client through an automatic or manual operation. As another example, the registration procedure may be performed by server-to-server communication. Accordingly, in the authentication system (or authentication method) applicable to the present invention, the above-described various examples may be applied as the registration procedure.

도 2는 종래 인증 방법을 나타낸 흐름도이다.2 is a flowchart illustrating a conventional authentication method.

종래 인증 방법에 따르면, 클라이언트 서버 (200)는 Start_URL, State_URL, Redirect_URL을 운용한다. 또한, 종래 인증 방법에 따르면, 클라이언트 서버 (200)는 인증 절차가 완료되기 전까지는 세션 (session)만을 운용한다. 이후 인증이 완료되게 되면, 토큰 (Token) 및 토큰을 이용하여 획득된 사용자 데이터의 저장을 위해 상기 클라이언트 서버 (200)는 추가적으로 데이터 베이스(DB)를 운용할 수 있다. 상기와 같은 클라이언트 서버에 기반하여, 종래 인증 방법은 아래와 같이 수행된다.According to the conventional authentication method, the client server 200 operates Start_URL, State_URL, and Redirect_URL. In addition, according to the conventional authentication method, the client server 200 operates only a session until the authentication procedure is completed. After authentication is completed, the client server 200 may additionally operate a database DB to store a token and user data obtained using the token. Based on the client server as described above, the conventional authentication method is performed as follows.

사용자는 사용자 단말 내 프로그램 (예: 애플리케이션, 웹 브라우저 등)을 통해 클라이언트 서버의 인증 시작 페이지에 접속한다 (S202). 이를 위해, 상기 사용자 단말은 http(s) request 메시지를 상기 클라이언트 서버의 Start_URL을 이용하여 상기 클라이언트 서버로 전송한다 (S204). 이에 대응하여, 상기 클라이언트 서버는 상기 사용자 단말로 인증 시작 페이지를 전달한다 (S206). 이를 위해, 상기 클라이언트 서버는 http(s) response 메시지를 상기 사용자 단말로 전송하여 상기 클라이언트 서버의 State_URL을 제공한다 (S208).The user accesses the authentication start page of the client server through a program (eg, an application, a web browser, etc.) in the user terminal (S202). To this end, the user terminal transmits an http(s) request message to the client server using the Start_URL of the client server (S204). In response, the client server transmits an authentication start page to the user terminal (S206). To this end, the client server transmits an http(s) response message to the user terminal to provide State_URL of the client server (S208).

사용자 단말은 State_URL을 통해 클라이언트 서버에 인증 시작을 요청한다 (S210). 이를 위해, 상기 사용자 단말은 http(s) request 메시지를 상기 클라이언트 서버의 State_URL을 이용하여 상기 클라이언트 서버로 전송한다 (S212).The user terminal requests the client server to start authentication through State_URL (S210). To this end, the user terminal transmits an http(s) request message to the client server by using the State_URL of the client server (S212).

사용자 단말의 인증 시작 요청에 대응하여, 클라이언트 서버는 상태 (State) 값을 생성한다 (S214). 이때, 종래 인증 방법에 따르면, 클라이언트 서버는 생성된 상태 값을 세션에만 저장한다 (S216). 그리고, 상기 클라이언트 서버는 리디렉션 응답 (예: http(s) response)을 상태 (state) 정보, 범위 (scope) 정보, Redirect_URL 정보, 클라이언트 식별 정보 (예: Client_ID) 등과 함께 인증 서버의 Login_URL 로 전송한다 (S218). In response to the authentication start request of the user terminal, the client server generates a state value (S214). At this time, according to the conventional authentication method, the client server stores the generated state value only in the session (S216). Then, the client server transmits a redirect response (eg, http(s) response) to Login_URL of the authentication server along with state information, scope information, Redirect_URL information, and client identification information (eg, Client_ID). (S218).

사용자 단말이 해당 응답을 수신하는 경우, 상기 사용자 단말은 해당 리디렉션 응답을 자동으로 인증 서버의 Login_URL 로 리디렉션 한다 (S220). 이를 위해, 상기 사용자 단말은 대응하는 https request 메시지를 상기 인증 서버의 Login_URL로 전송한다 (S222).When the user terminal receives the corresponding response, the user terminal automatically redirects the redirection response to the Login_URL of the authentication server (S220). To this end, the user terminal transmits a corresponding https request message to the Login_URL of the authentication server (S222).

인증 서버는 해당 리디렉션 응답을 통해 전달 받은 정보를 이용하여, 해당 리디렉션 응답이 정상적인 클라이언트 서버 요청인지를 검증하고, 정상일 경우 상기 정보를 세션에 저장한다 (S224). 반면, 해당 리디렉션 응답이 비정상적인 클라이언트 서버 요청일 경우, 인증 서버는 인증 절차를 종료한다. The authentication server uses the information received through the redirection response to verify whether the redirection response is a normal client-server request, and if it is, stores the information in the session (S224). On the other hand, if the redirect response is an abnormal client-server request, the authentication server terminates the authentication process.

이어, 해당 리디렉션 응답이 정상적인 클라이언트 서버 요청인 경우, 인증 서버는 사용자 단말로 본인임을 인증할 수 있는 로그인 페이지를 제공한다 (S226). 이를 위해, 상기 인증 서버는 https response 메시지를 통해 로그인 페이지 정보를 상기 사용자 단말로 전송한다 (S228). 이때, CSRF (Cross Site Request Forgery) 공격을 막기 위해, 상기 https response 메시지는 CSRF Token 을 포함할 수 있다.Next, when the redirect response is a normal client server request, the authentication server provides a login page for authenticating the user to the user terminal (S226). To this end, the authentication server transmits the login page information to the user terminal through the https response message (S228). At this time, in order to prevent a CSRF (Cross Site Request Forgery) attack, the https response message may include a CSRF Token.

사용자는 사용자 단말로 제공 받은 로그인 페이지를 통해 로그인 정보를 입력한다 (S230). 상기 사용자 단말은 인증 서버의 Delegation_URL 정보를 이용한 https request 메시지를 통해 상기 사용자로부터 입력받은 로그인 정보를 상기 인증 서버로 전송한다 (S232).The user inputs login information through the login page provided to the user terminal (S230). The user terminal transmits the login information received from the user through the https request message using the Delegation_URL information of the authentication server to the authentication server (S232).

인증 서버는 Delegation_URL을 통해 수신된 로그인 정보의 유효성을 검증한다 (S234). 이때, 해당 로그인 정보가 유효하다고 판단되는 경우, 상기 인증 서버는 응답으로 사용자 단말로 클라이언트 서버가 요청한 권한의 범위(scope)를 확인하고 동의하는 페이지를 제공한다 (S236). 이를 위해, 상기 인증 서버는 https response 메시지를 통해 위임 동의 페이지 정보를 상기 사용자 단말로 전송한다 (S238).The authentication server verifies the validity of the login information received through Delegation_URL (S234). At this time, if it is determined that the corresponding login information is valid, the authentication server checks the scope of the permission requested by the client server to the user terminal in response and provides an agreement page (S236). To this end, the authentication server transmits delegation agreement page information to the user terminal through an https response message (S238).

사용자 단말은 클라이언트 서버에 허용할 권한의 범위(scope)를 설정한다 (S240). 이어, 상기 사용자 단말은 인증 서버의 Confirm_URL 정보를 이용한 https request 메시지를 통해 상기 설정된 권한 범위 정보를 인증 서버로 전송한다 (S242).The user terminal sets the scope of the permission to be allowed to the client server (S240). Next, the user terminal transmits the set authority range information to the authentication server through an https request message using Confirm_URL information of the authentication server (S242).

인증 서버는 Confirm_URL을 통해 수신된 메시지로부터 상기 클라이언트 서버에게 허용된 권한의 범위(scope)를 확인한다 (S244). 이와 함께, 상기 인증 서버는 인증 코드를 발급하고, 상기 인증 코드를 DB에 저장한다. 이어, 상기 인증 서버는, 리디렉션 응답 (예: http(s) response)을 상태 (state) 정보, 범위 (scope) 정보, 인증 코드 등과 함께 클라이언트 서버의 Redirect_URL 로 전송한다 (S246, S248). The authentication server confirms the scope of the permission allowed to the client server from the message received through Confirm_URL (S244). At the same time, the authentication server issues an authentication code, and stores the authentication code in the DB. Next, the authentication server transmits a redirect response (eg, http(s) response) to the Redirect_URL of the client server together with state information, scope information, and authentication code (S246, S248).

사용자 단말이 해당 응답을 수신하는 경우, 상기 사용자 단말은 해당 리디렉션 응답을 자동으로 클라이언트 서버의 Redirect_URL 로 리디렉션 한다 (S250). 이를 위해, 상기 사용자 단말은 대응하는 https request 메시지를 상기 클라이언트 서버의 Redirect_URL로 전송한다 (S252). When the user terminal receives the corresponding response, the user terminal automatically redirects the corresponding redirection response to the Redirect_URL of the client server (S250). To this end, the user terminal transmits a corresponding https request message to the Redirect_URL of the client server (S252).

클라이언트 서버는 해당 리디렉션 응답을 통해 전달 받은 정보를 검증한다 (S254). 이때, 해당 정보가 정상인 경우, 상기 클라이언트 서버는 클라이언트 식별 정보 (예: Client_ID), 클라이언트 비밀 정보 (예: Client_Secret), 인증 코드를 이용하여 인증 서버로 토큰을 요청한다. (S256). 이를 위해, 상기 클라이언트 서버는 클라이언트 식별 정보, 클라이언트 비밀 정보, 인증 코드를 포함한 https request 메시지를 인증 서버의 Token_URL 를 이용하여 상기 인증 서버로 전송한다.The client server verifies the information received through the redirection response (S254). At this time, if the corresponding information is normal, the client server requests a token from the authentication server using client identification information (eg, Client_ID), client secret information (eg, Client_Secret), and an authentication code. (S256). To this end, the client server transmits an https request message including client identification information, client secret information, and authentication code to the authentication server by using the Token_URL of the authentication server.

인증 서버는, DB에 저장된 값들을 이용하여, 클라이언트 서버의 토큰 요청 파라미터를 검증한다 (S258). 이때, 상기 토큰 요청 파라미터가 정상인 경우, 상기 인증 서버는 토큰을 발행한다 (S260). 이어, 상기 인증 서버는 상기 토큰을 DB에 저장하고 응답 신호 (예: https response 메시지)를 통해 클라이언트 서버로 상기 토큰을 전송한다 (S262).The authentication server verifies the token request parameter of the client server using the values stored in the DB (S258). At this time, if the token request parameter is normal, the authentication server issues a token (S260). Next, the authentication server stores the token in the DB and transmits the token to the client server through a response signal (eg, https response message) (S262).

클라이언트 서버는 수신된 토큰을 저장하고, 인증 절차의 완료를 사용자 단말에게 알린다 (S264). 이를 위해, 상기 클라이언트 서버는 상기 인증 절차의 완료를 알리는 메시지를 http(s) response 메시지를 통해 상기 사용자 단말로 전송한다 (S266).The client server stores the received token and notifies the user terminal of completion of the authentication procedure (S264). To this end, the client server transmits a message indicating the completion of the authentication procedure to the user terminal through an http(s) response message (S266).

인증 절차의 완료를 알리는 메시지에 응답하여, 사용자 단말은 인증 절차를 완료한다 (S268).In response to the message indicating the completion of the authentication procedure, the user terminal completes the authentication procedure (S268).

도 3은 본 발명에 따른 인증 방법을 나타낸 흐름도이다. 이하에서는, 도 2 및 도 3의 비교를 통해, 본 발명에 따른 인증 방법에 대해 상세히 설명한다.3 is a flowchart illustrating an authentication method according to the present invention. Hereinafter, an authentication method according to the present invention will be described in detail by comparing FIGS. 2 and 3 .

먼저, 종래의 클라이언트 서버와 달리, 본 발명에 따른 클라이언트 서버 (200)는 Start_URL, State_URL, Auth_URL, Landing_URL을 운용할 수 있다. 앞서 상술한 바와 같이, Auth_URL은 인증 서버 (300)가 클라이언트 서버 (200)로 인증 코드를 제공/설정하기 위한 URL일 수 있다. 또한, Landing_URL은, 종래 Redirect_URL과 달리, 인증 코드를 전달하지 않도록 설정된 URL일 수 있다.First, unlike the conventional client server, the client server 200 according to the present invention may operate Start_URL, State_URL, Auth_URL, and Landing_URL. As described above, Auth_URL may be a URL for the authentication server 300 to provide/set an authentication code to the client server 200 . Also, unlike the conventional Redirect_URL, the Landing_URL may be a URL set not to transmit an authentication code.

또한, 세션 (session)만을 운용하는 종래의 클라이언트 서버와 달리, 본 발명에 따른 클라이언트 서버 (200)는 세션 뿐만 아니라 별도의 DB를 운용할 수 있다.Also, unlike a conventional client server that operates only a session, the client server 200 according to the present invention can operate a separate DB as well as a session.

상기와 같은 특징들에 기반하여, 본 발명에 따른 인증 방법은 다음과 같이 수행될 수 있다.Based on the above characteristics, the authentication method according to the present invention can be performed as follows.

사용자는 사용자 단말 (100) 내 프로그램 (예: 애플리케이션, 웹 브라우저 등)을 통해 클라이언트 서버 (200)의 인증 시작 페이지에 접속할 수 있다 (S302). 이를 위해, 상기 사용자 단말 (100)은 http(s) request 메시지를 상기 클라이언트 서버 (200)의 Start_URL을 이용하여 상기 클라이언트 서버 (200)로 전송할 수 있다 (S304). 이에 대응하여, 상기 클라이언트 서버 (200)는 상기 사용자 단말 (100)로 인증 시작 페이지를 전달할 수 있다 (S306). 이를 위해, 상기 클라이언트 서버 (200)는 http(s) response 메시지를 상기 사용자 단말 (100)로 전송하여 상기 클라이언트 서버의 State_URL을 제공할 수 있다 (S308).The user may access the authentication start page of the client server 200 through a program (eg, an application, a web browser, etc.) in the user terminal 100 ( S302 ). To this end, the user terminal 100 may transmit an http(s) request message to the client server 200 by using the Start_URL of the client server 200 (S304). Correspondingly, the client server 200 may transmit an authentication start page to the user terminal 100 (S306). To this end, the client server 200 may transmit an http(s) response message to the user terminal 100 to provide the State_URL of the client server (S308).

사용자 단말 (100)은 State_URL을 통해 클라이언트 서버 (200)에 인증 시작을 요청할 수 있다 (S310). 이를 위해, 상기 사용자 단말 (100)은 http(s) request 메시지를 상기 클라이언트의 State_URL을 이용하여 상기 클라이언트 서버 (200)로 전송할 수 있다 (S312).The user terminal 100 may request the client server 200 to start authentication through State_URL (S310). To this end, the user terminal 100 may transmit an http(s) request message to the client server 200 by using the client's State_URL (S312).

사용자 단말(100)의 인증 시작 요청에 대응하여, 클라이언트 서버 (200)는 상태 (State) 값을 생성할 수 있다 (S314). 이어, 상기 클라이언트 서버 (200)는 생성된 상태 값을 세션 뿐 아니라 DB에 저장할 수 있다 (S316). 그리고, 상기 클라이언트 서버 (200)는 리디렉션 응답 (예: http(s) response)을 상태 (state) 정보, 범위 (scope) 정보, Landing_URL 정보, 클라이언트 식별 정보 (예: Client_ID) 등과 함께 인증 서버 (300)의 Login_URL 로 전송할 수 있다 (S318). In response to the authentication start request of the user terminal 100, the client server 200 may generate a state value (S314). Next, the client server 200 may store the generated state value in the DB as well as the session (S316). In addition, the client server 200 transmits a redirect response (eg, http(s) response) to the authentication server 300 together with state information, scope information, Landing_URL information, and client identification information (eg, Client_ID). ) can be transmitted to Login_URL (S318).

사용자 단말 (100)이 해당 응답을 수신하는 경우, 상기 사용자 단말 (100)은 해당 리디렉션 응답을 자동으로 인증 서버 (300)의 Login_URL 로 리디렉션할 수 있다 (S320). 이를 위해, 상기 사용자 단말 (100)은 대응하는 https request 메시지를 상기 인증 서버 (300)의 Login_URL로 전송할 수 있다 (S322).When the user terminal 100 receives the corresponding response, the user terminal 100 may automatically redirect the corresponding redirection response to the Login_URL of the authentication server 300 (S320). To this end, the user terminal 100 may transmit a corresponding https request message to the Login_URL of the authentication server 300 (S322).

인증 서버 (300)는 해당 리디렉션 응답을 통해 전달 받은 정보를 이용하여, 해당 리디렉션 응답이 정상적인 클라이언트 서버 요청인지를 검증하고, 정상일 경우 상기 정보를 세션 및 DB에 저장할 수 있다 (S324). 반면, 해당 리디렉션 응답이 비정상적인 클라이언트 서버 요청일 경우, 인증 서버 (300)는 인증 절차를 종료한다. The authentication server 300 may use the information received through the redirection response to verify whether the redirection response is a normal client-server request, and if it is, store the information in the session and DB (S324). On the other hand, when the redirect response is an abnormal client server request, the authentication server 300 terminates the authentication procedure.

이어, 해당 리디렉션 응답이 정상적인 클라이언트 서버 요청인 경우, 인증 서버 (300)는 사용자 단말 (100)로 본인임을 인증할 수 있는 로그인 페이지를 제공할 수 있다 (S326). 이를 위해, 상기 인증 서버 (300)는 https response 메시지를 통해 로그인 페이지 정보를 상기 사용자 단말 (100)로 전송할 수 있다 (S328). 이때, CSRF (Cross Site Request Forgery) 공격을 막기 위해, 상기 https response 메시지는 CSRF Token 을 포함할 수 있다.Next, when the redirect response is a normal client server request, the authentication server 300 may provide a login page for authenticating the identity of the user to the user terminal 100 ( S326 ). To this end, the authentication server 300 may transmit login page information to the user terminal 100 through an https response message (S328). At this time, in order to prevent a CSRF (Cross Site Request Forgery) attack, the https response message may include a CSRF Token.

사용자는 사용자 단말 (100)로 제공 받은 로그인 페이지를 통해 로그인 정보를 입력할 수 있다 (S330). 상기 사용자 단말 (100)은 인증 서버의 Delegation_URL 정보를 이용한 https request 메시지를 통해 상기 사용자로부터 입력 받은 로그인 정보를 상기 인증 서버 (300)로 전송할 수 있다 (S332).The user may input login information through the login page provided to the user terminal 100 (S330). The user terminal 100 may transmit the login information received from the user through the https request message using Delegation_URL information of the authentication server to the authentication server 300 (S332).

인증 서버 (300)는 Delegation_URL을 통해 수신된 로그인 정보의 유효성을 검증할 수 있다 (S334). 이때, 해당 로그인 정보가 유효하다고 판단되는 경우, 상기 인증 서버 (300)는 응답으로 사용자 단말 (100)로 클라이언트 서버 (200)가 요청한 권한의 범위(scope)를 확인하고 동의하는 페이지를 제공할 수 있다 (S336). 이를 위해, 상기 인증 서버 (300)는 https response 메시지를 통해 위임 동의 페이지 정보를 상기 사용자 단말 (100)로 전송할 수 있다 (S338).The authentication server 300 may verify the validity of login information received through Delegation_URL (S334). At this time, if it is determined that the corresponding login information is valid, the authentication server 300 may provide a page to confirm and agree to the scope of the permission requested by the client server 200 to the user terminal 100 in response. There is (S336). To this end, the authentication server 300 may transmit delegation consent page information to the user terminal 100 through an https response message (S338).

사용자 단말 (100)은 클라이언트 서버 (200)에 허용할 권한의 범위(scope)를 설정할 수 있다 (S340). 이어, 상기 사용자 단말 (100)은 인증 서버 (300)의 Confirm_URL 정보를 이용한 https request 메시지를 통해 상기 설정된 권한 범위 정보를 인증 서버 (300)로 전송할 수 있다 (S342).The user terminal 100 may set a scope of permission to be allowed to the client server 200 (S340). Next, the user terminal 100 may transmit the set authority range information to the authentication server 300 through an https request message using Confirm_URL information of the authentication server 300 (S342).

인증 서버 (300)는 Confirm_URL을 통해 수신된 메시지로부터 상기 클라이언트 서버 (200)에게 허용된 권한의 범위(scope)를 확인할 수 있다 (S344). 이와 함께, 상기 인증 서버 (300)는 인증 코드를 발급하고, 상기 인증 코드를 DB에 저장할 수 있다. The authentication server 300 may confirm the scope of the permission allowed to the client server 200 from the message received through Confirm_URL (S344). In addition, the authentication server 300 may issue an authentication code and store the authentication code in a DB.

이어, 인증 서버 (300)는 클라이언트 서버 (200)의 Auth_URL 로 (https request 메시지를 통해) 상태 정보 및 인증 코드를 전달할 수 있다 (S346, S348). 이에 대응하여, 상기 클라이언트 서버 (200)는 DB에 저장한 상태 정보와 상기 인증 코드를 매핑할 수 있다 (S349). 구체적인 일 예로, 상기 클라이언트 서버는, 상기 상태 정보 및 상기 인증 코드를 포함한 메시지를 통해, 미리 DB에 저장된 상태 정보를 상기 인증 코드와 매핑할 수 있다.Subsequently, the authentication server 300 may transmit the status information and the authentication code to the Auth_URL of the client server 200 (via an https request message) (S346, S348). Correspondingly, the client server 200 may map the state information stored in the DB and the authentication code (S349). As a specific example, the client server may map the state information previously stored in the DB with the authentication code through a message including the state information and the authentication code.

이어, 클라이언트 서버 (200)는 매핑의 결과를 인증 서버 (300)에 https response 메시지를 통해 전달할 수 있다 (S350). 상기 인증 서버 (300)는 매핑의 결과가 정상이 아닐 경우, 인증 절차를 종료할 수 있다.Next, the client server 200 may transmit the mapping result to the authentication server 300 through an https response message (S350). The authentication server 300 may terminate the authentication procedure when the mapping result is not normal.

또한, 인증 서버 (300)는, 리디렉션 응답 (예: http(s) response)을 상태 (state) 정보, 범위 (scope) 정보 등과 함께 클라이언트 서버 (200)의 Landing_URL 로 전송할 수 있다 (S352).Also, the authentication server 300 may transmit a redirection response (eg, http(s) response) to the Landing_URL of the client server 200 together with state information and scope information ( S352 ).

사용자 단말 (100)이 해당 응답을 수신하는 경우, 상기 사용자 단말 (100)은 해당 리디렉션 응답을 자동으로 클라이언트 서버의 Landing_URL 로 리디렉션할 수 있다 (S354). 이를 위해, 상기 사용자 단말 (100)은 대응하는 http(s) request 메시지를 상기 클라이언트 서버 (200)의 Landing_URL로 전송할 수 있다 (S356). When the user terminal 100 receives the corresponding response, the user terminal 100 may automatically redirect the corresponding redirection response to the Landing_URL of the client server (S354). To this end, the user terminal 100 may transmit a corresponding http(s) request message to the Landing_URL of the client server 200 (S356).

클라이언트 서버 (200)는 해당 리디렉션 응답을 통해 전달 받은 정보를 검증할 수 있다 (S358). 이때, 해당 정보가 정상인 경우, 상기 클라이언트 서버 (200)는 DB로부터 대응하는 상태 정보와 매핑된 인증 코드를 가져올 수 있다. 이어, 상기 클라이언트 서버 (200)는 클라이언트 식별 정보 (예: Client_ID), 인증 코드 및 상태 정보를 이용하여 인증 서버 (300)로 토큰을 요청할 수 있다. (S360). 이를 위해, 상기 클라이언트 서버 (200)는 클라이언트 식별 정보, 인증 코드, 상태 정보를 포함한 https request 메시지를 인증 서버 (300)의 Token_URL 를 이용하여 상기 인증 서버 (300)로 전송할 수 있다.The client server 200 may verify the received information through the redirection response (S358). In this case, when the corresponding information is normal, the client server 200 may obtain the corresponding state information and the mapped authentication code from the DB. Next, the client server 200 may request a token from the authentication server 300 using client identification information (eg, Client_ID), an authentication code, and status information. (S360). To this end, the client server 200 may transmit an https request message including client identification information, authentication code, and status information to the authentication server 300 using Token_URL of the authentication server 300 .

인증 서버 (300)는, DB에 저장된 값들을 이용하여, 클라이언트 서버 (200)의 토큰 요청 파라미터를 검증할 수 있다 (S362). 이를 위해, 인증 서버 (300)는 DB 내 해당 인증 코드와 매핑된 값을 가져와서 수신된 상태 값을 검증할 수 있다. 이때, 상기 토큰 요청 파라미터가 정상인 경우, 상기 인증 서버 (300)는 토큰을 발행할 수 있다 (S364). 이어, 상기 인증 서버 (300)는 상기 토큰을 DB에 저장하고 응답 신호 (예: https response 메시지)를 통해 클라이언트 서버 (200)로 상기 토큰을 전송할 수 있다 (S366).The authentication server 300 may verify the token request parameter of the client server 200 using the values stored in the DB (S362). To this end, the authentication server 300 may verify the received state value by bringing the value mapped with the corresponding authentication code in the DB. In this case, when the token request parameter is normal, the authentication server 300 may issue a token (S364). Then, the authentication server 300 may store the token in the DB and transmit the token to the client server 200 through a response signal (eg, https response message) (S366).

클라이언트 서버 (200)는 수신된 토큰을 저장하고, 인증 절차의 완료를 사용자 단말 (100)에게 알릴 수 있다 (S368). 이를 위해, 상기 클라이언트 서버 (200)는 상기 인증 절차의 완료를 알리는 메시지를 http(s) response 메시지를 통해 상기 사용자 단말 (100)로 전송할 수 있다 (S370).The client server 200 may store the received token and notify the user terminal 100 of completion of the authentication procedure (S368). To this end, the client server 200 may transmit a message indicating the completion of the authentication procedure to the user terminal 100 through the http(s) response message (S370).

인증 절차의 완료를 알리는 메시지에 응답하여, 사용자 단말 (100)은 인증 절차를 완료할 수 있다 (S372).In response to the message informing the completion of the authentication procedure, the user terminal 100 may complete the authentication procedure (S372).

이에 따라, 본 발명에 따른 클라이언트 서버 (200)는 하기와 같은 방법을 통해 사용자 단말 (100) 및 인증 서버 (300) 간 인증 절차를 수행할 수 있다.Accordingly, the client server 200 according to the present invention may perform an authentication procedure between the user terminal 100 and the authentication server 300 through the following method.

도 4는 본 발명에 적용 가능한 클라이언트 서버의 인증 방법을 나타낸 흐름도이고, 도 5는 본 발명에 적용 가능한 클라이언트 서버의 블록 구성을 나타낸 도면이다.4 is a flowchart illustrating an authentication method of a client server applicable to the present invention, and FIG. 5 is a diagram illustrating a block configuration of a client server applicable to the present invention.

먼저, 클라이언트 서버 (200)는 사용자 단말 (100)과의 인증 절차를 시작할 수 있다 (S410). 이를 위한 구체적인 방법으로는, 앞서 상술한 S302, S304, S306, S308 단계를 포함할 수 있다.First, the client server 200 may start an authentication procedure with the user terminal 100 (S410). A specific method for this may include steps S302, S304, S306, and S308 described above.

인증 절차의 시작에 기반하여, 클라이언트 서버 (200)는 상기 인증 절차를 위해 유일성을 갖는 상태 정보를 생성하여 저장할 수 있다 (S420). 이때, 상기 클라이언트 서버 (200)는 별도의 데이터 베이스에 상기 상태 정보를 저장할 수 있다. 이를 위한 구체적인 방법으로는, 앞서 상술한 S310, S312, S314, S316 단계를 포함할 수 있다.Based on the start of the authentication procedure, the client server 200 may generate and store unique state information for the authentication procedure (S420). In this case, the client server 200 may store the state information in a separate database. A specific method for this may include steps S310, S312, S314, and S316 described above.

클라이언트 서버 (200)는 상태 정보 및 상기 클라이언트 서버의 권한 범위 정보를 포함한 제1 파라미터를 인증 서버 (300)로 전송할 수 있다 (S430). 이때, 상기 제1 파라미터는 상기 클라이언트 서버 (200)의 인증 요청 정보를 포함할 수 있다. 이를 위한 구체적인 방법으로는, 앞서 상술한 S318, S320, S322 방법을 포함할 수 있다.The client server 200 may transmit the first parameter including the status information and the authority range information of the client server to the authentication server 300 (S430). In this case, the first parameter may include authentication request information of the client server 200 . Specific methods for this may include methods S318, S320, and S322 described above.

제1 파라미터가 유효한 경우, 사용자 단말 (100) 및 인증 서버 (300)는 로그인 절차 및 클라이언트 서버 (200)의 권한 범위의 검증을 수행할 수 있다 (S440). 이를 위한 구체적인 방법으로는, 앞서 상술한 S324, S326, S328, S330, S3323, S334, S336, S338, S340, S344 단계를 포함할 수 있다.When the first parameter is valid, the user terminal 100 and the authentication server 300 may perform a login procedure and verification of the authority range of the client server 200 (S440). A specific method for this may include steps S324, S326, S328, S330, S3323, S334, S336, S338, S340, and S344 described above.

또한, 제1 파라미터가 유효한 경우, 클라이언트 서버 (200)는 인증 서버 (300)로부터 상태 정보에 대응하는 인증 코드를 수신할 수 있다 (S450). 이때, 상기 인증 코드를 수신하는 동작은, 상기 클라이언트 서버 (200)가 상기 인증 서버 (300)로부터 상기 상태 정보에 대응하는 인증 코드를 직접 수신 (예: 사용자 단말 (100)을 거치지 않고) 하는 것을 포함할 수 있다. 이를 위한 구체적인 방법으로는, 앞서 상술한 S346, S348 단계를 포함할 수 있다.Also, when the first parameter is valid, the client server 200 may receive an authentication code corresponding to the state information from the authentication server 300 ( S450 ). At this time, the operation of receiving the authentication code is that the client server 200 directly receives the authentication code corresponding to the status information from the authentication server 300 (eg, without going through the user terminal 100 ). may include A specific method for this may include steps S346 and S348 described above.

클라이언트 서버 (200)는 수신된 인증 코드를 대응하는 상태 정보와 매핑할 수 있다 (S460). 이어, 상기 클라이언트 서버 (200)는 매핑 결과 메시지를 인증 서버 (300)에 전송할 수 있다 (S465). 이때, 매핑의 결과가 정상이 아니라는 매핑 결과 메시지를 수신할 경우, 상기 인증 서버 (300)는 인증 절차를 종료할 수 있다. 이를 위한 구체적인 방법으로는, 앞서 상술한 S349, S350 단계를 포함할 수 있다.The client server 200 may map the received authentication code with the corresponding state information (S460). Next, the client server 200 may transmit a mapping result message to the authentication server 300 (S465). In this case, when receiving a mapping result message indicating that the mapping result is not normal, the authentication server 300 may end the authentication procedure. A specific method for this may include steps S349 and S350 described above.

클라이언트 서버 (200)는 상태 정보 및 권한 범위 정보를 포함한 제2 파라미터를 인증 서버 (300)로부터 수신할 수 있다 (S470). 이때, 상기 제2 파라미터는 상기 제2 파라미터에 포함된 상기 상태 정보에 대응하는 인증 코드를 포함하지 않을 수 있다. 이를 위한 구체적인 방법으로는, 앞서 상술한 S352, S354, S356 단계를 포함할 수 있다.The client server 200 may receive the second parameter including status information and authority range information from the authentication server 300 ( S470 ). In this case, the second parameter may not include an authentication code corresponding to the state information included in the second parameter. A specific method for this may include steps S352, S354, and S356 described above.

제2 파라미터가 유효한 경우, 클라이언트 서버 (200)는, 상태 정보에 매핑된 인증 코드 및 상기 상태 정보를 포함하는 제3 파라미터를 인증 서버 (300)로 전송할 수 있다 (S480). 이에 대응하여, 상기 클라이언트 서버 (200)는 상기 제3 파라미터에 대응하는 토큰을 상기 인증 서버 (300)로부터 수신할 수 있다 (S485). 이를 위한 구체적인 방법으로는, 앞서 상술한 S358, S360, S362, S364, S366, S368 단계를 포함할 수 있다.When the second parameter is valid, the client server 200 may transmit an authentication code mapped to the state information and a third parameter including the state information to the authentication server 300 (S480). Correspondingly, the client server 200 may receive a token corresponding to the third parameter from the authentication server 300 (S485). A specific method for this may include steps S358, S360, S362, S364, S366, and S368 described above.

클라이언트 서버 (200)는, 인증 서버 (300)로부터 수신된 토큰에 기반하여, 인증 절차의 완료 메시지를 사용자 단말 (100)로 전송할 수 있다 (S490). 이를 통해, 상기 클라이언트 서버 (200)는 상기 인증 절차가 완료 되었음을 상기 사용자 단말로 전송할 수 있다. 이를 위한 구체적인 방법으로는, 앞서 상술한 S370, S372 단계를 포함할 수 있다.The client server 200 may transmit an authentication procedure completion message to the user terminal 100 based on the token received from the authentication server 300 (S490). Through this, the client server 200 may transmit to the user terminal that the authentication procedure is completed. A specific method for this may include steps S370 and S372 described above.

앞서 상술한 설명에 있어, 실시예에 따라, 제1 파라미터, 제2 파라미터 및 제3 파라미터는 각각 클라이언트 서버 (200)의 식별 정보를 더 포함할 수 있다.In the above description, according to an embodiment, each of the first parameter, the second parameter, and the third parameter may further include identification information of the client server 200 .

또한, 앞서 상술한 인증 방법은, 매체에 저장된 컴퓨터 프로그램에 의해 하드웨어와의 결합을 통해 실행되도록 설정될 수 있다.In addition, the above-described authentication method may be set to be executed through combination with hardware by a computer program stored in the medium.

또한, 앞서 상술한 인증 방법을 수행하는 프로그램은 컴퓨터 판독가능 기록매체에 저장/기록될 수 있다.In addition, the program for performing the above-described authentication method may be stored/recorded in a computer-readable recording medium.

앞서 상술한 인증 방법을 수행하는 클라이언트 서버는 인증 시작 수단 (210), 상태 정보 관리 수단 (220), 인증 코드 매핑 수단 (230), 인증 절차 완료 수단 (240)을 포함할 수 있다.The client server performing the above-described authentication method may include an authentication start unit 210 , a state information management unit 220 , an authentication code mapping unit 230 , and an authentication procedure completion unit 240 .

보다 구체적으로, 인증 시작 수단 (210)은 사용자 단말 (100)과의 인증 절차를 시작하도록 설정될 수 있다. 상태 정보 관리 수단 (220)은, 상기 인증 절차의 시작에 기반하여, 상기 인증 절차를 위해 유일성을 갖는 상태 정보를 생성하여 저장하고, 상기 상태 정보 및 상기 클라이언트 서버의 권한 범위 정보를 포함한 제1 파라미터를 인증 서버 (300) 로 제공하도록 설정될 수 있다. 인증 코드 매핑 수단 (230)은, 상기 제1 파라미터가 유효한 경우, 상기 인증 서버로부터 상기 상태 정보에 대응하는 인증 코드를 수신하고, 상기 상태 정보와 상기 인증 코드를 매핑하도록 설정될 수 있다. 인증 절차 완료 수단 (240)은, 상기 상태 정보 및 상기 권한 범위 정보를 포함한 제2 파라미터를 상기 인증 서버로부터 수신하고, 상기 제2 파라미터가 유효한 경우 (a) 상기 상태 정보에 매핑된 상기 인증 코드 및 상기 상태 정보를 포함하는 제3 파라미터를 상기 인증 서버 (300)로 전송하고 (b) 상기 제3 파라미터에 대응하는 토큰을 수신하고, (c) 상기 수신된 토큰에 기반하여 상기 인증 절차의 완료 메시지를 상기 사용자 단말로 전송하도록 설정될 수 있다. More specifically, the authentication initiating means 210 may be set to start an authentication procedure with the user terminal 100 . State information management means 220, based on the start of the authentication procedure, generates and stores the state information having a uniqueness for the authentication procedure, the first parameter including the state information and the privilege range information of the client server may be set to provide to the authentication server 300 . The authentication code mapping means 230 may be configured to receive an authentication code corresponding to the state information from the authentication server when the first parameter is valid, and to map the state information and the authentication code. The authentication procedure completion means 240 receives a second parameter including the status information and the authority range information from the authentication server, and when the second parameter is valid (a) the authentication code mapped to the status information; A third parameter including the status information is transmitted to the authentication server 300, (b) a token corresponding to the third parameter is received, (c) a completion message of the authentication procedure based on the received token may be configured to transmit to the user terminal.

실시예에 따라, 인증 시작 수단 (210)은 클라이언트 서버 (200)를 위한 시작 URL과 관련될 수 있다. According to an embodiment, the authentication initiation means 210 may be associated with a starting URL for the client server 200 .

실시예에 따라, 상태 정보 관리 수단 (220)은 클라이언트 서버 (200)를 위한 상태 URL과 관련될 수 있다.According to an embodiment, the state information management means 220 may be associated with a state URL for the client server 200 .

실시예에 따라, 인증 코드 매핑 수단 (230)은 클라이언트 서버 (200)를 위한 인증 URL과 관련될 수 있다. 실시예에 따라, 인증 절차 완료 수단 (240)은 클라이언트 서버 (200)를 위한 랜딩 (landing) URL과 관련될 수 있다.Depending on the embodiment, the authentication code mapping means 230 may be associated with an authentication URL for the client server 200 . According to an embodiment, the authentication procedure completion means 240 may be associated with a landing URL for the client server 200 .

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in relation to an embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. As mentioned above, although embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing its technical spirit or essential features. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

100 : 사용자 단말
200 : 클라이언트 서버
300 : 인증 서버
100: user terminal
200 : client server
300: authentication server

Claims (14)

클라이언트 서버가 사용자 단말 및 인증 서버 간 인증 절차를 수행하는 인증 방법에 있어서,
상기 사용자 단말과의 인증 절차를 시작하는 단계;
상기 인증 절차의 시작에 기반하여, 상기 인증 절차를 위해 유일성을 갖는 상태 정보를 생성하여 저장하는 단계;
상기 상태 정보 및 상기 클라이언트 서버의 권한 범위 정보를 포함한 제1 파라미터를 상기 인증 서버로 전송하는 단계;
상기 제1 파라미터가 유효한 경우, 상기 인증 서버로부터 상기 상태 정보에 대응하는 인증 코드를 수신하는 단계;
상기 수신된 인증 코드를 상기 상태 정보와 매핑하는 단계;
상기 상태 정보 및 상기 권한 범위 정보를 포함한 제2 파라미터를 상기 인증 서버로부터 수신하는 단계;
상기 제2 파라미터가 유효한 경우, (a) 상기 상태 정보에 매핑된 상기 인증 코드 및 상기 상태 정보를 포함한 제3 파라미터를 상기 인증 서버로 전송하고, (b) 상기 제3 파라미터에 대응하는 토큰을 상기 인증 서버로부터 수신하는 단계; 및
상기 수신된 토큰에 기반하여, 상기 인증 절차의 완료 메시지를 상기 사용자 단말로 전송하는 단계를 포함하는, 인증 방법.
An authentication method in which a client server performs an authentication procedure between a user terminal and an authentication server,
starting an authentication procedure with the user terminal;
generating and storing state information having uniqueness for the authentication procedure based on the start of the authentication procedure;
transmitting a first parameter including the status information and the privilege range information of the client server to the authentication server;
receiving an authentication code corresponding to the status information from the authentication server when the first parameter is valid;
mapping the received authentication code with the status information;
receiving a second parameter including the status information and the authority range information from the authentication server;
If the second parameter is valid, (a) transmits the authentication code mapped to the state information and a third parameter including the state information to the authentication server, and (b) generates a token corresponding to the third parameter. receiving from an authentication server; and
Based on the received token, the authentication method comprising the step of transmitting a completion message of the authentication procedure to the user terminal.
제 1항에 있어서,
상기 인증 코드를 수신하는 단계는, 상기 클라이언트 서버가 상기 인증 서버로부터 상기 상태 정보에 대응하는 인증 코드를 직접 수신하는 것을 포함하는, 인증 방법.
The method of claim 1,
The receiving of the authentication code includes, by the client server, directly receiving an authentication code corresponding to the status information from the authentication server.
제 1항에 있어서,
상기 인증 방법은,
상기 클라이언트 서버가 상기 인증 서버로, 상기 수신된 인증 코드와 상기 상태 정보의 매핑 결과 메시지를 전송하는 단계를 더 포함하는, 인증 방법.
The method of claim 1,
The authentication method is
The method further comprising the step of transmitting, by the client server, a mapping result message between the received authentication code and the status information to the authentication server.
제 1항에 있어서,
상기 제1 파라미터, 상기 제2 파라미터 및 상기 제3 파라미터는, 각각 상기 클라이언트 서버의 식별 정보를 더 포함하는, 인증 방법.
The method of claim 1,
The first parameter, the second parameter, and the third parameter further include identification information of the client server, respectively.
제 1항에 있어서,
상기 상태 정보를 생성하여 저장하는 단계는, 상기 상태 정보를 데이터 베이스에 저장하는 것을 포함하는, 인증 방법.
The method of claim 1,
The generating and storing of the state information includes storing the state information in a database.
제 1항에 있어서,
상기 제2 파라미터는, 상기 제2 파라미터에 포함된 상기 상태 정보에 대응하는 상기 인증 코드를 포함하지 않고,
상기 제3 파라미터는, 클라이언트 비밀 정보를 포함하지 않는, 인증 방법.
The method of claim 1,
The second parameter does not include the authentication code corresponding to the state information included in the second parameter,
and the third parameter does not include client secret information.
제 1 항 내지 제 6 항 중 어느 한 항의 인증 방법을 하드웨어와의 결합을 통해 실행시키기 위한 매체에 저장된 컴퓨터 프로그램.A computer program stored in a medium for executing the authentication method of any one of claims 1 to 6 through combination with hardware. 제 1 항 내지 제 6 항 중 어느 한 항의 인증 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체.A computer-readable recording medium recording a program for performing the authentication method of any one of claims 1 to 6. 사용자 단말 및 인증 서버 간 인증 절차를 수행하는 클라이언트 서버에 있어서,
상기 사용자 단말과의 인증 절차를 시작하는, 인증 시작 수단;
상기 인증 절차의 시작에 기반하여, 상기 인증 절차를 위해 유일성을 갖는 상태 정보를 생성하여 저장하고, 상기 상태 정보 및 상기 클라이언트 서버의 권한 범위 정보를 포함한 제1 파라미터를 상기 인증 서버로 제공하는, 상태 정보 관리 수단;
상기 제1 파라미터가 유효한 경우, 상기 인증 서버로부터 상기 상태 정보에 대응하는 인증 코드를 수신하고, 상기 상태 정보와 상기 인증 코드를 매핑하는, 인증 코드 매핑 수단; 및
상기 상태 정보 및 상기 권한 범위 정보를 포함한 제2 파라미터를 상기 인증 서버로부터 수신하고, 상기 제2 파라미터가 유효한 경우 (a) 상기 상태 정보에 매핑된 상기 인증 코드 및 상기 상태 정보를 포함하는 제3 파라미터를 상기 인증 서버로 전송하고 (b) 상기 제3 파라미터에 대응하는 토큰을 상기 인증 서버로부터 수신하고, (c) 상기 수신된 토큰에 기반하여 상기 인증 절차의 완료 메시지를 상기 사용자 단말로 전송하는, 인증 절차 완료 수단을 포함하는, 클라이언트 서버.
A client server performing an authentication procedure between a user terminal and an authentication server, the client server comprising:
authentication initiating means for starting an authentication procedure with the user terminal;
Based on the start of the authentication procedure, generating and storing state information having uniqueness for the authentication procedure, and providing a first parameter including the state information and the privilege range information of the client server to the authentication server information management means;
authentication code mapping means for receiving an authentication code corresponding to the state information from the authentication server when the first parameter is valid, and for mapping the state information and the authentication code; and
A second parameter including the status information and the privilege range information is received from the authentication server, and when the second parameter is valid (a) a third parameter including the status information and the authentication code mapped to the status information to the authentication server, (b) receiving a token corresponding to the third parameter from the authentication server, (c) transmitting a completion message of the authentication procedure to the user terminal based on the received token, A client server comprising means for completing an authentication procedure.
제 9항에 있어서,
상기 클라이언트 서버는 상기 인증 서버로부터 상기 상태 정보에 대응하는 인증 코드를 직접 수신하는, 클라이언트 서버.
10. The method of claim 9,
The client server directly receives an authentication code corresponding to the status information from the authentication server.
제 9항에 있어서,
상기 제1 파라미터, 상기 제2 파라미터 및 상기 제3 파라미터는, 각각 상기 클라이언트 서버의 식별 정보를 더 포함하는, 클라이언트 서버.
10. The method of claim 9,
The first parameter, the second parameter, and the third parameter, each further comprising identification information of the client server, the client server.
제 9항에 있어서,
상기 인증 시작 수단은 상기 클라이언트 서버를 위한 시작 URL (Uniform Resource Locator)과 관련되고,
상기 상태 정보 관리 수단은 상기 클라이언트 서버를 위한 상태 URL과 관련되고,
상기 인증 코드 매핑 수단은 상기 클라이언트 서버를 위한 인증 URL과 관련되고,
상기 인증 절차 완료 수단은 상기 클라이언트 서버를 위한 랜딩 (landing) URL과 관련되는, 클라이언트 서버.
10. The method of claim 9,
The authentication initiating means is associated with a starting URL (Uniform Resource Locator) for the client server,
the state information management means is associated with a state URL for the client server;
the authentication code mapping means is associated with an authentication URL for the client server;
and the means for completing the authentication procedure is associated with a landing URL for the client server.
제 9항에 있어서,
상기 상태 정보 관리 수단은, 상기 상태 정보를 데이터 베이스에 저장하는, 클라이언트 서버.
10. The method of claim 9,
The state information management means stores the state information in a database, a client server.
제 9항에 있어서,
상기 제2 파라미터는, 상기 제2 파라미터에 포함된 상기 상태 정보에 대응하는 상기 인증 코드를 포함하지 않고,
상기 제3 파라미터는, 클라이언트 비밀 정보를 포함하지 않는, 클라이언트 서버.
10. The method of claim 9,
The second parameter does not include the authentication code corresponding to the state information included in the second parameter,
and the third parameter does not include client secret information.
KR1020200047927A 2020-04-21 2020-04-21 Web based authentication method, and computer program, recording medium and server device for the authentication method KR102307361B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200047927A KR102307361B1 (en) 2020-04-21 2020-04-21 Web based authentication method, and computer program, recording medium and server device for the authentication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200047927A KR102307361B1 (en) 2020-04-21 2020-04-21 Web based authentication method, and computer program, recording medium and server device for the authentication method

Publications (1)

Publication Number Publication Date
KR102307361B1 true KR102307361B1 (en) 2021-09-29

Family

ID=77924566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200047927A KR102307361B1 (en) 2020-04-21 2020-04-21 Web based authentication method, and computer program, recording medium and server device for the authentication method

Country Status (1)

Country Link
KR (1) KR102307361B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150052897A (en) 2013-11-06 2015-05-15 주식회사 엘지유플러스 Authentication method by using certificate application and system thereof
KR20150129478A (en) * 2014-05-12 2015-11-20 주식회사 한국인터넷기술원 Method and apparatus of authenticating an user
KR20180128451A (en) * 2016-03-30 2018-12-03 알리바바 그룹 홀딩 리미티드 A method and device for registering biometric identification information and authenticating biometric identification information
KR20190036741A (en) * 2017-09-28 2019-04-05 에스케이플래닛 주식회사 Service providing system and method for security supporting multi-channel authentication with user equipment, and non-transitory computer readable medium having computer program recorded thereon

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150052897A (en) 2013-11-06 2015-05-15 주식회사 엘지유플러스 Authentication method by using certificate application and system thereof
KR20150129478A (en) * 2014-05-12 2015-11-20 주식회사 한국인터넷기술원 Method and apparatus of authenticating an user
KR20180128451A (en) * 2016-03-30 2018-12-03 알리바바 그룹 홀딩 리미티드 A method and device for registering biometric identification information and authenticating biometric identification information
KR20190036741A (en) * 2017-09-28 2019-04-05 에스케이플래닛 주식회사 Service providing system and method for security supporting multi-channel authentication with user equipment, and non-transitory computer readable medium having computer program recorded thereon

Similar Documents

Publication Publication Date Title
US10484375B2 (en) Systems and methods for authenticating an online user using a secure authorization server
US11063928B2 (en) System and method for transferring device identifying information
KR102362456B1 (en) Authority transfer system, control method therefor, and storage medium
CN106209749B (en) Single sign-on method and device, and related equipment and application processing method and device
US8532620B2 (en) Trusted mobile device based security
JP4965558B2 (en) Peer-to-peer authentication and authorization
US9130935B2 (en) System and method for providing access credentials
CN104767731B (en) A kind of Restful move transactions system identity certification means of defence
WO2018228138A1 (en) Entrusted login method, related device and computer readable storage medium
US20130007867A1 (en) Network Identity for Software-as-a-Service Authentication
KR20160127167A (en) Multi-factor certificate authority
CN109388937B (en) Single sign-on method and sign-on system for multi-factor identity authentication
EP2957064B1 (en) Method of privacy-preserving proof of reliability between three communicating parties
WO2014048749A1 (en) Inter-domain single sign-on
US20170034164A1 (en) Multifactor authentication for mail server access
US20140281480A1 (en) Systems and methods for providing secure communication
CN109121135A (en) Client registers and key sharing method, apparatus and system based on GBA
CN114189380B (en) Zero-trust-based distributed authentication system and authorization method for Internet of things equipment
US20220070172A1 (en) Methods and systems for enabling identity-based services using a random identifier
US20160285843A1 (en) System and method for scoping a user identity assertion to collaborative devices
TW201430608A (en) Single-sign-on system and method
CN103118025A (en) Single sign-on method based on network access certification, single sign-on device and certificating server
CN116886343A (en) User access control method and system based on continuous authentication
KR102307361B1 (en) Web based authentication method, and computer program, recording medium and server device for the authentication method
CN114500074A (en) Single-point system security access method, device and related equipment

Legal Events

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