KR102181608B1 - 연합 인증 장치 및 그것의 연합 인증 방법 - Google Patents

연합 인증 장치 및 그것의 연합 인증 방법 Download PDF

Info

Publication number
KR102181608B1
KR102181608B1 KR1020200054890A KR20200054890A KR102181608B1 KR 102181608 B1 KR102181608 B1 KR 102181608B1 KR 1020200054890 A KR1020200054890 A KR 1020200054890A KR 20200054890 A KR20200054890 A KR 20200054890A KR 102181608 B1 KR102181608 B1 KR 102181608B1
Authority
KR
South Korea
Prior art keywords
authentication
standard
saml
user
oidc
Prior art date
Application number
KR1020200054890A
Other languages
English (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 KR1020200054890A priority Critical patent/KR102181608B1/ko
Application granted granted Critical
Publication of KR102181608B1 publication Critical patent/KR102181608B1/ko

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/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L67/2804
    • H04L67/2809
    • H04L67/2823
    • 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
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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
    • H04L67/562Brokering proxy services
    • 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
    • H04L67/565Conversion or adaptation of application format or content

Abstract

본 발명에 의한 연합 인증 장치에 의해 수행되는 연합 인증 방법은, OIDC 클라이언트로부터 제1규격의 인증요청 메시지를 수신하는 단계, 세션정보를 생성하고, 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환하는 단계, SAML 식별정보제공서버로 사용자의 인증을 위해 제2규격의 인증요청 메시지를 전송하는 단계, 제2규격의 인증요청 메시지에 기초하여 사용자의 인증이 성공하면, SAML 식별정보제공서버로부터 사용자의 인증에 기초한 제2규격의 어설션을 포함하는 인증응답 메시지를 수신하는 단계, 제2규격의 어설션을 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하는 단계, 및 제1규격의 토큰을 포함하는 응답 메시지를 OIDC 클라이언트로 전송하는 단계를 포함한다.

Description

연합 인증 장치 및 그것의 연합 인증 방법{APPARATUS FOR FEDERATED AUTHENTICATION AND METHOD THEREOF}
본 발명은 연합 인증 장치 및 그것의 연합 인증 방법에 관한 것으로서, 보다 자세하게는, 다수의 보안 도메인에서 웹 통합 인증을 가능하게 하는 연합 인증 장치 및 그것의 연합 인증 방법에 관한 것이다.
연합 인증(Federated Authentication)은 다수의 보안 도메인이서 웹 통합 인증을 가능하게 하는 표준화된 사용자 인증(Authentication) 및 인가(Authorization) 체계이다.
연합 인증을 위해서는, 웹 응용과 같은 서비스 제공 개체가 식별정보 제공 개체에게 사용자 인증을 위임하고, 위임 받은 식별정보 제공 개체는 사용자를 인증하고 식별정보를 제공하는 역할을 한다.
이러한 과정에서, 서비스 제공 개체와 식별정보 제공 개체는 인증정보를 서로 교환하기 위해서, 국제 표준 인증규약인 SAML(Security Assertion Markup Language)을 주로 이용한다.
SAML 인증규약의 경우 개인정보 보호 강화, 비밀번호 피로도 해소, 및 공동 활용 가능성 증대 등의 효과를 기대할 수 있으나, 웹 응용에만 적용할 수 있으며 기술 구현이 어렵고 구동 환경의 설정과 메타데이터 관리가 쉽지 않은 문제점이 있다.
이에 대한 대안으로서, 다수의 국가에서 사용자 정보가 담긴 토큰의 구조가 간단하고 메타 정보의 관리가 용이한 OIDC(OpenID Connect)를 차세대 연합 인증 규약으로 도입하려는 움직임을 보이고 있다.
그러나, 다수의 보안 도메인 또는 단일 보안 도메인에서 다수의 인증규약이 사용되는 통합 인증 환경 하에서 서비스 제공 개체와 식별정보 제공 개체 간 동일한 인증규약을 사용해야 하지만, SAML 인증규약과 OIDC 인증규약을 함께 이용할 수 있는 기술은 개발되어 있지 않은 상태이다.
따라서, 연합 인증을 위해서는 SAML 인증규약과 OIDC 인증규약 간에 호환성을 제공할 수 있는 방법이 요구된다.
등록특허공보 제10-1636986호(2016.06.30. 등록)
본 발명이 해결하고자 하는 기술적 과제는, 다수의 보안 도메인 또는 단일 보안 도메인에서 사용되는 SAML 인증규약과 OIDC 인증규약 간 호환성을 제공할 수 있는 연합 인증 장치 및 그것의 연합 인증 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 웹 응용과 같은 서비스 제공 개체가 사용자에 대한 인증 및 인가 기능을 위임할 수 있는 연합 인증 장치 및 그것의 연합 인증 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 서비스 제공 개체가 사용하는 인증규약에 관계 없이 소셜 로그인 환경을 통합 가능한 연합 인증 장치 및 그것의 연합 인증 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 연합 인증 장치에 의해 수행되는 연합 인증 방법은, OIDC 클라이언트로부터 제1규격의 인증요청 메시지를 수신하는 단계, 세션정보를 생성하고, 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환하는 단계, SAML 식별정보제공서버로 사용자의 인증을 위해 제2규격의 인증요청 메시지를 전송하는 단계, 제2규격의 인증요청 메시지에 기초하여 사용자의 인증이 성공하면, SAML 식별정보제공서버로부터 사용자의 인증에 기초한 제2규격의 어설션을 포함하는 인증응답 메시지를 수신하는 단계, 제2규격의 어설션을 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하는 단계, 및 제1규격의 토큰을 포함하는 응답 메시지를 상기 OIDC 클라이언트로 전송하는 단계를 포함한다.
일 실시예로서, 상기 제1규격은 OIDC 인증규약에 기초하고, 상기 제2규격은 SAML 인증규약에 기초할 수 있다.
일 실시예로서, 상기 제2규격의 어설션은 상기 사용자의 인증정보 및 속성정보를 포함할 수 있다.
일 실시예로서, 상기 제2규격의 어설션은 상기 사용자의 소셜(social) ID에 의해 제공되는 사용자 정보를 포함할 수 있다.
일 실시예로서, 상기 SAML 식별정보제공서버로부터 수신되는 인증응답 메시지를 파싱(parsing)하는 단계, 및 상기 파싱에 의해 상기 인증응답 메시지로부터 획득되는 상기 사용자의 속성정보를 상기 세션정보에 저장하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 제2규격의 어설션을 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하는 단계는, 상기 사용자의 속성정보의 각 항목에 대응하는 OIDC 클레임을 저장해 놓은 데이터베이스의 테이블을 참조하여 변환하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 연합 인증 장치에 의해 수행되는 연합 인증 방법은, SAML 서비스제공서버로부터 제2규격의 인증요청 메시지를 수신하는 단계, 세션정보를 생성하고, 제2규격의 인증요청 메시지를 제1규격의 인증요청 메시지로 변환하는 단계, OIDC 제공서버로 사용자의 인증을 위해 제1규격의 인증요청 메시지를 전송하는 단계, 제1규격의 인증요청 메시지에 기초하여 사용자의 인증이 성공하면, OIDC 제공서버로부터 사용자의 인증에 기초한 제1규격의 사용자 정보를 포함하는 인증응답 메시지를 수신하는 단계, 제1규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제2규격의 토큰으로 변환하는 단계, 및 제2규격의 토큰을 포함하는 응답 메시지를 상기 SAML 서비스제공서버로 전송하는 단계를 포함한다.
일 실시예로서, 상기 제1규격은 OIDC 인증규약에 기초하고, 상기 제2규격은 SAML 인증규약에 기초할 수 있다.
일 실시예로서, 상기 제1규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제2규격의 토큰으로 변환하는 단계는, 상기 사용자 정보에 포함된 OIDC 클레임의 각 항목에 대응하는 SAML 속성정보를 저장해 놓은 데이터베이스의 테이블을 참조하여 변환하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 연합 인증 장치는, OIDC 개체와 SAML 개체 간 전송되는 메시지를 변환하는 브로커; SAML 개체에 의해 생성되는 메시지의 컨텍스트를 변환하고, 변환된 메시지를 처리하는 프록시; 사용자에 대한 접근 권한 규칙 및 통합 인증을 위한 개체들의 등록 정보를 포함하는 메타정보를 저장하고, 메타정보에 기초하여 브로커 및 프록시를 제어하는 제어부; 및 사용자의 속성정보 및 권한정보를 관리하고, 브로커, 프록시, 및 제어부로 속성정보 및 권한정보를 제공하는 속성관리부를 포함한다.
일 실시예로서, 상기 OIDC 개체는 OIDC 클라이언트 또는 OIDC 제공서버를 포함하고, 상기 SAML 개체는 SAML 식별정보제공서버 또는 SAML 서비스 제공서버를 포함할 수 있다.
일 실시예로서, 상기 브로커는, OIDC 클라이언트 또는 SAML 서비스제공서버로부터 수신되는 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환하고, 사용자 인증을 위해 SAML 식별정보제공서버 또는 OIDC 제공서버로 상기 제2규격의 인증요청 메시지를 전송하고, 상기 제2규격의 인증요청 메시지에 기초하여 상기 사용자의 인증이 성공하면, 상기 SAML 식별정보제공서버 또는 OIDC 제공서버로부터 상기 사용자의 인증에 기초한 제2규격의 사용자 정보를 수신하고, 상기 제2규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하여, 상기 OIDC 클라이언트 또는 SAML 서비스 제공서버로 전송할 수 있다.
일 실시예로서, 상기 변환 규칙은, 데이터베이스의 테이블에 저장되는 상기 제2규격의 사용자 정보의 각 항목에 대응하는 제1규격의 사용자 정보를 포함할 수 있다.
일 실시예로서, 상기 프록시는, 상기 SAML 서비스 제공서버 또는 SAML 식별정보제공서버를 대리하여 상기 브로커와 메시지를 교환할 수 있다.
일 실시예로서, 상기 프록시는, 사용자 동의, 자격 권한, 속성 확보, 탐색 서비스, 및 접근 관리 중 적어도 하나의 기능을 제공하는 모듈을 포함할 수 있다.
상기한 바와 같이, 본 발명에 의하면, 다수의 보안 도메인 또는 단일 보안 도메인에서 사용되는 이종의 인증규약 간 호환성을 제공하여 효율적인 통합 인증 환경을 구현할 수 있다.
또한, 본 발명에 의하면, 웹 응용과 같은 서비스 제공 개체가 사용자에 대한 인증 및 인가 기능을 위임함에 의해 서비스 구현 시간의 단축 및 관리 비용을 최소화할 수 있다.
또한 본 발명에 의하면, 적용되는 인증규약에 관계 없이 별도의 구현 비용을 들이지 않고도 소셜 로그인을 이용한 통합 인증 환경을 구현할 수 있다.
도 1은 본 발명의 일 실시예에 따른 연합 인증 시스템의 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 연합 인증 방법의 순서도이다.
도 3은 도 2를 참조하여 설명한 연합 인증 방법의 신호 흐름도이다.
도 4는 본 발명의 또 다른 실시예에 따른 연합 인증 방법의 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 연합 인증 장치의 하드웨어 구성도이다.
도 6 내지 도 7은 도 5를 참조하여 설명한 연합 인증 장치의 기능적인 구성을 도시한 블록도들이다.
도 8 내지 도 9는 본 발명의 몇몇 실시예들에서 참조되는 토큰 변환 규칙을 도시한 표이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시 예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 개시의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 연합 인증 시스템의 구성도이다. 도시된 예에서, 본 발명에 의한 연합 인증 장치(100)는 다수의 보안 도메인 또는 단일 보안 도메인에서 사용자 단말(10)의 로그인 요청에 대해 통합 인증(SSO: Single Sign On) 과정을 수행한다.
연합 인증 장치(100)는 통합 인증 과정을 수행하는 동안 서로 다른 규약을 사용하는 SAML 개체와 OIDC 개체 간 전달되는 메시지 및 토큰(Token)을 변환함에 의해 양 개체 간 호환성을 제공한다.
SAML 개체는 보안 정보를 교환하기 위한 XML 기반의 SAML(Security Assertion Markup Language) 인증규약을 사용하고, HTTP나 SOAP(Simple Object Access Protocol)를 통해 사용자의 인증정보, 자격정보, 및 속성정보를 포함하는 SAML 어설션(Assertion)을 전송할 수 있다. SAML 개체는 도시된 구성에서, 예컨대 SAML 식별정보제공서버(210) 또는 SAML 서비스제공서버(300)로 구현될 수 있다.
OIDC 개체는 OAuth2 인증규약을 경량화한 OIDC(OpenID Connect) 인증규약을 사용하고, 사용자의 인증정보를 ID 토큰을 이용해 반환할 수 있다. OIDC 개체는 도시된 구성에서, 예컨대 OIDC 클라이언트(200) 또는 OIDC 제공서버(310)로 구현될 수 있다.
연합 인증 장치(100)는 고정식 컴퓨팅 장치로서 예컨대, 서버 장치일 수 있으나, 본 발명의 실시예가 이에 한정되는 것은 아니다. 사용자 단말(10)는 예컨대, 개인용 데스크탑 PC와 같은 고정식 컴퓨팅 장치, 스마트 폰, 태블릿 PC, 랩톱 PC, PDA, VR(Virtual Reality) 영상 장치, AR(Augmented Reality) 영상 장치 등과 같은 이동식 컴퓨팅 장치 중 어느 하나일 수 있다.
도시된 구성에서, 연합 인증 장치(100)는 사용자 단말(10)와 네트워크를 통해 연결되고, 사용자 단말(10)의 웹 브라우저로부터의 HTTP 요청에 대해 응답을 처리하는 웹 서버(WEB Server)와, 동적 콘텐츠나 웹 응용프로그램 서비스를 처리하고 데이터베이스와 연동할 수 있는 WAS 서버로 구현될 수 있다. 일 실시예로서, WAS 서버가 웹 서버의 기능을 포함하는 경우도 있다
도시된 예에서, 연합 인증 장치(100)는 사용자 단말(10)에 의해 OIDC 클라이언트(200) 또는 SAML 서비스제공서버(300)로부터 전달되는 인증 요청 메시지를 수신하고, 이를 SAML 식별서비스제공서버(210) 또는 OIDC 제공서버(310)로 전달함에 의해 인증 과정을 위임한다. 여기서, SAML 식별서비스제공서버(210) 및 OIDC 제공서버(310)는 연합 인증 장치(100)와 네트워크를 통해 연결되는 별도의 서버 장치로 구현되어, 연합 인증 장치(100)로 사용자 인증과 관련된 정보들을 제공할 수 있다.
연합 인증 장치(100)는 SAML 식별서비스제공서버(210) 또는 OIDC 제공서버(310)에 의해 인증 과정이 완료되면, 인증정보 및 사용자 정보를 포함하는 인증 응답 메시지를 수신하고, 이를 OIDC 클라이언트(200) 또는 SAML 서비스제공서버(300)로 전달함에 의해 인증 과정을 완료한다.
일 실시예로서, 연합 인증 장치(100)는 OIDC 클라이언트(200)와 SAML 식별서비스제공서버(210) 간 인증 요청 및 인증 응답을 전달하는 과정에서, 각 개체가 사용하는 이종의 인증규약이 호환되도록 메시지 및 토큰에 대한 변환 처리를 수행할 수 있다.
일 실시예로서, 연합 인증 장치(100)는 SAML 서비스제공서버(300)와 OIDC 제공서버(310) 간 인증 요청 및 인증 응답을 전달하는 과정에서, 각 개체가 사용하는 이종의 인증규약이 호환되도록 메시지 및 토큰에 대한 변환 처리를 수행할 수 있다.
상기와 같이, 본 발명의 연합 인증 장치(100)는 SAML 개체와 OIDC 개체가 사용하는 서로 다른 인증규약 간 상호 호환되도록 하는 기능을 제공함에 의해, 효율적인 통합 인증 환경을 구현할 수 있다.
또한, 본 발명의 연합 인증 장치(100)는 웹 응용과 같은 서비스 제공 개체가 사용자에 대한 인증 및 인가 기능을 식별정보제공 개체로 위임함에 의해 서비스 구현 시간의 단축 및 관리 비용을 최소화할 수 있다.
이하, 도2를 참조하여, 본 발명의 다른 실시예에 따른 연합 인증 방법을 설명한다. 본 실시예에 따른 방법은 컴퓨팅 장치에 의하여 실행될 수 있다. 상기 컴퓨팅 장치는 예를 들어, 도 1을 참조하여 설명한 연합 인증 장치(100)일 수 있다. 이하의 방법을 설명함에 있어, 연합 인증 장치(100)가 수행하는 동작으로 설명하였으나, 이에 한정되지 않고, 일반적인 컴퓨팅 장치에 의해 실행 가능하다.
도 2에 도시된 바와 같이, 먼저, 동작 S31에서, 연합 인증 장치(100)는 OIDC 클라이언트(200)로부터 제1규격의 인증요청 메시지를 수신한다. 다음으로, 동작 S32에서, 연합 인증 장치(100)는 세션정보를 생성하고, 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환한다. 여기서, 제1규격은 OIDC 인증규약에 기초하고, 제2규격은 SAML 인증규약에 기초한 것일 수 있다.
동작 S33에서, 연합 인증 장치(100)는 SAML 식별정보제공서버(210)로 사용자의 인증을 위해 제2규격의 인증요청 메시지를 전송한다.
다음으로, 동작 S34에서, 연합 인증 장치(100)는 전송된 제2규격의 인증요청 메시지에 기초하여 사용자의 인증이 성공하면, SAML 식별정보제공서버(210)로부터 사용자의 인증에 기초한 제2규격의 어설션(assertion)을 포함하는 인증응답 메시지를 수신한다. 일 실시예로서, 제2규격의 어설션은 사용자의 인증 정보 및 속성 정보를 포함할 수 있다. 일 실시예로서, 제2규격의 어설션은 사용자의 소셜 ID에 의해 제공되는 사용자 정보를 포함할 수 있다.
일 실시예로서, 동작 S34는, SAML 식별정보제공서버(210)로부터 수신되는 인증응답 메시지를 파싱(parsing)하는 동작과, 파싱에 의해 인증응답 메시지로부터 획득되는 사용자의 속성정보를 세션정보에 저장하는 동작을 더 포함할 수 있다.
다음으로, 동작 S35에서, 연합 인증 장치(100)는 인증응답 메시지에 포함된 제2규격의 어설션을 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환한다. 일 실시예로서, 동작 S35는, 사용자의 속성 정보의 각 항목에 대응하는 OIDC 클레임을 저장해 놓은 데이터베이스의 테이블을 참조하여 변환하는 동작을 포함할 수 있다. 예로서, 제1규격의 토큰은 도 8에 도시된 예와 같이, SAML 속성정보(SAML attribute)(81)의 각 항목에 대응하는 OIDC 정보제공범위(OIDC scope)(82) 및 OIDC 명칭(OIDC name)(83)을 포함할 수 있다.
마지막으로, 동작 S36에서, 연합 인증 장치(100)는 제1규격의 토큰을 포함하는 응답 메시지를 OIDC 클라이언트(200)로 전송한다.
일 실시예로서, 연합 인증 장치(100)에 의해 수행되는 방법에 있어, 동일한 세션을 갖는 OIDC 클라이언트(200)로부터의 사용자 인증 요청에 대해, 저장된 세션정보에 기초하여 사용자 인증을 처리하는 동작을 포함할 수 있다.
상기와 같은 본 발명의 연합 인증 장치(100)에 의해 수행되는 방법에 의하면, 서로 다른 인증규약을 사용하는 OIDC 클라이언트(200)와 SAML 식별정보제공서버(210) 간 인증 요청을 처리하기 위해, 메시지 및 토큰의 형식을 변환하는 기능을 제공할 수 있다.
도 3은 도 2를 참조하여 설명한 연합 인증 방법의 신호 흐름도이다. 도시된 예는, 본 발명의 연합 인증 장치(100)의 주요 구성요소 중 브로커(120)와 프록시(110)를 이용하여 OIDC 클라이언트(200)로부터 SAML 식별제공서버(210)로 사용자 인증을 요청하고, OIDC 클라이언트(200)가 사용자 정보를 획득함에 의해 웹 브라우저(70) 상에서 인증을 완료하는 전체 프로세스를 도시한 것이다.
먼저, 동작 S71에서, 웹 브라우저(70)는 브로커(120)에게 인가코드를 요청하면, 동작 S72에서, 브로커(120)는 프록시(110)로 사용자 인증을 요청한다. 여기서, 프록시(110)로의 인증 요청은 'HTTP Redirect'를 통해 수행될 수 있다.
이 때, 브로커(120)는 프록시(110)로 사용자 인증 요청을 위한 메시지 전송 시, OIDC 인증규약에 의한 인증 요청 메시지를 SAML 인증규약에 의한 메시지로 변환하여 전달한다.
다음으로, 동작 S73에서, 프록시(110)는 SAML 식별정보제공서버(210)로 사용자 인증을 요청한다. 이 때, SAML 식별정보제공서버(210)에서 로그인에 성공하면 사용자가 인증된다.
동작 S74에서, SAML 식별정보제공서버(210)는 로그인 성공 시, 사용자의 인증정보 및 속성정보를 포함하는 어설션(Assertion)을 프록시(110)를 통해 브로커(120)로 전달한다. 여기서, 프록시(110)에서 브로커(120)로의 인증 응답은 'HTTP POST'를 통해 수행될 수 있다.
이 때, 프록시(110)는 어설션에 포함된 SAML 인증규약에 의한 속성정보를 OIDC 클레임으로 변환하여 브로커(120)로 전달한다.
동작 S75에서, OIDC 클라이언트(200)가 브로커(120)로부터 로그인 성공에 기초한 인가코드를 획득하면, 동작 S76에서, OIDC 클라이언트(200)는 브로커(120)로 토큰을 요청한다.
동작 S77에서, 브로커(120)는 해당 토큰을 OIDC 클라이언트(200)로 반환하고, 동작 S78에서, OIDC 클라이언트(200)는 추가적으로 브로커(120)로부터 사용자 정보를 획득한다.
마지막으로, 동작 S79에서, OIDC 클라이언트(200)의 사용자 정보 획득에 기초하여 웹 브라우저(70) 상에서의 사용자 인증이 완료된다.
도 4는 본 발명의 또 다른 실시예에 따른 연합 인증 방법의 순서도이다. 도 4에 도시된 바와 같이, 먼저, 동작 S41에서, 연합 인증 장치(100)는 SAML 서비스제공서버(300)로부터 제2규격의 인증요청 메시지를 수신한다.
다음으로, 동작 S42에서, 연합 인증 장치(100)는 세션정보를 생성하고, 제2규격의 인증요청 메시지를 제1규격의 인증요청 메시지로 변환한다. 여기서, 제1규격은 OIDC 인증규약에 기초하고, 제2규격은 SAML 인증규약에 기초한 것일 수 있다.
동작 S43에서, 연합 인증 장치(100)는 OIDC 제공서버(310)로 사용자의 인증을 위해 제1규격의 인증요청 메시지를 전송한다.
다음으로, 동작 S44에서, 연합 인증 장치(100)는 전송된 제1규격의 인증요청 메시지에 기초하여 사용자의 인증이 성공하면, OIDC 제공서버(310)로부터 사용자의 인증에 기초한 제1규격의 사용자 정보를 포함하는 인증응답 메시지를 수신한다. 일 실시예로서, 제1규격의 사용자 정보는 OIDC 클레임에 해당하는 'openid', 'email', 및 'profile' 중 적어도 하나를 포함할 수 있다. 일 실시예로서, 제1규격의 사용자 정보는 사용자의 소셜 ID에 의해 제공되는 사용자 정보를 포함할 수 있다.
다음으로, 동작 S45에서, 연합 인증 장치(100)는 인증응답 메시지에 포함된 제1규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제2규격의 토큰으로 변환한다. 일 실시예로서, 동작 S45는, 사용자 정보에 포함된 OIDC 클레임의 각 항목에 대응하는 SAML 속성정보를 저장해 놓은 데이터베이스의 테이블을 참조하여 변환하는 동작을 포함할 수 있다.
예로서, 제2규격의 토큰은 도 9에 도시된 예와 같이, OIDC 명칭(OIDC name)(91)의 항목에 대응하는 SAML 속성정보(SAML attribute)(92)를 포함할 수 있고, 이 때, 도메인 주소(spec.)(93)에 따라 SAML 속성정보(92)의 항목이 달라질 수 있다.
일 실시예로서, 동작 S45는, 제2규격의 토큰에 포함된 SAML 속성정보를 세션정보에 저장하는 동작을 더 포함할 수 있다.
마지막으로, 동작 S46에서, 연합 인증 장치(100)는 제2규격의 토큰을 포함하는 응답 메시지를 SAML 서비스제공서버(300)로 전송한다.
일 실시예로서, 연합 인증 장치(100)에 의해 수행되는 방법에 있어, 동일한 세션을 갖는 SAML 서비스제공서버(300)로부터의 사용자 인증 요청에 대해, 저장된 세션정보에 기초하여 사용자 인증을 처리하는 동작을 포함할 수 있다.
상기와 같은 본 발명의 연합 인증 장치(100)에 의해 수행되는 방법에 의하면, 서로 다른 인증규약을 사용하는 SAML 서비스제공서버(300)와 OIDC 제공서버(310) 간 인증 요청을 처리하기 위해, 메시지 및 토큰의 형식을 변환하는 기능을 제공할 수 있다.
도 5는 본 발명의 또 다른 실시예에 따른 연합 인증 장치의 하드웨어 구성도이다.
도시된 바와 같이, 연합 인증 장치(100)는 컴퓨팅 장치로서, 하나 이상의 프로세서(101), 버스(107), 네트워크 인터페이스(102), 프로세서(101)에 의하여 수행되는 컴퓨터 프로그램(105)을 로드(load)하는 메모리(103)와, 컴퓨터 프로그램(105) 및 메타정보(106)를 저장하는 스토리지(104)를 포함할 수 있다. 다만, 도 5에는 본 발명의 실시예와 관련 있는 구성요소들 만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 5에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 도 5에 도시된 연합 인증 장치(100)는 IaaS(Infrastructure-as-a-Service) 방식의 클라우드 서비스를 제공하는 서버팜(server farm)에 소속된 물리 서버 중 어느 하나를 가리킬 수 있다.
프로세서(101)는 연합 인증 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(101)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(101)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 연합 인증 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(103)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(103)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(104)로부터 하나 이상의 프로그램(105)을 로드(load) 할 수 있다. 예를 들어, 컴퓨터 프로그램(105)이 메모리(103)에 로드 되면, 로직(또는 모듈)이 메모리(103) 상에 구현될 수 있다. 메모리(103)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.
버스(107)는 연합 인증 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(107)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(102)는 연합 인증 장치(100)의 유무선 인터넷 통신을 지원한다. 네트워크 인터페이스(102)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(102)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(104)는 하나 이상의 컴퓨터 프로그램(105) 및 메타정보(106)를 비임시적으로 저장할 수 있다. 스토리지(104)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(105)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 컴퓨터 프로그램(105)은 OIDC 클라이언트(200)로부터 제1규격의 인증요청 메시지를 수신하는 동작, 세션정보를 생성하고, 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환하는 동작, SAML 식별정보제공서버(210)로 사용자의 인증을 위해 제2규격의 인증요청 메시지를 전송하는 동작, 제2규격의 인증요청 메시지에 기초하여 사용자의 인증이 성공하면, SAML 식별정보제공서버(210)로부터 사용자의 인증에 기초한 제2규격의 어설션을 포함하는 인증응답 메시지를 수신하는 동작, 제2규격의 어설션을 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하는 동작, 및 제1규격의 토큰을 포함하는 응답 메시지를 OIDC 클라이언트(200)로 전송하는 동작을 수행하기 위한 인스트럭션들을 포함할 수 있다.
컴퓨터 프로그램(105)이 메모리(103)에 로드 되면, 프로세서(101)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
메타정보(106)는 본 발명의 연합 인증 장치(100)에 의해 실행되는 컴퓨터 프로그램(105)이 복수의 인스트럭션을 수행하는 동안 생성 및 참조되는 정보를 포함할 수 있다. 예를 들어, 메타정보(106)는 본 발명의 연합 인증 장치(100)의 구성 중 제어부(도 6의 부호 '130' 참조)에 의해 저장 및 사용되는 정보로서, 사용자에 대한 접근 권한 규칙 및 통합 인증을 위한 개체들의 등록 정보를 포함할 수 있다. 또한, 메타정보(106)는 본 발명의 연합 인증 장치(100)의 구성 중 브로커(120) 및 프록시(110)에 의해 생성되는 세션정보 및 세션정보에 저장되는 사용자 속성정보를 포함할 수 있다.
도 6 내지 도 7은 도 5를 참조하여 설명한 연합 인증 장치의 기능적인 구성을 도시한 블록도들이다.
도 6에 도시된 바와 같이, 연합 인증 장치(100)는 본 발명의 기능을 수행하기 위한 주요 구성요소로서, 브로커(120), 프록시(110), 제어부(130), 및 속성관리부(140)를 포함한다.
브로커(120)는 사용자 인증을 위해 OIDC 개체와 SAML 개체 간 전송되는 메시지를 변환한다. 일 실시예로서, 브로커(120)는 OIDC 클라이언트(200) 또는 SAML 서비스 제공서버(300)로부터 수신되는 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환하고, 사용자 인증을 위해 SAML 식별정보제공서버(210) 또는 OIDC 제공서버(310)로 제2규격의 인증요청 메시지를 전송할 수 있다.
이 때, 브로커(120)는 제2규격의 인증요청 메시지에 기초하여 상기 사용자의 인증이 성공하면, SAML 식별정보제공서버(210) 또는 OIDC 제공서버(310)로부터 사용자의 인증에 기초한 제2규격의 사용자 정보를 수신하고, 제2규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하여, OIDC 클라이언트(200) 또는 SAML 서비스 제공서버(300)로 전송할 수 있다. 일 실시예로서, 변환 규칙은, 데이터베이스(미도시)의 테이블에 저장되는 제2규격의 사용자 정보의 각 항목에 대응하는 제1규격의 사용자 정보를 포함할 수 있다.
프록시(110)는 SAML 개체에 의해 생성되는 메시지의 컨텍스트를 변환하고, 변환된 메시지를 처리한다. 일 실시예로서, 프록시(110)는 SAML 서비스 제공서버(300) 또는 SAML 식별정보제공서버(210)를 대리하여 브로커(120)와 메시지를 교환할 수 있다. 즉, 프록시(11)는 SAML 인증규약에 기초한 메시지 및 토큰을 브로커(120)가 해석할 수 있는 OIDC 인증규약의 포맷으로 변환하여 브로커(120)로 제공할 수 있다.
일 실시예로서, 프록시(110)는, 사용자 동의, 자격 권한, 속성 확보, 탐색 서비스, 접근 관리, 및 등록 관리 중 적어도 하나의 기능을 제공하는 모듈을 포함할 수 있다.
예로서, 프록시(110)는 탐색 서비스(112) 기능과 관련하여, 사용자에게 이용 가능한 서비스별 식별정보제공 개체의 목록을 제시하여, 사용자가 식별정보제공 개체를 선택하도록 할 수 있다. 일 실시예로서, 프록시(110)는 식별정보제공 개체의 목록 중 선택된 식별정보제공서버(21)에서 통합인증ID(61)에 의한 로그인 성공 시, 인증정보와 속성정보가 명기된 SAML 어설션(SAML Assertion)을 식별정보제공서버(21)로부터 전달받을 수 있다.
일 실시예로서, 프록시(110)는 소셜ID(62)에 의한 로그인 성공 시, 소셜ID(62) 제공 개체로부터 전달되는 사용자 정보를 OIDC 인터페이스(113)를 통해 변환된 SAML 어설션으로 전달받을 수 있다.
일 실시예로서, 프록시(110)는 법령 준수를 위해 사용자 동의(111) 기능을 수행하고, SAML 어설션을 재구성하여 OIDC 클라이언트(200) 또는 SAML 서비스제공서버(300)로 전달할 수 있다. 이 때, OIDC 클라이언트(200)로 전달해야 하는 경우, 프록시(110)는 브로커(120)를 통해 OIDC 인증규약에 기초한 포맷의 토큰으로 변환하여 제공할 수 있다. 일 실시예로서, 프록시(110)는 SAML 어설션을 재구성하기 위해, 속성관리부(140)로부터 해당 사용자의 부가정보(예로서, 사용자의 그룹정보 등)를 획득할 수 있다.
제어부(130)는 사용자에 대한 접근 권한 규칙 및 통합 인증을 위한 개체들의 등록 정보를 포함하는 메타정보를 저장한다. 또한, 제어부(130)는 저장된 메타정보에 기초하여 브로커(120) 및 프록시(110)를 제어한다.
일 실시예로서, 제어부(130)는 속성관리부(140)에서 관리되는 사용자의 속성정보를 이용하여 정보 자원에 대한 접근을 통제할 수 있다. 또한, 제어부(130)는 개별 서비스에 접근할 수 있는 식별정보제공 개체를 제어함으로써 웹 응용의 보안성을 높일 수 있다.
일 실시예로서, 제어부(130)는 프록시(110)에 의해 제공되는 사용자 동의(111) 및 탐색 서비스(112) 기능과 관련한 이용 기록을 실시간으로 수집해 관리할 수 있다. 일 실시예로서, 제어부(130)는 프록시(110) 및 브로커(120)가 승인된 개별 서비스에 대해서만 토큰 변환 기능을 제공할 수 있도록 SAML 서비스제공서버(300) 및 OIDC 클라이언트(200)에 대한 관리 등록 기능을 제공할 수 있다.
속성관리부(140)는 사용자의 속성정보 및 권한정보를 관리하고, 브로커(120), 프록시(110), 및 제어부(130)로 사용자의 속성정보 및 권한정보를 제공한다. 일 실시예로서, 속성관리부(140)는 사용자의 인증 성공 시, 프록시(110)로 사용자의 속성정보를 제공할 수 있다.
상기와 같은 본 발명의 연합 인증 장치(100)의 구성에 의해, 다수의 보안 도메인 또는 단일 보안 도메인에서 사용되는 이종의 인증규약 간 호환성을 제공하여, 효율적인 연합 인증 환경을 구현할 수 있다.
또한, 본 발명의 연합 인증 장치(100)의 구성에 의해, 적용되는 인증규약에 관계 없이 별도의 구현 비용을 들이지 않고도 소셜 로그인을 이용한 통합 인증 환경을 구현할 수 있다.
도 7에 도시된 예에서, 본 발명의 연합 인증 장치(100)는 토큰 변환 기능을 수행하기 위한 세부 모듈로서, 프록시(110), 제1브로커(121) 및 제2브로커(122)의 구성을 포함한다.
제1브로커(121)는 OIDC 클라이언트(200)로부터의 인증 요청에 대해, SAML 식별정보제공서버(210)에서 OIDC 클라이언트(200)로 전송되는 토큰을 변환한다. 이 때, SAML 식별정보제공서버(210)에서 사용자 로그인 성공 시, SAML 식별정보제공서버(210)는 사용자의 인증정보 및 속성정보를 포함하는 SAML 어설션을 프록시(110)를 통해 제1브로커(121)로 전달한다. 이에 따라, 제1브로커(121)는 전달 받은 SAML 어설션을 OIDC 인증규약에 기초한 포맷의 토큰으로 변환하여 OIDC 클라이언트(200)로 제공한다.
제2브로커(122)는 SAML 서비스제공서버(300)로부터의 인증 요청에 대해, OIDC 제공서버(310)에서 SAML 서비스제공서버(300)로 전송되는 토큰을 변환한다. 이 때, OIDC 제공서버(310)에서 사용자 로그인 성공 시, OIDC 제공서버(310)는 OIDC 인증규약에 기초한 사용자 정보를 제2브로커(122)로 전달한다. 이에 따라, 제2브로커(122)는 전달 받은 사용자 정보를 SAML 인증규약에 기초한 포맷의 토큰으로 변환하여 프록시(110)를 통해 SAML 서비스제공서버(300)로 전달한다.
일 실시예로서, 프록시(110)는 사용자 동의, 자격 권한, 속성 확보, 탐색 서비스, 및 접근 관리 등의 기능을 제공하고, 제1브로커(121) 및 제2브로커(122)는 클라이언트 등록 기능을 제공할 수 있다.
일 실시예로서, 프록시(110)는'사용자 동의' 기능을 제공함에 있어, 법령 준수를 위해 사용자 동의를 위한 정보를 표시하고, 사용자 동의를 획득하는 동작을 수행할 수 있다. 일 실시예로서, 프록시(110)는 '자격 권한' 기능을 제공함에 있어, OIDC 개체 및 SAML 개체 각각의 접속 권한을 확인하는 동작을 수행할 수 있고, '속성 확보' 기능을 제공함에 있어, 속성관리부(140)로부터 사용자의 속성정보를 획득하는 동작을 수행할 수 있다.
일 실시예로서, 프록시(110)는 '탐색 서비스' 기능을 제공함에 있어, 이용 가능한 식별정보제공 개체들에 관한 정보를 제공하고, 식별정보제공 개체들의 접근을 제어할 수 있다. 일 실시예로서, 프록시(110)는 '접근 권한' 기능을 제공함에 있어, 사용자 동의를 추적하고, 접근 권한을 관리할 수 있다.
일 실시예로서, 제1브로커(121)는 클라이언트 등록 기능을 제공함에 있어, 등록되는 OIDC 클라이언트(200)에 관한 정보를 관리하고, 제어부(130)로 등록된 정보를 제공할 수 있다. 이에 따라, SAML 식별정보제공서버(210)는 제1브로커(121)에 등록되어 있는 OIDC 클라이언트(200)로 토큰을 제공할 수 있다. 일 실시예로서, 제2브로커(122)는 클라이언트 등록 기능을 제공함에 있어, 등록되는 SAML서비스제공서버(300)에 관한 정보를 관리하고, 제어부(130)로 등록된 정보를 제공할 수 있다. 이에 따라, OIDC 제공서버(310) 각각은 제2브로커(122)에 등록되어 있는 SAML서비스제공서버(300)로 토큰을 제공할 수 있다.
도 8 내지 도 9는 본 발명의 몇몇 실시예들에서 참조되는 토큰 변환 규칙을 도시한 표이다.
도 8에 도시된 표는, 도 2의 연합 인증 장치(100)에 의해 수행되는 방법에 있어서 동작 S35의 수행 시, SAML 식별정보제공서버(210)로부터 수신되는 인증응답 메시지에 포함된 어설션을 OIDC 인증규약에 기초한 규격의 토큰으로 변환하기 위해 참조되는 변환 규칙에 관한 정보를 제공한다.
일 실시예로서, 도시된 표에 의한 변환 규칙은, SAML 속성정보(SAML attribute)(81)의 각 항목에 대응하는 OIDC 정보제공범위(OIDC scope)(82) 및 OIDC 명칭(OIDC name)(83)에 관한 정보를 포함한다. 이러한 변환 규칙은 데이터베이스의 테이블에 저장되어, 브로커(120)가 인증응답 메시지에 포함된 어설션을 OIDC 인증규약에 기초한 규격의 토큰으로 변환 시 참조될 수 있다.
도 9에 도시된 표는, 도 3의 연합 인증 장치(100)에 의해 수행되는 방법에 있어서 동작 S45의 수행 시, OIDC 제공서버(310)로부터 수신되는 인증응답 메시지에 포함된 사용자 정보를 SAML 인증규약에 기초한 규격의 토큰으로 변환하기 위해 참조되는 변환 규칙에 관한 정보를 제공한다.
일 실시예로서, 도시된 표에 의한 변환 규칙은, OIDC 명칭(OIDC name)(91)의 항목에 대응하는 SAML 속성정보(SAML attribute)(92)에 관한 정보를 포함한다. 여기서, SAML 속성정보(92)는 도메인 주소(spec.)(93)에 따라 달라질 수 있다.
이러한 변환 규칙은 데이터베이스의 테이블에 저장되어, 브로커(120)가 인증응답 메시지에 포함된 사용자 정보를 SAML 인증규약에 기초한 규격의 토큰으로 변환 시 참조될 수 있다.
상기와 같이, 본 발명의 연합 인증 장치(100)에 의하면, 다수의 보안 도메인 또는 단일 보안 도메인에서 사용되는 SAML 인증규약과 OIDC 인증규약 간 호환성을 제공하여, 별도의 서비스 구현 없이 이종의 인증규약 간 사용자 인증을 처리할 수 있다. 또한, 본 발명의 연합 인증 장치(100)에 의하면, 웹 응용과 같은 서비스 제공 개체가 사용자에 대한 인증 및 인가 기능을 식별정보 제공 개체로 위임하는 것이 가능하다.
지금까지 도 1 내지 도 9를 참조하여 본 발명의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 발명의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. OIDC 개체와 SAML 개체 간 전송되는 메시지를 변환하는 브로커 및 상기 SAML 개체를 대리하여 상기 브로커와 메시지를 교환하는 프록시의 구성을 포함하는 연합 인증 장치에 의해 수행되는 연합 인증 방법에 있어서,
    OIDC 클라이언트로부터 제1규격의 인증요청 메시지를 수신하는 단계;
    세션정보를 생성하고, 상기 브로커가, 상기 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환하여 상기 프록시로 전달하는 단계;
    상기 프록시가, SAML 식별정보제공서버로 사용자의 인증을 위해 상기 제2규격의 인증요청 메시지를 전송하는 단계;
    상기 제2규격의 인증요청 메시지에 기초하여 상기 사용자의 인증이 성공하면, 상기 브로커가, 상기 SAML 식별정보제공서버로부터 상기 사용자의 인증에 기초한 상기 제2규격의 어설션(assertion)을 포함하는 인증응답 메시지를 상기 프록시를 통해 수신하는 단계;
    상기 브로커가, 상기 프록시를 통해 수신한 상기 제2규격의 어설션을 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하는 단계; 및
    상기 브로커가, 상기 제1규격의 토큰을 포함하는 응답 메시지를 상기 OIDC 클라이언트로 전송하는 단계를 포함하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  2. 제 1항에 있어서,
    상기 제1규격은 OIDC 인증규약에 기초하고, 상기 제2규격은 SAML 인증규약에 기초하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  3. 제1항에 있어서,
    상기 제2규격의 어설션은 상기 사용자의 인증정보 및 속성정보를 포함하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  4. 제1항에 있어서,
    상기 제2규격의 어설션은 상기 사용자의 소셜(social) ID에 의해 제공되는 사용자 정보를 포함하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  5. 제 1항에 있어서,
    상기 SAML 식별정보제공서버로부터 수신되는 인증응답 메시지를 파싱(parsing)하는 단계; 및
    상기 파싱에 의해 상기 인증응답 메시지로부터 획득되는 상기 사용자의 속성정보를 상기 세션정보에 저장하는 단계를 더 포함하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  6. 제 1항에 있어서,
    상기 제2규격의 어설션을 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하는 단계는,
    상기 사용자의 속성정보의 각 항목에 대응하는 OIDC 클레임을 저장해 놓은 데이터베이스의 테이블을 참조하여 변환하는 단계를 포함하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  7. OIDC 개체와 SAML 개체 간 전송되는 메시지를 변환하는 브로커 및 상기 SAML 개체를 대리하여 상기 브로커와 메시지를 교환하는 프록시의 구성을 포함하는 연합 인증 장치에 의해 수행되는 연합 인증 방법에 있어서,
    SAML 서비스제공서버로부터 제2규격의 인증요청 메시지를 수신하는 단계;
    세션정보를 생성하고, 상기 프록시가, 상기 제2규격의 인증요청 메시지를 제1규격의 인증요청 메시지로 변환하여 상기 브로커로 전달하는 단계;
    상기 브로커가, OIDC 제공서버로 사용자의 인증을 위해 상기 제1규격의 인증요청 메시지를 전송하는 단계;
    상기 제1규격의 인증요청 메시지에 기초하여 상기 사용자의 인증이 성공하면, 상기 프록시가, 상기 OIDC 제공서버로부터 상기 사용자의 인증에 기초한 상기 제1규격의 사용자 정보를 포함하는 인증응답 메시지를 상기 브로커를 통해 수신하는 단계;
    상기 프록시가, 상기 브로커를 통해 수신한 상기 제1규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제2규격의 토큰으로 변환하는 단계; 및
    상기 프록시가, 상기 제2규격의 토큰을 포함하는 응답 메시지를 상기 SAML 서비스제공서버로 전송하는 단계를 포함하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  8. 제 7항에 있어서,
    상기 제1규격은 OIDC 인증규약에 기초하고, 상기 제2규격은 SAML 인증규약에 기초하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  9. 제 7항에 있어서,
    상기 제1규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제2규격의 토큰으로 변환하는 단계는,
    상기 사용자 정보에 포함된 OIDC 클레임의 각 항목에 대응하는 SAML 속성정보를 저장해 놓은 데이터베이스의 테이블을 참조하여 변환하는 단계를 포함하는,
    연합 인증 장치에 의해 수행되는 연합 인증 방법.
  10. 연합 인증 장치에 있어서,
    OIDC 개체와 SAML 개체 간 전송되는 메시지를 변환하는 브로커;
    상기 SAML 개체에 의해 생성되는 메시지의 컨텍스트를 변환하고, 상기 변환된 메시지를 처리하는 프록시;
    사용자에 대한 접근 권한 규칙 및 통합 인증을 위한 개체들의 등록 정보를 포함하는 메타정보를 저장하고, 상기 메타정보에 기초하여 상기 브로커 및 상기 프록시를 제어하는 제어부; 및
    상기 사용자의 속성정보 및 권한정보를 관리하고, 상기 브로커, 상기 프록시, 및 상기 제어부로 상기 속성정보 및 권한정보를 제공하는 속성관리부를 포함하고,
    상기 프록시는 상기 SAML 개체를 대리하여 상기 브로커와 메시지를 교환하는,
    연합 인증 장치.
  11. 제10항에 있어서,
    상기 OIDC 개체는 OIDC 클라이언트 또는 OIDC 제공서버를 포함하고,
    상기 SAML 개체는 SAML 식별정보제공서버 또는 SAML 서비스 제공서버를 포함하는,
    연합 인증 장치.
  12. 제10항에 있어서,
    상기 브로커는,
    OIDC 클라이언트 또는 SAML 서비스제공서버로부터 수신되는 제1규격의 인증요청 메시지를 제2규격의 인증요청 메시지로 변환하고, 사용자 인증을 위해 SAML 식별정보제공서버 또는 OIDC 제공서버로 상기 제2규격의 인증요청 메시지를 전송하고,
    상기 제2규격의 인증요청 메시지에 기초하여 상기 사용자의 인증이 성공하면, 상기 SAML 식별정보제공서버 또는 OIDC 제공서버로부터 상기 사용자의 인증에 기초한 제2규격의 사용자 정보를 수신하고, 상기 제2규격의 사용자 정보를 기 등록된 변환 규칙에 따라 제1규격의 토큰으로 변환하여, 상기 OIDC 클라이언트 또는 SAML 서비스 제공서버로 전송하는,
    연합 인증 장치.
  13. 제12항에 있어서,
    상기 변환 규칙은, 데이터베이스의 테이블에 저장되는 상기 제2규격의 사용자 정보의 각 항목에 대응하는 제1규격의 사용자 정보를 포함하는,
    연합 인증 장치.
  14. 제10항에 있어서,
    상기 프록시는, SAML 서비스 제공서버 또는 SAML 식별정보제공서버를 대리하여 상기 브로커와 메시지를 교환하는,
    연합 인증 장치.
  15. 제10항에 있어서,
    상기 프록시는, 사용자 동의, 자격 권한, 속성 확보, 탐색 서비스, 및 접근 관리 중 적어도 하나의 기능을 제공하는 모듈을 포함하는,
    연합 인증 장치.
KR1020200054890A 2020-05-08 2020-05-08 연합 인증 장치 및 그것의 연합 인증 방법 KR102181608B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200054890A KR102181608B1 (ko) 2020-05-08 2020-05-08 연합 인증 장치 및 그것의 연합 인증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200054890A KR102181608B1 (ko) 2020-05-08 2020-05-08 연합 인증 장치 및 그것의 연합 인증 방법

Publications (1)

Publication Number Publication Date
KR102181608B1 true KR102181608B1 (ko) 2020-11-24

Family

ID=73679516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200054890A KR102181608B1 (ko) 2020-05-08 2020-05-08 연합 인증 장치 및 그것의 연합 인증 방법

Country Status (1)

Country Link
KR (1) KR102181608B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140245389A1 (en) * 2013-02-22 2014-08-28 Duo Security, Inc. System and method for proxying federated authentication protocols
KR101636986B1 (ko) 2015-02-16 2016-07-08 주식회사 누리정보기술 통합 인터페이스 사용자 인증방법
KR101736157B1 (ko) * 2016-10-18 2017-05-17 한국과학기술정보연구원 연합 인증 방법 및 장치
KR20190036504A (ko) * 2017-09-27 2019-04-04 사이트릭스 시스템스, 인크. 클라이언트 애플리케이션들에 대한 보안 싱글 사인 온 및 조건부 액세스

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140245389A1 (en) * 2013-02-22 2014-08-28 Duo Security, Inc. System and method for proxying federated authentication protocols
KR101636986B1 (ko) 2015-02-16 2016-07-08 주식회사 누리정보기술 통합 인터페이스 사용자 인증방법
KR101736157B1 (ko) * 2016-10-18 2017-05-17 한국과학기술정보연구원 연합 인증 방법 및 장치
KR20190036504A (ko) * 2017-09-27 2019-04-04 사이트릭스 시스템스, 인크. 클라이언트 애플리케이션들에 대한 보안 싱글 사인 온 및 조건부 액세스

Similar Documents

Publication Publication Date Title
CN108306877B (zh) 基于node js的用户身份信息的验证方法、装置和存储介质
US9853963B2 (en) Authorization server, authentication cooperation system, and storage medium storing program
US20180247654A1 (en) Device identifier dependent operation processing of packet based data communication
US7860882B2 (en) Method and system for distributed retrieval of data objects using tagged artifacts within federated protocol operations
US20080196096A1 (en) Methods for Extending a Security Token Based Identity System
US7500097B2 (en) Extendable data-driven system and method for issuing certificates
KR20190114023A (ko) 패킷 기반 데이터 통신의 디바이스 식별자 의존적 오퍼레이션 프로세싱
US10091179B2 (en) User authentication framework
US8443429B1 (en) Integrated sign on
US11368447B2 (en) Oauth2 SAML token service
US9083749B1 (en) Managing multiple security policy representations in a distributed environment
US10282241B1 (en) Data driven API conversion
CN104717647B (zh) 业务能力鉴权方法、设备及系统
CN112202744B (zh) 一种多系统数据通信方法和装置
CN111191200B (zh) 一种三方联动鉴权页面展示方法、装置和电子设备
KR102181608B1 (ko) 연합 인증 장치 및 그것의 연합 인증 방법
CN114221995A (zh) 服务调用方法、装置及电子设备
KR102461836B1 (ko) 챗봇 연결 장치 및 방법
Ali et al. Identity Management: Lightweight SAML for Less Processing Power
CN102480475A (zh) Web服务安全访问控制方法、装置及系统
KR101170322B1 (ko) 웹을 기반으로 하는 개인 컴퓨터를 이용한 클라우드 컴퓨팅 서비스 제공 방법 및 장치
US10623396B2 (en) System and method for controlling system
CN113824696B (zh) portal认证方法及装置
KR101636986B1 (ko) 통합 인터페이스 사용자 인증방법
L’Amrani et al. Intermediary technical interoperability component tic connecting heterogeneous federation systems

Legal Events

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