KR20230145009A - Single sign on authentication method and system based on terminal using dynamic token generation agent - Google Patents

Single sign on authentication method and system based on terminal using dynamic token generation agent Download PDF

Info

Publication number
KR20230145009A
KR20230145009A KR1020230131924A KR20230131924A KR20230145009A KR 20230145009 A KR20230145009 A KR 20230145009A KR 1020230131924 A KR1020230131924 A KR 1020230131924A KR 20230131924 A KR20230131924 A KR 20230131924A KR 20230145009 A KR20230145009 A KR 20230145009A
Authority
KR
South Korea
Prior art keywords
sso
authentication
information
application
login
Prior art date
Application number
KR1020230131924A
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 KR1020230131924A priority Critical patent/KR20230145009A/en
Publication of KR20230145009A publication Critical patent/KR20230145009A/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/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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

Landscapes

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

Abstract

사용자 단말에 설치되는 SSO 에이전트; 및 상기 SSO 에이전트와 통신 연동되어 SSO 서비스 인증을 수행하는 SSO 인증 서버;에 의해 실행되는, 싱글 사인 온(SSO : single sign on) 인증 방법은, (a) 상기 SSO 에이전트가, SSO 서비스 대상인 애플리케이션으로의 자동 접속 로그인을 위한 동적 토큰 기반의 SSO 인증 정보를 생성하는 단계; 및 (b) 상기 SSO 인증 서버가, 상기 SSO 인증 정보의 검증을 수행하고, 검증이 정상적으로 완료된 경우 해당 사용자 정보에 대응되는 상기 애플리케이션의 로그인 인증 정보를 상기 애플리케이션과 연동되는 애플리케이션 서버로 전달함으로써 상기 애플리케이션의 자동 로그인 인증 처리가 이루어지도록 하는 단계;를 포함한다.SSO agent installed on the user terminal; and an SSO authentication server that communicates with the SSO agent and performs SSO service authentication; a single sign on (SSO) authentication method executed by: (a) the SSO agent connects to an application that is an SSO service target; Generating dynamic token-based SSO authentication information for automatic login; and (b) the SSO authentication server performs verification of the SSO authentication information, and when the verification is successfully completed, transfers the login authentication information of the application corresponding to the user information to the application server linked with the application, thereby applying the application. It includes; allowing automatic login authentication processing to occur.

Description

동적 토큰 생성 에이전트를 이용한 단말기 기반 싱글 사인 온 인증 방법 및 시스템{SINGLE SIGN ON AUTHENTICATION METHOD AND SYSTEM BASED ON TERMINAL USING DYNAMIC TOKEN GENERATION AGENT}Terminal-based single sign-on authentication method and system using a dynamic token generation agent {SINGLE SIGN ON AUTHENTICATION METHOD AND SYSTEM BASED ON TERMINAL USING DYNAMIC TOKEN GENERATION AGENT}

본 발명은 PC 등 사용자 단말기 기반에서 SSO(Single Sign On) 서비스를 구현하는 방법에 관한 것으로서, 보다 구체적으로는 동적 토큰 생성 에이전트를 이용한 단말기 기반 싱글 사인 온 인증 방법 및 시스템에 관한 것이다.The present invention relates to a method of implementing a single sign-on (SSO) service based on a user terminal such as a PC, and more specifically, to a terminal-based single sign-on authentication method and system using a dynamic token generation agent.

사용자가 PC에서 어떤 네트워크 프로그램에 한번 로그인 한 이후 여러 네트워크 서비스를 로그인 절차 필요 없이 자동으로 이용 할 수 있는 다양한 SSO 서비스가 제공되고 있다.A variety of SSO services are provided that allow users to automatically use various network services without the need for a login process after logging in to a network program on a PC.

주로 웹 브라우저를 기반으로는 SAML, OAuth 2.0, OpenID Connect 등과 같은 기술로 구현된 SSO 기술이 있으며, 이는 최초 사용자 인증된 이후 인증 서버로부터 발행된 토큰을 이용하여 새로 접속하는 시스템에 제출하는 방식이다(도 1 및 도 2 참조).Mainly based on web browsers, there is SSO technology implemented with technologies such as SAML, OAuth 2.0, and OpenID Connect, which uses a token issued from an authentication server after the first user is authenticated and submits it to the newly connected system ( 1 and 2).

그러나 종래 기술에 따른 토큰 기반의 SSO 기술은 해당 토큰(이는 그 토큰 값이 고정된 값을 갖는 정적 토큰에 해당함)이 해커에 의해서 탈취되면 해당 사용자를 사칭할 수 있었다(도 3 참조). 또한 종래 기술에 따른 SSO 기술은 웹 기반 프로그램에 한정적으로 적용되어 PC 등 사용자 단말기에서 구동되는 다양한 설치형 어플리케이션에서 작동되지 못하는 한계가 있었다. However, the token-based SSO technology according to the prior art could impersonate the user if the token (which corresponds to a static token with a fixed token value) is stolen by a hacker (see FIG. 3). In addition, the SSO technology according to the prior art was limited to web-based programs and had limitations in that it could not operate in various installed applications running on user terminals such as PCs.

본 발명은 PC 등 사용자 단말기 내에 한번 로그인 한 이후 설치된 다양한 응용 프로그램(웹 브라우저, 웹 애플리케이션, 설치형 CS(Client Server) 애플리케이션 등)에 통합적으로 자동 로그인이 적용될 수 있는 안전한 싱글 사인 온 인증 방법 및 시스템을 제공하기 위한 것이다.The present invention provides a safe single sign-on authentication method and system in which automatic login can be applied comprehensively to various applications installed (web browser, web application, installed CS (Client Server) application, etc.) after logging in once within a user terminal such as a PC. It is intended to provide.

본 발명의 일 측면에 따르면, 사용자 단말에 설치되는 SSO 에이전트; 및 상기 SSO 에이전트와 통신 연동되어 SSO 서비스 인증을 수행하는 SSO 인증 서버;에 의해 실행되는, 싱글 사인 온(SSO : single sign on) 인증 방법은, (a) 상기 SSO 에이전트가, SSO 서비스 대상인 애플리케이션으로의 자동 접속 로그인을 위한 동적 토큰 기반의 SSO 인증 정보를 생성하는 단계; 및 (b) 상기 SSO 인증 서버가, 상기 SSO 인증 정보의 검증을 수행하고, 검증이 정상적으로 완료된 경우 해당 사용자 정보에 대응되는 상기 애플리케이션의 로그인 인증 정보를 상기 애플리케이션과 연동되는 애플리케이션 서버로 전달함으로써 상기 애플리케이션의 자동 로그인 인증 처리가 이루어지도록 하는 단계;를 포함한다.According to one aspect of the present invention, an SSO agent installed on a user terminal; and an SSO authentication server that communicates with the SSO agent and performs SSO service authentication; a single sign on (SSO) authentication method executed by: (a) the SSO agent connects to an application that is an SSO service target; Generating dynamic token-based SSO authentication information for automatic login; and (b) the SSO authentication server performs verification of the SSO authentication information, and when the verification is successfully completed, transfers the login authentication information of the application corresponding to the user information to the application server linked with the application, thereby applying the application. It includes; allowing automatic login authentication processing to occur.

본 발명의 실시예에 따른 싱글 사인 온 인증 방법 및 시스템에 의하면, 단말기에서 동작하는 다양한 웹 브라우저, 웹 애플리케이션, CS 애플리케이션으로의 자동 로그인이 통합 적용될 수 있고, 토큰을 제3자가 탈취한다 하더라도 해당 단말기가 아니면 로그인 될 수 없는 높은 보안성을 갖고 있다.According to the single sign-on authentication method and system according to an embodiment of the present invention, automatic login to various web browsers, web applications, and CS applications operating on the terminal can be integrated and applied, and even if a third party steals the token, the terminal It has high security, meaning you cannot log in without it.

도 1 ~ 도 3은 종래 기술에 따른 싱글 사인 온 인증 방법을 설명하기 위한 참조 도면들.
도 4 ~ 도 6은 본 발명의 실시예에 따른 싱글 사인 온 인증 방법을 개괄적으로 보여주는 프로세스 흐름도.
도 7은 본 발명의 싱글 사인 온 인증 방법을 실행하기 위한 공통 프로세스를 설명하기 위한 도면.
도 8는 본 발명의 일 실시예에 따라, 싱글 사인 온 인증 방법이 웹 애플리케이션 접속을 위한 로그인 인증에 사용될 때의 프로세스 상세 흐름도.
도 9는 본 발명의 다른 실시예에 따라, 싱글 사인 온 인증 방법이 CS 애플리케이션 접속을 위한 로그인 인증에 사용될 때의 프로세스 상세 흐름도.
1 to 3 are reference drawings for explaining a single sign-on authentication method according to the prior art.
4 to 6 are process flow diagrams schematically showing a single sign-on authentication method according to an embodiment of the present invention.
7 is a diagram illustrating a common process for executing the single sign-on authentication method of the present invention.
Figure 8 is a detailed process flow diagram when the single sign-on authentication method is used for login authentication for web application access, according to one embodiment of the present invention.
Figure 9 is a detailed process flow diagram when the single sign-on authentication method is used for login authentication for CS application access, according to another embodiment of the present invention.

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

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

또한, 명세서 전체에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다. 또한, 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In addition, throughout the specification, 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 in particular Unless there is a contrary description, it should be understood that it may be connected or connected through another component in the middle. In addition, throughout the specification, when a part "includes" a certain element, this means that it may further include other elements rather than excluding other elements, unless specifically stated to the contrary.

또한, 명세서 전체에서, 일 구성요소가 특정 목적을 달성하기 위한 "처리"를 수행함에 있어서, "직접 처리" 또는 "직접 수행"이라는 용어를 사용하지 않는 이상, 연동되는 다른 구성요소를 통한 "처리" 또는 "수행"을 포함하는 것으로 해석되어야 한다.In addition, throughout the specification, when a component performs "processing" to achieve a specific purpose, unless the terms "direct processing" or "direct performance" are used, "processing" through another interconnected component It should be interpreted as including “or” performance.

또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하나 이상의 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 의미한다.In addition, terms such as “unit” and “module” used in the specification mean a unit that processes at least one function or operation, which means that it can be implemented with one or more hardware or software or a combination of hardware and software. .

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

도 4 ~ 도 6은 본 발명의 실시예에 따른 싱글 사인 온 인증 방법을 개괄적으로 보여주는 프로세스 흐름도이다.4 to 6 are process flow diagrams generally showing a single sign-on authentication method according to an embodiment of the present invention.

도 4를 참조하면, 사용자 단말에 설치되는 SSO 에이전트(도 4 및 도 5의 동적 토큰 생성기 에이전트 참조); 및 상기 SSO 에이전트와 통신 연동되어 SSO 서비스 인증을 수행하는 SSO 인증 서버(도 4 ~ 도 6의 AutoPassword Access Manager 참조);에 의해 실행되는, 싱글 사인 온(SSO : single sign on) 인증 방법이 제공된다.Referring to Figure 4, an SSO agent installed on a user terminal (see dynamic token generator agent in Figures 4 and 5); and an SSO authentication server (see AutoPassword Access Manager in FIGS. 4 to 6) that communicates with the SSO agent and performs SSO service authentication. A single sign on (SSO) authentication method is provided. .

본 발명의 실시예에 따른 싱글 사인 온 인증 방법은, (a) 상기 SSO 에이전트가, SSO 서비스 대상인 애플리케이션으로의 자동 접속 로그인을 위한 동적 토큰 기반의 SSO 인증 정보를 생성하는 단계; 및 (b) 상기 SSO 인증 서버가, 상기 SSO 인증 정보의 검증을 수행하고, 검증이 정상적으로 완료된 경우 해당 사용자 정보에 대응되는 상기 애플리케이션의 로그인 인증 정보를 상기 애플리케이션과 연동되는 애플리케이션 서버로 전달함으로써 상기 애플리케이션의 자동 로그인 인증 처리가 이루어지도록 하는 단계;를 포함하여 구현될 수 있다.The single sign-on authentication method according to an embodiment of the present invention includes the steps of: (a) the SSO agent generating dynamic token-based SSO authentication information for automatic login to an application subject to the SSO service; and (b) the SSO authentication server performs verification of the SSO authentication information, and when the verification is successfully completed, transfers the login authentication information of the application corresponding to the user information to the application server linked with the application, thereby applying the application. It may be implemented including a step of enabling automatic login authentication processing.

이때, 상기 (a) 단계에서, 상기 SSO 에이전트는, SSO 서비스 기반으로 자동 접속 로그인될 애플리케이션과 이에 연동되는 상기 애플리케이션 서버 간의 세션 정보를 획득하고, 상기 획득된 세션 정보에 기반하여 상기 SSO 인증 정보로 사용될 동적 토큰을 생성한다.At this time, in step (a), the SSO agent acquires session information between the application to be automatically connected and logged in based on the SSO service and the application server linked thereto, and uses the SSO authentication information based on the obtained session information. Create a dynamic token to be used.

일 실시예에서, 상기 (a) 단계 이전에, 상기 SSO 인증 서버가, 토큰 시드를 생성하여 SSO 에이전트에게 제공하거나 또는 SSO 에이전트가 생성한 시드를 수신하는 단계를 더 포함할 수 있다. 이에 따라, 상기 (a) 단계에서, 상기 SSO 에이전트는, 상기 SSO 인증 서버에 의해 생성된 토큰 시드와 상기 세션 정보를 연산하여 세션 OTP(Session OTP)를 상기 동적 토큰으로서 생성할 수 있다.In one embodiment, before step (a), the SSO authentication server may further include generating a token seed and providing it to the SSO agent, or receiving a seed generated by the SSO agent. Accordingly, in step (a), the SSO agent may generate a session OTP (Session OTP) as the dynamic token by calculating the token seed generated by the SSO authentication server and the session information.

또한 시스템 구현 방식에 따라서, 동적 토큰을 이용한 싱글 사인 온 인증 과정에서, OTP 이외에 비대칭키 생성 기술을 이용하여 사전에 SSO 에이전트의 공개키를 SSO 인증 서버에 등록하고, 세션 정보를 SSO 에이전트의 개인키로 암호화하여 전송한 후, SSO 인증 서버가 상기 개인키에 대응되는 공개키로 이를 복호화하여 SSO 인증 서버에서 획득된 세션 정보와 일치하는지 여부로 대체할 수 있음도 자명하다.In addition, depending on the system implementation method, during the single sign-on authentication process using a dynamic token, the SSO agent's public key is registered in advance with the SSO authentication server using asymmetric key generation technology in addition to OTP, and the session information is used as the SSO agent's private key. It is also obvious that after encrypting and transmitting, the SSO authentication server can decrypt it with a public key corresponding to the private key and replace it with whether it matches the session information obtained from the SSO authentication server.

또한 일 실시예에서, 상기 (a) 단계 이후 및 상기 (b) 단계 이전에, 상기 애플리케이션 서버는, 상기 SSO 에이전트에 의해 생성된 SSO 인증 정보를 사용자 단말에서 구동되는 애플리케이션을 통하거나 직접 수신할 수 있다. 이에 따라, 상기 (b) 단계에서, 상기 SSO 인증 서버는, 상기 애플리케이션 서버로부터 사용자 로그인 ID, 상기 세션 정보 및 상기 SSO 인증 정보를 수신할 수 있고, 수신된 사용자 로그인 ID, 상기 세션 정보를 이용하여 검증용 SSO 인증 정보를 생성한 후, 검증용 SSO 인증 정보와 수신된 SSO 인증 정보 간의 일치 여부를 검증할 수 있다.Additionally, in one embodiment, after step (a) and before step (b), the application server may receive SSO authentication information generated by the SSO agent directly or through an application running on the user terminal. there is. Accordingly, in step (b), the SSO authentication server may receive the user login ID, the session information, and the SSO authentication information from the application server, and use the received user login ID and the session information. After creating SSO authentication information for verification, you can verify whether the SSO authentication information for verification matches the received SSO authentication information.

또한 일 실시예에서, 상기 (b) 단계에서, 상기 SSO 인증 서버는, 상기 SSO 인증 정보의 검증이 완료된 경우, 상기 애플리케이션에 관한 사용자의 애플리케이션 로그인 ID 정보를 확인하고, 해당 애플리케이션 로그인 ID 및 자동으로 애플리케이션 내의 사용자 암호를 정책에 따라서 자동 갱신하기 위하여 해당 애플리케이션의 로그인 비밀번호의 갱신 정책을 상기 애플리케이션 서버로 전달할 수 있다.In addition, in one embodiment, in step (b), when verification of the SSO authentication information is completed, the SSO authentication server verifies the user's application login ID information for the application, and automatically identifies the application login ID and In order to automatically update the user password within the application according to the policy, the login password renewal policy of the application may be transmitted to the application server.

또한 일 실시예에서, 상기 SSO 에이전트는, 사용자의 단말기 접속 로그인 절차가 정상적으로 완료됨에 따라, 상기 (a) 단계를 연이어 실행할 수 있다.Additionally, in one embodiment, the SSO agent may sequentially execute step (a) as the user's terminal access login procedure is normally completed.

상술한 바와 같이, 본 발명에 따른 싱글 사인 온 인증 방법은, 싱글 사인 온 인증 대상인 애플리케이션과 이에 연동하는 애플리케이션 서버 간에 접속 연결 과정에 동적으로 할당되는 세션 정보에 기반하여 생성된 동적 토큰을 이용하므로, 도 5에 도시된 바와 같이 해커가 그 토큰 자체를 탈취하더라도 그 때의 세션 정보가 상이해지므로, 접속 로그인 보안성이 강화되는 효과가 있다.As described above, the single sign-on authentication method according to the present invention uses a dynamic token generated based on session information dynamically allocated during the connection connection process between the application subject to single sign-on authentication and the application server linked thereto, As shown in Figure 5, even if a hacker steals the token itself, the session information at that time is different, which has the effect of strengthening access login security.

또한 본 발명의 실시예에 의할 때, SSO 에이전트는 단말기내에서 상시 구동되는 모든 애플리케이션이 내부적으로 접근할 수 있도록 프로그램 호출 방식을 지원하거나, 네트워크 통신을 지원하는 서비스 데몬 형태로 구성될 수 있음은 자명하다. 일 구현 예시로는 웹 브라우저나 CS 에플리케이션이 해당 애플리케이션 서버와 접속하여 세션 정보를 받은 이후 SSO 에이전트에 세션 정보를 제시한 후 동적 토큰을 돌려 받아서 해당 애플리케이션 서버에 제출할 수 있다. 또한 본 발명의 실시예에 의할 때, 단말에서 구동되는 애플리케이션이 해당 애플리케이션 서버와 연결을 위하여 생성하는 동적 연결 정보값은 세션 정보 이외에도 접속에 따른 동적으로 변경되는 값을 이용할 수 있음도 자명하다. In addition, according to an embodiment of the present invention, the SSO agent supports a program call method so that all applications running at all times in the terminal can access it internally, or can be configured in the form of a service daemon that supports network communication. Self-explanatory. As an example of implementation, a web browser or CS application may connect to the application server, receive session information, present the session information to the SSO agent, and then receive a dynamic token back and submit it to the application server. In addition, according to the embodiment of the present invention, it is also clear that the dynamic connection information value generated by the application running on the terminal to connect to the corresponding application server can use a value that changes dynamically according to connection in addition to session information.

또한 본 발명의 실시예에 의할 때, 최초 동적생성 에이전트가 구동되어 사용자 인증이 완료된 시간을 시작으로 사전에 설정한 특정 시간내(예 동적 생성에이전트 로그인 이후 30분 이내 또는 PC 스크린세이버 작동 해제 이후 30분 이내)에서만 동적 토큰을 생성하여 SSO 인증이 가능하도록 구성할 수 있음은 자명하다. In addition, according to an embodiment of the present invention, starting from the time when the dynamic generation agent is first run and user authentication is completed, within a preset specific time (e.g., within 30 minutes after logging in to the dynamic generation agent or after disabling the PC screen saver) It is clear that SSO authentication can be configured to enable SSO authentication by generating a dynamic token only within 30 minutes.

또한 본 발명의 실시예에 의할 때, 도 6에 도시된 바와 같이, 상기 SSO 인증 허용 시간 범위를 초과하는 경우, 상기 자동 접속 로그인 인증 처리를 위해 추가 인증 수단(도 6의 AutoPassword 및 생체인증 참조)을 통한 사용자 인증을 요구할 수 있다.In addition, according to an embodiment of the present invention, as shown in FIG. 6, when the SSO authentication allowable time range is exceeded, an additional authentication method (see AutoPassword and biometric authentication in FIG. 6) is used to process the automatic connection login authentication. ) can be requested for user authentication.

이상에서는 본 발명의 실시예에 따른 싱글 사인 온 인증 방법을 개괄적으로 설명하였는 바, 이하에서는 도 7 ~ 도 9를 참조하여 프로세스 상세 흐름 및 구현 방법에 대하여 설명하기로 한다.In the above, the single sign-on authentication method according to an embodiment of the present invention has been generally described. Hereinafter, the detailed process flow and implementation method will be described with reference to FIGS. 7 to 9.

도 7은 본 발명의 싱글 사인 온 인증 방법을 실행하기 위한 SSO 에이전트가 단일 프로그램으로 구동하여 사용자 확인 이후 SSO 에이전트가 작동하는 것 이외에도, 단말 운영체제 로그인 단계와 SSO 에이전트 사용자 확인 단계를 연결하여 사용자가 운영체제 로그온 이후 자동으로 SSO가 구동되기 위한 프로세스를 설명하기 위한 도면이고, 도 8는 본 발명의 일 실시예에 따라, 싱글 사인 온 인증 방법이 웹 애플리케이션 접속을 위한 로그인 인증에 사용될 때의 프로세스 상세 흐름도이며, 도 9는 본 발명의 다른 실시예에 따라, 싱글 사인 온 인증 방법이 CS 애플리케이션(즉, 사용자가 자신의 PC, 노트북, 모바일 기기 등과 같은 단말에 설치한 웹 기반이 아닌 특정 애플리케이션) 접속을 위한 로그인 인증에 사용될 때의 프로세스 상세 흐름도이다.Figure 7 shows that the SSO agent for executing the single sign-on authentication method of the present invention is run as a single program, and in addition to operating the SSO agent after user confirmation, the terminal operating system login step and the SSO agent user confirmation step are connected to enable the user to use the operating system. It is a diagram to explain the process for automatically running SSO after logging on, and Figure 8 is a detailed process flow chart when the single sign-on authentication method is used for login authentication for web application access, according to an embodiment of the present invention. , Figure 9 shows, according to another embodiment of the present invention, a single sign-on authentication method for accessing a CS application (i.e., a specific non-web-based application installed by the user on a terminal such as a PC, laptop, mobile device, etc.) This is a detailed flow chart of the process when used for login authentication.

따라서, 본 발명의 실시예에 의할 때, 웹 애플리케이션의 접속을 위한 SSO 통합 로그인 인증은 도 7의 프로세스가 진행된 이후 도 8의 프로세스가 진행됨으로써 처리 완료되고, CS 애플리케이션의 접속을 위한 SSO 통합 로그인 인증은 도 7의 프로세스가 진행된 이후 도 9의 프로세스가 진행됨으로써 처리 완료된다.Therefore, according to the embodiment of the present invention, the SSO integrated login authentication for access to the web application is completed by proceeding with the process of FIG. 8 after the process of FIG. 7, and the SSO integrated login for access to the CS application is completed. Authentication is completed by proceeding with the process in FIG. 9 after the process in FIG. 7 is performed.

[도 7의 설명][Explanation of Figure 7]

SSO 에이전트가 하나의 독립 프로그램으로 사용자 단말에서 구동되어 사용자 인증단계 이후 단독 구동될 수 있음은 자명하지만, 도 7에서는 운영체제 로그인 단계시 SSO 에이전트가 연계되어 자동으로 구동되는 절차를 도시한다.It is obvious that the SSO agent is run as an independent program on the user terminal and can be run independently after the user authentication step, but FIG. 7 shows a procedure in which the SSO agent is linked and automatically run during the operating system login step.

도 7을 참조하면, 사용자는 자신이 사용하는 단말(50)(이는 PC, 노트북, 모바일 기기 등일 수 있으며, 특별한 제한이 없음)의 OS 계정 로그인(예를 들어, 윈도우즈 OS가 설치된 PC에서의 윈도우즈 로그인)을 위한 사용자 ID를 입력한다[도 7의 도면번호 1 참조].Referring to FIG. 7, the user logs into the OS account of the terminal 50 (this can be a PC, laptop, mobile device, etc., without any special restrictions) (for example, Windows on a PC with Windows OS installed). Enter the user ID for login (see drawing number 1 in FIG. 7).

도 7의 경우, 본 발명의 SSO 서비스 이용 과정에 PC 로그인용 ID가 그대로 활용되는 케이스를 예시하고 있지만, PC 로그인 절차가 수행된 이후에 본 발명의 SSO 서비스의 이용을 위해 등록해둔 별도의 SSO 서비스용 ID를 SSO 서비스 실행용 애플리케이션에 입력함으로써 이하의 프로세스가 진행될 수도 있음은 물론이다. 즉, 본 발명의 SSO 서비스 이용을 위해 선택되는 사용자 ID는 특별한 제한이 없으며, 사용자가 등록 과정에서 자유롭게 선택할 수 있다.7 illustrates a case in which the PC login ID is used as is in the process of using the SSO service of the present invention, but after the PC login procedure is performed, a separate SSO service registered for use of the SSO service of the present invention is used. Of course, the following process can be performed by entering the ID into the application for executing the SSO service. In other words, there is no particular limitation on the user ID selected to use the SSO service of the present invention, and the user can freely select it during the registration process.

다만 이하에서는 본 발명에 관한 설명의 편의 및 집중을 위해, 도 7의 프로세스에서와 같이, 사용자가 PC 로그인 절차를 수행함에 따라 SSO 서비스가 실행될 수 있는 환경이 함께 조성되는 경우를 예로 들어 설명하기로 한다.However, hereinafter, for the convenience and focus of the description of the present invention, the case where an environment in which the SSO service can be executed is created as the user performs the PC login procedure, as in the process of FIG. 7, will be described as an example. do.

이에 의할 때, 입력된 사용자 ID는 SSO 인증 서버(도 7의 AAM(Autopassword access manager) server 참조, 이하 도 8 및 도 9에서도 동일함)(200)로 전달되며[도 7의 도면부호 2 참조], SSO 인증 서버(200)는 해당 ID의 사용자가 존재하는지(즉, 해당 ID의 사용자가 SSO 서비스에 등록되어 있는지)를 확인하고[도 7의 도면부호 3 참조], 해당 ID를 사용하는 사용자가 존재하는 경우(즉, 해당 ID를 사용하는 사용자가 SSO 서비스에 등록되어 있는 경우) 해당 사용자 단말(50)로 인증 방식을 전달한다[도 7의 도면부호 4 참조].Accordingly, the entered user ID is transmitted to the SSO authentication server (see AAM (Autopassword access manager) server in FIG. 7, hereinafter the same in FIGS. 8 and 9) 200 [see reference numeral 2 in FIG. 7 ], the SSO authentication server 200 checks whether a user with the corresponding ID exists (i.e., whether the user with the corresponding ID is registered in the SSO service) [see reference numeral 3 in FIG. 7], and the user using the corresponding ID If exists (that is, if the user using the corresponding ID is registered in the SSO service), the authentication method is transmitted to the corresponding user terminal 50 (see reference numeral 4 in FIG. 7).

이때, 인증 방식의 전달은, SSO 인증 서버(200)에서 허용하는 복수의 인증 방식을 사용자에게 전달함에 의할 수도 있고, 사용자가 사전에 선택한 인증 방식(예를 들어, 비밀번호 인증 또는 생체 인증 등)을 전달함에 의할 수도 있다. 다만, 도 7에서는 전자의 방식으로 복수의 인증 방식이 전달되되, 사용자가 그 중 비밀번호 입력 방식을 선택한 것을 가정하고 있다[도 7의 도면부호 5 및 6 참조]. At this time, the authentication method may be delivered to the user by delivering a plurality of authentication methods allowed by the SSO authentication server 200, or an authentication method selected in advance by the user (for example, password authentication or biometric authentication, etc.) It may also be done by transmitting . However, in FIG. 7, it is assumed that a plurality of authentication methods are transmitted using the former method, and the user selects a password input method among them (see reference numerals 5 and 6 in FIG. 7).

사용자에 의해 선택된 인증 방식에 따라 입력된 인증 정보(도 7의 예에 의할 때는 OS 계정 비밀번호)는 SSO 인증 서버(200)로 전달되고[도 7의 도면부호 7 참조], 이에 따라 SSO 인증 서버(200)는 수신된 인증 정보가 해당 ID의 사용자의 서비스 가입시 등록한 인증 정보와 일치하는지를 확인하고, 일치하는 경우 해당 사용자의 SSO 서비스 이용을 인증하는데 향후 사용될 동적 토큰(Dynamic Token, 도 8 및 도 9의 OTP가 여기에 해당됨)의 생성 시드(Seed)가 될 키 값을 생성한다.Authentication information (OS account password in the example of FIG. 7) entered according to the authentication method selected by the user is transmitted to the SSO authentication server 200 (see reference numeral 7 in FIG. 7), and accordingly, the SSO authentication server 200 (200) checks whether the received authentication information matches the authentication information registered when signing up for the service of the user of the corresponding ID, and if it matches, generates a dynamic token (Dynamic Token, Figures 8 and 9) that will be used in the future to authenticate the use of the SSO service by the user. Generate a key value that will be the generation seed (the OTP of . applies here).

이때, 토큰 시드로는 PC 로그인이 이루어질 때마다 그 값이 변경되는 가변성(즉, 일회성) 키 값이 이용될 수 있다. 다만, 향후 생성될 동적 토큰은 세션 정보를 이용하여 생성되기 때문에, 그 자체로서 매번 그 값이 변경되게 되는 가변성을 갖게 되므로, 토큰 시드 자체는 반드시 가변성 키 값일 것이 요구되는 것은 아님은 물론이다.At this time, a variable (i.e., one-time) key value whose value changes every time a PC logs in can be used as the token seed. However, since dynamic tokens to be created in the future are created using session information, they themselves have a variable value that changes each time, so it goes without saying that the token seed itself is not necessarily required to be a variable key value.

이후, 생성된 토큰 시드 및 공개키는 사용자 측으로 전달되고[도 7의 도면부호 9 참조], 이에 따라 PC 로그인이 처리되며[도 7의 도면부호 10 참조], 해당 정보(즉, 토큰 시드 및 공개키)는 SSO 에이전트(100)로 전달된다[도 7의 도면부호 11 참조].Afterwards, the generated token seed and public key are delivered to the user side [see reference numeral 9 in FIG. 7], PC login is processed accordingly [see reference number 10 in FIG. 7], and the corresponding information (i.e., token seed and public key) is processed. key) is delivered to the SSO agent 100 (see reference numeral 11 in FIG. 7).

이에 따라, SSO 에이전트(100)는, 수신된 토큰 시드 및 공개키, 이를 사용하는 사용자 단말 정보(도 7의 PC Nickname 참조), 해당 사용자의 ID(도 7의 Login ID 참조)를 함께 연계하여 저장한다[도 7의 도면부호 12 참조].Accordingly, the SSO agent 100 links and stores the received token seed and public key, user terminal information using it (see PC Nickname in FIG. 7), and the ID of the user (see Login ID in FIG. 7). [See reference numeral 12 in FIG. 7].

도 7에서는 토큰 시드 및 공개키가 사용자 단말 측으로부터 SSO 에이전트로 전달되는 경우가 도시되었지만, 토큰 시드 및 공개키는 SSO 인증 서버가 생성하여 SSO 에이전트로 직접 전달할 수도 있음은 물론이다.Although FIG. 7 shows a case in which the token seed and public key are transmitted from the user terminal to the SSO agent, it goes without saying that the token seed and public key can also be generated by the SSO authentication server and directly transmitted to the SSO agent.

[도 8의 설명 - 웹 애플리케이션 접속 로그인 케이스][Explanation of Figure 8 - Web application access login case]

도 8는, 앞선 도 7의 과정을 거친 이후, 해당 사용자가 SSO 서비스 기반으로 특정 웹 애플리케이션의 접속 로그인 인증을 수행하는 케이스를 도시하고 있다.Figure 8 shows a case where the user performs access login authentication for a specific web application based on the SSO service after going through the process of Figure 7 above.

도 8를 참조하면, 웹 애플리케이션(10)(또는 웹 브라우저)과 이와 연동되는 웹 애플리케이션 서버(20)는 상호 간의 통신 연동을 위해 세션 할당 절차가 요구되며[도 8의 도면부호 1 및 2 참조], 할당된 세션 정보(도 8의 세션 ID 참조)에 따라 상호 간 통신 연동된다.Referring to FIG. 8, the web application 10 (or web browser) and the web application server 20 linked thereto require a session allocation procedure for mutual communication [see reference numerals 1 and 2 in FIG. 8]. , Mutual communication is linked according to the allocated session information (see session ID in FIG. 8).

사용자가 해당 웹 애플리케이션(이때, 해당 웹 애플리케이션은 SSO 통합 인증 대상으로 사전 등록된 애플리케이션임)의 접속 로그인 요청에 따라, SSO 에이전트(100)는 웹 애플리케이션(10)으로부터 상기 할당된 세션 정보를 획득하고[도 8의 도면부호 3 참조], SSO 인증 정보로서 활용될 소정의 동적 토큰 값(도 8의 OTP 참조)을 생성한다[도 8의 도면부호 3.1 참조].In response to a user's access login request for the web application (at this time, the web application is an application pre-registered as an SSO integrated authentication target), the SSO agent 100 obtains the allocated session information from the web application 10, [See reference numeral 3 in FIG. 8], and generate a predetermined dynamic token value (see OTP in FIG. 8) to be used as SSO authentication information [see reference number 3.1 in FIG. 8].

도 8에서는 SSO 인증 정보로서 SSO 인증 서버(200)에 의해 생성되어 SSO 에이전트(100)로 전달된 토큰 시드 값, 웹 애플리케이션(10)과 웹 애플리케이션 서버(20) 간의 세션 정보(본 예에서는 Session ID)를 시드(seed)로 하여 시간(도 8의 Time 참조) 기반으로 생성한 OTP(one time password)(본 명세서에서는 이를 세션 OTP라 명명함)를 이용하는 케이스를 예시하고 있지만, 챌린지 앤드 리스폰스(Challenge & Response) 방식으로 생성된 OTP가 동적 토큰 값으로 이용될 수도 있으며, OTP 이외의 다양한 인증값(동적 토큰 값)들이 활용될 수 있음은 물론이다.In Figure 8, the token seed value generated by the SSO authentication server 200 and delivered to the SSO agent 100 as SSO authentication information, session information between the web application 10 and the web application server 20 (in this example, Session ID) ) as a seed, and an example of using OTP (one time password) (referred to as session OTP in this specification) generated based on time (see Time in FIG. 8), but the challenge and response (Challenge & Response) method can be used as a dynamic token value, and of course, various authentication values (dynamic token values) other than OTP can be used.

또한 OTP 기술을 이용한 동적 토큰 생성을 대체하기 위해서 PKI 기술을 이용하여 세션 정보를 비대칭키(개인키나 공개키)로 암호화하여 애플리케이션에 전송하고, SSO 인증 서버에서 사전에 주고 받았던 비대칭키(공개키나 개인키)를 이용하여 애플리케이션 서버가 제시한 세션 정보와 비대칭키로 암호화되어 전달된 세션 정보가 상호간 일치하는지 확인하는 방식이 이용될 수도 있음은 자명하다.In addition, in order to replace dynamic token generation using OTP technology, PKI technology is used to encrypt session information with an asymmetric key (private key or public key) and transmit it to the application, and the asymmetric key previously exchanged at the SSO authentication server (public key or private key) is used to encrypt session information using PKI technology. It is clear that a method can be used to check whether the session information presented by the application server and the session information encrypted with an asymmetric key and transmitted using the key) match each other.

이후, SSO 에이전트(100)는, 웹 애플리케이션(10)으로의 접속 로그인 인증을 요청한 사용자 정보(본 예에서는 사용자 단말 정보(도 7 및 도 8의 PC Nickname 참조) 및 해당 사용자의 ID(도 7 및 도 8의 Login ID 참조))를 위 비밀키로 암호화한 제1 암호화 정보(사용자 암호화 정보, 도 8의 [PC Nickname, Login ID] 참조)를 생성하고, 위 비밀키를 위 공개키로 암호화한 제2 암호화 정보(비밀키 암호화 정보, 도 8의 [Secret Key] 참조)를 생성한다[도 8의 도면부호 3.1 참조].Thereafter, the SSO agent 100 requests user information (in this example, user terminal information (see PC Nickname in FIGS. 7 and 8) and ID of the corresponding user (in this example, PC Nickname in FIGS. 7 and 8) requesting login authentication for access to the web application 10. First encryption information (user encryption information, see [PC Nickname, Login ID] in FIG. 8) is encrypted with the above private key), and the second encryption information is encrypted with the above private key using the above public key. Encryption information (secret key encryption information, see [Secret Key] in FIG. 8) is generated [see reference numeral 3.1 in FIG. 8].

이에 따라, SSO 에이전트(100)가 사용자 암호화 정보, 비밀키 암호화 정보, SSO 인증 정보, 공개키 정보를 웹 애플리케이션(10)으로 전달하면[도 8의 도면부호 4 참조], 웹 애플리케이션(10)은 이를 다시 웹 애플리케이션 서버(20)로 전달한다[도 8의 도면부호 5 참조]. 물론, 시스템 구현 방식에 따라, SSO 에이전트(100)가 사용자 암호화 정보, 비밀키 암호화 정보, SSO 인증 정보(즉, 동적 토큰), 공개키 정보를 웹 애플리케이션 서버(20)로 직접 전달하는 방식이 적용될 수도 있다.Accordingly, when the SSO agent 100 transmits user encryption information, secret key encryption information, SSO authentication information, and public key information to the web application 10 (see reference numeral 4 in FIG. 8), the web application 10 This is again delivered to the web application server 20 (see reference numeral 5 in FIG. 8). Of course, depending on how the system is implemented, the SSO agent 100 may directly transmit user encryption information, secret key encryption information, SSO authentication information (i.e. dynamic token), and public key information to the web application server 20. It may be possible.

웹 애플리케이션 서버(20)는, 해당 정보들을 송신한 웹 애플리케이션(10) 간의 세션 정보를 확인하고, 도 8의 도면부호 5의 단계를 통해서 수신한 정보들과 함께 세션 정보와 클라이언트 ID(즉, 할당된 세션 정보에 따라 연결된 사용자 측의 식별 정보)를 SSO 인증 서버(200)로 전달한다[도 8의 도면부호 6 참조].The web application server 20 checks the session information between the web applications 10 that transmitted the corresponding information, and sends the session information and the client ID (i.e., allocation) along with the information received through step 5 in FIG. 8. Identification information of the connected user according to the session information) is transmitted to the SSO authentication server 200 (see reference numeral 6 in FIG. 8).

이에 따라, SSO 인증 서버(200)는, 수신된 정보에 따라, 수신된 클라이언트 ID와 대응되는 사용자가 SSO 서비스에 가입되어 있는지를 확인하고, 수신된 공개키에 대응되는 개인키를 이용하여 비밀키 암호화 정보(도 8의 [Secret Key] 참조)를 복호화하여 비밀키를 획득하고, 획득된 비밀키를 이용하여 사용자 암호화 정보(도 8의 [PC Nickname, Login ID] 참조)를 복호화하여 사용자 정보를 획득한다[도 8의 도면부호 7 참조].Accordingly, the SSO authentication server 200 determines whether the user corresponding to the received client ID is subscribed to the SSO service, according to the received information, and uses the private key corresponding to the received public key to create a private key. Obtain a secret key by decrypting the encryption information (see [Secret Key] in Figure 8), and use the obtained secret key to decrypt the user encryption information (see [PC Nickname, Login ID] in Figure 8) to obtain user information. Obtained [see reference numeral 7 in FIG. 8].

또한, SSO 인증 서버(200)는, 획득된 사용자 정보에 따라, 해당 사용자 정보와 연계하여 할당해두었던 토큰 시드와 수신된 세션 정보를 시드로 이용하여 시간 기반의 검증용 SSO 인증 정보(즉, 검증용 동적 토큰)를 생성한 후, 자체 생성한 검증용 SSO 인증 정보와 수신된 SSO 인증 정보 간의 일치 여부를 검증한다[도 8의 도면부호 7 참조].In addition, according to the acquired user information, the SSO authentication server 200 uses the token seed assigned in connection with the user information and the received session information as a seed to provide time-based verification SSO authentication information (i.e., verification After generating a dynamic token), it is verified whether the self-generated verification SSO authentication information matches the received SSO authentication information [see reference numeral 7 in FIG. 8].

상술한 바에 따라, SSO 인증 정보에 관한 검증이 완료되면, SSO 인증 서버(200)는, 해당 사용자 정보에 대응되는 웹 애플리케이션 로그인 인증 정보를 웹 애플리케이션 서버(20)로 전달한다. 도 8에 의할 때, SSO 인증 서버(200)는, 해당 사용자 정보에 대응되는 애플리케이션 ID(즉, 해당 사용자가 해당 웹 애플리케이션의 로그인 인증에 사용하는 사용자 ID(도 8의 Application User ID 참조))를 확인하고, 해당 애플리케이션 ID를 비밀키로 암호화한 제3 암호화 정보(앱 ID 암호화 정보) 및 해당 웹 애플리케이션의 로그인 비밀번호의 갱신 정책(도 8의 pwChangePolicy)을 웹 애플리케이션 서버(20)로 전달한다[도 8의 도면부호 8 참조].As described above, when verification of the SSO authentication information is completed, the SSO authentication server 200 transmits web application login authentication information corresponding to the user information to the web application server 20. According to FIG. 8, the SSO authentication server 200 is an application ID corresponding to the corresponding user information (i.e., a user ID used by the corresponding user for login authentication of the corresponding web application (see Application User ID in FIG. 8)) is confirmed, and the third encryption information (app ID encryption information) encrypted with the corresponding application ID with a secret key and the renewal policy of the login password of the corresponding web application (pwChangePolicy in FIG. 8) are transmitted to the web application server 20 [FIG. See reference number 8 in 8].

도 8에서는 웹 애플리케이션 로그인 인증 정보로서, 애플리케이션 사용자 ID만을 웹 애플리케이션 서버(20)로 전달하였지만, 시스템 구현 방식에 따라서 애플리케이션 사용자 ID 및 애플리케이션 로그인 비밀번호도 함께 웹 애플리케이션 서버(20)로 전달할 수 있음은 물론이다. 비밀번호가 직접 전달되는 경우, 애플리케이션 사용자 ID 및 비밀번호 전체가 암호화될 수 있다.In Figure 8, only the application user ID is transmitted to the web application server 20 as web application login authentication information, but depending on the system implementation method, the application user ID and application login password can also be transmitted to the web application server 20. am. If the password is passed directly, the entire application user ID and password may be encrypted.

이에 따라, 웹 애플리케이션 서버(20)는, SSO 인증 서버(200)로부터 수신된 정보 중 앱 ID 암호화 정보를 비밀키를 이용하여 복호화하여 애플리케이션 ID를 획득하고, 획득된 애플리케이션 ID 및 이에 대응되는 웹 애플리케이션 로그인 인증 정보를 이용하여 웹 애플리케이션에 관한 로그인 처리를 완료하고, 그 처리 결과를 웹 애플리케이션(10)으로 전달한다[도 8의 도면부호 9 참조]. 이때, 웹 애플리케이션 서버(20)는 SSO 인증 서버(200)로부터 수신된 웹 애플리케이션 로그인 인증 정보의 갱신 정책에 맞춰 로그인 인증 정보를 매번 갱신하거나 또는 주기적(갱신 정책에 따른 갱신 주기에 맞춰) 갱신할 수도 있다.Accordingly, the web application server 20 decrypts the app ID encryption information among the information received from the SSO authentication server 200 using a secret key to obtain an application ID, and the obtained application ID and the corresponding web application Login processing for the web application is completed using the login authentication information, and the processing result is delivered to the web application 10 (see reference numeral 9 in FIG. 8). At this time, the web application server 20 may update the login authentication information every time according to the renewal policy of the web application login authentication information received from the SSO authentication server 200 or periodically (according to the renewal cycle according to the renewal policy). there is.

상술한 절차에 따라 웹 애플리케이션으로의 접속 로그인 인증 절차가 SSO 서비스 기반으로 처리 완료된다.According to the above-mentioned procedure, the login authentication process for accessing the web application is completed based on the SSO service.

이상에서는 비밀키(도 8의 Secret Key 참조, 후술할 도 9도 동일) 및 공개키(도 7 및 도 8의 Public Key 참조, 후술할 도 9도 동일)를 이용하여 암호화된 정보를 전달하는 방식이 적용된 경우를 설명하였지만, SSO 에이전트(100)와 웹 애플리케이션(10) 간, 웹 애플리케이션(10)과 웹 애플리케이션 서버(20) 간, 웹 애플리케이션 서버(20)와 SSO 인증 서버(200) 간에 형성되는 통신 채널이 보안성이 유지되는 보안 채널로 구성되는 경우에는 암호화 과정은 생략될 수도 있음은 물론이다.In the above, a method of transmitting encrypted information using a secret key (see Secret Key in FIG. 8, same as in FIG. 9, described later) and public key (see Public Key in FIGS. 7 and 8, same as in FIG. 9, described later) Although this applied case has been described, between the SSO agent 100 and the web application 10, between the web application 10 and the web application server 20, and between the web application server 20 and the SSO authentication server 200. Of course, if the communication channel consists of a secure channel that maintains security, the encryption process may be omitted.

[도 9의 설명 - CS 애플리케이션 접속 로그인 케이스][Explanation of Figure 9 - CS application access login case]

도 9은, 앞선 도 7의 과정을 거친 이후, 해당 사용자가 SSO 서비스 기반으로 특정 CS 애플리케이션의 접속 로그인 인증을 수행하는 케이스를 도시하고 있다. 도 9의 프로세스도 앞서 설명한 도 8의 프로세스와 핵심 기술적 방식이 동일하다.Figure 9 shows a case where the user performs access login authentication for a specific CS application based on the SSO service after going through the process of Figure 7. The process of FIG. 9 has the same core technical method as the process of FIG. 8 described above.

즉, CS 애플리케이션(11)과 이와 연동되는 애플리케이션 서버(21)도 상호간의 연동을 위해서 세션 할당 절차가 요구되며[도 9의 도면부호 a 및 b 참조], 할당된 세션 정보(도 9의 도면부호 a의 토큰(Token) 참조)에 따라 상호 간 연동된다. 여기서, 도 9의 도면부호 a에 기재된 Token은 세션 할당과 관련된 세션 정보로서의 토큰(이하, 세션 토큰)을 의미하는 것이며, 앞서 설명한 도 7의 도면부호 8에 기재된 토큰 시드(이는 SSO 서비스의 사용자 식별을 위해 할당되는 토큰임)와는 상이한 정보이다.That is, the CS application 11 and the application server 21 linked thereto also require a session allocation procedure for mutual interoperability [see reference numerals a and b in FIG. 9], and the allocated session information (refer to reference numerals a and b in FIG. 9) is also required for mutual interoperability. They are interconnected according to the token (see Token in a). Here, the Token indicated at reference numeral a in FIG. 9 refers to a token as session information related to session allocation (hereinafter referred to as session token), and the token seed indicated at reference numeral 8 in FIG. 7 (this is the user identification of the SSO service) described above. This is different information from the token allocated for .

사용자가 해당 CS 애플리케이션(이때, 해당 CS 애플리케이션은 SSO 통합 인증 대상으로 사전 등록된 애플리케이션임)의 접속을 요청함에 따라, SSO 에이전트(100)는 CS 애플리케이션(11)으로부터 상기 할당된 세션 정보를 획득하고[도 9의 도면부호 c 참조], 암호화 키 값으로 사용될 소정의 비밀키(도 9의 Secret Key 참조)를 생성하고, SSO 인증 정보로서 활용될 소정의 동적 토큰값(도 9의 OTP 참조)을 생성한다[도 9의 도면부호 c.1 참조].As the user requests access to the CS application (at this time, the CS application is an application pre-registered as an SSO integrated authentication target), the SSO agent 100 obtains the allocated session information from the CS application 11, [See reference numeral c in FIG. 9], generates a predetermined secret key (see Secret Key in FIG. 9) to be used as an encryption key value, and generates a predetermined dynamic token value (refer to OTP in FIG. 9) to be used as SSO authentication information. Generate [see reference numeral c.1 in FIG. 9].

이후, SSO 에이전트(100)는, CS 애플리케이션(11)으로의 접속 로그인 인증을 요청한 사용자의 사용자 단말 정보(도 7 및 도 9의 PC Nickname 참조) 및 해당 사용자의 ID(도 7 및 도 9의 Login ID 참조)를 위 비밀키로 암호화한 제1 암호화 정보(사용자 암호화 정보, 도 9의 [PC Nickname, Login ID] 참조)를 생성하고, 위 비밀키를 위 공개키로 암호화한 제2 암호화 정보(비밀키 암호화 정보, 도 9의 [Secret Key] 참조)를 생성한다[도 9의 도면부호 c.1 참조].Afterwards, the SSO agent 100 provides the user terminal information of the user who requested login authentication for access to the CS application 11 (see PC Nickname in FIGS. 7 and 9) and the ID of the user (Login in FIGS. 7 and 9). ID) is encrypted with the above secret key to generate first encryption information (user encryption information, see [PC Nickname, Login ID] in FIG. 9), and second encryption information (private key) is encrypted with the above secret key using the above public key. Encryption information (see [Secret Key] in FIG. 9) is generated [see reference numeral c.1 in FIG. 9].

이에 따라, SSO 에이전트(100)가 사용자 암호화 정보, 비밀키 암호화 정보, SSO 인증 정보, 공개키 정보를 CS 애플리케이션(11)으로 전달하면[도 9의 도면부호 d 참조], CS 애플리케이션(11)은 이를 다시 애플리케이션 서버(21)로 전달한다[도 9의 도면부호 e 참조].Accordingly, when the SSO agent 100 transmits user encryption information, secret key encryption information, SSO authentication information, and public key information to the CS application 11 (see reference numeral d in FIG. 9), the CS application 11 This is again delivered to the application server 21 (see reference numeral e in FIG. 9).

이때, 애플리케이션 서버(21)는, 해당 정보들을 송신한 웹 애플리케이션(10) 간의 세션 정보를 확인하고, 도 9의 도면부호 e의 단계를 통해서 수신한 정보들과 함께 세션 정보와 클라이언트 ID(즉, 할당된 세션 정보에 따라 연결된 사용자 측의 식별 정보)를 SSO 인증 서버(200)로 전달한다[도 9의 도면부호 f 참조].At this time, the application server 21 checks the session information between the web applications 10 that transmitted the corresponding information, and sends the session information and the client ID (i.e. Identification information of the connected user according to the allocated session information) is transmitted to the SSO authentication server 200 (see reference numeral f in FIG. 9).

이에 따라, SSO 인증 서버(200)는, 수신된 정보에 따라, 수신된 클라이언트 ID와 대응되는 사용자가 SSO 서비스에 가입되어 있는지를 확인하고, 수신된 공개키에 대응되는 개인키를 이용하여 비밀키 암호화 정보(도 9의 [Secret Key] 참조)를 복호화하여 비밀키를 획득하고, 획득된 비밀키를 이용하여 사용자 암호화 정보(도 9의 [PC Nickname, Login ID] 참조)를 복호화하여 사용자 정보를 획득한다[도 9의 도면부호 g 참조].Accordingly, the SSO authentication server 200 determines whether the user corresponding to the received client ID is subscribed to the SSO service, according to the received information, and uses the private key corresponding to the received public key to create a private key. Obtain a secret key by decrypting the encryption information (see [Secret Key] in Figure 9), and use the obtained secret key to decrypt the user encryption information (see [PC Nickname, Login ID] in Figure 9) to obtain user information. Obtained [see reference numeral g in FIG. 9].

또한, SSO 인증 서버(200)는, 획득된 사용자 정보에 따라, 해당 사용자 정보와 연계하여 할당해두었던 토큰 시드와 수신된 세션 정보(즉, 세션 토큰)를 시드로 이용하여 시간 기반의 검증용 SSO 인증 정보를 생성한 후, 자체 생성한 검증용 SSO 인증 정보와 수신된 SSO 인증 정보 간의 일치 여부를 검증한다[도 9의 도면부호 g 참조].In addition, according to the acquired user information, the SSO authentication server 200 uses the token seed assigned in connection with the user information and the received session information (i.e., session token) as a seed to perform time-based verification SSO. After generating the authentication information, it is verified whether the self-generated SSO authentication information for verification matches the received SSO authentication information [see reference numeral g in FIG. 9].

상술한 바에 따라, SSO 인증 정보에 관한 검증이 완료되면, SSO 인증 서버(200)는, 해당 사용자 정보에 대응되는 애플리케이션 ID(즉, 해당 사용자가 해당 웹 애플리케이션의 접속 로그인 인증에 사용하는 애플리케이션 접속용 사용자 ID(도 9의 Application User ID 참조))를 확인하고, 해당 애플리케이션 ID를 비밀키로 암호화한 제3 암호화 정보(앱 ID 암호화 정보) 및 해당 웹 애플리케이션의 로그인 인증 정보의 갱신 정책(도 9의 pwChangePolicy)을 애플리케이션 서버(21)로 전달한다[도 9의 도면부호 h 참조].As described above, when verification of the SSO authentication information is completed, the SSO authentication server 200 generates an application ID corresponding to the user information (i.e., for accessing the application that the user uses for access login authentication of the web application). Confirm the user ID (see Application User ID in Figure 9), third encryption information (App ID encryption information) that encrypts the application ID with a secret key, and the renewal policy of the login authentication information of the web application (pwChangePolicy in Figure 9) ) is delivered to the application server 21 (see reference numeral h in FIG. 9).

이에 따라, 애플리케이션 서버(21)는, SSO 인증 서버(200)로부터 수신된 정보 중 앱 ID 암호화 정보를 비밀키를 이용하여 복호화하여 애플리케이션 ID를 획득하고, 획득된 애플리케이션 ID 및 이에 대응되는 웹 애플리케이션 로그인 인증 정보를 이용하여 웹 애플리케이션에 관한 로그인 처리를 완료하고, 그 처리 결과를 애플리케이션(11)으로 전달한다[도 9의 도면부호 i 참조]. 이때, 애플리케이션 서버(21)는 SSO 인증 서버(200)로부터 수신된 웹 애플리케이션 로그인 인증 정보의 갱신 정책에 맞춰 로그인 인증 정보를 매번 갱신하거나 또는 주기적(갱신 정책에 따른 갱신 주기에 맞춰) 갱신할 수도 있다.Accordingly, the application server 21 decrypts the app ID encryption information among the information received from the SSO authentication server 200 using a secret key to obtain an application ID, and logs in to the obtained application ID and the corresponding web application. The login process for the web application is completed using the authentication information, and the processing result is delivered to the application 11 (see reference numeral i in FIG. 9). At this time, the application server 21 may update the login authentication information every time according to the renewal policy of the web application login authentication information received from the SSO authentication server 200, or may update it periodically (according to the update cycle according to the renewal policy). .

상술한 절차에 따라 CS 애플리케이션으로의 접속 로그인 인증 절차가 SSO 서비스 기반으로 처리 완료된다.According to the above-mentioned procedure, the login authentication process for accessing the CS application is completed based on the SSO service.

이상에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 쉽게 이해할 수 있을 것이다.Although the present invention has been described above with reference to embodiments, those skilled in the art can modify the present invention in various ways without departing from the spirit and scope of the present invention as set forth in the claims below. It will be easy to understand that and can be changed.

Claims (7)

사용자 단말에 설치되는 SSO 에이전트; 및 상기 SSO 에이전트와 통신 연동되어 SSO 서비스 인증을 수행하는 SSO 인증 서버;에 의해 실행되는, 싱글 사인 온(SSO : single sign on) 인증 방법으로서,
(a) 상기 SSO 에이전트가, SSO 서비스 대상인 애플리케이션으로의 자동 접속 로그인을 위한 동적 토큰 기반의 SSO 인증 정보를 생성하는 단계; 및
(b) 상기 SSO 인증 서버가, 상기 SSO 인증 정보의 검증을 수행하고, 검증이 정상적으로 완료된 경우 해당 사용자 정보에 대응되는 상기 애플리케이션의 로그인 인증 정보를 상기 애플리케이션과 연동되는 애플리케이션 서버로 전달함으로써 상기 애플리케이션의 자동 로그인 인증 처리가 이루어지도록 하는 단계;
를 포함하는 싱글 사인 온 인증 방법.
SSO agent installed on the user terminal; and an SSO authentication server that communicates with the SSO agent and performs SSO service authentication. A single sign on (SSO) authentication method, which is executed by,
(a) the SSO agent generating dynamic token-based SSO authentication information for automatic login to an application subject to the SSO service; and
(b) The SSO authentication server performs verification of the SSO authentication information, and when the verification is successfully completed, transfers the login authentication information of the application corresponding to the user information to the application server linked with the application, thereby enabling automatic login authentication processing;
A single sign-on authentication method that includes:
제1항에 있어서,
상기 (a) 단계에서,
상기 SSO 에이전트는,
SSO 서비스 대상인 애플리케이션과 이에 연동되는 상기 애플리케이션 서버 간의 세션 정보를 획득하고, 상기 획득된 세션 정보에 기반하여 상기 SSO 인증 정보로 사용될 동적 토큰을 생성하는 것을 특징으로 하는, 싱글 사인 온 인증 방법.
According to paragraph 1,
In step (a) above,
The SSO agent is,
A single sign-on authentication method, characterized by obtaining session information between an application subject to SSO service and the application server linked thereto, and generating a dynamic token to be used as the SSO authentication information based on the obtained session information.
제2항에 있어서,
상기 (a) 단계 이전에,
상기 SSO 인증 서버가, 토큰 시드 또는 비대칭키를 상기 SSO 에이전트와 공유하는 단계를 더 포함하고,
상기 (a) 단계에서,
상기 SSO 에이전트는, 상기 SSO 인증 서버와 공유된 토큰 시드 또는 비대칭키와 상기 세션 정보를 연산하여 세션 기반한 동적 토큰을 생성하는 것을 특징으로 하는, 싱글 사인 온 인증 방법.
According to paragraph 2,
Before step (a) above,
Further comprising the step of the SSO authentication server sharing a token seed or asymmetric key with the SSO agent,
In step (a) above,
The SSO agent generates a session-based dynamic token by calculating a token seed or asymmetric key shared with the SSO authentication server and the session information.
제2항에 있어서,
상기 (a) 단계 이후 및 상기 (b) 단계 이전에,
상기 애플리케이션 서버는, 상기 SSO 에이전트에 의해 생성된 SSO 인증 정보를 수신하고,
상기 (b) 단계에서,
상기 SSO 인증 서버는,
상기 애플리케이션 서버로부터, 사용자 로그인 ID, 상기 세션 정보 및 상기 SSO 인증 정보를 수신하고,
수신된 상기 사용자 로그인 ID와 대응된 시드 또는 비대칭키와 세션 정보를 이용하여 검증용 SSO 인증 정보를 생성한 후, 검증용 SSO 인증 정보와 수신된 SSO 인증 정보 간의 일치 여부를 검증하는 것을 특징으로 하는, 싱글 사인 온 인증 방법.
According to paragraph 2,
After step (a) and before step (b),
The application server receives SSO authentication information generated by the SSO agent,
In step (b) above,
The SSO authentication server is,
Receive, from the application server, a user login ID, the session information, and the SSO authentication information,
Characterized by generating verification SSO authentication information using the seed or asymmetric key and session information corresponding to the received user login ID, and then verifying whether the verification SSO authentication information matches the received SSO authentication information. , single sign-on authentication method.
제1항에 있어서,
상기 (b) 단계에서,
상기 SSO 인증 서버는,
상기 SSO 인증 정보의 검증이 완료된 경우, 상기 애플리케이션에 관한 사용자의 애플리케이션 로그인 ID 정보를 확인하고, 해당 애플리케이션 로그인 ID 및 해당 애플리케이션의 로그인 비밀번호의 갱신 정책을 상기 애플리케이션 서버로 전달하는 것을 특징으로 하는, 싱글 사인 온 인증 방법.
According to paragraph 1,
In step (b) above,
The SSO authentication server is,
When the verification of the SSO authentication information is completed, the user's application login ID information for the application is confirmed, and the renewal policy of the application login ID and the login password of the application is transmitted to the application server. Sign-on authentication method.
제1항에 있어서,
상기 (a) 단계 이전에,
사용자의 단말기 OS(Operating System) 계정 접속 로그인 절차가 정상적으로 완료됨에 따라, 상기 SSO 에이전트가 구동 가능한 상태로 활성화되는 단계를 더 포함하는 것을 특징으로 하는, 싱글 사인 온 인증 방법.
According to paragraph 1,
Before step (a) above,
A single sign-on authentication method further comprising activating the SSO agent in a drivable state as the user's terminal OS (Operating System) account access login procedure is normally completed.
제1항에 있어서,
상기 SSO 인증 서버는,
상기 SSO 인증 정보의 검증이 완료됨에 따라, 사전 지정된 동적토큰 에이전트 작동 허용 시간 범위 내에서, 사용자로부터 접속 로그인 요청된 SSO 서비스 대상의 복수의 애플리케이션들로의 자동 접속 로그인 인증 처리가 연속적으로 이루어지도록 하되,
상기 허용 시간 범위를 초과하는 경우, 상기 자동 접속 로그인 인증 처리를 위해 추가 인증 수단을 통한 사용자 인증을 요구하는 것을 특징으로 하는, 싱글 사인 온 인증 방법.
According to paragraph 1,
The SSO authentication server is,
As the verification of the SSO authentication information is completed, automatic connection login authentication processing for multiple applications subject to the SSO service requested by the user is performed continuously within the pre-designated dynamic token agent operation allowable time range. ,
A single sign-on authentication method, characterized in that, when the allowable time range is exceeded, user authentication is requested through an additional authentication method to process the automatic access login authentication.
KR1020230131924A 2020-12-30 2023-10-04 Single sign on authentication method and system based on terminal using dynamic token generation agent KR20230145009A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230131924A KR20230145009A (en) 2020-12-30 2023-10-04 Single sign on authentication method and system based on terminal using dynamic token generation agent

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200188546A KR20220096270A (en) 2020-12-30 2020-12-30 Single sign on authentication method and system based on terminal using dynamic token generation agent
KR1020230131924A KR20230145009A (en) 2020-12-30 2023-10-04 Single sign on authentication method and system based on terminal using dynamic token generation agent

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200188546A Division KR20220096270A (en) 2020-12-30 2020-12-30 Single sign on authentication method and system based on terminal using dynamic token generation agent

Publications (1)

Publication Number Publication Date
KR20230145009A true KR20230145009A (en) 2023-10-17

Family

ID=82397984

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200188546A KR20220096270A (en) 2020-12-30 2020-12-30 Single sign on authentication method and system based on terminal using dynamic token generation agent
KR1020230131924A KR20230145009A (en) 2020-12-30 2023-10-04 Single sign on authentication method and system based on terminal using dynamic token generation agent

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200188546A KR20220096270A (en) 2020-12-30 2020-12-30 Single sign on authentication method and system based on terminal using dynamic token generation agent

Country Status (1)

Country Link
KR (2) KR20220096270A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102639244B1 (en) * 2023-08-04 2024-02-21 (주)그리드텍 Method, server and system for providing integrated authentication solution based on single sign on
CN117319087B (en) * 2023-11-28 2024-02-27 北京车与车科技有限公司 Single sign-on method, device and storage medium based on centralized authentication service

Also Published As

Publication number Publication date
KR20220096270A (en) 2022-07-07

Similar Documents

Publication Publication Date Title
CN109088889B (en) SSL encryption and decryption method, system and computer readable storage medium
CN105187362B (en) Method and device for connection authentication between desktop cloud client and server
CN106209749B (en) Single sign-on method and device, and related equipment and application processing method and device
US8532620B2 (en) Trusted mobile device based security
KR101265873B1 (en) Distributed single sign-on service
US7913084B2 (en) Policy driven, credential delegation for single sign on and secure access to network resources
JP5619019B2 (en) Method, system, and computer program for authentication (secondary communication channel token-based client-server authentication with a primary authenticated communication channel)
CN108964885B (en) Authentication method, device, system and storage medium
KR102678262B1 (en) Non-archival tools for building distributed computer applications
US9654462B2 (en) Late binding authentication
US10454917B2 (en) Enabling single sign-on authentication for accessing protected network services
KR20230145009A (en) Single sign on authentication method and system based on terminal using dynamic token generation agent
CN110730077A (en) Method and system for micro-service identity authentication and interface authentication
EP4012973A1 (en) Computing system and related methods providing connection lease exchange and mutual trust protocol
US11663318B2 (en) Decentralized password vault
US11750391B2 (en) System and method for performing a secure online and offline login process
CN109587098B (en) Authentication system and method, and authorization server
JP7145308B2 (en) A secure way to replicate on-premises secrets in your compute environment
CN114697113B (en) Multiparty privacy calculation method, device and system based on hardware accelerator card
CN108809927A (en) Identity identifying method and device
KR20200014545A (en) User integrated authentication service system and method thereof
Goel Access Control and Authorization Techniques wrt Client Applications
CN114697137A (en) Application program login method, device, equipment and storage medium
CN116961988A (en) Method, system and medium for securing private keys of clients

Legal Events

Date Code Title Description
A107 Divisional application of patent