KR102232763B1 - Single-sign-on method and system for multi-domain services - Google Patents

Single-sign-on method and system for multi-domain services Download PDF

Info

Publication number
KR102232763B1
KR102232763B1 KR1020190077914A KR20190077914A KR102232763B1 KR 102232763 B1 KR102232763 B1 KR 102232763B1 KR 1020190077914 A KR1020190077914 A KR 1020190077914A KR 20190077914 A KR20190077914 A KR 20190077914A KR 102232763 B1 KR102232763 B1 KR 102232763B1
Authority
KR
South Korea
Prior art keywords
service
authentication
token
server
login
Prior art date
Application number
KR1020190077914A
Other languages
Korean (ko)
Other versions
KR20200002680A (en
Inventor
이태우
Original Assignee
주식회사 카카오
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 카카오 filed Critical 주식회사 카카오
Publication of KR20200002680A publication Critical patent/KR20200002680A/en
Application granted granted Critical
Publication of KR102232763B1 publication Critical patent/KR102232763B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers

Abstract

멀티 도메인 서비스들의 단일 인증을 주관하는 주관 인증 서버가, 상기 멀티 도메인 서비스들의 인증 서버들과 연동하여 단일 인증하는 방법으로서, 클라이언트의 로그인 요청에 포함된 주 계정에 대해 인증하고, 인증 성공한 상기 클라이언트로 로그인 토큰을 발급하는 단계, 상기 멀티 도메인 서비스들 중에서, 상기 로그인 토큰이 발급된 상기 주 계정에 연결된 서비스들을 제1 서비스 리스트로 생성하고, 상기 제1 서비스 리스트와 함께 단일 인증 토큰을 상기 클라이언트에게 발급하는 단계, 상기 제1 서비스 리스트에 포함된 임의 서비스의 인증 서버로부터, 단일 인증 토큰 검증 요청을 수신하면, 상기 단일 인증 토큰 검증 요청에 포함된 토큰이 상기 클라이언트로 발급한 상기 단일 인증 토큰인지 검증하는 단계, 그리고 검증 성공한 경우, 상기 임의 서비스를 상기 주 계정의 세션에 추가하고, 상기 세션의 키를 상기 임의 서비스의 인증 서버로 전달하는 단계를 포함한다. 상기 클라이언트는 사용자 단말의 브라우저이다. 상기 임의 서비스의 인증 서버는 상기 클라이언트를 위한 상기 세션의 키를 설정하고, 상기 클라이언트에 상기 임의 서비스를 이용할 수 있는 인증 쿠키를 생성할 수 있다.A method in which a host authentication server in charge of single authentication of multi-domain services performs single authentication by interworking with authentication servers of the multi-domain services. Issuing a login token, among the multi-domain services, generating a first service list of services connected to the main account to which the login token was issued, and issuing a single authentication token to the client along with the first service list The step of, when receiving a single authentication token verification request from an authentication server of an arbitrary service included in the first service list, verifying whether the token included in the single authentication token verification request is the single authentication token issued to the client. And if the verification is successful, adding the random service to the session of the main account, and passing the key of the session to the authentication server of the random service. The client is a browser of a user terminal. The authentication server of the arbitrary service may set a key of the session for the client and generate an authentication cookie that enables the client to use the arbitrary service.

Description

멀티 도메인 서비스들을 위한 단일 인증 방법 그리고 이를 구현한 시스템{SINGLE-SIGN-ON METHOD AND SYSTEM FOR MULTI-DOMAIN SERVICES} A single authentication method for multi-domain services and a system implementing it {SINGLE-SIGN-ON METHOD AND SYSTEM FOR MULTI-DOMAIN SERVICES}

본 발명은 단일 인증(Single Sign On, SSO) 기술에 관한 것이다.The present invention relates to a single sign-on (SSO) technology.

SSO(Single Sign On)는 하나의 계정 로그인으로 여러 서비스들을 이용 가능하게 하는 기술로서, 단일 인증, 통합 인증, 싱글사인온, 단일 계정 로그인 등으로 부른다. Single Sign On (SSO) is a technology that enables multiple services to be used with one account login, and is referred to as single authentication, integrated authentication, single sign-on, and single account login.

SSO는 다양하게 구현될 수 있다. 예를 들어, 단말의 브라우저는 로그인 시 발급된 고유키를 쿠키로 생성하고, 쿠키를 통해 각 서비스 사이트에 접속하며, 로그아웃 시 쿠키를 삭제한다. 대체로 복수의 서비스 사이트들이 동일 도메인에서 제공되는 경우, 쿠키를 통해 SSO를 쉽게 구현할 수 있다.SSO can be implemented in various ways. For example, the browser of the terminal generates a unique key issued when logging in as a cookie, accesses each service site through the cookie, and deletes the cookie when logging out. In general, if multiple service sites are provided in the same domain, SSO can be easily implemented through cookies.

최근에는 서로 다른 도메인에서 제공되는 서비스간 연동 시도나 기업 합병 등으로, 이미 개별적인 인증 체계로 구축된 복수의 서비스 사이트들을 통합하고 단일 인증할 필요가 생기고 있다. 하지만, 다른 도메인에서 제공되는 서비스 사이트들의 경우, 크로스 도메인(cross domain) 문제가 있고, 크로스 도메인 문제를 해결하기 위한 CORS(Cross Origin Resource Sharing)는 쿠키 발급 제한 등의 제약이 존재하여 SSO 구현이 쉽지 않다. 또한, 각 서비스 사이트가 고유의 인증 서버에 의해 접근 관리되는 상황에서, 멀티 도메인 서비스들의 서로 다른 인증 서버들을 통합 인증하고, 통합적으로 세션 관리하는 것이 쉽지 않다.In recent years, due to attempts to link services provided in different domains or mergers of companies, there is a need to integrate multiple service sites already established with individual authentication systems and perform single authentication. However, in the case of service sites provided in other domains, there is a cross domain problem, and CORS (Cross Origin Resource Sharing) to solve the cross domain problem has restrictions such as cookie issuance restrictions, so it is easy to implement SSO. not. In addition, in a situation in which each service site is accessed and managed by its own authentication server, it is not easy to perform integrated authentication and integrated session management of different authentication servers of multi-domain services.

해결하고자 하는 과제는 멀티 도메인 서비스들의 단일 인증 로그인 및 로그아웃, 그리고 로그인 복구 절차 또는 재인증 절차에 사용되는 느린(lazy) 단일 인증 로그인을 제공하고, 단일 인증된 멀티 도메인 서비스들의 세션을 통합 관리하는 방법 및 그리고 이를 구현한 시스템을 제공하는 것이다. The problem to be solved is to provide a single authentication login and logout of multi-domain services, and a lazy single authentication login used in the login recovery procedure or re-authentication procedure, and integrated management of sessions of single authenticated multi-domain services. It is to provide a method and a system implementing the same.

한 실시예에 따라, 멀티 도메인 서비스들의 단일 인증을 주관하는 주관 인증 서버가, 상기 멀티 도메인 서비스들의 인증 서버들과 연동하여 단일 인증하는 방법으로서, 클라이언트의 로그인 요청에 포함된 주 계정에 대해 인증하고, 인증 성공한 상기 클라이언트로 로그인 토큰을 발급하는 단계, 상기 멀티 도메인 서비스들 중에서, 상기 로그인 토큰이 발급된 상기 주 계정에 연결된 서비스들을 제1 서비스 리스트로 생성하고, 상기 제1 서비스 리스트와 함께 단일 인증 토큰을 상기 클라이언트에게 발급하는 단계, 상기 제1 서비스 리스트에 포함된 임의 서비스의 인증 서버로부터, 단일 인증 토큰 검증 요청을 수신하면, 상기 단일 인증 토큰 검증 요청에 포함된 토큰이 상기 클라이언트로 발급한 상기 단일 인증 토큰인지 검증하는 단계, 그리고 검증 성공한 경우, 상기 임의 서비스를 상기 주 계정의 세션에 추가하고, 상기 세션의 키를 상기 임의 서비스의 인증 서버로 전달하는 단계를 포함한다. 상기 클라이언트는 사용자 단말의 브라우저이다. 상기 임의 서비스의 인증 서버는 상기 클라이언트를 위한 상기 세션의 키를 설정하고, 상기 클라이언트에 상기 임의 서비스를 이용할 수 있는 인증 쿠키를 생성한다.According to an embodiment, as a method in which a subject authentication server in charge of single authentication of multi-domain services performs single authentication by interworking with authentication servers of the multi-domain services, and authenticates a main account included in a login request of a client. , Issuing a login token to the client who has successfully authenticated, among the multi-domain services, generating services connected to the main account to which the login token is issued as a first service list, and performing single authentication together with the first service list Issuing a token to the client, upon receiving a single authentication token verification request from an authentication server of an arbitrary service included in the first service list, the token included in the single authentication token verification request is issued to the client. Verifying whether it is a single authentication token, and if the verification is successful, adding the random service to the session of the main account, and passing the key of the session to the authentication server of the random service. The client is a browser of a user terminal. The authentication server of the arbitrary service sets a key of the session for the client, and generates an authentication cookie that enables the client to use the arbitrary service.

상기 단일 인증 토큰인지 검증하는 단계는 상기 제1 서비스 리스트에 포함된 각 서비스의 인증 서버로부터, 비동기적으로 상기 단일 인증 토큰 검증 요청을 수신할 수 있다.In the step of verifying whether the single authentication token is the single authentication token, the single authentication token verification request may be asynchronously received from an authentication server of each service included in the first service list.

상기 단일 인증 방법은 상기 클라이언트의 로그아웃 요청을 전달받는 단계, 그리고 상기 주 계정의 로그인 시 생성된 상기 세션에 추가된 서비스들을 제2 서비스 리스트로 생성하고, 상기 제2 서비스 리스트를 상기 클라이언트에게 전달하는 단계를 더 포함할 수 있다. 상기 클라이언트는 상기 제2 서비스 리스트에 포함된 각 서비스의 인증 서버로 해당 서비스의 로그아웃을 요청할 수 있다.In the single authentication method, receiving a logout request from the client, generating services added to the session created when logging in to the main account as a second service list, and delivering the second service list to the client. It may further include the step of. The client may request logout of a corresponding service to an authentication server of each service included in the second service list.

상기 단일 인증 방법은 상기 클라이언트의 로그아웃 요청을 전달받는 단계, 그리고 상기 주 계정의 로그인 시 생성된 상기 세션을 삭제하여 단일 인증 로그아웃하는 단계를 더 포함할 수 있다. 상기 세션은 상기 세션의 키를 받은 서비스들이 추가된 공용 세션일 수 있다.The single authentication method may further include receiving a logout request from the client, and deleting the session created when logging in to the main account to logout single authentication. The session may be a public session to which services that have received the key of the session are added.

상기 단일 인증 방법은 상기 클라이언트에 상기 로그인 토큰을 발급한 이후, 상기 클라이언트로부터 특정 서비스에 대한 느린(lazy) 단일 인증 시작 요청을 수신하는 단계, 그리고 상기 단일 인증 토큰 또는 신규 단일 인증 토큰을 상기 클라이언트에게 발급하는 단계를 더 포함할 수 있다. 상기 클라이언트는 상기 특정 서비스의 서버에 접속한 상태에서, 상기 주관 인증 서버에 관련된 서비스 서버에서 제공하는 로그인 확인 인터페이스를 호출하여 상기 느린 단일 인증 시작을 요청할 수 있다. 또는 상기 클라이언트는 상기 특정 서비스의 서버에 접속한 상태에서, 상기 주관 인증 서버에 관련된 서비스 서버에서 제공하는 단일 인증 로그인 페이지로 이동(redirect)하여 호출하여 상기 느린 단일 인증 시작을 요청할 수 있다.The single authentication method, after issuing the login token to the client, receiving a single lazy authentication start request for a specific service from the client, and the single authentication token or a new single authentication token to the client It may further include the step of issuing. The client may request the start of the slow single authentication by calling a login confirmation interface provided by a service server related to the host authentication server while being connected to the server of the specific service. Alternatively, the client may request the slow single authentication start by redirecting to and calling a single authentication login page provided by a service server related to the host authentication server while accessing the server of the specific service.

다른 실시예에 따라, 멀티 도메인 서비스들 중 특정 서비스의 인증 서버가, 상기 멀티 도메인 서비스들의 단일 인증을 주관하는 주관 인증 서버와 연동하여, 단일 인증하는 방법으로서, 클라이언트로부터 단일 인증 토큰을 포함하는 단일 인증 요청을 수신하는 단계, 상기 주관 인증 서버로 상기 클라이언트가 상기 단일 인증 토큰에 대한 소유권을 가지는 지 소유권 검증을 요청하는 단계, 상기 주관 인증 서버로부터, 소유권 검증 결과를 수신하고, 상기 소유권 검증 결과가 성공인 경우, 상기 클라이언트를 위해 상기 소유권 검증 결과에 포함된 세션 키를 설정하는 단계, 그리고 상기 클라이언트에 상기 특정 서비스를 이용할 수 있는 인증 쿠키를 생성하는 단계를 포함한다. 상기 클라이언트는 사용자 단말의 브라우저이다. 상기 특정 서비스의 계정은 주 계정에 연결되어 있으며, 상기 단일 인증 토큰은 상기 주관 인증 서버가 상기 클라이언트에서 요청한 상기 주 계정에 대한 로그인 성공 후, 상기 클라이언트에게 발급한 토큰이다. 상기 세션 키는 상기 주 계정의 로그인 시 생성된 세션의 키이다.According to another embodiment, an authentication server of a specific service among multi-domain services interlocks with a host authentication server that manages single authentication of the multi-domain services to perform single authentication, including a single authentication token from a client. Receiving an authentication request, requesting the subject authentication server to verify ownership whether the client has ownership of the single authentication token, receiving an ownership verification result from the subject authentication server, and the ownership verification result If successful, setting a session key included in the ownership verification result for the client, and generating an authentication cookie that enables the client to use the specific service. The client is a browser of a user terminal. The account of the specific service is linked to the main account, and the single authentication token is a token issued to the client after the host authentication server successfully logs in to the main account requested by the client. The session key is a key of a session created when the main account is logged in.

상기 클라이언트는 iFrame을 이용하여 상기 특정 서비스의 인증 서버로 상기 단일 인증 요청할 수 있다.The client may request the single authentication to the authentication server of the specific service using an iFrame.

상기 단일 인증 방법은 상기 인증 쿠키를 생성한 이후, 상기 클라이언트로부터 로그아웃 요청을 수신하는 단계, 그리고 상기 클라이언트에 대한 로그아웃 처리하고, 상기 클라이언트로 로그아웃 응답하는 단계를 더 포함할 수 있다. 상기 클라이언트는 상기 주관 인증 서버로 로그아웃 요청하여 수신한 서비스 리스트를 기초로 상기 단일 인증 요청을 전송할 수 있다.The single authentication method may further include receiving a logout request from the client after generating the authentication cookie, processing logout for the client, and responding to logout to the client. The client may request logout to the host authentication server and transmit the single authentication request based on a received service list.

또 다른 실시예에 따라. 사용자 단말의 브라우저가 멀티 도메인 서비스들로 단일 인증하는 방법으로서, 멀티 도메인 서비스들의 단일 인증을 주관하는 주관 서비스 시스템으로, 주 계정에 대한 로그인 요청하고, 상기 주관 서비스 시스템으로부터 상기 주 계정에 대한 로그인 토큰을 발급받는 단계, 상기 주관 서비스 시스템으로, 상기 로그인 토큰 및 클라이언트 정보를 포함하는 단일 인증 시작 요청을 전송하고, 상기 주관 서비스 시스템으로부터 상기 주 계정에 연결된 서비스들을 포함하는 제1 서비스 리스트와 함께 단일 인증 토큰을 발급받는 단계, 그리고 상기 제1 서비스 리스트에 포함된 각 서비스의 인증 서버로, 상기 단일 인증 토큰을 포함하는 단일 인증 요청을 전송하고, 해당 서비스의 인증 서버로부터 발급된 해당 서비스의 인증 쿠키를 설정하는 단계를 포함한다.According to another embodiment. A method in which a browser of a user terminal performs single authentication with multi-domain services, which is a host service system that manages single authentication of multi-domain services, requests login for a main account, and a login token for the main account from the host service system. Issuing, to the host service system, sending a single authentication start request including the login token and client information, and single authentication with a first service list including services connected to the primary account from the host service system Issuing a token, and transmitting a single authentication request including the single authentication token to the authentication server of each service included in the first service list, and sending an authentication cookie of the corresponding service issued from the authentication server of the corresponding service. Including the step of setting.

상기 단일 인증 방법은 상기 주관 서비스 시스템으로 로그아웃 요청하고, 상기 주관 서비스 시스템으로부터 상기 주 계정의 로그인 시 생성된 상기 세션에 추가된 서비스들을 포함하는 제2 서비스 리스트를 수신하는 단계, 그리고 상기 제2 서비스 리스트에 포함된 각 서비스의 인증 서버로 해당 서비스의 로그아웃을 요청하는 단계를 더 포함할 수 있다.The single authentication method includes the steps of requesting logout to the host service system and receiving a second service list including services added to the session created when the main account is logged in from the host service system, and the second The step of requesting logout of the corresponding service to the authentication server of each service included in the service list may be further included.

상기 단일 인증 방법은 상기 멀티 도메인 서비스들 중 특정 서비스의 서비스 서버에 접속한 상태에서, 상기 서비스 서버로부터 로그인 필요 응답을 수신하는 단계, 상기 주관 서비스 시스템으로 상기 특정 서비스에 대한 느린(lazy) 단일 인증 시작을 요청하는 단계, 상기 주관 서비스 시스템으로부터 상기 단일 인증 토큰 또는 신규 단일 인증 토큰을 발급받는 단계, 그리고 상기 특정 서비스의 인증 서버로 상기 특정 서비스에 대해 발급받은 토큰을 포함하는 단일 인증 요청을 전송하고, 상기 특정 서비스의 인증 서버로부터 발급된 상기 특정 서비스의 인증 쿠키를 설정하는 단계를 더 포함할 수 있다.The single authentication method includes receiving a login request response from the service server while accessing a service server of a specific service among the multi-domain services, and lazy single authentication for the specific service with the host service system. Requesting a start, receiving the single authentication token or a new single authentication token from the host service system, and transmitting a single authentication request including the token issued for the specific service to the authentication server of the specific service, And setting an authentication cookie of the specific service issued from the authentication server of the specific service.

상기 느린 단일 인증 시작을 요청하는 단계는 상기 로그인 토큰을 JSONP로 전달함으로써 상기 느린 단일 인증 시작을 요청할 수 있다.The step of requesting the slow single authentication start may request the slow single authentication start by passing the login token to JSONP.

상기 느린 단일 인증 시작을 요청하는 단계는 상기 특정 서비스의 서비스 페이지에서 상기 주관 서비스 시스템의 단일 인증 로그인 페이지로 이동(redirect)한 후, 상기 로그인 토큰을 상기 주관 서비스 시스템으로 전달함으로써 상기 느린 단일 인증 시작을 요청할 수 있다.The step of requesting the start of the slow single authentication may include redirecting from the service page of the specific service to the single authentication login page of the host service system, and then transferring the login token to the host service system to start the slow single authentication. Can be requested.

상기 느린 단일 인증 시작을 요청하는 단계는 상기 로그인 토큰을 JSONP로 전달할 수 없는 경우, 상기 특정 서비스의 서비스 페이지에서 상기 주관 서비스 시스템의 단일 인증 로그인 페이지로 이동(redirect)한 후, 상기 로그인 토큰을 상기 주관 서비스 시스템으로 전달함으로써 상기 느린 단일 인증 시작을 요청할 수 있다.In the step of requesting the start of the slow single authentication, when the login token cannot be delivered to JSONP, after redirecting from the service page of the specific service to the single authentication login page of the host service system, the login token is transferred to the The slow single authentication start can be requested by passing it to the host service system.

실시예에 따르면 사용자는 주 계정에 대한 로그인만으로 주 계정에 연결된 멀티 도메인 서비스들을 이용할 수 있다.According to an embodiment, a user can use multi-domain services linked to the primary account only by logging in to the primary account.

실시예에 따르면 서비스 제공자는 서로 다른 도메인에서 개별적인 인증 체계로 구현된 복수의 서비스들을 단일 인증 체계로 통합할 수 있다. 실시예에 따르면 단일 인증 시스템은 복수 인증 서버들의 연동을 통해 단일 인증 로그인 및 단일 인증 로그아웃할 수 있고, 단일 인증된 서비스들을 주 계정의 로그인 세션에 통합 관리할 수 있다.According to an embodiment, a service provider may integrate a plurality of services implemented as individual authentication schemes in different domains into a single authentication scheme. According to an embodiment, a single authentication system can perform single authentication login and single authentication logout through interworking of multiple authentication servers, and can integrate and manage single authenticated services in the login session of the main account.

실시예에 따르면 단일 인증 시스템은 느린(lazy) 단일 인증 로그인 방법을 통해, 로그인 시점에 단일 인증에 실패한 서비스에 대한 로그인 복구를 제공할 수 있고, 재인증이 요구되는 서비스에 대한 재인증 절차를 제공할 수 있다. 특히 단일 인증 로그인 단계에서 서비스 사이트에 접속 장애가 있거나, 단말에 설치된 브라우저(클라이언트)의 문제로 일부 서비스에 대한 단일 인증이 실패하더라도, 브라우저는 비동기적인 느린 단일 인증 로그인을 통해, 해당 서비스의 로그인 절차를 복구할 수 있다. 실시예에 따르면 단일 인증 가능한 복수의 서비스들 중에서, 로그인이 필요한 이벤트가 발생하면 로그인을 요구하는 서비스나 주기적으로 재인증을 요구하는 서비스가 있다면, 브라우저는 비동기적인 느린 단일 인증 로그인을 통해, 해당 서비스의 로그인 절차를 진행할 수 있다.According to an embodiment, the single authentication system can provide login recovery for a service that fails single authentication at the time of login through a lazy single authentication login method, and provides a re-authentication procedure for a service requiring re-authentication. can do. In particular, even if there is a connection failure to the service site during the single authentication login phase or a single authentication for some services fails due to a problem with the browser (client) installed on the terminal, the browser performs the login procedure of the service through asynchronous slow single authentication login. Can be recovered. According to an embodiment, among a plurality of services capable of single authentication, if there is a service that requires a login when an event requiring login occurs or a service that periodically requests re-authentication, the browser performs an asynchronous slow single authentication login. You can proceed with the login process.

도 1은 한 실시예에 따른 단일 인증 시스템 구성도이다.
도 2는 한 실시예에 따른 단일 인증 로그인 흐름도이다.
도 3은 한 실시예에 따른 단일 인증 로그아웃 흐름도이다.
도 4와 도 5 각각은 한 실시예에 따른 느린(lazy) 단일 인증 로그인의 흐름도이다.
1 is a block diagram of a single authentication system according to an embodiment.
2 is a flowchart illustrating a single authentication login according to an embodiment.
3 is a flowchart illustrating a single authentication logout according to an embodiment.
4 and 5 each is a flow diagram of a lazy single authentication login according to one embodiment.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Throughout the specification, when a part "includes" a certain component, it means that other components may be further included rather than excluding other components unless specifically stated to the contrary. In addition, terms such as "... unit", "... group", and "module" described in the specification mean a unit that processes at least one function or operation, which can be implemented by hardware or software or a combination of hardware and software. have.

단말은 컴퓨터 판독 가능한 저장 매체에 저장되는 프로그램, 그리고 프로세서, 메모리, 디스플레이, 통신 모듈 등의 하드웨어를 포함한다. 프로세서는 하드웨어들과 협력하여 프로그램을 구동한다. 디스플레이는 프로그램에서 제공하는 사용자 인터페이스 화면을 표시하고, 사용자 입력을 수신한다. 통신 모듈은 통신망을 통해 본 발명에 설명하는 각종 서버와 통신한다. 설명에서, 프로그램은 서버에서 제공하는 정보를 화면에 표시하고, 입력 정보를 서버에 전송하는 브라우저(Browser) 프로그램일 수 있다.The terminal includes a program stored in a computer-readable storage medium, and hardware such as a processor, a memory, a display, and a communication module. The processor runs the program in cooperation with the hardware. The display displays a user interface screen provided by the program and receives user input. The communication module communicates with various servers described in the present invention through a communication network. In the description, the program may be a browser program that displays information provided by a server on a screen and transmits input information to the server.

단말은 다양한 형태로 구현될 수 있고, 랩탑 컴퓨터, 데스크탑 컴퓨터, 모바일 단말 등 각종 형태의 컴퓨터, 웨어러블 디바이스, TV 단말 등의 형태로 구현될 수 있다. The terminal may be implemented in various forms, and may be implemented in the form of various types of computers such as laptop computers, desktop computers, and mobile terminals, wearable devices, and TV terminals.

도 1은 한 실시예에 따른 단일 인증 시스템 구성도이다.1 is a block diagram of a single authentication system according to an embodiment.

도 1을 참고하면, 단일 인증 시스템은 다양한 서비스들 각각을 개별적으로 제공하는 서비스 시스템들이 연동하도록 구축된다. 여기에서는 3개의 서비스 시스템들(10, 20, 30)을 가정하여 설명한다. 사용자 단말(40)은 브라우저를 통해, 다양한 서비스 사이트들(예를 들면, kakao.com, daum.net, melon.com)에 접속한다. 서비스 사이트들은 다른 도메인들에 존재할 수 있다. Referring to FIG. 1, a single authentication system is constructed so that service systems that individually provide each of various services are interlocked. Here, three service systems 10, 20, and 30 are assumed and described. The user terminal 40 accesses various service sites (eg, kakao.com, daum.net, melon.com) through a browser. Service sites can exist in different domains.

각 서비스 시스템은 서비스 이용에 요구되는 로그인 등의 각종 인증처리를 담당하는 인증 서버(100, 200, 300), 해당 서비스를 사용자 단말에 제공하는 서비스 서버(130, 230, 330), 그리고 해당 서비스에 필요한 데이터를 저장하는 데이터베이스(150, 250, 350)를 포함할 수 있고, 각 서비스 시스템을 구성하는 서버와 데이터베이스는 다양하게 설계될 수 있다. Each service system includes an authentication server (100, 200, 300) in charge of various authentication processes such as login required for service use, a service server (130, 230, 330) that provides the service to the user terminal, and the corresponding service. Databases 150, 250, and 350 for storing necessary data may be included, and servers and databases constituting each service system may be designed in various ways.

설명에서는 각 서비스 시스템이 서비스 고유의 인증 서버(100, 200, 300)를 가지고 있고, 각 인증 서버가 각 서비스 가입자에 대한 접속 인증을 개별적으로 수행한다고 가정한다. 인증 서버(100)는 주(main) 계정을 통해 다른 서비스들에서 발급된 계정들의 연결 정보를 관리하고, 사용자 단말(40)의 브라우저에서 입력된 주 계정을 통해 서비스 시스템들(10, 20, 30)이 제공하는 복수의 서비스들로의 단일 인증 로그인, 단일 인증 로그아웃 등의 단일 인증 절차를 주관할 수 있다. 여기서, 서비스 서버(130)가 사용자 단말(40)의 브라우저에 표시되는 로그인 페이지를 제공하고, 로그인 페이지에서 입력된 주 계정 정보를 인증 서버(100)로 전달한다. 앞으로 인증 서버(100)를 주관 인증 서버, 서비스 서버(130)를 주관 서비스 서버, 그리고 데이터베이스(150)를 주관 서비스 데이터베이스라고 부르고, 이들을 포함하는 서비스 시스템(10)을 주관 서비스 시스템이라고 부를 수 있다. 사용자 단말(40) 또는 사용자 단말(40)의 브라우저는 인증 서버(100, 200, 300), 서비스 서버(130, 230, 330)와 통신하는 클라이언트(client)이다. 브라우저는 사용자 단말(40)에 설치된 프로그램으로서, 브라우저의 종류는 다양할 수 있고, 브라우저 개발사에서 제공하는 범용 브라우저일 수 있다.In the description, it is assumed that each service system has service-specific authentication servers 100, 200, and 300, and that each authentication server individually performs access authentication for each service subscriber. The authentication server 100 manages connection information of accounts issued from other services through a main account, and provides service systems 10, 20, 30 through the main account input from the browser of the user terminal 40. You can manage a single authentication procedure such as single authentication login and single authentication logout to multiple services provided by ). Here, the service server 130 provides a login page displayed on the browser of the user terminal 40 and transmits the main account information input from the login page to the authentication server 100. In the future, the authentication server 100 may be referred to as a subject authentication server, the service server 130 may be referred to as a subject service server, and the database 150 may be referred to as a subject service database, and the service system 10 including these may be referred to as a subject service system. The user terminal 40 or the browser of the user terminal 40 is a client that communicates with the authentication servers 100, 200, and 300 and the service servers 130, 230, and 330. The browser is a program installed in the user terminal 40, and the types of browsers may vary, and may be a general-purpose browser provided by a browser developer.

멀티 도메인 서비스들을 예로 들면, 주관 인증 서버(100)가 주 계정(예를 들면, 카카오 계정) 기반의 인증 및 세션 관리 서버이고, 인증 서버(200)가 서비스A(예를 들면, daum.net)로의 접속을 관리하는 서버이며, 인증 서버(300)가 서비스B(예를 들면, melon.com)로의 접속을 관리하는 서버일 수 있다. 예를 들어, 카카오 계정이 다음 서비스 계정 및 멜론 서비스 계정과 연결된 주 계정인 경우, 카카오 계정으로 로그인된 상태에서, 브라우저와 인증 서버들(100, 200, 300) 사이의 연동을 통해 다음 서비스와 멜론 서비스의 단일 인증이 진행된다. 따라서, 사용자는 다음 서비스와 멜론 서비스로 별도 로그인할 필요 없이, 해당 서비스들을 이용할 수 있다. Taking multi-domain services as an example, the host authentication server 100 is an authentication and session management server based on a main account (eg, Kakao account), and the authentication server 200 is a service A (eg, daum.net). It is a server that manages access to, and the authentication server 300 may be a server that manages access to service B (eg, melon.com). For example, if the Kakao account is the main account linked to the Daum service account and the Melon service account, the Daum service and Melon through the linkage between the browser and the authentication servers (100, 200, 300) while logged in with the Kakao account Single authentication of the service proceeds. Therefore, the user can use the corresponding services without having to log in separately to the next service and the Melon service.

서비스 계정들이 통합되면, 단일 인증은 주관 인증 서버(100) 및 주관 서비스 서버(130)에서 시작한다. 서비스A 및 서비스B의 인증 서버(200, 300)는 주관 인증 서버(100)와 연동하여, 브라우저에서 전달받은 값들을 검증하고, 검증 결과를 통해 해당 서비스 사이트로의 접속(로그인)을 허용한다. 구체적으로, 주관 인증 서버(100)가 주 계정(예를 들면, 카카오 계정)에 대해 로그인 토큰 및 로그인 세션을 생성한 후, 주 계정에 연결된 서비스A 및 서비스B가 있으면, 단일 인증을 위한 토큰(SSO 토큰)을 발급한다. 이후, 서비스A 및 서비스B의 인증 서버(200, 300)는 사용자 단말의 브라우저로부터 전달된 SSO 토큰을 주관 인증 서버(100)로부터 검증받고, 검증 결과를 기초로 SSO 토큰을 발급받은 사용자 단말의 브라우저를 통해 접속을 허용한다. 여기서, SSO 토큰은 비동기적으로 해당 서비스의 인증 서버로 전달될 수 있고, 전달되는 방식은 브라우저의 특성에 맞게 결정될 수 있다.When the service accounts are integrated, single authentication starts with the subject authentication server 100 and the subject service server 130. The authentication servers 200 and 300 of Service A and Service B interwork with the host authentication server 100 to verify the values received from the browser, and allow access (login) to the service site through the verification result. Specifically, after the host authentication server 100 creates a login token and a login session for the main account (eg, Kakao account), if there are service A and service B connected to the main account, a token for single authentication ( SSO token). Thereafter, the authentication servers 200 and 300 of Service A and Service B verify the SSO token delivered from the browser of the user terminal from the host authentication server 100, and the browser of the user terminal that has received the SSO token based on the verification result. Allows access through. Here, the SSO token may be asynchronously delivered to the authentication server of the service, and the delivery method may be determined according to the characteristics of the browser.

한편, 데이터베이스(150)는 주관 인증 서버(100)에서 생성된 인증 및 세션 관리 정보를 저장한다. 특히, 로그인된 주 계정 및 주 계정에 대응하여 생성된 로그인 세션을 공용 세션(글로벌 세션)으로 관리한다. 데이터베이스(150)는 주 계정 및 연결 계정을 저장할 수 있다. 공용 세션은 로그인 세션에 연결된 여러 서비스들을 추가한 세션이다. 따라서, 주관 인증 서버(100)는 공용 세션을 삭제(expire)함으로서, 단일 인증 로그아웃할 수 있다. Meanwhile, the database 150 stores authentication and session management information generated by the host authentication server 100. In particular, the logged-in main account and the log-in session created corresponding to the main account are managed as a public session (global session). The database 150 may store a main account and a connection account. The public session is a session in which several services connected to the login session are added. Accordingly, the host authentication server 100 may log out a single authentication by deleting the public session.

계정 및 세션 정보 이외에도, 데이터베이스(150)는 표 1과 같이, 주관 인증 서버(100)가 클라이언트에 발급한 로그인 토큰, SSO 토큰 및 클라이언트 식별을 위한 클라이언트 정보(예를 들면, IP 주소, 브라우저 정보, OS 정보 등) 등을 관리할 수 있다. In addition to account and session information, the database 150 includes a login token issued by the host authentication server 100 to a client, an SSO token, and client information for client identification (e.g., IP address, browser information, as shown in Table 1). OS information, etc.) can be managed.

계정account 계정 로그인 토큰Account login token SSO 토큰SSO token 클라이언트 정보Client information 공용 세션 정보Public session information 계정1Account 1 계정 로그인 토큰1Account login token 1 SSO 토큰1SSO token 1 클라이언트1Client1 공용 세션 키1;
계정서비스(kakao.com)
서비스A(daum.net)
서비스B(melon.com)
Public session key1;
Account service (kakao.com)
Service A (daum.net)
Service B (melon.com)
계정2Account 2 계정 로그인 토큰2Account login token2 SSO 토큰2SSO token2 클라이언트2Client2 공용 세션 키2;
계정서비스(kakao.com)
서비스B(melon.com)
Public session key2;
Account service (kakao.com)
Service B (melon.com)

사용자 단말(40)에 탑재된 브라우저(클라이언트)는 다양한 프로토콜로 인증 서버들과 통신할 수 있다. 특히, 동일-출처 정책(same-origin policy)과 같이 크로스 도메인(cross domain) 문제가 있어, 도메인간 호출이나 접근 제약이 브라우저에 존재한다. 이를 해결하기 위해, 브라우저는 특정 포맷(예를 들면, JSONP)으로 로그인 요청, 로그아웃 요청, SSO 인증 요청하고, 쿠키를 전송할 수 있다. 브라우저는 서비스들의 로그인 페이지들을 특정 태그(예를 들면, iFrame)로 호출하고, 특정 태그를 통해 본 발명의 단일 인증 절차를 구현할 수 있다. 또는 브라우저는 리디렉션(redirection)을 통해 본 발명의 단일 인증 절차를 구현할 수 있다.도 2는 한 실시예에 따른 단일 인증 로그인 흐름도이다.A browser (client) mounted on the user terminal 40 can communicate with authentication servers through various protocols. In particular, there is a cross domain problem like the same-origin policy, so inter-domain calls or access restrictions exist in the browser. To solve this, the browser may request a login, request a logout, request SSO authentication, and send a cookie in a specific format (eg, JSONP). The browser calls the login pages of the services with a specific tag (eg, iFrame), and can implement a single authentication procedure of the present invention through the specific tag. Alternatively, the browser may implement a single authentication procedure of the present invention through redirection. [0023] Fig. 2 is a flow chart of a single authentication login according to an embodiment.

도 2를 참고하면, 사용자 단말(40)의 브라우저가 단일 인증을 주관하는 주관 서비스 서버(130)에 접속하고, 계정에 대한 로그인 요청을 한다(S110). 로그인 요청은 이메일, 전화번호 또는 비밀번호 등의 계정 정보를 포함할 수 있다. 주관 서비스 서버(130)는 사용자 단말(40)의 브라우저에 단일 인증용 로그인 페이지를 제공한다. Referring to FIG. 2, the browser of the user terminal 40 accesses the host service server 130 in charge of single authentication, and makes a login request for an account (S110). The login request may include account information such as email, phone number, or password. The host service server 130 provides a single authentication login page to the browser of the user terminal 40.

주관 서비스 서버(130)는 주관 인증 서버(100)에게 로그인 요청에 포함된 계정 인증을 요청한다(S112). 계정 인증 요청은 로그인 요청에 포함된 계정 정보를 포함할 수 있다.The host service server 130 requests the host authentication server 100 to authenticate the account included in the login request (S112). The account authentication request may include account information included in the login request.

주관 인증 서버(100)는 계정 인증 요청에 포함된 계정을 확인하고, 계정 인증 성공 시, 계정에 대한 로그인 토큰을 주관 서비스 서버(130)로 전달한다(S114). 또한 주관 인증 서버(100)는 인증 성공 시, 계정에 대한 로그인 세션을 생성한다. 계정 인증 실패 시, 사용자 단말(40)의 브라우저는 로그인 요청을 재시도할 수 있도록 로그인 페이지를 표시한다.The host authentication server 100 checks the account included in the account authentication request, and when the account authentication is successful, transmits a login token for the account to the host service server 130 (S114). In addition, the host authentication server 100 creates a login session for an account upon successful authentication. When account authentication fails, the browser of the user terminal 40 displays a login page so that the login request can be retried.

주관 서비스 서버(130)는 로그인 토큰을 사용자 단말(40)의 브라우저에 전달한다(S116). 계정 로그인 토큰은 브라우저에 쿠키로 설정된다.The host service server 130 transmits the login token to the browser of the user terminal 40 (S116). The account login token is set as a cookie in the browser.

계정 인증을 완료한 사용자 단말(40)의 브라우저는 주관 서비스 서버(130)에 단일 인증(SSO) 시작 요청을 한다(S120). SSO 시작 요청은 로그인 토큰, 그리고 클라이언트 정보를 포함할 수 있다. 클라이언트 정보는 사용자 단말(40) 또는 브라우저의 정보로서, 예를 들면, IP 주소, 브라우저 정보 또는 OS 정보 등을 적어도 하나 포함할 수 있다.The browser of the user terminal 40 having completed account authentication makes a single authentication (SSO) start request to the host service server 130 (S120). The SSO initiation request may include a login token and client information. The client information is information on the user terminal 40 or a browser, and may include at least one of, for example, IP address, browser information, or OS information.

주관 서비스 서버(130)는 SSO 시작 요청에 대응하여, 주관 인증 서버(100)에게 단일 인증을 위한 SSO 토큰 발급을 요청한다(S122). SSO 토큰 발급 요청은 SSO 요청에 포함된 로그인 토큰, 클라이언트 정보를 포함할 수 있다. In response to the SSO start request, the host service server 130 requests the host authentication server 100 to issue an SSO token for single authentication (S122). The SSO token issuance request may include a login token and client information included in the SSO request.

주관 인증 서버(100)는 로그인 토큰을 발급한 계정의 연결 서비스들을 확인한다(S124). The host authentication server 100 checks the connection services of the account that issued the login token (S124).

주관 인증 서버(100)는 계정에 연결된 서비스A와 서비스B를 SSO 서비스 리스트로 생성하고, SSO 서비스 리스트와 SSO 토큰을 주관 서비스 서버(130)로 전달한다(S126). 주관 인증 서버(100)는 발급한 SSO 토큰 소유권을 관리하는데, SSO 토큰 발급을 요청한 클라이언트 정보에 SSO 토큰을 매핑한 후, SSO 토큰 소유권 검증 시, 매핑된 클라이언트 정보를 이용할 수 있다. SSO 서비스 리스트는 서비스 API url 주소 또는 서비스 심볼 스트링으로 작성될 수 있다. 이때, 주관 인증 서버(100)는 계정에 연결된 복수의 서비스들이 존재하는 경우, 각 서비스가 SSO 인증 가능한 상태인지 확인하고, SSO 인증이 가능한 서비스들만을 SSO 서비스 리스트로 생성할 수 있다. 만약, 계정에 연결된 복수의 서비스들이 존재하더라도, SSO 인증 가능한 서비스가 없는 경우, 주관 인증 서버(100)는 SSO 토큰을 발급하지 않고, 주관 서비스 서버(130)에게 SSO 인증 불필요를 통보할 수 있다. The host authentication server 100 generates the service A and service B connected to the account as an SSO service list, and transmits the SSO service list and the SSO token to the host service server 130 (S126). The host authentication server 100 manages the ownership of the issued SSO token. After mapping the SSO token to the client information requesting the issuance of the SSO token, the mapped client information may be used when verifying the ownership of the SSO token. The SSO service list can be written as a service API url address or a service symbol string. In this case, when there are a plurality of services connected to the account, the host authentication server 100 may check whether each service is capable of SSO authentication, and generate only the services capable of SSO authentication as an SSO service list. Even if there are a plurality of services connected to the account, if there is no service capable of SSO authentication, the host authentication server 100 may not issue an SSO token and may notify the host service server 130 that SSO authentication is unnecessary.

주관 서비스 서버(130)는 SSO 시작 요청의 응답으로, SSO 서비스 리스트와 SSO 토큰을 사용자 단말(40)의 브라우저에 전달한다(S128). SSO 서비스 리스트는 서비스A의 인증 서버(200)의 접속 주소, 서비스B의 인증 서버(300)의 접속 주소를 포함할 수 있다. SSO 토큰은 브라우저에 쿠키로 설정될 수 있다.The host service server 130 transmits the SSO service list and the SSO token to the browser of the user terminal 40 in response to the SSO start request (S128). The SSO service list may include an access address of the authentication server 200 of Service A and an access address of the authentication server 300 of Service B. The SSO token can be set as a cookie in the browser.

SSO 토큰을 발급받은 사용자 단말(40)의 브라우저는 SSO 서비스 리스트에 포함된 서비스B의 인증 서버(300)와 서비스A의 인증 서버(200)로 SSO 인증 요청을 한다(S130, S140). SSO 인증 요청은 발급받은 SSO 토큰을 포함하고, 비동기적으로 진행되며, S130과 S140의 진행 순서는 바뀔 수 있다. 이때, 사용자 단말(40)의 브라우저는 인증 서버(200)와 인증 서버(300) 각각의 로그인 인터페이스를, SSO 토큰을 담은 특정 태그(예를 들면, iFrame)로 호출하는 방식으로 SSO 인증 요청할 수 있다. 브라우저가 비동기적으로 SSO 인증 요청하므로, SSO 인증 과정에서 일부 서비스의 장애 또는 클라이언트에 문자가 있더라도 다른 서비스의 SSO 인증에 영향을 주지 않을 수 있다. 또한, 브라우저가 비동기적으로 SSO 인증 요청하므로, SSO 인증이 필요한 시점에 해당 서비스로 SSO 인증 요청을 할 수 있는 유연한 인증 체계를 구현할 수 있다.The browser of the user terminal 40 that has received the SSO token makes an SSO authentication request to the authentication server 300 of service B and the authentication server 200 of service A included in the SSO service list (S130 and S140). The SSO authentication request includes the issued SSO token and proceeds asynchronously, and the order of S130 and S140 may be changed. At this time, the browser of the user terminal 40 may request SSO authentication by calling the login interface of each of the authentication server 200 and the authentication server 300 with a specific tag (eg, iFrame) containing the SSO token. . Since the browser requests SSO authentication asynchronously, failure of some services or texts in the client during the SSO authentication process may not affect SSO authentication of other services. In addition, since the browser requests SSO authentication asynchronously, it is possible to implement a flexible authentication system that enables SSO authentication requests to be made to the service when SSO authentication is required.

서비스B의 인증 서버(300)는 SSO 인증 요청한 클라이언트가 SSO 토큰에 대한 소유권을 가지는지 주관 인증 서버(100)에 SSO 토큰의 소유권 검증을 요청한다(S132). 소유권 검증 요청은 SSO 토큰, 그리고 SSO 토큰을 전송한 클라이언트 정보를 포함할 수 있다.The authentication server 300 of service B requests the host authentication server 100 to verify the ownership of the SSO token whether the client requesting SSO authentication has ownership of the SSO token (S132). The ownership verification request may include an SSO token and information on the client that sent the SSO token.

주관 인증 서버(100)는 발급한 SSO 토큰에 매핑된 클라이언트 정보를 기초로, 소유권 검증 요청에 포함된 SSO 토큰의 소유권 검증하고, 소유권 검증 성공인 경우, 서비스B를 SSO 토큰이 발급된 계정의 공용 세션에 추가한다(S134).The host authentication server 100 verifies the ownership of the SSO token included in the ownership verification request based on the client information mapped to the issued SSO token. It is added to the session (S134).

주관 인증 서버(100)는 SSO 토큰의 소유권 검증 결과를 서비스B의 인증 서버(300)로 응답한다(S136). SSO 토큰을 전송한 클라이언트가 소유자로 검증된 경우, SSO 토큰의 소유권 검증 결과는 소유권 검증 성공과 함께, 공용 세션 키를 포함할 수 있다. SSO 토큰을 전송한 클라이언트가 소유자가 아닌 경우, SSO 토큰의 소유권 검증 결과는 소유권 검증 실패를 포함한다.The host authentication server 100 responds to the authentication server 300 of service B with the result of verifying the ownership of the SSO token (S136). When the client that transmitted the SSO token is verified as the owner, the result of verifying the ownership of the SSO token may include a public session key along with the successful ownership verification. If the client that sent the SSO token is not the owner, the result of verifying the ownership of the SSO token includes a failure to verify the ownership.

서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저(클라이언트)를 위한 공용 세션 키를 설정한다(S138). 서비스B의 인증 서버(300)는 주관 인증 서버(100)로부터 공용 세션 키를 얻을 수 있다. 한편, SSO 토큰에 공용 세션 키가 포함되는 경우, 서비스B의 인증 서버(300)는 SSO 토큰의 소유권 검증 결과가 성공인 경우, SSO 토큰에 포함된 세션 키를 설정할 수 있다. The service B authentication server 300 sets a public session key for the browser (client) of the user terminal 40 (S138). The authentication server 300 of service B may obtain a public session key from the host authentication server 100. Meanwhile, when a public session key is included in the SSO token, the authentication server 300 of service B may set a session key included in the SSO token when the result of verifying the ownership of the SSO token is successful.

서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저에 서비스B 인증 쿠키를 생성한다(S139). 서비스B 인증 쿠키는 서비스B의 인증 서버(300)가 고유한 방식으로 생성한다.The service B authentication server 300 creates a service B authentication cookie in the browser of the user terminal 40 (S139). The service B authentication cookie is generated by the authentication server 300 of the service B in a unique manner.

서비스B의 인증 서버(300)와 마찬가지로, 서비스A의 인증 서버(200)는 주관 인증 서버(100)에 SSO 토큰의 소유권 검증을 요청한다(S142). Like the authentication server 300 of service B, the authentication server 200 of service A requests the host authentication server 100 to verify ownership of the SSO token (S142).

주관 인증 서버(100)는 발급한 SSO 토큰들에 매핑된 클라이언트 정보들을 기초로, 소유권 검증 요청에 포함된 SSO 토큰의 소유권 검증하고, 소유권 검증 성공인 경우, 서비스A를 SSO 토큰이 발급된 계정의 공용 세션에 추가한다(S144). The host authentication server 100 verifies the ownership of the SSO token included in the ownership verification request based on the client information mapped to the issued SSO tokens. It is added to the public session (S144).

주관 인증 서버(100)는 소유권 검증 성공과 공용 세션 키를 포함하는 소유권 검증 결과를 서비스A의 인증 서버(200)로 응답한다(S146). The subject authentication server 100 responds to the authentication server 200 of the service A with the result of ownership verification including the successful ownership verification and the public session key (S146).

서비스A의 인증 서버(200)는 사용자 단말(40)의 브라우저(클라이언트)를 위한 글로벌 세션 키를 설정(S148)하고, 사용자 단말(40)의 브라우저에 서비스A 인증 쿠키를 생성한다(S149). 서비스A 인증 쿠키는 서비스A의 인증 서버(200)가 고유한 방식으로 생성한다. The service A authentication server 200 sets a global session key for the browser (client) of the user terminal 40 (S148), and creates a service A authentication cookie in the browser of the user terminal 40 (S149). The service A authentication cookie is generated by the authentication server 200 of the service A in a unique manner.

사용자 단말(40)의 브라우저는 타겟 페이지로 이동하거나, 서비스A 인증 쿠키와 서비스B 인증 쿠키를 이용하여 서비스A와 서비스B의 페이지로 이동할 수 있다. 즉, 사용자는 서비스A와 서비스B의 페이지에서 추가적인 로그인 절차를 거칠 필요 없이, 해당 서비스를 이용할 수 있다.The browser of the user terminal 40 may move to the target page or use the service A authentication cookie and the service B authentication cookie to move to the pages of service A and service B. That is, the user can use the service without having to go through an additional login procedure on the pages of Service A and Service B.

이와 같이, 단일 인증 시스템은 서비스A의 인증 서버(200)와 서비스B의 인증 서버(300)가 개별적으로 존재하더라도, 인증 서버간의 연동을 통해 인증 체계를 통합하고 단일 인증할 수 있다. 특히, 각 인증 서버가 인증 쿠키를 고유의 방식으로 브라우저에 설정하도록 함으로써, 각 인증 서버가 이미 존재하는 인증 체계를 유지하면서도 단일 인증할 수 있다. 이러한 방법에 따라 로그인 시점에 계정에 연결된 서비스 사이트들이 인증 쿠키를 발급할 수 있다. Javascript를 사용한 비동기 방식이 사용될 수 있으나, 비동기 단일 인증은 다양한 기술로 구현될 수 있다.In this way, even if the authentication server 200 of Service A and the authentication server 300 of Service B exist separately, the single authentication system can integrate the authentication system and perform single authentication through interworking between the authentication servers. In particular, by allowing each authentication server to set an authentication cookie in its own way in the browser, each authentication server can perform single authentication while maintaining an existing authentication system. In this way, service sites connected to the account at the time of login can issue authentication cookies. Asynchronous method using Javascript can be used, but asynchronous single authentication can be implemented with various technologies.

한편, 동기적 단일 인증 로그인도 가능하다. 주관 인증 서버(100)는 로그인 계정에 연결된 서비스A 및 서비스B의 상태를 체크해서, 단일 인증 처리가 가능한 서비스들만을 SSO 서비스 리스트로 생성한다. 주관 인증 서버(100)는 계정에 연결된 서비스들 중에서 서비스A와 서비스B를 SSO 서비스 리스트로 생성하고, SSO 서비스 리스트와 SSO 토큰을 사용자 단말(40)의 브라우저로 전달한다. SSO 토큰은 로그인 세션 키(공용 세션 키)를 포함할 수 있고, SSO 서비스 리스트에 포함된 서비스 순서대로 해당 서비스의 인증 서버로 전달된다. SSO 토큰은 해당 서비스의 인증 쿠키 발급 후, SSO 서비스 리스트에 포함된 서비스들의 인증이 완료될 때까지, 다음 서비스로 순차 이동할 수 있다. On the other hand, synchronous single authentication login is also possible. The host authentication server 100 checks the status of service A and service B connected to the login account, and generates only the services capable of a single authentication process as an SSO service list. The host authentication server 100 generates service A and service B from among the services connected to the account as an SSO service list, and transfers the SSO service list and the SSO token to the browser of the user terminal 40. The SSO token may include a login session key (public session key), and is delivered to the authentication server of the corresponding service in the order of the services included in the SSO service list. After issuing the authentication cookie of the corresponding service, the SSO token may sequentially move to the next service until authentication of the services included in the SSO service list is completed.

도 3은 한 실시예에 따른 단일 인증 로그아웃 흐름도이다.3 is a flowchart illustrating a single authentication logout according to an embodiment.

도 3을 참고하면, 사용자 단말(40)의 브라우저가 도 2의 단일 인증 로그인한 이후, 주관 서비스 서버(130)로 로그 아웃 요청한다(S210). 사용자 단말(40)의 브라우저는 사용자로부터 로그인 세션에 대한 로그아웃 동작을 입력받거나, 지정된 로그아웃 상황이 되면, 주관 서비스 서버(130)에서 제공하는 로그아웃 페이지로 진입할 수 있다. Referring to FIG. 3, after the browser of the user terminal 40 logs in with a single authentication of FIG. 2, a logout request is made to the host service server 130 (S210 ). The browser of the user terminal 40 may enter a logout page provided by the host service server 130 when the user inputs a logout operation for a login session or when a specified logout situation occurs.

주관 서비스 서버(130)는 주관 인증 서버(100)에게 클라이언트의 로그아웃 요청에 대한 인증을 요청한다(S212).The host service server 130 requests the host authentication server 100 to authenticate the client's logout request (S212).

주관 인증 서버(100)는 로그아웃 요청에 포함된 클라이언트 정보를 기초로 로그아웃 요청을 인증하고, 인증 결과를 주관 서비스 서버(130)로 전달한다(S214). 인증 성공인 경우, 인증 결과는 인증 성공 및 공용 세션에 추가된 SSO 서비스 리스트(서비스 API url 주소 또는 서비스 심볼 스트링)를 포함할 수 있다. 공용 세션에 추가된 SSO 서비스 리스트는 SSO 토큰을 기초로 사용자 단말(40)의 브라우저에 대해 공용 세션 생성한 서비스들을 포함한다. 인증 결과에 인증 실패가 포함된 경우, 주관 서비스 서버(130)는 사용자 단말(40)의 브라우저로 로그아웃 실패 페이지를 제공한다.The host authentication server 100 authenticates the logout request based on the client information included in the logout request, and transmits the authentication result to the host service server 130 (S214). If the authentication is successful, the authentication result may include the authentication success and the SSO service list (service API url address or service symbol string) added to the public session. The SSO service list added to the public session includes services that have created a public session for the browser of the user terminal 40 based on the SSO token. When the authentication result includes an authentication failure, the host service server 130 provides a logout failure page to the browser of the user terminal 40.

인증 성공인 경우, 주관 서비스 서버(130)는 사용자 단말(40)의 브라우저로 로그아웃 페이지를 제공하고, 공용 세션에 추가된 SSO 서비스 리스트를 전달한다(S216).If authentication is successful, the host service server 130 provides a logout page to the browser of the user terminal 40 and transmits a list of SSO services added to the public session (S216).

사용자 단말(40)의 브라우저는 공용 세션에 추가된 SSO 서비스 리스트를 기초로 해당 서비스의 인증 서버로 로그아웃 요청한다(S220, S230). 로그아웃 요청은 비동기적으로 진행된다.The browser of the user terminal 40 requests logout to the authentication server of the corresponding service based on the SSO service list added to the public session (S220, S230). Logout requests are processed asynchronously.

서비스A의 인증 서버(200)는 로그아웃 요청에 대해 로그아웃 처리하고 사용자 단말(40)의 브라우저로 로그아웃 응답한다(S222). 서비스A의 인증 서버(200)는 사용자 단말(40)의 브라우저에 발급한 서비스A 인증 쿠키를 삭제할 수 있다. 서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저에 생성한 세션을 삭제할 수 있다. 서비스B의 인증 서버(300)는 별도의 로그아웃 처리 절차가 필요하지 않은 경우, 서비스B 인증 쿠키만 삭제할 수 있다.The authentication server 200 of the service A logs out to the logout request and responds to the logout to the browser of the user terminal 40 (S222). The service A authentication server 200 may delete the service A authentication cookie issued to the browser of the user terminal 40. The authentication server 300 of service B may delete the session created in the browser of the user terminal 40. The authentication server 300 of service B may delete only the service B authentication cookie when a separate logout processing procedure is not required.

서비스B의 인증 서버(300)는 로그아웃 요청에 대해 로그아웃 처리하고 사용자 단말(40)의 브라우저로 로그아웃 응답한다(S232). 서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저에 발급한 서비스B 인증 쿠키를 삭제한다. 서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저에 생성한 세션을 삭제할 수 있다. 서비스B의 인증 서버(300)는 별도의 로그아웃 처리 절차가 필요하지 않은 경우, 서비스B 인증 쿠키만 삭제할 수 있다.The authentication server 300 of the service B processes the logout in response to the logout request and responds to the logout to the browser of the user terminal 40 (S232). The service B authentication server 300 deletes the service B authentication cookie issued to the browser of the user terminal 40. The authentication server 300 of service B may delete the session created in the browser of the user terminal 40. The authentication server 300 of service B may delete only the service B authentication cookie when a separate logout processing procedure is not required.

단일 로그아웃 절차를 완료한 사용자 단말(40)의 브라우저는 타겟 페이지로 이동한다.After completing the single logout procedure, the browser of the user terminal 40 moves to the target page.

다른 실시예에 따르면, 리디렉션(redirection)으로 단일 인증 로그아웃할 수 있다. 로그아웃 요청에 대한 인증 성공 시, 사용자 단말(40)의 브라우저는 공용 세션에 추가된 SSO 서비스 리스트를 반환받는다. SSO 서비스 리스트가 return url에 묶여서 전달되면, SSO 서비스 리스트에 남아있는 서비스가 없을 때까지, 로그아웃 요청이 각 서비스의 인증 서버로 이동(redirect)하면서, 로그아웃 절차가 반복될 수 있다.According to another embodiment, a single authentication logout may be performed by redirection. Upon successful authentication of the logout request, the browser of the user terminal 40 returns a list of SSO services added to the public session. When the SSO service list is bound to the return url and transmitted, the logout request may be redirected to the authentication server of each service until there is no service remaining in the SSO service list, and the logout procedure may be repeated.

또 다른 실시예에 따르면, 공용 세션 삭제 방식으로 단일 인증 로그아웃할 수 있다. 예를 들면, 주관 인증 서버(100)는 로그아웃 요청에 포함된 클라이언트 정보를 기초로 로그아웃 요청을 인증하고, 로그아웃 요청에 대한 인증 성공 시, 데이터베이스(150)에서 로그아웃 대상의 정보(예를 들면, 공용 세션 정보)를 삭제(파기)할 수 있다. 그리고, 주관 인증 서버(100)는 로그아웃 인증 성공인 경우, 인증 결과를 주관 서비스 서버(130)로 전달하고, 주관 서비스 서버(130)가 사용자 단말(40)의 브라우저로 로그아웃 성공 페이지를 제공할 수 있다. According to another embodiment, a single authentication logout may be performed using a common session deletion method. For example, the host authentication server 100 authenticates the logout request based on the client information included in the logout request, and when authentication for the logout request is successful, the logout target information in the database 150 (e.g. For example, public session information) can be deleted (destroyed). And, when the logout authentication is successful, the host authentication server 100 delivers the authentication result to the host service server 130, and the host service server 130 provides a logout success page to the browser of the user terminal 40. can do.

이와 같이, 단일 인증 시스템은 사용자 단말(40)의 브라우저가 단일 인증 로그인한 이후, 로그인 계정에 대한 로그아웃 요청하면, 단일 인증으로 로그인된 멀티 도메인 서비스들까지 한꺼번에 로그아웃할 수 있다. 즉, 단일 인증 시스템은 로그인된 클라이언트의 로그인 세션을 여러 도메인들의 서비스들이 추가되는 공용 세션으로 관리하기 때문에, 로그인 계정에 대해 생성된 로그인 세션이 종료하면, 로그인 세션에 추가된 서비스들까지 한꺼번에 종료(expire)시킬 수 있다.In this way, when the browser of the user terminal 40 requests logout for the login account after the browser of the user terminal 40 logs in for single authentication, the single authentication system may logout even multi-domain services logged in with a single authentication at once. That is, since the single authentication system manages the login session of the logged-in client as a public session in which services of multiple domains are added, when the login session created for the login account is terminated, the services added to the login session are also terminated at once ( expire).

도 4와 도 5 각각은 한 실시예에 따른 느린(lazy) 단일 인증 로그인의 흐름도이다.4 and 5 each is a flow diagram of a lazy single authentication login according to one embodiment.

도 4를 참고하면, 로그인 계정(예를 들면, 카카오 계정)에 연결된 적어도 하나의 서비스가 있더라도, 어느 서비스(예를 들면, 서비스B)는 도 2와 같이, 계정 인증 성공 시 바로 SSO 인증을 진행하지 않을 수 있다. 즉, 로그인 계정에 대한 인증 성공 후, 특정 서비스에 대해 선택적으로 진행되는 단일 인증 로그인을 느린(lazy) 단일 인증 로그인이라고 부른다. Referring to FIG. 4, even if there is at least one service connected to a login account (eg, Kakao account), any service (eg, service B) proceeds to SSO authentication immediately when account authentication is successful, as shown in FIG. 2. I can't. That is, after successful authentication for the login account, a single authentication login selectively proceeding for a specific service is called a lazy single authentication login.

예를 들면, 서비스B의 인증 서버(300)는 사용자가 로그인이 필요한 특정 이벤트(예를 들면, 댓글달기, 자주 듣는 음악 등록 등)를 요청하는 경우에 로그인하도록 설정되거나, 사용자가 명시적 로그인 시도를 하는 경우에 로그인하도록 설정된 경우, 서비스B는 연결된 주 계정의 인증 성공 시 바로 SSO 인증할 필요 없이, 느린 단일 인증 로그인하도록 설정될 수 있다. 또는, 서비스B의 인증 서버(300)는 주기적으로 재인증하도록 설정된 경우, 서비스B는 연결된 주 계정의 로그인 세션이 유지된 상태에서, 느린 단일 인증 로그인으로 SSO 재인증할 수 있다.For example, the authentication server 300 of Service B is set to log in when a user requests a specific event (e.g., posting a comment, registering frequently listened music, etc.), or the user attempts to log in explicitly. If it is set to log in in the case of logging in, the service B may be set to log in with a slow single authentication without the need to immediately perform SSO authentication upon successful authentication of the connected main account. Alternatively, when the authentication server 300 of the service B is set to periodically re-authenticate, the service B may re-authenticate the SSO with a slow single authentication login while the login session of the connected main account is maintained.

사용자 단말(40)의 브라우저가 계정에 대한 로그인 인증 후 발급된 계정 로그인 토큰을 저장하고 있다고 가정하고, 서비스B가 느린(lazy) 단일 인증 로그인한다고 가정한다. 여기서, 계정 로그인 토큰은 도 2의 단계(S110~S116)에 의해 사용자 단말(40)의 브라우저에 쿠키로 설정된다. It is assumed that the browser of the user terminal 40 stores the account login token issued after login authentication for the account, and service B is assumed to be a lazy single authentication login. Here, the account login token is set as a cookie in the browser of the user terminal 40 by steps S110 to S116 of FIG. 2.

사용자 단말(40)의 브라우저는 서비스B의 서비스 서버(330)로 로그인 요청하거나, 로그인이 필요한 특정 이벤트를 요청한다(S310). 로그인 요청은 명시적인 로그인 시도 동작으로서, 사용자 단말(40)의 브라우저가 서비스B의 서비스 서버(330)가 제공하는 웹페이지에서 사용자에 의한 로그인 요청을 입력받거나, 사용자 단말(40)의 브라우저가 서비스B의 서비스 서버(330)가 제공하는 웹페이지로 이동한 경우일 수 있다. 로그인이 필요한 특정 이벤트는 예를 들면, 댓글달기, 자주 듣는 음악 등록 등일 수 있다.The browser of the user terminal 40 requests a login to the service server 330 of service B or a specific event requiring login (S310). The login request is an explicit login attempt operation, and the browser of the user terminal 40 receives a login request by the user from a web page provided by the service server 330 of the service B, or the browser of the user terminal 40 serves. This may be the case when moving to a web page provided by the service server 330 of B. A specific event that requires logging in may be, for example, posting a comment, registering frequently listened music, or the like.

서비스B의 서비스 서버(330)는 사용자 단말(40)의 브라우저의 요청을 기초로 로그인 필요 여부를 판단하는데, 요청에 자신이 발급한 유효한 서비스B 인증 쿠키가 없으므로, 로그인 필요 응답을 한다(S312). 서비스B의 서비스 서버(330)는 인증 쿠키가 없거나 유효하지 않은(invalid) 인증 쿠키인 경우, 로그인이 필요하다는 응답을 반환한다. The service server 330 of service B determines whether or not login is necessary based on the request of the browser of the user terminal 40, and since there is no valid service B authentication cookie issued by itself in the request, it responds with a login required response (S312). . If there is no authentication cookie or the authentication cookie is invalid, the service server 330 of Service B returns a response indicating that login is required.

로그인 필요 응답을 수신한 사용자 단말(40)의 브라우저는 주관 서비스 서버(130)에 느린(lazy) 단일 인증(SSO) 시작 요청을 한다(S320). 느린 SSO 시작 요청은 로그인 토큰, 그리고 클라이언트 정보를 포함할 수 있다. 이때, 사용자 단말(40)의 브라우저는 특정 포맷(예를 들면, JSONP)을 이용하여 쿠키로 설정된 로그인 토큰을 주관 서비스 서버(130)로 전달함으로써, 느린 SSO 시작 요청할 수 있다. 주관 서비스 서버(130)가 로그인 확인 인터페이스(API)를 제공하는 경우, 사용자 단말(40)의 브라우저는 특정 포맷(예를 들면, JSONP)을 이용하여 주관 서비스 서버(130)에 로그인 확인 API를 호출할 수 있다.The browser of the user terminal 40 receiving the login required response makes a lazy single authentication (SSO) start request to the host service server 130 (S320). The slow SSO initiation request may include a login token, and client information. At this time, the browser of the user terminal 40 may request a slow SSO start by transmitting a login token set as a cookie to the host service server 130 using a specific format (eg, JSONP). When the host service server 130 provides a login verification interface (API), the browser of the user terminal 40 calls the login verification API to the host service server 130 using a specific format (eg, JSONP). can do.

주관 서비스 서버(130)는 주관 인증 서버(100)에게 느린 SSO 시작 요청한 서비스B를 위한 SSO 토큰 발급을 요청한다(S322). 이때, 주관 서비스 서버(130)는 SSO 토큰 발급 요청 전에, 주관 인증 서버(100)에게 느린 SSO 시작 요청에 포함된 정보(예를 들면, 로그인 토큰, 서비스B, 클라이언트 정보 등)의 검증을 요청하고, 검증 성공 시, 주관 인증 서버(100)에게 서비스B를 위한 SSO 토큰 발급을 요청할 수 있다.The host service server 130 requests the host authentication server 100 to issue an SSO token for the service B that has requested the slow SSO start (S322). At this time, the host service server 130 requests the host authentication server 100 to verify information included in the slow SSO start request (eg, login token, service B, client information, etc.) before the request for issuing the SSO token, and , Upon successful verification, it is possible to request the host authentication server 100 to issue an SSO token for service B.

주관 인증 서버(100)는 서비스B의 단일 인증을 위해 발급된 SSO 토큰을 주관 서비스 서버(130)로 전달한다(S324). 주관 인증 서버(100)는 SSO 토큰을 신규 발급하는 경우, 클라이언트 정보에 SSO 토큰을 매핑해 둔다. 이미 주 계정으로 로그인된 사용자 단말(40)인 경우, 사용자 단말(40)의 브라우저로 SSO 토큰이 반환된다. 만약, 주 계정으로 로그인된 사용자 단말(40)이 아니라면, 주 계정으로 로그인이 필요하므로, 도 2의 로그인 절차로 이동한다.The subject authentication server 100 transmits the SSO token issued for single authentication of the service B to the subject service server 130 (S324). The host authentication server 100 maps the SSO token to client information when issuing a new SSO token. In the case of the user terminal 40 already logged in with the main account, the SSO token is returned to the browser of the user terminal 40. If it is not the user terminal 40 logged in with the main account, it is necessary to log in with the main account, so the log-in procedure of FIG. 2 moves.

주관 서비스 서버(130)는 느린 SSO 시작 요청의 응답으로, SSO 토큰을 사용자 단말(40)의 브라우저에 전달한다(S326). The host service server 130 transmits the SSO token to the browser of the user terminal 40 in response to the slow SSO start request (S326).

사용자 단말(40)의 브라우저는 서비스B의 인증 서버(300)로 SSO 토큰을 포함한SSO 인증 요청을 한다(S330). The browser of the user terminal 40 makes an SSO authentication request including an SSO token to the authentication server 300 of service B (S330).

서비스B의 인증 서버(300)는 SSO 인증 요청한 클라이언트가 SSO 토큰에 대한 소유권을 가지는지 주관 인증 서버(100)에 SSO 토큰의 소유권 검증을 요청한다(S332). 소유권 검증 요청은 SSO 토큰, 그리고 SSO 토큰을 전송한 클라이언트 정보를 포함할 수 있다.The authentication server 300 of service B requests the host authentication server 100 to verify the ownership of the SSO token whether the client requesting SSO authentication has ownership of the SSO token (S332). The ownership verification request may include an SSO token and information on the client that sent the SSO token.

주관 인증 서버(100)는 발급한 SSO 토큰에 매핑된 클라이언트 정보를 기초로, 소유권 검증 요청에 포함된 SSO 토큰의 소유권 검증하고, 소유권 검증 성공인 경우, 서비스B를 SSO 토큰이 발급된 계정의 공용 세션에 추가한다(S334).The host authentication server 100 verifies the ownership of the SSO token included in the ownership verification request based on the client information mapped to the issued SSO token. It is added to the session (S334).

주관 인증 서버(100)는 SSO 토큰의 소유권 검증 결과를 서비스B의 인증 서버(300)로 응답한다(S336). SSO 토큰의 소유권 검증 결과는 소유권 검증 성공과 함께, 공용 세션 키를 포함할 수 있다.The subject authentication server 100 responds to the authentication server 300 of service B with the result of verifying the ownership of the SSO token (S336). The result of verifying ownership of the SSO token may include a public session key along with successful ownership verification.

서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저를 위한 공용 세션 키를 설정한다(S338). The service B authentication server 300 sets a public session key for the browser of the user terminal 40 (S338).

서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저에 서비스B 인증 쿠키를 생성한다(S339). The service B authentication server 300 generates a service B authentication cookie in the browser of the user terminal 40 (S339).

이후, 사용자 단말(40)의 브라우저는 서비스B 인증 쿠키를 통해 서비스B의 서비스 서버(330)의 각종 로그인 서비스들을 접근할 수 있다.Thereafter, the browser of the user terminal 40 may access various login services of the service server 330 of the service B through the service B authentication cookie.

한편, 도 4의 단계(S320)은 사용자 단말(40)의 브라우저가 쿠키로 설정된 계정 로그인 토큰을 특정 포맷(예를 들면, JSONP)을 이용하여 주관 서비스 서버(130)로 전달함으로써, 느린 SSO 시작 요청하는데, 일부 브라우저는 특정 포맷(예를 들면, JSONP)을 호출 시, 쿠키를 전달하지 않도록 기본 설정되어 있을 수 있다. 이 경우, 다음 도 5와 같이, 리디렉션(redirection) 방식으로 로그인 토큰이 전달될 수 있다. Meanwhile, in step S320 of FIG. 4, the browser of the user terminal 40 transmits the account login token set as a cookie to the host service server 130 using a specific format (eg, JSONP), thereby starting a slow SSO. On request, some browsers may have a default setting so that cookies are not passed when calling a specific format (for example, JSONP). In this case, as shown in FIG. 5 below, a login token may be delivered in a redirection method.

도 5를 참고하면, 서비스B의 서비스 서버(330)로부터 로그인 필요 응답을 수신하는 도 4의 단계(S312) 이후, 사용자 단말(40)의 브라우저는 서비스B의 페이지에서 주관 서비스 서버(130)의 단일 인증 로그인 페이지로 이동(redirect)한 후, 느린(lazy) 단일 인증(SSO) 시작 요청을 한다(S410). 사용자 단말(40)의 브라우저는 리디렉션 방식으로 주관 서비스 서버(130)의 단일 인증 로그인 페이지(sso login url)로 이동한다. 리디렉션 방식에 의한 느린 SSO 시작 요청은, 도 4의 특정 포맷(예를 들면, JSONP)을 이용한 호출 방식에 의한 느린 SSO 시작 요청의 실패 후, 진행될 수 있다. 또는 느린 SSO 시작 요청은 특정 포맷(예를 들면, JSONP) 호출 방식과 리디렉션 방식 중에서 선택될 수 있다.Referring to FIG. 5, after step S312 of FIG. 4 of receiving a login required response from the service server 330 of service B, the browser of the user terminal 40 displays the host service server 130 in the page of service B. After redirecting to the single authentication login page, a lazy single authentication (SSO) start request is made (S410). The browser of the user terminal 40 moves to a single authentication login page (sso login url) of the host service server 130 in a redirection method. The slow SSO start request by the redirection method may proceed after the failure of the slow SSO start request by the calling method using a specific format (eg, JSONP) of FIG. 4. Alternatively, the slow SSO initiation request may be selected from a specific format (eg, JSONP) calling method and a redirection method.

주관 서비스 서버(130)는 주관 인증 서버(100)에게 느린 SSO 시작 요청한 서비스B를 위한 SSO 토큰 발급을 요청한다(S412). 이때, 주관 서비스 서버(130)는 주관 인증 서버(100)에게 계정 로그인 토큰의 검증을 요청하고, 계정 로그인 토큰의 검증 성공 시, 주관 인증 서버(100)에게 서비스B를 위한 SSO 토큰 발급을 요청할 수 있다.The host service server 130 requests the host authentication server 100 to issue an SSO token for the service B that has requested the slow SSO start (S412). At this time, the host service server 130 may request the host authentication server 100 to verify the account login token, and upon successful verification of the account login token, the host authentication server 100 may request the host authentication server 100 to issue an SSO token for service B. have.

주관 인증 서버(100)는 서비스B의 단일 인증을 위해 발급된 SSO 토큰을 주관 서비스 서버(130)로 전달한다(S414). 주관 인증 서버(100)는 SSO 토큰을 신규 발급하는 경우, SSO 토큰에 클라이언트 정보를 매핑해 둔다.The host authentication server 100 transmits the SSO token issued for single authentication of the service B to the host service server 130 (S414). When issuing a new SSO token, the host authentication server 100 maps client information to the SSO token.

주관 서비스 서버(130)는 SSO 토큰을 담아 사용자 단말(40)의 브라우저를 서비스B의 페이지로 이동(redirect)시킨다(S416).The host service server 130 transfers the browser of the user terminal 40 to the page of the service B with the SSO token (S416).

사용자 단말(40)의 브라우저는 서비스B의 인증 서버(300)로 SSO 토큰을 포함한SSO 인증 요청을 한다(S420). The browser of the user terminal 40 makes an SSO authentication request including an SSO token to the authentication server 300 of service B (S420).

서비스B의 인증 서버(300)는 SSO 인증 요청한 클라이언트가 SSO 토큰에 대한 소유권을 가지는지 주관 인증 서버(100)에 SSO 토큰의 소유권 검증을 요청한다(S422). 소유권 검증 요청은 SSO 토큰, 그리고 SSO 토큰을 전송한 클라이언트 정보를 포함할 수 있다.The authentication server 300 of service B requests the host authentication server 100 to verify ownership of the SSO token whether the client requesting SSO authentication has ownership of the SSO token (S422). The ownership verification request may include an SSO token and information on the client that sent the SSO token.

주관 인증 서버(100)는 발급한 SSO 토큰에 매핑된 클라이언트 정보를 기초로, 소유권 검증 요청에 포함된 SSO 토큰의 소유권 검증하고, 소유권 검증 성공인 경우, 서비스B를 SSO 토큰이 발급된 계정의 공용 세션에 추가한다(S424).The host authentication server 100 verifies the ownership of the SSO token included in the ownership verification request based on the client information mapped to the issued SSO token. It is added to the session (S424).

주관 인증 서버(100)는 SSO 토큰의 소유권 검증 결과를 서비스B의 인증 서버(300)로 응답한다(S426). SSO 토큰의 소유권 검증 결과는 소유권 검증 성공과 함께, 공용 세션 키를 포함할 수 있다.The host authentication server 100 responds to the authentication server 300 of the service B with the result of verifying the ownership of the SSO token (S426). The result of verifying ownership of the SSO token may include a public session key along with successful ownership verification.

서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저를 위한 공용 세션 키를 설정한다(S428). The service B authentication server 300 sets a public session key for the browser of the user terminal 40 (S428).

서비스B의 인증 서버(300)는 사용자 단말(40)의 브라우저에 서비스B 인증 쿠키를 생성한다(S429). The service B authentication server 300 generates a service B authentication cookie in the browser of the user terminal 40 (S429).

이후, 사용자 단말(40)의 브라우저는 서비스B 인증 쿠키를 통해 서비스B의 서비스 서버(330)의 각종 로그인 필요 서비스들에 접근할 수 있다.Thereafter, the browser of the user terminal 40 may access various services requiring login of the service server 330 of the service B through the service B authentication cookie.

이와 같이, 도 4와 도 5를 참고하면, 단일 인증 시스템은 주 계정으로의 로그인 즉시 적용되는 active SSO와 주 계정으로의 로그인 후 개별 서비스에 접속하기 위해 적용되는 passive SSO를 구현할 수 있다. 주 계정으로의 로그인 시, 주 계정에 연결된 일부 서비스가 장애 상태라고 하더라도, 느린 단일 인증 절차를 통해 단일 인증이 정상적으로 이루어질 수 있다. 특히, 주관 인증 서버(100)는 느린 단일 인증 절차를 통해, 로그인 세션에 단일 인증된 서비스들을 저장하여 로그인 이후에도 단일 인증에 의한 세션을 통합 관리할 수 있고, 개별 서비스의 인증 만료/미인증시 인증세션 복구 프로세스를 제공할 수 있다.As described above, referring to FIGS. 4 and 5, the single authentication system may implement active SSO applied immediately after login to the main account and passive SSO applied to access individual services after logging in to the main account. When logging in to the main account, even if some services connected to the main account are in a failed state, single authentication can be performed normally through a slow single authentication procedure. In particular, the host authentication server 100 can store single authenticated services in the login session through a single slow authentication procedure, and manage the session by single authentication even after logging in, and authentication sessions when authentication expires/non-authentication of individual services Can provide recovery process.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.The embodiments of the present invention described above are not implemented only through an apparatus and a method, but may be implemented through a program that realizes a function corresponding to the configuration of the embodiment of the present invention or a recording medium in which the program is recorded.

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

Claims (14)

멀티 도메인 서비스들의 단일 인증을 주관하는 주관 인증 서버가, 상기 멀티 도메인 서비스들의 인증 서버들과 연동하여 단일 인증하는 방법으로서,
클라이언트의 로그인 요청에 포함된 주 계정에 대해 인증하고, 인증 성공한 상기 클라이언트로 로그인 토큰을 발급하는 단계,
상기 멀티 도메인 서비스들 중에서, 상기 로그인 토큰이 발급된 상기 주 계정에 연결된 서비스들을 제1 서비스 리스트로 생성하는 단계,
상기 제1 서비스 리스트와 함께 단일 인증 토큰을 상기 클라이언트에게 발급하는 단계,
상기 제1 서비스 리스트에 포함된 각 서비스의 인증 서버로부터, 단일 인증 토큰 검증 요청을 수신하면, 상기 단일 인증 토큰 검증 요청에 포함된 토큰이 상기 클라이언트로 발급한 상기 단일 인증 토큰인지 검증하는 단계,
검증 성공한 각 서비스를 상기 주 계정의 세션에 추가하고, 상기 세션의 키를 해당 서비스의 인증 서버로 전달하는 단계,
상기 클라이언트의 로그아웃 요청을 전달받으면, 상기 주 계정의 세션에 추가된 서비스들을 제2 서비스 리스트로 생성하고, 상기 제2 서비스 리스트를 상기 클라이언트에게 전달하는 단계, 그리고
상기 주 계정의 세션에 추가된 서비스들의 단일 인증 로그아웃을 위해 상기 주 계정의 세션을 삭제하는 단계를 포함하고,
상기 클라이언트는 사용자 단말의 브라우저이고,
상기 제1 서비스 리스트에 포함된 각 서비스의 인증 서버는 상기 클라이언트를 위한 상기 세션의 키를 설정하고, 상기 클라이언트에 해당 서비스를 이용할 수 있는 인증 쿠키를 생성하며,
상기 제2 서비스 리스트에 포함된 각 서비스의 인증 서버는 상기 클라이언트로부터 해당 서비스의 로그아웃을 요청받는, 단일 인증 방법.
A method in which a host authentication server in charge of single authentication of multi-domain services performs single authentication in connection with authentication servers of the multi-domain services,
Authenticating the main account included in the client's login request, and issuing a login token to the client who successfully authenticated,
Generating, among the multi-domain services, services connected to the main account to which the login token was issued, as a first service list,
Issuing a single authentication token to the client together with the first service list,
When receiving a single authentication token verification request from the authentication server of each service included in the first service list, verifying whether the token included in the single authentication token verification request is the single authentication token issued to the client,
Adding each service successfully verified to the session of the main account, and transferring the session key to the authentication server of the corresponding service,
Upon receiving the logout request from the client, generating services added to the session of the main account as a second service list, and transmitting the second service list to the client, and
Deleting the session of the main account for single authentication logout of services added to the session of the main account,
The client is a browser of a user terminal,
The authentication server of each service included in the first service list sets a key of the session for the client, and generates an authentication cookie that enables the client to use the service,
The authentication server of each service included in the second service list receives a request to log out of the service from the client.
제1항에서,
상기 단일 인증 토큰인지 검증하는 단계는
상기 제1 서비스 리스트에 포함된 각 서비스의 인증 서버로부터, 비동기적으로 상기 단일 인증 토큰 검증 요청을 수신하는, 단일 인증 방법.
In claim 1,
The step of verifying whether the single authentication token is
A single authentication method for asynchronously receiving the single authentication token verification request from an authentication server of each service included in the first service list.
삭제delete 삭제delete 제1항에서,
상기 클라이언트에 상기 로그인 토큰을 발급한 이후, 상기 클라이언트로부터 특정 서비스에 대한 느린(lazy) 단일 인증 시작 요청을 수신하는 단계, 그리고
상기 단일 인증 토큰 또는 신규 단일 인증 토큰을 상기 클라이언트에게 발급하는 단계를 더 포함하고,
상기 클라이언트는
상기 특정 서비스의 서버에 접속한 상태에서, 상기 주관 인증 서버에 관련된 서비스 서버에서 제공하는 로그인 확인 인터페이스를 호출하여 상기 느린 단일 인증 시작을 요청하거나,
상기 특정 서비스의 서버에 접속한 상태에서, 상기 주관 인증 서버에 관련된 서비스 서버에서 제공하는 단일 인증 로그인 페이지로 이동(redirect)하여 상기 느린 단일 인증 시작을 요청하는, 단일 인증 방법.
In claim 1,
After issuing the login token to the client, receiving a single lazy authentication start request for a specific service from the client, and
Issuing the single authentication token or a new single authentication token to the client, further comprising,
The client
In a state in which the server of the specific service is connected, a login confirmation interface provided by a service server related to the host authentication server is called to request the slow single authentication start, or
In a state of being connected to the server of the specific service, redirecting to a single authentication login page provided by a service server related to the host authentication server and requesting the start of the slow single authentication.
삭제delete 삭제delete 삭제delete 사용자 단말의 브라우저가 멀티 도메인 서비스들로 단일 인증하는 방법으로서,
멀티 도메인 서비스들의 단일 인증을 주관하는 주관 서비스 시스템으로, 주 계정에 대한 로그인 요청하고, 상기 주관 서비스 시스템으로부터 상기 주 계정에 대한 로그인 토큰을 발급받는 단계,
상기 주관 서비스 시스템으로, 상기 로그인 토큰 및 클라이언트 정보를 포함하는 단일 인증 시작 요청을 전송하고, 상기 주관 서비스 시스템으로부터 상기 주 계정에 연결된 서비스들을 포함하는 제1 서비스 리스트와 함께 단일 인증 토큰을 발급받는 단계, 그리고
상기 제1 서비스 리스트에 포함된 각 서비스의 인증 서버로, 상기 단일 인증 토큰을 포함하는 단일 인증 요청을 전송하고, 해당 서비스의 고유한 인증 서버로부터 발급된 해당 서비스의 인증 쿠키를 설정하는 단계를 포함하며,
상기 주관 서비스 시스템으로 로그아웃 요청하고, 상기 주관 서비스 시스템으로부터 상기 주 계정의 로그인 시 생성된 세션에 추가된 서비스들을 포함하는 제2 서비스 리스트를 수신하는 단계, 그리고
상기 제2 서비스 리스트에 포함된 각 서비스의 인증 서버로 해당 서비스의 로그아웃을 요청하는 단계
를 더 포함하는, 단일 인증 방법.
As a method for single authentication by a browser of a user terminal with multi-domain services,
A host service system that manages single authentication of multi-domain services, requesting a login for a main account, and receiving a login token for the main account from the host service system,
Transmitting a single authentication start request including the login token and client information to the host service system, and issuing a single authentication token together with a first service list including services connected to the main account from the host service system , And
Transmitting a single authentication request including the single authentication token to an authentication server of each service included in the first service list, and setting an authentication cookie for the service issued from the unique authentication server of the service. And
Requesting logout to the host service system, and receiving a second service list including services added to a session created when logging into the main account from the host service system, and
Requesting logout of the service to the authentication server of each service included in the second service list
Further comprising, a single authentication method.
삭제delete 제9항에서,
상기 멀티 도메인 서비스들 중 특정 서비스의 서비스 서버에 접속한 상태에서, 상기 서비스 서버로부터 로그인 필요 응답을 수신하는 단계,
상기 주관 서비스 시스템으로 상기 특정 서비스에 대한 느린(lazy) 단일 인증 시작을 요청하는 단계,
상기 주관 서비스 시스템으로부터 상기 단일 인증 토큰 또는 신규 단일 인증 토큰을 발급받는 단계, 그리고
상기 특정 서비스의 인증 서버로 상기 특정 서비스에 대해 발급받은 토큰을 포함하는 단일 인증 요청을 전송하고, 상기 특정 서비스의 인증 서버로부터 발급된 상기 특정 서비스의 인증 쿠키를 설정하는 단계
를 더 포함하는, 단일 인증 방법.
In claim 9,
Receiving a login request response from the service server while being connected to a service server of a specific service among the multi-domain services,
Requesting the host service system to start a single lazy authentication for the specific service,
Issuing the single authentication token or a new single authentication token from the host service system, and
Transmitting a single authentication request including a token issued for the specific service to the authentication server of the specific service, and setting an authentication cookie for the specific service issued from the authentication server of the specific service
Further comprising, a single authentication method.
제11항에서,
상기 느린 단일 인증 시작을 요청하는 단계는
상기 로그인 토큰을 JSONP로 전달함으로써 상기 느린 단일 인증 시작을 요청하는, 단일 인증 방법.
In clause 11,
The step of requesting the start of the slow single authentication
A single authentication method for requesting the start of the slow single authentication by passing the login token to JSONP.
제11항에서,
상기 느린 단일 인증 시작을 요청하는 단계는
상기 특정 서비스의 서비스 페이지에서 상기 주관 서비스 시스템의 단일 인증 로그인 페이지로 이동(redirect)한 후, 상기 로그인 토큰을 상기 주관 서비스 시스템으로 전달함으로써 상기 느린 단일 인증 시작을 요청하는, 단일 인증 방법.
In clause 11,
The step of requesting the start of the slow single authentication
After redirecting from the service page of the specific service to the single authentication login page of the host service system, the single authentication method is requested to start the slow single authentication by passing the login token to the host service system.
제13항에서,
상기 느린 단일 인증 시작을 요청하는 단계는
상기 로그인 토큰을 JSONP로 전달할 수 없는 경우, 상기 특정 서비스의 서비스 페이지에서 상기 주관 서비스 시스템의 단일 인증 로그인 페이지로 이동(redirect)한 후, 상기 로그인 토큰을 상기 주관 서비스 시스템으로 전달함으로써 상기 느린 단일 인증 시작을 요청하는, 단일 인증 방법.
In claim 13,
The step of requesting the start of the slow single authentication
When the login token cannot be delivered to JSONP, the slow single authentication is performed by redirecting from the service page of the specific service to the single authentication login page of the host service system, and then passing the login token to the host service system. A single authentication method that asks for initiation.
KR1020190077914A 2018-06-29 2019-06-28 Single-sign-on method and system for multi-domain services KR102232763B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180075238 2018-06-29
KR20180075238 2018-06-29

Publications (2)

Publication Number Publication Date
KR20200002680A KR20200002680A (en) 2020-01-08
KR102232763B1 true KR102232763B1 (en) 2021-03-26

Family

ID=69154339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190077914A KR102232763B1 (en) 2018-06-29 2019-06-28 Single-sign-on method and system for multi-domain services

Country Status (1)

Country Link
KR (1) KR102232763B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102146940B1 (en) * 2020-03-16 2020-08-24 주식회사 스태비 Method for verifying fogery of token
CN113312571B (en) * 2021-05-12 2022-04-26 武汉联影医疗科技有限公司 Page management method and device, computer equipment and storage medium
KR102449740B1 (en) * 2022-07-01 2022-10-04 주식회사 악어디지털 E-mail processing method and e-mail processing apparatus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040053720A (en) * 2003-01-13 2004-06-24 이창화 Method and system for processing user authentification to multiple webservers
KR100953092B1 (en) * 2007-11-06 2010-04-19 한국전자통신연구원 Method and system for serving single sign on
KR20100040413A (en) * 2008-10-10 2010-04-20 주식회사 케이티 Method for authenticating single sign on id supporting openid
KR102244523B1 (en) * 2014-03-26 2021-04-27 에스케이플래닛 주식회사 System and method for user certification in using web service

Also Published As

Publication number Publication date
KR20200002680A (en) 2020-01-08

Similar Documents

Publication Publication Date Title
US7827318B2 (en) User enrollment in an e-community
US11665146B2 (en) Migrating authenticated content towards content consumer
US10887313B2 (en) Systems and methods for controlling sign-on to web applications
JP4782986B2 (en) Single sign-on on the Internet using public key cryptography
US9021570B2 (en) System, control method therefor, service providing apparatus, relay apparatus and computer-readable medium
US8117649B2 (en) Distributed hierarchical identity management
KR102232763B1 (en) Single-sign-on method and system for multi-domain services
US20100049790A1 (en) Virtual Identity System and Method for Web Services
CN104378376A (en) SOA-based single-point login method, authentication server and browser
US9413751B2 (en) Cooperation system, cooperation method thereof, information processing system, and storage medium
US9916308B2 (en) Information processing system, document managing server, document managing method, and storage medium
CN110753045A (en) Single sign-on method between different domains
JP2005346570A (en) Authentication system, authentication method and computer program
CA2431311C (en) Distributed hierarchical identity management
JP2000106552A (en) Authentication method
CN111245791B (en) Single sign-on method for realizing management and IT service through reverse proxy
CN103069741A (en) Credential authentication method and single sign-on server
CN113411324B (en) Method and system for realizing login authentication based on CAS and third-party server
CN101969426A (en) Distributed user authentication system and method
CA2458257A1 (en) Distributed hierarchical identity management
JP2018037025A (en) Program, authentication system, and authentication cooperative system
US10623396B2 (en) System and method for controlling system
JP2005346571A (en) Authentication system and authentication method
JP2015191508A (en) Single sign-on system and single sign-on method
JP2005293088A (en) Authentication system and method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant