KR102210429B1 - Container cluster system for authentication based on blockchain - Google Patents

Container cluster system for authentication based on blockchain Download PDF

Info

Publication number
KR102210429B1
KR102210429B1 KR1020190050894A KR20190050894A KR102210429B1 KR 102210429 B1 KR102210429 B1 KR 102210429B1 KR 1020190050894 A KR1020190050894 A KR 1020190050894A KR 20190050894 A KR20190050894 A KR 20190050894A KR 102210429 B1 KR102210429 B1 KR 102210429B1
Authority
KR
South Korea
Prior art keywords
authentication
user
proxy
blockchain
master
Prior art date
Application number
KR1020190050894A
Other languages
Korean (ko)
Other versions
KR20200126794A (en
Inventor
김영종
김명호
장성일
조한주
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Priority to KR1020190050894A priority Critical patent/KR102210429B1/en
Publication of KR20200126794A publication Critical patent/KR20200126794A/en
Application granted granted Critical
Publication of KR102210429B1 publication Critical patent/KR102210429B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

블록체인 기반의 인증을 위한 컨테이너 클러스터 시스템이 개시된다. 일 실시예에 따르면, 마스터는 사용자로부터 로그인 정보를 포함하는 로그인 요청을 수신하고, 로그인 요청에 응답하여 사용자의 인증을 위한 인증 토큰을 사용자에게 제공하는 로그인 처리부를 포함하고, 노드들 중 사용자에게 할당된 팟을 보유한 제1 노드는 사용자로부터 인증 토큰을 수신하는 인증 프록시; 및 인증 프록시로부터 인증 토큰을 전달받아 사용자에 관한 인증을 처리하고, 인증 프록시를 통해 사용자에게 인증 처리 결과를 전송하는 인증 처리부를 포함한다.A container cluster system for blockchain-based authentication is launched. According to an embodiment, the master includes a login processing unit that receives a login request including login information from the user and provides an authentication token for user authentication to the user in response to the login request, and allocates it to a user among nodes. The first node holding the pod may include an authentication proxy for receiving an authentication token from a user; And an authentication processing unit that receives an authentication token from the authentication proxy, processes authentication for the user, and transmits an authentication processing result to the user through the authentication proxy.

Description

블록체인 기반의 인증을 위한 컨테이너 클러스터 시스템{CONTAINER CLUSTER SYSTEM FOR AUTHENTICATION BASED ON BLOCKCHAIN}Container cluster system for blockchain-based authentication {CONTAINER CLUSTER SYSTEM FOR AUTHENTICATION BASED ON BLOCKCHAIN}

아래 실시예들은 블록체인 기반의 인증을 위한 컨테이너 클러스터 시스템에 관한 것이다.The following embodiments relate to a container cluster system for blockchain-based authentication.

본 발명은 과학기술정보통신부 및 정보통신기획평가원의 SW중심대학사업의 연구결과로 개발된 결과물이다(2018-0-00209-001).The present invention is a result developed as a result of the research of the SW-centered university project of the Ministry of Science, ICT and ICT and ICT (2018-0-00209-001).

본 발명은 과학기술정보통신부 및 정보통신기획평가원의 대학ICT연구센터지원사업의 연구결과로 개발된 결과물이다(IITP-2018-2018-0-01419).The present invention is a result developed as a research result of the university ICT research center support project of the Ministry of Science and ICT and the Information Communication Planning and Evaluation Institute (IITP-2018-2018-0-01419).

기존 컨테이너 클러스터의 구조는 마스터와 노드를 가지고 있는 분산 구조이다. 개발자나 운영자는 개발 및 관리를 위해 각 마스터 혹은 노드에 대해 접근 및 수정을 해야 하는데, 이에 대한 권한 허가 및 인증은 마스터의 API(application programming interface) 서버에서 이뤄진다. 기존 API 서버 인증 방식은 중앙 집중형 구조로써, API 서버 인증 요청이 수용량보다 증가하면 해결할 수 있는 일반적인 방법은 API 서버의 성능, 즉 마스터의 컴퓨팅 성능을 증대시키는 것이다. 하지만 이 방법은 서비스를 일시적으로 중단해야할 뿐만 아니라, 서버 성능 증대에 하드웨어적인 한계가 존재할 수 있다. 또한 인증과 관련된 기능이 API 서버에 종속적이기 때문에, 인증 요청이 많아져 인증에 지연이 발생되면 전체 컨테이너 클러스터에 영향을 줄 수 있다.The structure of the existing container cluster is a distributed structure with masters and nodes. Developers or operators need to access and modify each master or node for development and management, and authorization and authentication for this is done in the master's application programming interface (API) server. The existing API server authentication method is a centralized structure, and a general method that can be solved when the API server authentication request increases beyond the capacity is to increase the performance of the API server, that is, the computing performance of the master. However, this method not only has to temporarily stop the service, but also may have a hardware limitation in increasing server performance. In addition, since authentication-related functions are dependent on the API server, if authentication is delayed due to a large number of authentication requests, the entire container cluster may be affected.

일 실시예에 따르면, 마스터 및 노드들로 구성된 컨테이너 클러스터 시스템에 있어서, 상기 마스터는 사용자로부터 로그인 정보를 포함하는 로그인 요청을 수신하고, 상기 로그인 요청에 응답하여 상기 사용자의 인증을 위한 인증 토큰을 상기 사용자에게 제공하는 로그인 처리부를 포함하고, 상기 노드들 중 상기 사용자에게 할당된 팟을 보유한 제1 노드는 상기 사용자로부터 상기 인증 토큰을 수신하는 인증 프록시; 및 상기 인증 프록시로부터 상기 인증 토큰을 전달받아 상기 사용자에 관한 인증을 처리하고, 상기 인증 프록시를 통해 상기 사용자에게 인증 처리 결과를 전송하는 인증 처리부를 포함한다.According to an embodiment, in a container cluster system composed of a master and nodes, the master receives a login request including login information from a user, and receives an authentication token for authentication of the user in response to the login request. A first node including a login processing unit providing a user with a pod allocated to the user among the nodes includes: an authentication proxy for receiving the authentication token from the user; And an authentication processing unit that receives the authentication token from the authentication proxy, processes authentication for the user, and transmits an authentication processing result to the user through the authentication proxy.

상기 인증 처리부는 각 사용자의 인증 정보 및 인증 기록을 저장하는 블록체인 기반의 분산 원장을 이용하여 상기 인증 토큰에 기초한 상기 사용자에 관한 인증을 처리할 수 있다. 상기 분산 원장은 상기 마스터 및 상기 노드들 각각에 동기화되어 저장될 수 있다. 상기 블록체인은 상기 인증 프록시를 포함하는 제한된 대상에게만 액세스를 허용하는 프라이빗 블록체인일 수 있다. 상기 프라이빗 블록체인은 비잔틴 장애를 허용하고, 적어도 4개의 구성 노드들에 의한 합의에 기초하여 블록 내 데이터를 확정하는 PBFT(practical byzantine fault tolerance) 방식에 기반할 수 있다.The authentication processing unit may process authentication for the user based on the authentication token using a blockchain-based distributed ledger that stores authentication information and authentication records of each user. The distributed ledger may be stored in synchronization with each of the master and the nodes. The blockchain may be a private blockchain that allows access only to restricted targets including the authentication proxy. The private blockchain may be based on a Practical Byzantine Fault Tolerance (PBFT) method that allows Byzantine failure and determines data in a block based on consensus by at least four constituent nodes.

상기 사용자의 서비스 가입에 대응하여 상기 사용자에게 상기 인증 프록시의 네트워크 주소가 제공될 수 있고, 상기 사용자는 상기 인증 프록시의 상기 네트워크 주소를 통해 상기 인증 프록시에 액세스할 수 있다. 상기 인증 프록시 및 상기 인증 처리부에 의해 상기 마스터의 인증 처리가 분산화될 수 있다.In response to the user's service subscription, the user may be provided with a network address of the authentication proxy, and the user may access the authentication proxy through the network address of the authentication proxy. The authentication process of the master may be distributed by the authentication proxy and the authentication processing unit.

일 실시예에 따르면, 마스터 및 노드들로 구성된 컨테이너 클러스터 시스템의 인증 방법은, 상기 마스터의 로그인 처리부에 의해 수행되는, 사용자로부터 로그인 정보를 포함하는 로그인 요청을 수신하고, 상기 사용자의 인증을 위한 인증 토큰을 상기 사용자에게 제공하는 단계; 상기 노드들 중 상기 사용자에게 할당된 팟을 보유한 제1 노드의 인증 프록시에 의해 수행되는, 상기 사용자로부터 상기 인증 토큰을 수신하는 단계; 및 상기 제1 노드의 인증 처리부에 의해 수행되는, 상기 인증 프록시로부터 상기 인증 토큰을 전달받아 상기 사용자에 관한 인증을 처리하고, 상기 인증 프록시를 통해 상기 사용자에게 인증 처리 결과를 전송하는 단계를 포함한다.According to an embodiment, an authentication method of a container cluster system composed of a master and nodes receives a login request including login information from a user, performed by the login processing unit of the master, and authentication for authentication of the user. Providing a token to the user; Receiving the authentication token from the user, performed by an authentication proxy of a first node that has a pod assigned to the user among the nodes; And receiving the authentication token from the authentication proxy performed by the authentication processing unit of the first node, processing authentication for the user, and transmitting an authentication processing result to the user through the authentication proxy. .

도 1은 일 실시예에 따른 컨테이너 클러스터 시스템의 구조를 나타낸 도면.
도 2는 일 실시예에 따른 컨테이너 클러스터 시스템의 인증 구조를 나타낸 도면.
도 3은 일 실시예에 따른 중앙 집중형 인증 방식의 컨테이너 클러스터 시스템을 나타낸 도면.
도 4는 일 실시예에 따른 분산형 인증 방식의 컨테이너 클러스터 시스템을 나타낸 도면.
도 5는 일 실시예에 따른 컨테이너 클러스터 시스템의 인증 방법을 나타낸 도면.
1 is a view showing the structure of a container cluster system according to an embodiment.
2 is a diagram showing an authentication structure of a container cluster system according to an embodiment.
3 is a view showing a container cluster system of a centralized authentication method according to an embodiment.
4 is a diagram showing a container cluster system of a distributed authentication method according to an embodiment.
5 is a diagram showing an authentication method of a container cluster system according to an embodiment.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are exemplified only for the purpose of describing the embodiments according to the concept of the present invention, and embodiments according to the concept of the present invention They may be implemented in various forms and are not limited to the embodiments described herein.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention can apply various changes and have various forms, the embodiments will be illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes changes, equivalents, or substitutes included in the spirit and scope of the present invention.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but the elements should not be limited by the terms. The above terms are only for the purpose of distinguishing one component from other components, for example, without departing from the scope of rights according to the concept of the present invention, the first component may be named as the second component, Similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.When a component is referred to as being “connected” or “connected” to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being “directly connected” or “directly connected” to another component, it should be understood that there is no other component in the middle. Expressions that describe the relationship between components, for example, “between” and “just between” or “directly adjacent to” should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present specification are only used to describe specific embodiments and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate that the specified features, numbers, steps, actions, components, parts, or combinations thereof exist, but one or more other features or numbers, It is to be understood that the presence or addition of steps, actions, components, parts or combinations thereof does not preclude the possibility of preliminary exclusion.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this specification. Does not.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. The same reference numerals in each drawing indicate the same members.

도 1은 일 실시예에 따른 컨테이너 클러스터 시스템의 구조를 나타낸 도면이다. 도 1을 참조하면, 컨테이너 클러스터 시스템(100)은 마스터(110) 및 노드(120)를 포함하는 적어도 하나의 노드를 포함한다. 컨테이너 클러스터 시스템(100)은 쿠버네티스(kubernetes)에 기반할 수 있다. 노드(120)는 팟(pod, 121)을 포함하며, 이와 같이 각 노드는 적어도 하나의 팟을 포함할 수 있다. 이하, 컨테이너 클러스터 시스템(100)을 마스터(110), 노드(120), 및 팟(121)을 기준으로 설명하지만, 아래의 설명은 다른 노드 및 다른 팟을 포함하는 컨테이너 클러스터 시스템(100)의 각 구성에도 적용될 수 있다.1 is a diagram showing the structure of a container cluster system according to an embodiment. Referring to FIG. 1, the container cluster system 100 includes at least one node including a master 110 and a node 120. The container cluster system 100 may be based on Kubernetes. The node 120 includes a pod 121, and as such, each node may include at least one pod. Hereinafter, the container cluster system 100 will be described on the basis of the master 110, the node 120, and the pod 121, but the following description is provided for each of the container cluster system 100 including other nodes and different pods. It can also be applied to the composition.

마스터(110)는 클러스터 전체를 관리하는 컨트롤러 역할을 한다. 마스터(110)는 어플리케이션을 스케줄링하거나, 어플리케이션의 항상성을 유지하거나, 어플리케이션을 스케일링하고, 새로운 변경 사항을 순서대로 반영하는 것과 같은 클러스터 내 활동을 조율할 수 있다.The master 110 serves as a controller that manages the entire cluster. The master 110 may coordinate activities within the cluster, such as scheduling applications, maintaining application homeostasis, scaling applications, and reflecting new changes in order.

노드(120)는 컨테이너가 배포되는 머신(가상 머신 혹은 물리적인 서버)이다. 노드(120)는 어플리케이션을 구동하는 작업자라고 볼 수 있다. 노드(120)에는 쿠버렛(kuberlet)이라는 에이전트가 설치될 수 있고, 마스터(110)는 이를 통해 노드(120)를 관리할 수 있다. 노드(120)는 컨테이너의 운영을 담당하는 도커(docker)나 krt와 같은 툴을 가질 수도 있다.The node 120 is a machine (virtual machine or physical server) on which containers are deployed. Node 120 can be viewed as a worker who drives the application. An agent called kuberlet may be installed in the node 120, and the master 110 may manage the node 120 through this. The node 120 may have a tool such as a docker or krt in charge of operating a container.

컨테이너 클러스터의 특징 중 하나는 컨테이너를 개별적으로 하나씩 배포하는 것이 아니라 팟(121) 단위로 배포하는 것인데, 팟(121)은 하나 이상의 컨테이너를 포함하는 컨테이터 클러스터의 기본 배포 단위이다. 팟(121)은 컨테이너 클러스터 시스템(100)의 서비스를 이용하는 각 사용자에게 할당될 수 있다. 예를 들어, 사용자와 팟(121)은 일대일로 매핑될 수 있다.One of the characteristics of the container cluster is that containers are not individually distributed one by one, but are distributed in units of pods 121, which is a basic distribution unit of a container cluster including one or more containers. The pod 121 may be allocated to each user who uses the service of the container cluster system 100. For example, the user and the pod 121 may be mapped on a one-to-one basis.

또한, 컨테이너 클러스터의 구축은 오픈스택(openstack)을 기반으로 이뤄질 수 있다. 오픈스택은 KVM 등의 VM(Virtual Machine) 기반의 가상화 방식을 주로 사용하는데, 이를 컨테이너 기반으로 변경함으로써 인스턴스 생성에 소요되는 자원을 줄일 수 있다.In addition, the construction of a container cluster can be performed based on openstack. OpenStack mainly uses VM (Virtual Machine)-based virtualization methods such as KVM, and by changing this to container-based, the resources required for instance creation can be reduced.

도 2는 일 실시예에 따른 컨테이너 클러스터 시스템의 인증 구조를 나타낸 도면이다. 개발자나 운영자는 개발 및 관리를 위해 마스터 혹은 노드에 대해 접근 및 수정을 해야 하는데, 기존 구조에 따르면 이에 대한 권한 허가 및 인증이 마스터의 API 서버에서 이루어진다. 기존의 중앙 집중형 인증 방식에 따르면 마스터 내 API(application programming interface) 서버에 인증 트래픽이 집중될 수 있다. 실시예에 따르면 인증 처리를 위해 각 노드가 마스터 내 API 서버를 보완하는 분산형 인증 방식이 수행될 수 있고, 이에 따라 API 서버의 인증 트래픽을 크게 감소시킬 수 있다. 이하, 도 2를 참조하여 실시예에 따른 분산형 인증 방식을 설명한다.2 is a diagram showing an authentication structure of a container cluster system according to an embodiment. Developers or operators need to access and modify the master or node for development and management, but according to the existing structure, authorization and authentication for this is done in the master's API server. According to the existing centralized authentication method, authentication traffic may be concentrated on an application programming interface (API) server in the master. According to an embodiment, a distributed authentication method in which each node complements an API server in a master may be performed for authentication processing, and accordingly, authentication traffic of the API server may be greatly reduced. Hereinafter, a distributed authentication method according to an embodiment will be described with reference to FIG. 2.

도 2를 참조하면, 사용자(210)는 마스터(221) 및 제1 노드(225)를 이용하여 컨테이너 클러스터 시스템(220)에 의해 제공되는 서비스를 이용하기 위한 인증을 수행할 수 있다. 사용자(210)는 개발자나 운영자를 포함할 수 있다. 본 명세서에서 사용자(210)는 사용자 단말이나 사용자 서버와 같이 실제 사용자에 의해 사용되는 임의의 디바이스를 나타낼 수 있다.Referring to FIG. 2, the user 210 may perform authentication for using a service provided by the container cluster system 220 using the master 221 and the first node 225. User 210 may include a developer or an operator. In this specification, the user 210 may represent any device used by an actual user, such as a user terminal or a user server.

마스터(221)는 로그인 처리부(222)를 포함할 수 있다. 예를 들어, 로그인 처리부(222)는 마스터(221)의 API 서버의 identity provider에 해당할 수 있다. 로그인 처리부(222)는 사용자(210)로부터 로그인 정보를 포함하는 로그인 요청을 수신하고, 로그인 요청에 응답하여 사용자(210)의 인증을 위한 인증 토큰을 사용자(210)에게 제공할 수 있다. 로그인 정보는 ID와 같은 식별 정보, 패스워드 등을 포함할 수 있다. 로그인 처리부(222)는 로그인 요청 시 사용자(210)가 제공한 로그인 정보 및 사용자(210)가 서비스 가입 시 제공한 계정 정보를 비교하여 사용자(210)의 로그인 요청을 처리할 수 있다.The master 221 may include a login processing unit 222. For example, the login processing unit 222 may correspond to the identity provider of the API server of the master 221. The login processing unit 222 may receive a login request including login information from the user 210 and provide an authentication token for authentication of the user 210 to the user 210 in response to the login request. Login information may include identification information such as ID, password, and the like. The login processing unit 222 may process the login request of the user 210 by comparing login information provided by the user 210 when a login request is made and account information provided by the user 210 when signing up for a service.

로그인에 성공 시, 로그인 처리부(222)는 사용자(210)에게 서비스 인증을 위한 토큰들을 제공할 수 있다. 예를 들어, 토큰들은 인증 토큰, ID 토큰, 리프레시 토큰 등을 포함할 수 있다. 인증 토큰은 사용자(210)를 위한 인증 정보에 대응할 수 있고, ID 토큰은 사용자(210)를 식별하기 위한 식별 정보에 대응할 수 있다. 인증 토큰은 일정한 만료 기한을 가질 수 있는데, 리프레시 토큰은 이러한 인증 토큰의 만료에 따라 발급될 수 있다.Upon successful login, the login processing unit 222 may provide tokens for service authentication to the user 210. For example, tokens may include an authentication token, an ID token, a refresh token, and the like. The authentication token may correspond to authentication information for the user 210, and the ID token may correspond to identification information for identifying the user 210. Authentication tokens may have a certain expiration date, and refresh tokens may be issued upon expiration of such authentication tokens.

토큰이 발급되면, 사용자(210)는 제1 노드(225)의 인증 프록시(226) 및 인증 처리부(227)를 통해 서비스를 이용하기 위한 인증을 수행할 수 있다. 예를 들어, 인증 프록시(226)는 kube-proxy에 대응할 수 있고, 인증 처리부(227)는 catLedger에 대응할 수 있다. 본 명세서에서 로그인은 서비스로의 접속을 위한 것이고, 인증은 서비스를 이용하기 위한 것이다. 즉, 양자는 서로 구분되는 개념에 해당한다. 예를 들어, 마스터 혹은 노드에 대한 접근 및 수정 작업 등을 위해 로그인과는 별도의 사용자 인증이 요구된다.When a token is issued, the user 210 may perform authentication for using a service through the authentication proxy 226 of the first node 225 and the authentication processing unit 227. For example, the authentication proxy 226 may correspond to kube-proxy, and the authentication processing unit 227 may correspond to catLedger. In this specification, login is for access to a service, and authentication is for using a service. In other words, both correspond to distinct concepts. For example, user authentication separate from login is required to access and modify the master or node.

사용자(210)가 서비스에 가입 시 사용자(210)에게는 노드들 중 어느 하나에 존재하는 팟이 할당될 수 있고, 사용자(210)는 인증을 통해 해당 팟에 액세스하여 팟에 관한 수정 등의 처리를 수행할 수 있다. 컨테이너 클러스터 시스템(220)은 제1 노드(225) 이외에 다수의 노드들을 포함할 수 있으며, 아래에서는 설명의 편의를 위해 제1 노드(225)의 구조 및 동작이 설명되지만, 아래의 설명은 다른 노드들에도 적용될 수 있다. 즉, 각 노드는 인증 프록시(226) 및 인증 처리부(227)의 대응 구성들을 포함할 수 있고, 각 대응 구성들을 통해 자신과 연계된 사용자를 위한 인증을 처리할 수 있다.When the user 210 subscribes to the service, the user 210 may be assigned a pod that exists in any one of the nodes, and the user 210 accesses the pod through authentication and processes such as modification of the pod. Can be done. The container cluster system 220 may include a plurality of nodes in addition to the first node 225, and the structure and operation of the first node 225 are described below for convenience of description, but the following descriptions are other nodes. It can also be applied to fields. That is, each node may include the corresponding configurations of the authentication proxy 226 and the authentication processing unit 227, and may process authentication for a user associated with it through each of the corresponding configurations.

제1 노드(225)는 이러한 다수의 노드들 중 사용자(210)에게 할당된 팟을 보유한 노드에 대응될 수 있다. 서비스 가입 시 사용자(210)에게 제1 노드(225)의 인증 프록시(226)에 액세스하기 위한 인증 프록시(226)의 네트워크 주소가 제공될 수 있다. 예를 들어, 네트워크 주소는 IP 정보 또는 포트 정보를 포함할 수 있다. 사용자(210)는 인증 절차를 수행하기 위해 인증 프록시(226)의 네트워크 주소를 통해 인증 프록시(226)에 액세스할 수 있다.The first node 225 may correspond to a node having a pod allocated to the user 210 among the plurality of nodes. Upon service subscription, the user 210 may be provided with the network address of the authentication proxy 226 for accessing the authentication proxy 226 of the first node 225. For example, the network address may include IP information or port information. The user 210 may access the authentication proxy 226 through the network address of the authentication proxy 226 to perform the authentication procedure.

인증 프록시(226)는 사용자(210)의 액세스에 따라 사용자(210)로부터 인증 토큰을 수신하여 인증 처리부(227)에 전달할 수 있다. 인증 처리부(227)는 인증 프록시(226)로부터 인증 토큰을 전달받아 사용자(210)에 관한 인증을 처리하고, 인증 프록시(226)를 통해 사용자(210)에게 인증 처리 결과를 전송할 수 있다.The authentication proxy 226 may receive an authentication token from the user 210 according to the access of the user 210 and transmit it to the authentication processing unit 227. The authentication processing unit 227 may receive an authentication token from the authentication proxy 226 to process authentication for the user 210, and transmit the authentication processing result to the user 210 through the authentication proxy 226.

일 실시예에 따르면, 인증을 위해 블록체인이 이용될 수 있다. 블록체인은 크게 퍼블릭 블록체인(public blockchain)과 프라이빗 블록체인(private blockchain)이 존재한다. 블록체인의 기본 원리는 관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P(peer to peer) 방식 기반으로 생성된 체인 형태의 분산 데이터 저장 환경에 저장되어, 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 데이터 보호 기술이다.According to an embodiment, a blockchain may be used for authentication. In blockchain, there are large public blockchains and private blockchains. The basic principle of the blockchain is that small-scale data called'blocks' as the managed data are stored in a distributed data storage environment in the form of a chain created based on a peer-to-peer (P2P) method, so that no one can arbitrarily modify it, and anyone can change the result. It is a data protection technology based on distributed computing technology that allows users to browse.

그러나 누구나 변경의 결과를 열람할 수 있다는 것에 대한 트레이드 오프로 트랜잭션 처리 속도에 큰 제약이 생긴다. 퍼블릭 블록체인은 PoW(Proof of Work), PoS(Proof of Stake) 등의 합의 알고리즘을 써야 누구라도 임의로 수정할 수 없다는 것을 보증할 수 있다. 따라서 합의에 시간이 걸리게 되고, 이에 따라 시간당 트랜잭션 처리 속도(transaction per second, TPS)가 급격히 낮아진다.However, the trade-off that anyone can view the result of the change places a big limitation on the transaction processing speed. Public blockchain can guarantee that no one can arbitrarily modify it only by using consensus algorithms such as PoW (Proof of Work) and PoS (Proof of Stake). Therefore, it takes time for consensus, and accordingly, the transaction per second (TPS) is drastically lowered.

프라이빗 블록체인은 합의에 아무나 참여할 수 없는 대신에 허용된 일부 기관 및 유저만이 합의에 참여할 수 있도록 설계되었다. 합의에 참여하는 피어가 한정되면서 합의 알고리즘들 중 빠른 처리 속도를 가진 알고리즘을 블록체인 시스템에 적용할 수 있게 되었다.The private blockchain is designed so that only a few allowed institutions and users can participate in the consensus instead of being able to participate in consensus. As the number of peers participating in consensus is limited, among the consensus algorithms, an algorithm with a high processing speed can be applied to the blockchain system.

대표적인 프라이빗 블록체인 시스템으로는 Hyperledger Fabric, Tendermint, Openchain 등이 있다. 이 중 Hyperledger Fabric은 PBFT(Practical Byzantine Fault Tolerance) 방식 등의 알고리즘을 도입하여 기존 비트코인에서의 7 TPS, 이더리움의 20TPS를, 1000 TPS 수준까지 높이기 위한 블록체인 시스템이다.Representative private blockchain systems include Hyperledger Fabric, Tendermint, and Openchain. Among them, Hyperledger Fabric is a blockchain system that introduces algorithms such as PBFT (Practical Byzantine Fault Tolerance) method to increase 7 TPS of existing Bitcoin, 20 TPS of Ethereum, and 1000 TPS.

인증 처리부(227)는 각 사용자의 인증 정보 및 인증 기록을 저장하는 블록체인 기반의 분산 원장을 이용하여 인증 토큰에 기초한 사용자(210)에 관한 인증을 처리할 수 있다. 분산 원장은 마스터(221) 및 제1 노드(225)를 비롯한 각 노드에 블록체인 기반으로 동기화되어 저장될 수 있다. 예를 들어, 분산 원장은 블록체인의 블록에 저장될 수 있다. 일 실시예에 따르면, 분산 원장에는 각 사용자의 인증 토큰 리스트가 저장될 수 있으며, 인증 처리부(227)는 인증 프록시(226)로부터 전달받은 인증 토큰과 분산 원장의 인증 토큰 리스트를 비교하여 사용자(210)에 관한 인증을 처리할 수 있다.The authentication processing unit 227 may process authentication for the user 210 based on the authentication token using a blockchain-based distributed ledger that stores authentication information and authentication records of each user. The distributed ledger may be synchronized and stored in each node, including the master 221 and the first node 225, based on a blockchain. For example, a distributed ledger can be stored in blocks on a blockchain. According to an embodiment, a list of authentication tokens of each user may be stored in the distributed ledger, and the authentication processing unit 227 compares the authentication token received from the authentication proxy 226 with the authentication token list of the distributed ledger, and the user 210 ) Can be processed.

일 실시예에 따르면, 인증 처리부(227)에 의해 이용되는 블록체인은 인증 프록시(226)를 포함하는 제한된 대상에게만 액세스를 허용하는 프라이빗 블록체인일 수 있다. 인증 프록시(226)는 인증된 제1 노드(225)의 구성이므로, 프라이빗 블록체인으로의 접근이 허용될 수 있다. 이와 같이 각 노드의 인증 프록시나 각 사용자는 프라이빗 블록체인으로의 액세스를 위한 권한을 보유할 수 있다.According to an embodiment, the blockchain used by the authentication processing unit 227 may be a private blockchain that allows access only to restricted targets including the authentication proxy 226. Since the authentication proxy 226 is a configuration of the authenticated first node 225, access to the private blockchain may be allowed. As such, each node's authentication proxy or each user can have the authority to access the private blockchain.

일 실시예에 따르면, 인증 처리부(227)에 의해 이용되는 프라이빗 블록체인은 PBFT 방식에 기반할 수 있다. 블록체인의 블록에 데이터 변경이 발생하면(예: 새로운 사용자의 가입에 따라 해당 사용자의 인증 토큰에 관한 정보가 블록에 추가되는 것) 데이터 변경에 관한 합의가 수행될 수 있는데, PBFT 방식의 경우 데이터 변경 시 비잔틴 장애를 허용하고 적어도 4개의 구성 노드들에 의한 투표에 기초하여 블록 내 데이터를 확정할 수 있다.According to an embodiment, the private blockchain used by the authentication processing unit 227 may be based on the PBFT method. When a data change occurs in a block of the blockchain (e.g., information about the user's authentication token is added to the block according to a new user's subscription), consensus on data change can be carried out. When changed, it is possible to allow Byzantine failure and determine the data in the block based on voting by at least 4 constituent nodes.

예를 들어, 새로운 사용자의 가입에 따라 해당 사용자의 인증 정보가 추가되어 마스터(221)의 블록 데이터가 변경되면, 마스터(211)의 블록 데이터를 기준으로 각 노드의 블록 데이터가 동기화될 수 있다. 동기화가 완료되면 각 노드는 동기화가 완료되었음을 다른 노드들에게 알릴 수 있고, 전체 노드 중 일정 수나 일정 비율(예: 전체 노드의 2/3 이상)이 동기화된 데이터의 유효성에 관한 합의에 이르면, 해당 블록 데이터가 유효한 것으로 처리될 수 있다.For example, when the block data of the master 221 is changed by adding authentication information of the corresponding user according to the subscription of a new user, the block data of each node may be synchronized based on the block data of the master 211. When synchronization is complete, each node can notify other nodes that synchronization is complete, and when a certain number or a certain percentage of all nodes (e.g., more than 2/3 of all nodes) reach consensus on the validity of synchronized data, the corresponding Block data can be treated as valid.

상술된 것과 같이, 인증 프록시(226) 및 인증 처리부(227)에 의해 제1 노드(225)에서 사용자(210)의 인증 처리 중 적어도 일부가 수행될 수 있다. 즉, 이러한 인증 프록시(226) 및 인증 처리부(227)의 동작을 통해 마스터(221)의 인증 처리가 분산화될 수 있다.As described above, at least some of the authentication processing of the user 210 may be performed in the first node 225 by the authentication proxy 226 and the authentication processing unit 227. That is, through the operation of the authentication proxy 226 and the authentication processing unit 227, the authentication process of the master 221 may be distributed.

한편, 마스터(221), 로그인 처리부(222), 제1 노드(225), 인증 프록시(226), 및 인증 처리부(227)와 같이 본 명세서에 기술된 각 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다. 다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.On the other hand, each module described in this specification, such as the master 221, the login processing unit 222, the first node 225, the authentication proxy 226, and the authentication processing unit 227 is described in the present specification. It may mean hardware capable of performing functions and operations according to each name, computer program code capable of performing specific functions and operations, or computer program code capable of performing specific functions and operations It may mean an electronic recording medium in which is mounted, for example, a processor or a microprocessor. In other words, the module may mean a functional and/or structural combination of hardware for performing the technical idea of the present invention and/or software for driving the hardware.

도 3은 일 실시예에 따른 중앙 집중형 인증 방식의 컨테이너 클러스터 시스템을 나타낸 도면이고, 도 4는 일 실시예에 따른 분산형 인증 방식의 컨테이너 클러스터 시스템을 나타낸 도면이다. 도 3 및 도 4를 참조하면, 중앙 집중형 인증 방식의 컨테이너 클러스터 시스템에 비해 분산형 인증 방식의 컨테이너 클러스터 시스템은 catLedger를 더 포함한다. Kube-proxy는 상술된 인증 프록시에 해당할 수 있고, catLedger는 상술된 인증 처리부에 해당할 수 있다.3 is a diagram showing a container cluster system of a centralized authentication method according to an embodiment, and FIG. 4 is a diagram showing a container cluster system of a distributed authentication method according to an embodiment. 3 and 4, the container cluster system of the distributed authentication method further includes catLedger compared to the container cluster system of the centralized authentication method. Kube-proxy may correspond to the above-described authentication proxy, and catLedger may correspond to the above-described authentication processing unit.

중앙 집중형 인증 방식에 따르면 마스터 내 API 서버에서 사용자 인증이 처리되었으나, 분산형 인증 방식에 따르면 catLedger 및 Kube-proxy를 통해 사용자 인증이 분산되어 처리될 수 있다. 예를 들어, 각 사용자의 인증 정보(예: 인증 토큰)는 블록체인을 통해 마스터 및 노드들 각각에 동기화되어 저장될 수 있다. 마스터 및 노드들 각각의 catLedger는 각 사용자의 인증 정보를 블록 내 분산 원장에 저장하고 동기화할 수 있다. 사용자의 인증 요청이 있을 시, 사용자의 인증 토큰은 해당 사용자의 팟이 속한 노드의 Kube-proxy를 통해 해당 사용자의 팟이 속한 노드의 catLedger에 전달될 수 있고, 해당 catLedger는 블록체인 내 분산 원장을 이용하여 사용자 인증을 수행할 수 있다.According to the centralized authentication method, user authentication was processed by the API server in the master, but according to the distributed authentication method, user authentication may be distributed and processed through catLedger and Kube-proxy. For example, authentication information of each user (eg, authentication token) may be synchronized and stored to each of the master and nodes through the blockchain. The catLedger of each of the master and nodes can store and synchronize each user's authentication information in a distributed ledger within a block. When there is a user's authentication request, the user's authentication token can be delivered to the catLedger of the node to which the user's pod belongs through the Kube-proxy of the node to which the user's pod belongs, and the catLedger is a distributed ledger in the blockchain. User authentication can be performed by using.

도 5는 일 실시예에 따른 컨테이너 클러스터 시스템의 인증 방법을 나타낸 도면이다.5 is a diagram illustrating an authentication method of a container cluster system according to an embodiment.

도 5를 참조하면, 사용자(501)는 단계(510)에서 로그인 정보에 기초하여 로그인 처리부(502)에게 로그인을 요청한다. 로그인 처리부(502)는 마스터 내 API 서버에 존재할 수 있으며, 예를 들어 API 서버 내 identity provider에 해당할 수 있다. 로그인에 성공 시, 로그인 처리부(502)는 단계(520)에서 사용자(501)에게 인증을 위한 토큰들을 전달한다.Referring to FIG. 5, the user 501 requests the login processing unit 502 to log in based on the login information in step 510. The login processing unit 502 may exist in the API server in the master, and may correspond to, for example, an identity provider in the API server. Upon successful login, the login processing unit 502 transfers tokens for authentication to the user 501 in step 520.

사용자(501)는 인증을 위해 단계(530)에서 인증 프록시(503)에 접근하여 인증 프록시(503)에게 인증 토큰을 전송하며, 인증 프록시(503)는 단계(540)에서 인증 처리부(504)에게 인증 토큰을 전달한다. 인증 처리부(504)는 단계(550)에서 사용자(501)를 위한 인증을 처리한다. 인증 처리부(504)는 블록체인 내 인증 토큰 리스트를 이용하여 사용자(501)를 위한 인증을 처리할 수 있다. 인증 프록시(503) 및 인증 처리부(504)는 노드 내에 존재할 수 있으며, 예를 들어 인증 프록시(503)는 노드 내 kube-proxy에 해당할 수 있고, 인증 처리부(504)는 노드 내 catLedger에 해당할 수 있다.The user 501 accesses the authentication proxy 503 in step 530 for authentication and transmits an authentication token to the authentication proxy 503, and the authentication proxy 503 transmits an authentication token to the authentication processing unit 504 in step 540. Pass the authentication token. The authentication processing unit 504 processes authentication for the user 501 in step 550. The authentication processing unit 504 may process authentication for the user 501 using a list of authentication tokens in the blockchain. The authentication proxy 503 and the authentication processing unit 504 may exist in the node, for example, the authentication proxy 503 may correspond to a kube-proxy within a node, and the authentication processing unit 504 may correspond to a catLedger within the node. I can.

인증 처리부(504)는 단계(560)에서 인증 프록시(503)에 인증 결과를 전송할 수 있고, 인증 프록시(503)는 단계(570)에서 사용자(501)에게 인증 결과를 전달할 수 있다. 이와 같은 프로세스를 통해 마스터의 API 서버 이외에 일반 노드들에도 인증에 대한 기능이 쉽게 추가될 수 있다.The authentication processing unit 504 may transmit the authentication result to the authentication proxy 503 in step 560, and the authentication proxy 503 may transmit the authentication result to the user 501 in step 570. Through this process, authentication functions can be easily added to general nodes other than the master's API server.

본 발명의 실시예에 따른 아키텍처를 통해 블록체인 기반의 인증 방식을 도입하게 되면, API 서버를 중앙 집중형 구조가 아닌 분산형 구조로 구현할 수 있다. 따라서 인증 요청이 서버의 수용량보다 많아지면 새로운 노드를 추가하거나 노드들의 성능을 높이는 것으로 해결된다. 이 방법들은 서비스를 일시정지하지 않아도 되는 방법이기 때문에 기존 방식보다 효과적이다.If the blockchain-based authentication method is introduced through the architecture according to the embodiment of the present invention, the API server can be implemented in a distributed structure rather than a centralized structure. Therefore, when the authentication request exceeds the capacity of the server, it is solved by adding a new node or increasing the performance of the nodes. These methods are more effective than the existing methods because they do not have to pause the service.

또한 인증 요청을 마스터의 API 서버에서만 처리하는 것이 아니고 일반 노드들에서도 처리할 수 있는 구조이기 때문에 접속하고자 하는 노드에서 인증을 처리할 수 있다. 따라서 인증 트래픽이 중앙 서버를 거쳤다가 다시 해당 노드로 가지 않아도 된다. 즉, 인증 과정에서 발생하는 추가 트래픽을 줄일 수 있기 때문에, 제안된 아키텍처를 사용하면 네트워크 트래픽 병목 현상 등 인증과정에서 네트워크 지연을 유발하는 요소를 적절히 방지할 수 있다.In addition, since authentication requests are not handled only by the master's API server, but can also be processed by general nodes, the node to be connected can handle authentication. Therefore, authentication traffic does not have to go through the central server and go back to that node. That is, since additional traffic generated during the authentication process can be reduced, the use of the proposed architecture can properly prevent factors that cause network delay in the authentication process, such as a network traffic bottleneck.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments are, for example, a processor, a controller, an Arithmetic Logic Unit (ALU), a digital signal processor, a microcomputer, a Field Programmable Gate Array (FPGA). , PLU (Programmable Logic Unit), a microprocessor, or any other device capable of executing and responding to instructions, it may be implemented using one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

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

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited embodiments and the drawings, various modifications and variations are possible from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the claims to be described later.

Claims (10)

마스터 및 노드들을 포함하는, 쿠버네티스 기반의 컨테이너 클러스터 시스템에 있어서,
상기 마스터는
사용자로부터 로그인 정보를 포함하는 로그인 요청을 수신하고, 상기 로그인 요청에 응답하여 상기 사용자의 인증을 위한 인증 토큰을 상기 사용자에게 제공하는 로그인 처리부
를 포함하고,
상기 노드들 중 상기 사용자에게 할당된 팟을 보유한 제1 노드는
상기 사용자로부터 상기 인증 토큰을 수신하는 인증 프록시; 및
상기 인증 프록시로부터 상기 인증 토큰을 전달받고, 각 사용자의 인증 정보 및 인증 기록을 저장하는 블록체인 기반의 분산 원장을 이용하여 상기 인증 토큰에 기초한 상기 사용자에 관한 인증을 처리하고, 상기 인증 프록시를 통해 상기 사용자에게 인증 처리 결과를 전송하는 인증 처리부
를 포함하고,
상기 분산 원장은 상기 마스터 및 상기 노드들 각각에 동기화되어 저장되며,
상기 블록체인은 상기 인증 프록시를 포함하는 제한된 대상에게만 액세스를 허용하는 프라이빗 블록체인인,
컨테이너 클러스터 시스템.
In the Kubernetes-based container cluster system, including masters and nodes,
The master is
A login processing unit that receives a login request including login information from a user and provides an authentication token for authentication of the user to the user in response to the login request
Including,
Among the nodes, a first node having a pod allocated to the user
An authentication proxy for receiving the authentication token from the user; And
Receives the authentication token from the authentication proxy, processes authentication for the user based on the authentication token using a blockchain-based distributed ledger that stores authentication information and authentication records of each user, and through the authentication proxy An authentication processing unit that transmits an authentication processing result to the user
Including,
The distributed ledger is stored in synchronization with each of the master and the nodes,
The blockchain is a private blockchain that allows access only to restricted targets including the authentication proxy,
Container cluster system.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 프라이빗 블록체인은
비잔틴 장애를 허용하고, 적어도 4개의 구성 노드들에 의한 합의에 기초하여 블록 내 데이터를 확정하는 PBFT(practical byzantine fault tolerance) 방식에 기반하는,
컨테이너 클러스터 시스템.
The method of claim 1,
The above private blockchain is
Based on a PBFT (practical byzantine fault tolerance) method that allows Byzantine failure and determines data in a block based on consensus by at least 4 constituent nodes
Container cluster system.
제1항에 있어서,
상기 인증 프록시 및 상기 인증 처리부에 의해 상기 마스터의 인증 처리가 분산화되는,
컨테이너 클러스터 시스템.
The method of claim 1,
The authentication processing of the master is decentralized by the authentication proxy and the authentication processing unit,
Container cluster system.
제1항에 있어서,
상기 사용자의 서비스 가입에 대응하여 상기 사용자에게 상기 인증 프록시의 네트워크 주소가 제공되고,
상기 사용자는 상기 인증 프록시의 상기 네트워크 주소를 통해 상기 인증 프록시에 액세스하는,
컨테이너 클러스터 시스템.
The method of claim 1,
The network address of the authentication proxy is provided to the user in response to the user's service subscription,
The user accesses the authentication proxy through the network address of the authentication proxy,
Container cluster system.
마스터 및 노드들을 포함하는, 쿠버네티스 기반의 컨테이너 클러스터 시스템의 인증 방법에 있어서,
상기 마스터의 로그인 처리부에 의해 수행되는, 사용자로부터 로그인 정보를 포함하는 로그인 요청을 수신하고, 상기 사용자의 인증을 위한 인증 토큰을 상기 사용자에게 제공하는 단계;
상기 노드들 중 상기 사용자에게 할당된 팟을 보유한 제1 노드의 인증 프록시에 의해 수행되는, 상기 사용자로부터 상기 인증 토큰을 수신하는 단계; 및
상기 제1 노드의 인증 처리부에 의해 수행되는, 상기 인증 프록시로부터 상기 인증 토큰을 전달받고, 각 사용자의 인증 정보 및 인증 기록을 저장하는 블록체인 기반의 분산 원장을 이용하여 상기 인증 토큰에 기초한 상기 사용자에 관한 인증을 처리하고, 상기 인증 프록시를 통해 상기 사용자에게 인증 처리 결과를 전송하는 단계
를 포함하고,
상기 분산 원장은 상기 마스터 및 상기 노드들 각각에 동기화되어 저장되며,
상기 블록체인은 상기 인증 프록시를 포함하는 제한된 대상에게만 액세스를 허용하는 프라이빗 블록체인인,
컨테이너 클러스터 시스템의 인증 방법.
In the authentication method of a container cluster system based on Kubernetes, including a master and nodes,
Receiving a login request including login information from a user, performed by the login processing unit of the master, and providing an authentication token for authentication of the user to the user;
Receiving the authentication token from the user, performed by an authentication proxy of a first node that has a pod assigned to the user among the nodes; And
The user based on the authentication token using a blockchain-based distributed ledger that receives the authentication token from the authentication proxy and stores authentication information and authentication records of each user, performed by the authentication processing unit of the first node Processing authentication related to, and transmitting an authentication processing result to the user through the authentication proxy
Including,
The distributed ledger is stored in synchronization with each of the master and the nodes,
The blockchain is a private blockchain that allows access only to restricted targets including the authentication proxy,
Authentication method for container cluster systems.
삭제delete 삭제delete
KR1020190050894A 2019-04-30 2019-04-30 Container cluster system for authentication based on blockchain KR102210429B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190050894A KR102210429B1 (en) 2019-04-30 2019-04-30 Container cluster system for authentication based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190050894A KR102210429B1 (en) 2019-04-30 2019-04-30 Container cluster system for authentication based on blockchain

Publications (2)

Publication Number Publication Date
KR20200126794A KR20200126794A (en) 2020-11-09
KR102210429B1 true KR102210429B1 (en) 2021-02-01

Family

ID=73429549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190050894A KR102210429B1 (en) 2019-04-30 2019-04-30 Container cluster system for authentication based on blockchain

Country Status (1)

Country Link
KR (1) KR102210429B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230044811A (en) * 2021-09-27 2023-04-04 숭실대학교산학협력단 Integrated clustering system
KR20230060211A (en) * 2021-10-27 2023-05-04 숭실대학교산학협력단 Lightweight KubeEdge configuration method and apparatus for edge computing environment

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022108064A1 (en) * 2020-11-20 2022-05-27 삼성전자주식회사 Electronic device and control method therefor
KR102633046B1 (en) * 2020-12-24 2024-02-02 서울여자대학교 산학협력단 Methods and Apparatus of Cost-effective Real-Time Simulation on Native Cloud Environment
KR102296907B1 (en) * 2021-03-02 2021-09-01 주식회사 에이아이댑스 The method and system for providing cloud service based blockchain
KR102322312B1 (en) * 2021-05-24 2021-11-05 나무기술 주식회사 Container security management system using Kubernetes RBAC
KR102571542B1 (en) 2021-10-27 2023-08-29 한국전력공사 Closed-network blockchain system allowing outsiders to participate and processing method of the work of external participants of there
KR102403992B1 (en) * 2021-10-29 2022-05-31 (주)웰데이타시스템 Container cluster service system using multi-orchestrator
KR102430882B1 (en) * 2021-12-13 2022-08-09 에스지에이솔루션즈 주식회사 Method, apparatus and computer-readable medium for container work load executive control of event stream in cloud
KR20230156590A (en) 2022-05-06 2023-11-14 한국전력공사 Blockchain system with external storage table and data operation method
KR102689921B1 (en) 2022-12-28 2024-07-31 단국대학교 산학협력단 Method and server for single sign on of user in a kubernetes cluster
KR20240140684A (en) 2023-03-17 2024-09-24 한국전력공사 Blockchain System of Recycling Stored Data with Interoperability and Data Operation Method of there

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554004B (en) * 2015-12-24 2018-12-11 北京轻元科技有限公司 The Verification System and method of container service in a kind of mixing cloud computing environment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190041784A (en) * 2017-10-13 2019-04-23 주식회사 포스링크 System and method for controlling distribution synchronization access based on blockchain in multicloud environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554004B (en) * 2015-12-24 2018-12-11 北京轻元科技有限公司 The Verification System and method of container service in a kind of mixing cloud computing environment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230044811A (en) * 2021-09-27 2023-04-04 숭실대학교산학협력단 Integrated clustering system
KR102646287B1 (en) 2021-09-27 2024-03-08 숭실대학교산학협력단 Integrated clustering system
KR20230060211A (en) * 2021-10-27 2023-05-04 숭실대학교산학협력단 Lightweight KubeEdge configuration method and apparatus for edge computing environment
KR102582777B1 (en) 2021-10-27 2023-09-25 숭실대학교산학협력단 Lightweight KubeEdge configuration method and apparatus for edge computing environment

Also Published As

Publication number Publication date
KR20200126794A (en) 2020-11-09

Similar Documents

Publication Publication Date Title
KR102210429B1 (en) Container cluster system for authentication based on blockchain
CN111541785B (en) Block chain data processing method and device based on cloud computing
US11720410B2 (en) Secure service isolation between instances of cloud products using a SaaS model
US9680821B2 (en) Resource access control for virtual machines
US20180367528A1 (en) Seamless Provision of Authentication Credential Data to Cloud-Based Assets on Demand
US11044257B1 (en) One-time access to protected resources
US8832775B2 (en) Techniques for workload spawning
US20190007382A1 (en) Ssh key validation in a hyper-converged computing environment
US9923768B2 (en) Replicating configuration between multiple geographically distributed servers using the rest layer, requiring minimal changes to existing service architecture
EP3777022B1 (en) Distributed access control
US9270703B1 (en) Enhanced control-plane security for network-accessible services
US10318747B1 (en) Block chain based authentication
US11134067B1 (en) Token management in a managed directory service
US9985970B2 (en) Individualized audit log access control for virtual machines
CN115373796A (en) Joint learning with partitioning and dynamic shuffle model updates
US10104163B1 (en) Secure transfer of virtualized resources between entities
US20230092902A1 (en) Progressively validating access tokens
TW202301118A (en) Dynamic microservices allocation mechanism
Kewate et al. A review on AWS-cloud computing technology
US10673827B1 (en) Secure access to user data
US20240004684A1 (en) System and method for exchanging messages between cloud services and software-defined data centers
Dyer et al. Security issues relating to inadequate authentication in MapReduce applications
US10542001B1 (en) Content item instance access control
WO2024006624A1 (en) Isolated runtime environments for securing secrets used to access remote resources from compute instances
US20220329570A1 (en) Two-Way Secure Channels with Certification by One Party

Legal Events

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