KR102520361B1 - 서비스로서의 아이덴티티 인프라 스트럭처 - Google Patents

서비스로서의 아이덴티티 인프라 스트럭처 Download PDF

Info

Publication number
KR102520361B1
KR102520361B1 KR1020177016659A KR20177016659A KR102520361B1 KR 102520361 B1 KR102520361 B1 KR 102520361B1 KR 1020177016659 A KR1020177016659 A KR 1020177016659A KR 20177016659 A KR20177016659 A KR 20177016659A KR 102520361 B1 KR102520361 B1 KR 102520361B1
Authority
KR
South Korea
Prior art keywords
identity
authentication
user
broker
api
Prior art date
Application number
KR1020177016659A
Other languages
English (en)
Other versions
KR20170107967A (ko
Inventor
카를로스 에우제니오 페이스
마티아스 워로스키
호세 페르난도 로마니엘로
Original Assignee
어스0 인코포레이티드
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 어스0 인코포레이티드 filed Critical 어스0 인코포레이티드
Publication of KR20170107967A publication Critical patent/KR20170107967A/ko
Application granted granted Critical
Publication of KR102520361B1 publication Critical patent/KR102520361B1/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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)
  • Traffic Control Systems (AREA)

Abstract

사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하기 위한 아이덴티티 서비스 방법 및 시스템이 개시된다. 인증 요청은 애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통해 애플리케이션으로부터 수신되고, 인증 요청은 로그온 정보를 포함한다. 인증 요청은 하나 이상의 아이덴티티 제공자(provider)로 중계된다. 인증에 따라, 사용자와 연관된 하나 이상의 프로그래밍 확장 스크립트(programmatic extension script)를 연속적으로 실행한다. 사용자와 연관된 프로그래밍 확장 스크립트 중 적어도 하나에 기초하여 사용자에게 특권이 부여된다.

Description

서비스로서의 아이덴티티 인프라 스트럭처{IDENTITY INFRASTRUCTURE AS A SERVICE}
컴퓨팅 능력과 편재성(ubiquity)이 증가함에 따라, 컴퓨터 하드웨어, 컴퓨터 구현 서비스 또는 컴퓨터 지원 프로세서의 형태로 있는 경우에, 사람들의 컴퓨팅에 대한 의존성도 또한 증가한다. 컴퓨팅에 대한 의존성이 증가함에 따라, 컴퓨팅의 사용자는 민감한 데이터 및 기능을 담당하도록 컴퓨팅을 응용하게 되어 왔다. 사용자는 개인적인 연락처 정보와 같은 개인 정보를 자신의 스마트폰에 일상적으로 저장한다. 사용자는 아무런 생각 없이 신용 카드 거래와 같은 컴퓨터화된 기능에 의존한다. 사실, 통합의 정도는 과거의 사용자들이 자신의 지갑 없이 살아갈 수 없다고 느끼는 것처럼 많은 사용자들이 랩톱, 휴대 전화 또는 신용 카드 없이 살아갈 수 없다고 느끼게 하는 것이다.
불행하게도, 컴퓨팅에 대한 이러한 의존성은 악의의 제3자가 매료되어 액세스하려고 시도하는 민감한 데이터 및 기능의 이러한 큰 저장소를 형성하여 왔다. 일부 악의의 제3자는 이러한 데이터 및 기능을 손상하려고 할 수 있다. 다른 이들은 도둑질하게 될 수 있다. 따라서, 인가되지 않은 사용자가 민감한 데이터 및 기능을 액세스하는 것을 방지하기 위하여 컴퓨터 보안 시스템이 개발되어 왔다.
컴퓨터 보안 시스템은 특정 콘텍스트(context)에 특유하다. 콘텍스트는 주어진 보안 인증 메커니즘이 유효한 경계(boundary)를 포함한다. 역사적으로, 콘텍스트는 컴퓨터 애플리케이션의 콘텍스트이었다. 예를 들어, 회사 사용자는 자신들의 인적 자원 애플리케이션을 위한 하나의 패스워드와 자신들의 회계 시스템을 위한 다른 패스워드를 가질 수 있다. 따라서, 제1 패스워드의 콘텍스트는 인적 자원 애플리케이션의 콘텍스트이고, 제2 패스워드의 콘텍스트는 회계 시스템의 콘텍스트이다. 이 대신에, 콘텍스트는 컴퓨팅 장치 또는 네트워크와 같은 컴퓨터 하드웨어 플랫폼의 콘텍스트일 수 있다. 예를 들어, 개인용 컴퓨터에 로그온하는 것은 애플리케이션 특유 보안을 갖지 않는 그 컴퓨터에서의 개인용 애플리케이션에 대한 액세스를 제공할 수 있다. 그 개인용 컴퓨터는 회사의 근거리 통신망(local area network(LAN))에서 네트워크 보안 서비스에 의해 인증될 수 있어, 그 네트워킹된 장치, 네트워킹된 프린터 및 다른 네트워킹된 컴퓨팅 자산은 그 인증된 개인용 컴퓨터가 이용 가능할 수 있다.
그러나, 데이터 또는 기능이 더 민감할수록, 더 많은 레이어의 보안 관리자가 추가된다. 추가 보안은 추가 콘텍스트의 급증과 결과적으로 이러한 추가 콘텍스트에 대응하는 인증 자격(authentication credentials)의 급증을 야기하였다. 예를 들어, 동일한 사용자가 동일한 LAN으로부터 기록을 액세스하더라도, 네트워크 액세스에 대한 패스워드와, 그 동일한 네트워크 상의 회사 데이터베이스를 액세스하기 위한 다른 패스워드와, 회사 데이터베이스에서의 암호화된 그 기록에 대한 암호 키를 요구하는 것은 드문 것이 아니다.
현재, 인터넷 호스팅 서비스의 등장으로, 새로운 애플리케이션과 연관된 콘텍스트와 이의 특유의 자격도 급증하였다. 사용자가 자신의 개인용 홈 네트워크, 자신의 업무 계정 및 자신의 직불/신용 카드 개인 식별 번호(personal identification number("PIN"))에 대하여 자신의 패스워드를 단지 추적할 필요가 있는 경우에, 그 사용자는 이제 각각의 서비스가 상이한 보안 콘텍스트를 나타내는 상이한 인터넷 서비스를 위한 개별 계정을 추적할 필요가 있을 것이다. 예를 들어, 소셜 네트워크(예를 들어, Facebook™), 전자 메일 서비스(예를 들어, Gmail™ 또는 Hotmail™) 및 개인 소프트웨어 서비스(예를 들어, Salesforce.com™)은 모두 자신의 보안 콘텍스트를 가지며, 따라서 자격을 개별적으로 관리한다.
유사하게, 모바일 장치의 등장으로, 컴퓨터 하드웨어 플랫폼과 연관된 새로운 보안 콘텍스트와 이의 연관된 보안 자격이 급증하였다. 사용자가 업무 컴퓨터 및 개인용 컴퓨터에 대한 패스워드를 추적하고 자신의 휴대 전화기 및/또는 태블릿 장치를 위한 코드를 잠그는 것은 드문 것은 아니다. 조합하여, 소프트웨어 서비스와 하드웨어 플랫폼의 급증은 보안 콘텍스트의 진정한 폭발적인 증가를 초래하였다.
이러한 보안 콘텍스트의 폭발적인 증가는 오늘날의 애플리케이션 개발자에 대한 도전 과제를 생성하였다. 사용자는 자신의 컴퓨팅 리소스의 구현 상세가 추상화되는 것을 원한다. 애플리케이션이 회사 네트워크에 상주하는지 인터넷에서의 클라우드 기반인지에 관계 없이, 사용자는, 보안을 손상시키지 않으면서, 일관된 사용자 경험을 원하고, 이질적인 보안 메커니즘이 가능한 한 통합되는 것을 원한다. 예를 들어, 사용자는 인터넷 애플리케이션에서의 인증을 자신의 Facebook™ 로그온 자격에 위임하기 원할 수 있다. 그러나, 애플리케이션 개발자는 인증 메커니즘을 프로그래밍하고, 그 메커니즘을 상이한 콘텍스트와 통합하고, 매우 다양한 컴퓨팅 하드웨어 및/또는 소프트웨어 플랫폼에서 구현하는 작업에 직면한다.
요약하면, 소프트웨어 서비스와 하드웨어 플랫폼이 급증함에 따라, 애플리케이션 개발자는 자신의 애플리케이션을 위하여 주목하지 않을 수 없는 특징을 개발하는데 있어서 투자의 비용으로 컴퓨터 보안에 소비하는 시간의 양이 증가하고 있다. 애플리케이션 개발자가 주목하지 않을 수 없는 특징을 생성하지 않는다면, 사용자는 애플리케이션을 구매하지 않을 것이다. 그런데도, 애플리케이션이 안전하지 않다면, 사용자는 여전히 애플리케이션을 구매하지 않을 것이다. 따라서, 종래 기술에 의해 해결되지 않는, 아이덴티티(identity) 서비스가 전술한 문제점을 완화하고 종래 기술에 의해 고려되지 않은 컴퓨터 보안 옵션을 제공하기 위한 요구가 있다.
발명을 실시하기 위한 구체적인 내용이 첨부된 도면을 참조하여 설명된다. 도면에서, 상이한 도면 내의 동일한 도면 부호의 참조 사용의 가장 왼쪽 자릿수(들)는 유사하거나 동일한 항목을 나타낸다.
도 1은 서비스로서의 아이덴티티 인프라 스트럭처에 대한 상위 레벨 콘텍스트 다이어그램이다.
도 2는 서비스로서의 아이덴티티 인프라 스트럭처에 대한 예시적인 하드웨어 및 소프트웨어 플랫폼을 도시한다.
도 3은 서비스로서의 아이덴티티 인프라 스트럭처에 대한 예시적인 확장 스크립트(extension script) 엔진의 다이어그램이다.
도 4는 서비스로서의 아이덴티티 인프라 스트럭처를 위한 예시적인 런타임(runtime)의 다이어그램이다.
도 5는 서비스로서의 아이덴티티 인프라 스트럭처에서 사용되는 로그인 위젯의 예시이다.
도 6은 서비스로서의 아이덴티티 인프라 스트럭처에서 사용되는 대시보드 사용자 인터페이스의 예시적인 외관과 느낌의 예시이다.
도 7은 서비스로서의 아이덴티티 인프라 스트럭처에서 사용되는 규칙 사용자 인터페이스의 예시적인 외관과 느낌의 예시이다.
도 8은 서비스로서의 아이덴티티 인프라 스트럭처와 연계하여 일부 예시적인 분석 보고서를 도시한다.
예비적인 개념 및 정의
현재, 개인, 기업 및 다른 조직과 국가는, 거의 모든 활동 범위에 있어서, 컴퓨터 하드웨어, 컴퓨터 구현 서비스 또는 컴퓨터 지원 프로세스를 포함하는 컴퓨팅을 사용한다. 컴퓨팅에 대한 의존성은 민감한 데이터 및 민감한 기능, 또는 다른 당사자가 액세스한다면 사용자에게 피해를 야기할 수 있는 데이터 및 기능을 다루기 위하여 확산되어 왔다. 개인 사용자는 전화번호, 전자 메일 주소 및 다른 연락처 정보를 추적하기 위하여 스마트폰의 컴퓨팅 능력을 사용할 수 있다. 종업원과 같은 기업 사용자는 급여를 설정하고 공탁하기 위하여 컴퓨터화된 급여 대상자 명단(payroll) 시스템을 사용할 수 있다. 국가는 국가의 방위 및 민감한 공용 인프라 스트럭처를 위하여 컴퓨팅을 사용할 수 있다. 따라서, 임의의 이러한 활동은 민감한 데이터 및 민감한 기능을 포함하며, 이 양자는 컴퓨터 및/또는 컴퓨터 지원/구현 서비스의 임의의 잠재적인 사용자가 보호하려고 하는 것이다.
컴퓨터 보안은 민감한 데이터의 보호인 사생활 개념을 포함한다. 보호는 민감한 것으로 지정된 데이터에 대한 액세스를 방지하는 형태로 될 수 있다. 예를 들어, 개인 사용자는 자신이 다른 사람들이 알도록 원하지 않는 은행 계좌 잔고를 가질 수 있다. 따라서, 그 개인은 그 은행 계좌 잔고 정보에 대한 액세스를 배우자와 같은 특정 개인이나 은행 종업원과 같은 특정 역할에 제한할 수 있다. 또한, 보호는 데이터 손상을 방지하는 형태로 될 수 있다. 예를 들어, 개인 사용자는 개인 스케쥴 정보를 갖는 개인용 컴퓨터를 가질 수 있다. 악의의 제3자는 그 개인용 데이터를 읽을 수 없지만, 대신에 악의적인 해악에 관여하여 스케쥴 정보를 변경하거나, 삭제하거나 아니면 손상시키도록 컴퓨터 바이러스를 이식할 수 있다.
또한, 컴퓨터 보안 개념은 기능의 보호를 포함한다. 데이터를 보호하는 것과 마찬가지로, 기능을 보호하는 것은 사용자가 다른 사용자들이 민감한 컴퓨터 기능을 액세스하거나 아니면 실행하는 것을 방지하는 것과, 악의의 제3자가 민감한 컴퓨터 기능을 손상시키는 것을 방지하는 것을 모두 포함한다. 전자의 예는 자신의 은행 계정으로부터 다른 사람이 현금을 전자적으로 인출하는 것을 방지하려고 하는 개인 사용자이다. 후자의 예는 그 컴퓨터 기능의 서비스에 대한 개인 사용자 액세스를 거절하도록 악의의 제3자가 애플리케이션을 손상시키는 것을 방지하기 위하여 컴퓨터 바이러스 보호 프로그램을 추가하는 사용자이다.
전술한 바와 같이, 사생활 및 보안 기능은 각각 데이터 및 기능을 보호하는 것을 포함한다. 컴퓨터 보안 메커니즘에 의해 보호될 수 있는 데이터 및 기능의 범위는 컴퓨터 보안 메커니즘에 대한 보안 콘텍스트이다. 다른 말로 하면, 컴퓨터 보안 메커니즘은 그 컴퓨터 보안 메커니즘에 의한 인증 및 인가가 신뢰되는 데이터 및 기능의 도메인을 가진다. 도메인의 범위는 보안 콘텍스트이며, 보안 콘텍스트를 벗어나는 것은 보안 콘텍스트의 신뢰 경계를 건너는 것으로 불린다.
따라서, 보안 콘텍스트를 위하여 컴퓨터 보안을 달성하는 것은 그 보안 콘텍스트를 위한 인증(authentication) 및 인가(authorization)의 개념을 포함한다. 인증은 정당한 사용자들을 식별하고 이들이 보안된 데이터 및/또는 기능을 액세스할 수 있게 하기 위한 시도에 있어서의 아이덴티티의 확인이다. 자격(credential)은 사용자를 인증하는 일반적인 방법이다. 자격은 많은 형태로 될 수 있다. 인증은 패스워드를 소유하는 안전한 사용자와 같은 정보의 소유에 의한 것일 수 있다. 인증은 키(key)와 같은 아티팩트(artifact)를 소유하는 보안 사용자와 같은 아티팩트의 소유에 의한 것일 수 있다. 소유에 의한 개인적인 형태의 인증은 망막 스캔 또는 지문 스캔을 통한다. 또한, 인증은 신용 카드 보유자의 이전 구매와 일치하지 않는 구매를 정지시키는 신용 카드 회사와 같은 행위에 의한 것일 수 있다. 요약하면, 인증은 사용자가 그 사용자가 그가 주장하는 자임을 확인하기 위한 자격의 사용이다.
인가는 성공적인 인증 후에 주어진 콘텍스트에서 보안된 데이터 및/또는 컴퓨팅 기능에 대한 액세스의 허용이다. 위에서 이전에 설명된 바와 같이, 인증은 종종 기대되는 자격의 소유에 의해 사용자가 그가 주장하는 자임을 확인하는 것에 제한된다. 인증 동안, 사용자는 사람일 필요가 없고, 기계 또는 프로그램일 수 있다는 점을 주목하라. 인증에서와 같이, 인가를 수행하는 보안 메커니즘은 보안 콘텍스트에 의해 정의되는 범위를 가진다. 따라서, 실용적인 이유로, 인가는 종종, 인증될 때, 보안된 데이터 및/또는 컴퓨팅 기능을 액세스하는 특권에 사용자를 매핑하는 것을 포함한다. 인가 기술은 특권을 부여하는 시스템 관리자 기능을 포함하여, 액세스 제어 리스트를 생성 및 관리하고, 액세스 정책 및 규칙을 생성 및 관리한다. 요약하면, 인가는 시스템 관리자와 같은 한 사용자로부터의 다른 사용자로의 특권의 발행이다. 인가 콘텍스트는 종종 동적이다. 주어진 사용자가 할 수 있는 것 또는 그가 액세스 할 수 있는 리소스는, 예를 들어, 시간, 행동 및 위치에 따라 변경될 수 있다. 사용자가 동일한 리소스를 하루 중 흔치 않은 시간에 액세스하는 경우에, 그는 자신이 주장하는 자에 대한 추가 확인을 제공하도록 요구될 수 있다. 그가 일반적으로 연결된 네트워크와 상이한 네트워크로부터 액세스하는 경우에도 유사하다.
인증 전에, 컴퓨터 보안은 실제 보안 또는 데이터 및/또는 컴퓨팅 기능을 포함한다. 구체적으로는, 보안은 인가되지 않은 액세스를 방지하는데 사용되는 수단이다. 현재, 데이터 및/또는 컴퓨팅 기능을 보호하는 것은 암호법(cryptography)을 이용한다. 암호법은 긴 소수(prime number)와 같은 수학적인 키를 발견하는 어려움 없이 액세스될 때의 데이터 또는 기능의 이해할 수 없거나 사용할 수 없는 형태로의 변환이다. 현재의 암호법 기술은, 이른바 기능의 계산(즉, 암호화)이 상대적으로 빠르지만 역의 계산(즉, 암호 해독)이 수학적 키가 없이 종래의 기술을 이용하여 수 년 또는 수 세기 소요된다고 할 수 있을 정도로 매우 느리기 때문에, 일방향 함수를 사용한다.
따라서, 인증에 따라, 사용자는 컴퓨터 보안 시스템에 의해 키를 제공받을 것이고, 이에 의해 사용자가 인가된 보안된 데이터 및/또는 기능으로의 액세스를 얻는다. 따라서, 컴퓨터 보안은 키 생성, 키 배포 및 키 관리를 포함한다. 키 생성은 암호 기능을 위한 하나 이상의 키의 생성이다. 대칭 암호법은 일반적으로 당사자들 사이에서 비밀로 유지되고 공유되는 단일 키를 사용한다. 비대칭 암호법은 타원 곡선 및 키 쌍을 포함하는 modulus exponent와 같은 암호 함수를 이용하고, 여기에서, 제1 키는 제1 사용자가 제2 사용자에 대한 통신을 암호화하기 위하여 공개적으로 알려지고, 제2 키는 제2 사용자에 의해 비밀로 유지되어 제1 사용자에 의해 암호화된 통신을 해독하는데 사용된다.
대칭 및 비대칭 암호화는 모두 비밀로 유지되는 적어도 일부의 생성된 키에 의존한다. 따라서, 키 배포는 키를 배포하는 것에 관련될 뿐만 아니라 가로채어 졌지만 인가되지 않은 것 그리고/또는 악의의 제3자로부터 키를 보호하는 것에도 관련된다. 키 배포 기술은 인가된 사용자만이 생성된 키를 수신하는 것을 보장하기 위한 프로토콜을 포함한다. 배포된 키가 손상될 수 있다는 위험이 항상 있기 때문에, 키 관리는 키를 언제 그리고 어떻게 생성하고, 배포하고, 만료시키는지에 대한 정책을 설정하고 구현하는 것이다.
컴퓨터 데이터 및/또는 컴퓨터 기능이 충분히 민감할 때, 결국 컴퓨터 보안 시스템은 공격을 받게 될 것이다. 감사(auditing)는 손상에 대한 평가와 응답의 개발을 허용하기에 충분한 이러한 공격의 검출이다. 감사는 순향적이거나(proactive), 실시간적이거나 또는 반응적일(reactive) 수 있다. 순향적 감사는 컴퓨터 보안 방어를 시험하는 악의의 제3자에 의한 탐색(probe)의 검출을 포함할 수 있다. 실시간 감사는 현재 진행 중인 공격의 검출을 포함할 수 있다. 반응적 감사는 공격이 발생하였다는 것을 검출하는 것을 포함할 수 있고, 추가로 손상 평가를 포함할 수 있다.
서비스로서의 아이덴티티 (Identity As a Service)
전술한 바와 같이, 인증은, 종종 입증될 수 있는 기대되는 자격을 제출하는 것에 의해 사용자, 사람, 기계 또는 다른 것이 이들이 주장하는 자라는 것의 확인이다. 사용자 및 이의 해당하는 자격의 융합은 그 사용자의 아이덴티티이다. 아이덴티티의 개념은 사용자 보안을 요약하는 관념이다. 따라서, 아이덴티티 관리는 컴퓨터 보안 기능의 부분 집합이며, 인증, 인가 및 감사를 포함하지만, 암호 인프라 스트럭처와 같은 기저의 보안 메커니즘은 포함하지 않는다.
일 양태에서, 본 특허 출원은 넓은 범위의 보안 콘텍스트에서 컴퓨터 애플리케이션 및 장치를 위하여 컴퓨터 보안 기능을 지원하기 위한 아이덴티티 인프라 스트럭처 서비스를 설명한다. 구체적으로는, 아이덴티티 인프라 스트럭처 서비스는, 임의의 아이덴티티 제공자(identity provider)/보안 델리게이트(delegate) 또는 아이덴티티 제공자/보안 델리게이트의 임의의 세트를 이용하여, 다수의 하드웨어 및 소프트웨어 플랫폼에 걸쳐 보호될 데이터 및 기능의 임의의 세트에 대한 임의의 보안 콘텍스트의 생성을 가능하게 한다. 더하여, 아이덴티티 인프라 스트럭처 서비스는 아이덴티티 서비스를 프로그래밍적으로 제어하는 방식을 제공하여, 이에 의해 보안 콘텍스트의 범위 및 거동이 동적일 수 있게 한다. 따라서, 아이덴티티 인프라 스트럭처 서비스는 애플리케이션 프로그래밍 인터페이스(application programming interfaces(API))를 노출시킨다. 아이덴티티 인프라 스트럭처의 중앙 집중화/집합되는 성질 때문에, 종종 아이덴티티 인프라 스트럭처 서비스는 권한 설정(provisioning), 권한 설정 해제(de-provisioning), 사용자 확인 및 사용자 프로파일과 같은 사용자 관리 기능과 조합되거나 이들과 밀접하게 결합될 수 있다. 구체적으로는, 사용자 관리는 보안에 관련될 수 있거나 관련되지 않을 수 있는 사용자 속성의 관리이다.
서비스로서의 아이덴티티를 개발하는 것의 이점은 보안 콘텍스트의 신뢰 경계가 사용자 관점 및 관리자 관점 모두로부터 함께 통합된다는 것이다. 종래 기술의 아이덴티티 스킴은 상이한 인증 스킴뿐만 아니라 상이한 위치에서 구현되는 상이한 서비스를 조잡하게 기워 맞추었다. 예를 들어, 사용자 관점에서, 회사 LAN으로의 로그온과 로컬 회계 시스템으로의 로그온은 단지 2개의 개별 로그온을 의미하지 않는다. 이것은 사용자가 각각의 로그온으로 적어도 하나의 보안 콘텍스트의 신뢰 경계를 건너야만 하는 것을 의미한다 - 회계 시스템으로의 로그온은 당신이 네트워크에서 신뢰되었다는 것을 의미하지 않고, LAN으로의 로그온은 당신이 회계 시스템에서 신뢰되었다는 것을 의미하지 않는다. 관리자는 사용자가 회계 시스템으로부터 인쇄 및 파일 서비스를 액세스할 수 있도록 LAN 상에 회계 관리 계정을 만드는 것과 같은 프로그램 조작(hack)을 수행하여야 할 수 있다. 관리자 관점에서, 관리자는 단일 사용자의 관점으로부터 계정의 보안 상태를 볼 수 없다. 예를 들어, 해커가 사용자를 해킹하려고 시도하면, 관리자는 사용자의 LAN 계정에 대한 공격과 이의 회계 시스템 계정을 2개의 관련되지 않은 이벤트로서 취급할 수 있어, 이에 의해 해킹 공격에 대한 검출과 응답을 느리게 한다.
일 양태에서, 본 특허 출원은, 이러한 보안 콘텍스트에 대하여, 하나 이상의 확장 스크립트(extension script) 및/또는 다른 프로그램을 포함하는 프로그램 확장(programmatic extension)을 통해 프로그래밍적으로, 그리고/또는 도구 및 다른 구성 메커니즘을 통해 관리적으로, 컴퓨터 보안 기능을 개발하기 위한 도구, 라이브러리 및 다른 환경 요소를 설명한다. 또한, 본 특허 출원은 다양한 아이덴티티 관리 사용 케이스를 지원하기 위한 중앙 집중화된 서비스를 설명한다.
도 1은 아이덴티티 인프라 스트럭처 서비스의 예시적인 실시예를 도시하는 상위 레벨 다이어그램(100)이다. 아이덴티티 인프라 스트럭처 서비스는 아이덴티티 및 사용자 관리 서비스를 액세스하기 위한 단일 포인트를 제공한다. 구체적으로는, 다이어그램(100)은, 아이덴티티 인프라 스트럭처 서버(102)와, 다양한 개발 플랫폼(104)과의 통합과, 다양한 보안 델리게이트(106)로의 연결과, 다양한 인증 프로토콜(108)로의 액세스와, 다양한 자격 및 인가(110)를 위한 스토리지와, 사용자 관리 및 인가 기능(112)과, 감사 및 분석 기능(114)을 도시한다.
아이덴티티 인프라 스트럭처 서버
아이덴티티 인프라 스트럭처 서버(102)는 애플리케이션 개발자가 아이덴티티 및 사용자 관리 서비스를 액세스하는 단일 포인트를 제공하는 소프트웨어 서비스의 집합이다. 구체적으로는, 인증, 인가 및 감사와 같은 특정 기능이 아이덴티티 인프라 스트럭처 서버(102)에서 수행될 수 있다. 아이덴티티 인프라 스트럭처(102)는 이에 의해 상이한 데이터 및 기능에 걸쳐 그리고 임의의 아이덴티티 제공자를 이용하여 임의의 보안 콘텍스트의 형성을 제공한다.
인증은 아이덴티티 제공자에 의해 자연적으로 수행될 수 있거나, 또는 위임될 수 있다. 아이덴티티 제공자가 위임될 때, 이는 보안 델리게이트로서 알려져 있다. 인프라 스트럭처 서버(102)는 인증을 위하여 기업 외부 브로커 애플리케이션 프로그래밍 인터페이스(API)(116)를 노출시킨다. 기업 브로커 API(116)는 API 호출(call)을 SAML(Security Assertion Markup Language), WS-Federation, WS-Trust, OpenID Connect, OAuth1, OAuth2, 또는 완전한 커스텀 자격 저장소(custom credential store)와 같은 인증 데이터 포맷 및/또는 프로토콜 내로 구현하는 외부 인증 브로커(118)로의 프로그래밍적 액세스를 제공한다. 이러한 방식으로, API는, 과거, 현재 및 장래의 매우 다양한 인증 데이터 포맷 및 프로토콜에서의 참여를 가능하게 하면서, 균일한 프로그래밍 인터페이스를 제공한다.
일부 인증 데이터 포맷 및/또는 프로토콜은 사용자 자격의 로컬 스토리지(120)를 고려한다. 이 대신에, 사용자 자격은 비 로컬(non-local) 스토리지(110)에 저장될 수 있다.
또한, 인프라 스트럭처 서버(102)는 다양한 인증 기술로의 프로그래밍적 액세스를 제공하는 외부 인증 API(122)를 노출시킨다. 구체적으로는, 외부 인증 API(122)는 소셜 인증 브로커(124)를 액세스할 수 있거나, 다양한 보안 델리게이트(106)에 대한 다양한 연결을 호출할 수 있는 데이터베이스 연결부(database connection)(126)와 인터페이스할 수 있다. 보안 델리게이트가 클라우드 서비스 및 다른 인터넷 호스팅 서비스일 수 있다는 점에 주목하라. 이 대신에, 보안 델리게이트는 LAN 상에서 호스팅되는 서비스일 수 있다. 외부 인증 API(122)가 외부 브로커(116), 외부 인증 브로커(118) 및 인증 브로커(124)를 포함하는 모든 브로커 및 델리게이트에 대하여 가시성(visibility)을 가지기 때문에, 이는 싱글 사인 온(sign on) 기능(128)을 구현할 수 있다. 인증에 따라, 인가 확장 스크립트 엔진(130)을 통해 인가가 구현될 수 있다. 싱글 사인 온(128)과 인가 확장 스크립트 엔진(130)의 추가적인 동작 상세는 도 3 및 4에 관하여 제공된다.
아이덴티티 인프라 스트럭처 서버(102)의 다양한 컴포넌트의 구현은 런타임(runtime)(132)에서 실행될 수 있다. 런타임은 추가 보안 격리(security isolation)를 제공할 수 있다. 런타임(132)의 보안 특징은 도 4에 관하여 더 상세하게 설명된다.
개발 플랫폼
전술한 바와 같이, 아이덴티티 인프라 스트럭처 서버(102)는 아이덴티티 관리 및 사용자 관리 기능과, 기업/LAN 및 외부 데이터베이스/클라우드 서비스와, 다양한 프로토콜 및 데이터 포맷과, 다양한 아이덴티티 제공자 및 보안 델리케이트를 위하여 균일한 API를 노출시킨다.
유사하게, 클라이언트 측에서, 소프트웨어 개발 키트(software development kits(SDK))(104)는 API(116 및 122)를 액세스하기 위한 도구 및 라이브러리를 제공한다. SDK(104)는 매우 다양한 클라이언트 플랫폼을 지원하는데 있어서 개발자에게 도움을 주기 위하여 균일한 프로그래밍 모델을 제공하는 역할을 한다. 구체적으로는 개인용 컴퓨터 애플리케이션은 Microsoft Windows™ 플랫폼(134)을 위한 SDK에 또는 Apple MacOS™(136)을 위한 SDK에 의해 지원된다. 또한, 웹 애플리케이션은, 안드로이드 SDK(140) 및 애플 iOS SDK(142)를 통해 모바일 장치가 가지는 것처럼 특수 SDK(138)를 가질 수 있다
각각의 SDK(104)가 이의 기본 운영 체제/소프트웨어 플랫폼에 고유하지만, SDK는 상이한 운영 체제/플랫폼을 위한 애플리케이션 개발을 용이하게 하도록 일관되게 구현된다. 이러한 일관성의 이점을 나타내는 한 방법은 이것이 실행되는 기본 플랫폼의 특이한 방식을 고려하여 동일한 기능을 수행하는 의미상으로 그리고 구문상으로 유사한 라이브러리를 통하는 것이다. 이 이점을 나타내는 다른 방법은 자바 스크립트 로그인 위젯(144)을 통하는 것이며, 이는 자바 스크립트 코드를 실행할 수 있는 임의의 애플리케이션을 위한 로그인 다어얼로그를 제공하기 위하여 단일 본문 소스 코드(single body source code)를 제공한다. 자바 스크립트 로그인 위젯(144)의 동작은 도 5에 관하여 더욱 상세히 설명된다.
보안 델리게이션을 위한 연결
아이덴티티 인프라 스트럭처 서버(102)는 통상적으로 보안을 구현하지 않고, 대신에 브로커 보안이 아이덴티티 제공자 및 보안 델리게이트를 형성한다. 따라서, 이는 네이티브(native) 아이덴티티 제공자를 통해 네이티브 보안을 노출시키고 연결(106)을 통해 매우 다양한 보안 델리게이트와의 인터페이스를 제공한다. 연결은 기업 보안(146), 클라우드 서비스(148) 또는 서드 파티 인증 제공자(150)에게 위임할 수 있다.
기업 보안 연결(146)은 기업의 온 프레미스(on-premise) 네트워크(LAN)에 통상적인 보안 서버로의 인터페이스를 관리한다. 예를 들어, 커버로스(Kerberos) 키 서버는 LAN 도메인 상에 상주할 수 있다. 아이덴티티 인프라 스트럭처 서버(102)가 커버로스 기반의 보안 서버를 액세스하기 위하여, 이는 커버로스 키 서버의 위치를 찾아 이와 핸드쉐이크하여야 한다. 이것은 통상적으로 마이크로소프트 액티브 디렉토리(Microsoft Active Directory)와 같은 도메인 디렉토리 서비스 또는 OpenLDAP와 같은 LDAP(Lightweight Directory Access Protocol) 서비스를 통해 수행될 것이다. 보안 서버와의 성공적인 위치 찾기 및 핸드쉐이크에 따라, 사용자는 인증될 수 있다.
클라우드 서비스 연결(148)은 이의 인증 메커니즘에 대한 위임을 제공하는 클라우드 서비스로의 연결이다. 예를 들어, Facebook™과 Google Gmail™은 모두 사용자를 인증한다. 클라우드 서비스 연결(148)은 사용자의 아이덴티티를 확인하기 위하여 해당하는 API를 통해 애플리케이션이 서드 파티 클라우드 애플리케이션에 액세스할 수 있게 한다.
서드 파티 인증 제공자 연결(150)은 클라우드 서비스 연결과는 다르게 HTTP(Hypertext Transfer Protocol)을 통해 통신하지 않는 서드 파티 인증 제공자에 대한 연결이다. 예는 Verisign™과 미국 정부 고유의 인증 제공자를 포함한다.
인증 서비스 및 프로토콜
아이덴티티 인프라 스트럭처 서버(102)는 매우 다양한 인증 프로토콜을 지원한다. 따라서, 아이덴티티 인프라 스트럭처 서버(102)는 특정 인증 프로토콜을 지원하는 외부 컴포넌트(108)를 사용할 수 있다. 예를 들어, OAuth2.0은 아이덴티티 인프라 스트럭처 서버(102)로부터 원격에 있는 서드 파티의 신뢰받는 서버를 이용할 수 있다. 이러한 시나리오에서, 아이덴티티 인프라 스트럭처 서버(102)는 이러한 서드 파티 연결(108)과 인터페이스할 것이다.
자격 지속(Credential Persistence)
아이덴티티 인프라 스트럭처 서버(102)는 자격, 인가 확장 스크립트, 메타데이터 및 아이덴티티 인프라 스트럭처 서버(102)의 동작에 있어서 사용되는 다른 데이터를 저장하기 위한 외부 지속 서버(110)를 가진다. 지속 서버는, 한정이 아니면서, 관계형 데이터베이스 관리 서버(relational database management server(RDMBS)) 또는 객체 지향형 데이터베이스, 컬럼 지향형(columnar) 데이터베이스 또는 NoSQL 데이터베이스일 수 있다.
지속 서버(110)가 자격과 같은 민감한 정보를 저장할 수 있기 때문에, 지속 서버(110)는 코드 마다의 암호화를 구현할 수 있다.
사용자 관리 및 인가 기능
아이덴티티 인프라 스트럭처 서버(102)는 아이덴티티 관리뿐만 아니라 사용자 관리 및 인가 기능을 제공하는 대시보드(dashboard)(112)를 통해 관리된다. 대시보드(112)는 사용자 권한 설정이 발생하는 사용자 관리 기능(152)을 포함한다. 애플리케이션 선호도는 애플리케이션 컴포넌트(154)를 통해 설정될 수 있다. 연결은 연결 컴포넌트(156)를 통해 추가, 삭제, 편집 또는 구성될 수 있다. 확장 스크립트 편집기(158)는 입력 및 연결과 인터페이스하는 스크립트를 통해 애플리케이션 특권을 위하여 사용자에게 인가에 대한 프로그래밍 제어를 제공한다. 대시보드(112)는 도 6와 관하여 더욱 상세히 설명된다.
확장 스크립트 편집기(158)는 아이덴티티 서버를 통해 액세스 가능한 임의의 리소스 및/또는 클라이언트 상의 임의의 리소스에 대한 매우 정교한 논리적이고 프로그래밍적인 제어를 제공한다. 구체적으로는, 확장 스크립트 편집기(158)는 사용자의 활동의 특정 범위에 따라 특권이 이네이블/디스에이블되는 동작의 상황을 설명할 수 있는 하나 이상의 확장 스크립트로 구성되는 프로그래밍 확장의 개발을 지원한다. 상황이 설명되는 동작은 도 3에 대하여 더욱 상세히 설명되고, 확장 스크립트 편집기는 도 6에 대하여 더욱 상세히 설명된다.
감사 기능
대시보드(112)는 또한 감사 및 보고 기능(114)을 지원한다. 관리자는 로그온 시도, 실패된 시도 및 액세스된 애플리케이션과 같은 사용자의 아이덴티티에 관련된 모든 활동을 검토할 수 있다. 보고 기능은 매우 다양한 분석 기능 및 보고를 제공하는 것을 통해 순향적, 실시간적 및 반응적 감사에 도움을 준다. 분석 기능 및 보고는 도 7에 대하여 더욱 상세히 설명된다.
예시적인 하드웨어 플랫폼
도 2는 의미론적 보증을 갖는 애플리케이션의 자동화된 포팅(porting)을 위한 하드웨어 환경(200)의 하나의 가능한 실시예를 도시한다.
클라이언트 장치(202)는 임의의 컴퓨팅 장치이다. 예시적인 컴퓨팅 장치는, 한정이 아닌 것으로, 개인용 컴퓨터, 태블릿 컴퓨터, 스마트폰, 스마트 텔레비전, 스마트 미디어 플레이어, 및 현금 인출기와 같은 보안 키오스크를 포함한다. 클라이언트 장치(202)는 프로세서(204) 및 메모리(206)를 가질 수 있다. 클라이언트 장치(202)의 메모리(206)는 애플리케이션(208) 및/또는 운영 체제(210)를 포함하는 여러 프로그램을 저장할 수 있는 컴퓨터 판독 가능한 매체이다.
컴퓨터 판독 가능한 매체는, 적어도, 2가지 종류의 컴퓨터 판독 가능한 매체, 즉 컴퓨터 저장 매체와 통신 매체를 포함한다. 컴퓨터 저장 매체는, 컴퓨터 판독 가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성이고 비휘발성이며, 제거 가능하거나 제거 불가능한 매체를 포함한다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 장치, 또는 컴퓨팅 장치에 의한 액세스를 위하여 정보를 저장하는데 사용될 수 있는 임의의 다른 비전송 매체를 포함하지만, 이에 한정되지 않는다. 대조적으로, 통신 매체는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호로 컴퓨터 판독 가능한 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구체화할 수 있다. 본 명세서에서 정의되는 바와 같이, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다.
통신 환경에 참여하기 위하여, 사용자 설비 장치(202)는 네트워크 인터페이스(212)를 가질 수 있다. 네트워크 인터페이스(212)는 이더넷, 와이파이 또는 임의의 개수의 다른 물리적 데이터 링크 표준 인터페이스를 포함하는 하나 이상의 네트워크 인터페이스일 수 있다. 사용자가 단지 단독형 단일 기계에서 동작을 수행할 필요가 있는 경우에, 네트워크 인터페이스(212)는 선택적이다.
클라이언트(202)는 서버(214)로 통신할 수 있다. 서버(214)는 네트워크에 참여할 수 있는 임의의 컴퓨팅 장치이다. 네트워크는, 한정이 아니면서, LAN(local area network), VPN(virtual private network), 휴대 전화 네트워크 또는 인터넷일 수 있다. 클라이언트 네트워크 인터페이스(212)는 서버 네트워크 인터페이스(216)를 통해 서버(214)로 최종적으로 연결될 수 있다. 서버 네트워크 인터페이스(216)는 클라이언트 네트워크 인터페이스(212)에 관하여 설명된 바와 같은 하나 이상의 네트워크 인터페이스일 수 있다.
또한, 서버(214)는 프로세서(218)와 메모리(220)를 갖는다. 클라이언트 장치(202)에 관한 이전 논의에 따라, 메모리(220)는 컴퓨터 매체 및 통신 매체를 모두 포함하는 임의의 컴퓨터 판독 가능한 매체이다.
특히, 메모리(220)는 애플리케이션(222) 및/또는 운영 체제(224)를 포함할 수 있는 소프트웨어를 저장한다. 또한, 메모리(216)는, 한정이 아니면서, 애플리케이션 서버와 데이터베이스 관리 시스템을 포함할 수 있는 애플리케이션(222)을 저장할 수 있다. 따라서, 서버(214)는 데이터 저장소(226)를 포함할 수 있다. 데이터 저장소(226)는 관계형 데이터베이스, 객체 지향형 데이터베이스, NoSQL 데이터베이스 및/또는 컬럼 지향형 데이터베이스 또는 확대/축소 가능한 지속을 지원하는 임의의 구성으로서 구성될 수 있다.
서버(214)는 현장에 있거나 클라이언트 업체에 의해 동작될 필요는 없다. 서버(214)는 클라우드 설치(228) 상에서 인터넷에 호스팅될 수 있다. 클라우드 설치(228)는 가상 웹 애플리케이션 서버(230, 232) 기능과 가상 데이터베이스(234) 기능을 제공하는 복수의 분해된 서버를 나타낼 수 있다. 클라우드(228) 서비스(232, 234)는 클라우드 인프라 스트럭처(236)를 통해 액세스 가능하게 될 수 있다. 클라우드 인프라 스트럭처(236)는 클라우드 서비스(230, 232)에 대한 액세스를 제공할 뿐만 아니라, 과금(billing) 서비스를 제공한다. 클라우드 인프라 스트럭처(236)는 PAAS(Platform as a Service), IAAS(Infrastructure as a Service) 및 SAAS(Software as a Service)와 같은 추가적인 서비스 관념을 제공할 수 있다.
서비스로서의 아이덴티티를 위한 지원 도구 및 환경
개요
서비스로서의 아이덴티티는 종래 기술에서는 제공되지 않는 이점이 생기게 한다. 아이덴티티와 보안 기능이 중앙 집중화되기 때문에, 보안 콘텍스트의 신뢰 경계는 여러 번 건너지지 않고, 이에 의해 동작과 보고의 통합을 단순화한다. 다음은 도 1에 관하여 설명된 바와 같은 아이덴티티 인프라 스트럭처를 포함하는 선택된 컴포넌트를 설명한다.
확장 스크립트 엔진
사용자의 인증은 사용자가 전체 시스템에 대하여 인증되거나, 아니면 시스템으로부터 잠기는 단순한 2진법적 동작으로부터 전개하여왔다. 인증은 시스템의 일부에 대한 특정의 개별 특권에 트리거할 수 있을 뿐만 아니라 조건부일 수 있다. 시스템의 특정 부분을 위한 특정 특권을 허용하기 위한 조건의 캡슐화(encapsulation)는 규칙으로 불린다. 예를 들어, 관리자는 3개의 특정 기계만에 대한 액세스가 부여되고 소정의 파일에 대하여 리드온리(read-only) 특권이 부여되는 임시 기술자의 역할을 설정하였을 수 있다.
역할을 넘어서, 서비스로서의 아이덴티티에서, 프로그램 확장은 하나 이상의 확장 스크립트를 포함할 수 있다. 프로그램 확장은 일반적인 확장 모델을 제공한다. 프로그램 확장 및 이의 확장 스크립트는 보안 기반, 아이덴티티 기반 또는 다른 기반의 임의의 프로그래밍 용도에 적용될 수 있다. 예를 들어, 프로그램 확장은 비-보안(non-security) 또는 비-아이덴티티(non-identity) 기반의 정보 및/또는 비-보안 또는 비-아이덴티티 커스텀 API의 집합에 트리거할 수 있다.
그러나, 프로그램 확장은 보안 및/또는 아이덴티티 콘텍스트에 광범위하게 적용될 수 있다. 프로그램 확장은 매 애플리케이션/매 사용자 기반으로 상황이 설명되는 인증을 가능하게 한다. 더욱 구체적으로는, 아이덴티티 서비스는 보호될 애플리케이션 및/또는 이의 해당하는 API, 네트워크 리소스 및/또는 보호될 장치에 대한 액세스와 같은 보호될 임의의 데이터 및 기능에 대한 액세스를 제공한다. 사용자는 애플리케이션 및/또는 장치를 액세스 가능하게 만들도록 추가로 커스텀 API를 생성할 수 있다. 장치 액세스 가능성을 위한 지원은 이에 의해 "사물 인터넷(Internet of Things)"의 요소를 보호하는 것을 가능하게 할 수 있다. 데이터 및 기능에 대한 액세스는 하나 이상의 아이덴티티 제공자 및/또는 보안 델리게이트를 통해, 프로그램 확장을 포함하는 하나 이상의 확장 스크립트를 통하여 보호될 수 있다. 이에 의해, 확장 스크립트는 임의의 보안 콘텍스트를 프로그래밍적으로 형성할 수 있다. 따라서, 하나 이상의 확장 스크립트는 조합하여 아이덴티티 서비스의 프로그램 확장을 포함할 수 있다. 더하여, 프로그래밍 확장이 본질적으로 프로그래밍적이기 때문에, 형성된 보안 콘텍스트의 범위 및 거동은 동적이다. 프로그래밍 확장의 확장 스크립트가 아이덴티티 서버 및 클라이언트가 이용 가능한 임의의 입력에 대한 액세스를 가지기 때문에, 범위 및 보안 콘텍스트는 임의의 이러한 입력에 응답하여 변경될 수 있다.
프로그래밍 확장의 확장 스크립트가 임의의 아이덴티티, 임의의 제약(constraint), 모듈 내의 기능의 화이트리스트, URI(uniform resource identifier)의 화이트리스트 및 이와 유사한 것에 구속될 수 있다. 모든 이러한 리소스는 보안 콘텍스트의 형성 및 관리에 있어서 확장 스크립트에 의해 프로그래밍적으로 제어될 수 있다. 예로써, 새로운 고객에 의한 임의의 로그온이 스크립트에 의해 검출되고 기업의 영업 사원이 후속 조치하도록 기록이 CRM(customer relations management) 애플리케이션에서 생성되는 프로그래밍 확장을 고려하라. 이러한 기능은 모두 프로그래밍 확장을 통해 CRM 기능을 이용하여 아이덴티티 기능을 프로그래밍적으로 확장하는 일례이다.
서비스로서의 아이덴티티에서, 프로그래밍 확장에 의해 형성된 보안 콘텍스트는 보다 많은 시스템에 적용될 수 있고, 2 이상의 아이덴티티 제공자 및/또는 메커니즘에 적용될 수 있다. 시스템과 상이한 아이덴티티 제공자 및/또는 메커니즘의 아이덴티티/보안 서비스의 중앙 집중화 때문에, 단일 확장 스크립트가 임의의 서비스 및/또는 메커니즘을 제한할 수 있다. 도 3은 하나 이상의 프로그래밍 확장을 위한 확장 스크립트의 관리와, 아이덴티티 인프라 스트럭처에서의 이러한 확장 스크립트의 실행을 도시하는 다이어그램(300)이다.
아이덴티티 서버(302)는 런타임(304) 및 샌드박스(sandbox)(306)를 포함한다. 런타임(304)과 샌드박스는 도 4에 관하여 더욱 상세히 설명된다. 확장 스크립트(308)는 애플리케이션 API, 보안 API, 제공자를 식별하기 위한 API 및 아이덴티티 서버(302)가 이용 가능한 임의의 다른 API를 호출하는 아이덴티티 서비스의 프로그래밍 확장을 포함한다. 가장 특별하게는, 단일 프로그램 확장의 확장 스크립트는 잠재적으로 상이한 애플리케이션으로부터, 상이한 보안 메커니즘으로부터, 상이한 아이덴티티 제공자로부터 API를 호출할 수 있다. 따라서, 확장 스크립트는 보안 서비스를 프로그래밍적으로 확장하기 위한 메커니즘을 제공한다. 프로그래밍 확장을 추가하기 위하여, 관리자는 하나 이상의 확장 스크립트를 프로그래밍할 수 있으며, 확장 스크립트가 아이덴티티 서버(302)에 대하여 프로그래밍 확장과 연관된 잘 알려진 명칭 공간(namespace)을 공유한다. 프로그래밍 확장을 구성하는 확장 스크립트는 그 다음, 일반적으로는 아이덴티티 서버의 로컬 스토리지에서, 아이덴티티 서버(302)로 업로드되지만, 이 대신에, 네트워크로 연결된 스토리지에 업로드된다. 반대로, 프로그래밍 확장은 스토리지로부터 이를 구성하는 확장 스크립트를 삭제함으로써 제거될 수 있다. 업로드된 확장 스크립트(308)는 사용자(310) 또는 사용자 역할(312), 즉 공통으로 특권 세트를 갖는 사용자 그룹과 연관될 수 있다. 업로드된 프로그래밍 확장(308)은 능동적으로 또는 비능동적으로 구성될 수 있다. 따라서, 프로그래밍 확장(308)은 비활성화되도록 삭제될 필요가 없다.
확장 스크립트의 동작의 일례는 사용자 및/또는 역할과의 프로그래밍 확장의 연관이다. 본 예에서, 사용자(310)는 애플리케이션(314)에 로그온하려고 시도한다. 애플리케이션(314)은, 그 다음, 이의 API를 통해 아이덴티티 서버(302)를 호출하고, 인증 요청의 형태로 로그온 정보를 전송한다. 아이덴티티 서버(302)는 그 다음 인증 요청을 아이덴티티 제공자(316)에 대한 요청으로 변환한다. 아이덴티티 제공자(316)에 의한 성공적인 인증에 따라, 아이덴티티 서버(302)는 그 다음 사용자 및/또는 사용자의 역할과 연관된 모든 확장 스크립트를 연속적으로 실행한다. 프로그래밍 확장(308) 중 하나에 적어도 기초하여, 아이덴티티 서버는 이에 따라 특권을 부여할 것이다. 애플리케이션(314)은 그 다음 애플리케이션 API를 통해 부여된 특권이 통지받는다.
사용자, 사용자 프로파일 및 스키마
사용자가 로그인할 때, 사용자는 특정 보안 콘텍스트에 대하여 특정 보안 메커니즘을 통해 로그인한다. 그 특정 보안 메커니즘에 대한 그리고 그 특정 보안 콘텍스트에 대한 로그인을 위한 사용자의 상태는 복수의 필드에서 캡처될 수 있다. 또한, 그 특정 콘텍스트에 대한 사용자의 아이덴티티를 포함하는 추가 필드가 사용자와 연관될 수 있다. 이러한 필드의 집합은 사용자 스키마를 포함한다.
사용자 스키마는 사용자 이름 및 패스워드와 같은 디폴트 필드를 가질 수 있다. 그러나, 사용자 스키마는 아래에서 대시보드에 관하여 설명되는 바와 같이 더 커스터마이즈될 수 있거나, 또는 프로그래밍 확장을 통해 동적으로 커스터마이즈될 수 있다.
사용자가 항상 사람인 것으로 가정되어서는 안 된다는 점이 주목되어야 한다. 오히려, 사용자는 자신의 계정을 가질 수 있는 다른 기계 또는 프로그램일 수 있다. 따라서, 스키마를 정적으로 그리고/또는 동적으로 커스터마이즈하기 위한 능력은 매우 상이한 종류의 사용자의 프로파일을 관리할 수 있게 한다. 예를 들어, 사람과 같은 일부 등급의 사용자는 성과 이름 필드를 합리적으로 가질 수 있다. 기계와 같은 다른 등급의 사용자는 기계 식별자 필드를 가질 수 있다.
런타임 샌드박스
아이덴티티 서버의 적어도 일부는 샌드박스, 즉 격리된 프로그램 실행 영역에서 실행될 수 있다. 도 4는 샌드박스 내에서 실행되는 아이덴티티 서버의 예시적인 콘텍스트(400)를 도시한다. 샌드박스는 확장 스크립트가 아이덴티티 서비스의 프로그램 확장을 구성하는 확장 스크립트 엔진을 이용하여 동기가 부여된다. 확장 스크립트가 모든 아이덴티티 및 클라이언트 리소스에 대한 액세스를 가지기 때문에, 샌드박스는 프로그래밍 확장을 구성하는 확장 스크립트에 의해 수행될 수 있는 변화의 범위를 제한할 수 있다.
아이덴티티 서버(402)의 설치는 다수의 호스트(404) 상에서 가상으로 또는 달리 배치될 수 있다. 각각의 호스트 서버(404)에서, 하나 이상의 런타임(406) 및 하나 이상의 대응하는 샌드박스(408) 실행 영역이 있을 수 있다. 아이덴티티 서버 로직의 무상태(stateless) 부분, 예를 들어 프로그래밍 확장 및 연결은 상이한 호스트들로 복사될 수 있다. 따라서, 요청(410)이 설치가 되게 될 때, 제1 가용 서버로 보내질 수 있어, 이에 의해 확장성(scalability)에 도움을 준다. 아이덴티티 서버 로직의 상태 기반(stateful) 또는 지속(persistent) 부분은 상호 액세스 가능한 데이터 저장소 또는 데이터베이스를 갖는 서버(412)에 저장될 수 있다. 인증 요청이 사용자에게 고유하기 때문에, 관리자는 데이터 저장소를 다수의 서버로 분할할 수 있어, 기록이 사용자에 의해 분할된다. 아이덴티티 서버(402)는 선택적으로 서로 대체 작동(failover)할 수 있다. 일 실시예에서, 하나의 아이덴티티 서버 인스턴스는 온 프레미스(on-premise)일 수 있고, 다른 아이덴티티 서버 인스턴스는 오프 프레미스(off-premise)일 수 있다. 어느 아이덴티티 서버가 사용되는지에 관한 상태를 프로그래밍적으로 작성함으로써, 로밍(roaming)이 프로그래밍 확장의 확장 스크립트를 통해 구현될 수 있다.
로그인 위젯
애플리케이션 프로그래머의 공통적인 어려움은 로그온 다이얼로그 박스를 개발하는 것이다. 과거에는, 각각의 애플리케이션은 애플리케이션 및 아이덴티티 제공자의 각각의 순열(permutation)에 대하여 하나씩 맞춤 제작된 다이얼로그를 포함하였다. 개방 인증 프로토콜의 등장은, 유일한 인증 프로토콜이 사용되었다면, 프로세서를 단순화하였다. 그러나, 서비스로서의 아이덴티티로, 다수의 인증 프로토콜 및 다수의 아이덴티티 제공자가 애플리케이션에 의해 액세스될 수 있다. 이것은 만능(universal) 로그인 위젯을 가능하게 한다. 도 5는 만능 로그인 위젯의 예시(500)이다.
로그인 위젯(502)은 애플리케이션으로 작은 코드 토막을 오려두기(cut)하고 붙여넣기(paste)함으로써 구현될 수 있다. 코드 토막에서, 로그인 위젯은 본 항목에서 설명된 바와 같이 커스터마이즈될 수 있다. 로그인 위젯(502)은 아이덴티티 서버(504)를 호출하고, 이의 구성에 기초하여, 아이덴티티 제공자(506)에 대한 하나 이상의 연결을 이용할 수 있다. 예를 들어, 로그인 위젯(502)은 Google+™, Facebook™ 및 Twitter™(도시되지 않음)와 같은 서드 파티 인증 서비스를 통한 인증에 대한 링크(508)를 포함한다. 아이덴티티 서버(504)를 통한 아이덴티티 제공자(506)의 중앙 집중화 때문에, 로그인 위젯(502)은 단지 로그인 위젯의 속성을 변경함으로써 2 이상의 아이덴티티 제공자(506)에 액세스할 수 있다.
또한, 로그인 위젯(502)은 사용자 이름 텍스트 박스(510), 패스워드 텍스트 박스(512) 및 로그온 버튼(514)을 포함하는 사용자/패스워드 로그온을 포함한다. 연결에 따라, 속성은 로그인 위젯(502)의 디스플레이 및 로직을 제어할 수 있다. 구성된 기업 연결이 있다면, 사용자 이름 텍스트 박스(510)는 전자 메일 주소를 수신하도록 구성될 것이다. 데이터베이스 연결이 있다면, 패스워드 텍스트 박스(512)가 자동으로 디스플레이될 것이고, 선택적으로는 가입(signup)/패스워드 찾기(forgotten password) 링크(514)가 디스플레이될 것이다. 링크(514)를 클릭하는 것은 사용자가 서비스에 가입하고 그리고/또는 패스워드를 리셋할 수 있는 웹 세션을 열 것이다. 일반적으로, 로그인 위젯(502)은, 속성이나 연결의 종류에 기초하여, 어느 필드가 디스플레이될지 또는 어느 거동이 발현될지 판단하기 위한 로직을 포함한다.
로그인 위젯(502)은 그 사용자 프로파일을 위한 스키마 필드를 채우는 로직을 포함할 수 있다. 또한, 로그인 위젯(502)은 프로그래밍 확장을 트리거할 수 있다. 예를 들어, 로그인 시에 사용자의 프로파일을 채우는 프로그래밍 확장이 있을 수 있다. 프로파일 내의 필드 중 하나는 외부 데이터로부터 채워질 수 있고, 사용자가 소정의 범주를 만족한다고 판단할 수 있다. 프로그래밍 확장은, 범주가 만족된다고 판단한 것에 따라, 자동 전자 메일을 사용자에게 전송할 수 있다. 특정 예는, 신규 사용자가 로그인 위젯(502)을 통해 추가되었다고 판단하고, 그 다음 특정 애플리케이션 특징을 사용하도록 그 신규 사용자를 고무하는 환영/사후 관리 전자 메일을 그 신규 사용자에게 발송하는 고객 관계 관리 프로그래밍 확장일 수 있다.
또한, 로그인 위젯(502)은, 단순히 속성을 설정함으로써, 커스텀 명칭 및/또는 로고가 디스플레이될 수 있는 상표 표시 가능한 명칭 바(title bar)(518)를 포함할 수 있다.
연결
아이덴티티 서버는 풍부한 확장성 모델을 제공한다. 아이덴티티 서버는 아이덴티티 제공자의 연결 종류에 관계없이 일관된 API를 애플리케이션에 제공한다. 예를 들어, Facebook™와 같은 소셜 네트워크 제공자가 호출되는지 여부나 또는 Windows™ 인증을 통해 로컬 LAN이 호출되는지 관계없이, 애플리케이션은 단순히 아이덴티티 서버 API를 호출하는 것에 의존할 수 있다. 이러한 확장성은 연결 세트를 통해 가능하게 된다.
각각의 연결은 특정 아이덴티티 제공자 및/또는 아이덴티티 제공자의 프로토콜에 의해 제공된 API의 관점에서 아이덴티티 서버 API의 구현을 포함한다. 따라서, 아이덴티티 서버 API는 새로운 아이덴티티 제공자 및/또는 보안 델리게이트에 대한 새로운 연결을 신속하게 구현하는 메커니즘을 제공한다. 일부 경우에, 연결은 정보 및/또는 기능을 제공하기 위하여 아이덴티티 서버 또는 다른 외부 정보가 아닌 서버에 의존하여야 할 수 있다. 예를 들어, 일부 OAuth 인증 시나리오는 서드 파티 제공자를 이용할 수 있다.
연결은 아이덴티티 서버에 등록되어, API를 통해 프로그래밍적으로 열거될 수 있다. 연결을 프로그래밍적으로 호출하기 위하여, 코드는 연결을 열거하거나 아니면 연결을 검색한다. 연결에 대한 핸들(handle)을 획득하면, 코드는 아이덴티티 서버 API를 통해 표준 함수를 호출할 수 있다.
대시보드 (Dashboard)
관리자는 아이덴티티 서버의 코어 능력을 관리하는 중앙 집중화된 대시보드 액세스할 수 있다. 구체적으로는, 관리자는 아이덴티티 제공자, 다수의 애플리케이션, 다수의 사용자 및 다수의 프로그래밍 확장에 대한 다중 연결을 추가하여 함께 연관시킬 수 있다. 예를 들어, Gmail™에 대한 아이덴티티 제공자 연결은 2개의 애플리케이션과 연관될 수 있어, 이 애플리케이션들이 이들의 인증 스킴을 위하여 Gmail™ 인증을 이용한다. 사용자는 역할과 연관될 수 있다. 사용자 및/또는 역할은 특정 애플리케이션에 대한 특권을 부여받을 수 있다. 특권은, 전술한 바와 같이, 프로그래밍 확장에 따라 제한될 수 있다. 예시적인 대시보드(600)의 상위 레벨 도면이 도 6에 도시되고, 규칙 편집기 사용자 인터페이스(700)가 도 7에 도시된다.
대시보드는 아이덴티티 서비스에 대한 프로그래밍 확장을 형성하게 하는 확장 스크립트 편집기(702)를 가진다. 프로그래밍 확장을 포함하는 확장 스크립트가 스크래치(scratch)로부터 프로그래밍될 수 있거나, 확장 스크립트 편집기(702)가 변경될 템플레이트(704) 또는 프로그래밍 확장을 위한 확장 스크립트를 생성하는 각각의 단계를 통해 사용자에게 동적으로 도움을 주는 위저드(wizard)를 제공할 수 있다. 확장 스크립트 편집기(702)에서 스크립트의 초안을 작성하는 것에 더하여, 관리자는 업로드 전에 프로그래밍된 확장 스크립트를 확장 스크립트 편집기(702)에서 시험 및/또는 디버깅할 수 있다. 이러한 방식으로, 확장 스크립트 편집기(702)는 프로그래밍 확장 및 이를 구성하는 확장 스크립트를 위한 통합된 개발 환경이 되는 것으로 고려될 수 있다.
배치(deployment)에 있어서, 확장 스크립트는 확장 스크립트 명칭 공간에 포함되고, 확장 스크립트는 확장 스크립트 편집기(702)로부터 버튼 누르기와 같은 사용자 입력을 수신한 것에 따라 호출된다. 확장 스크립트 편집기는 특정 사용자가 인증되었는지와 인증의 경우에 어떤 특권이 부여되었는지 보여줄 것이다. 이러한 방식으로, 확장 스크립트가 배치 전에 시험되고 디버깅될 수 있다.
또한, 대시보드(600)는 사용자 관리를 수행할 수 있다. 예를 들어, 대시보드(600)로부터, 관리자는 사용자 정보를 편집할 수 있고, 특정 보안 콘텍스트에 대하여 사용자 프로파일 내에 필드를 정의하는 사용자 프로파일 스키마를 확장할 수 있고, 통지를 전송할 수 있고, 사용자의 인가된 의인화가 보안 델리게이션을 제공할 수 있게 할 수 있고, 역할 관리, 그룹 관리 및 애플리케이션 관리를 제공할 수 있다. 더하여, 애플리케이션은, 예를 들어 로그인 위젯에 대하여 애플리케이션의 외관과 느낌을 커스터마이즈하는 것과, 애플리케이션을 위한 아이덴티티 서비스를 액세스하기 위하여 애플리케이션 프로그래밍 인터페이스 및 연관된 프로그래밍 통지 이벤트를 잠재적으로 커스트마이즈하는 것과 같이, 대시보드로부터 커스터마이즈될 수 있다.
서비스로서의 아이덴티티를 위한 예시적인 사용 케이스
개요
다음의 세부 항목들은 서비스로서의 아이덴티티를 이용하여 아이덴티티 및/또는 보안 서비스의 중앙 집중화에 의해 가능하게 되는 일부 사용 케이스를 설명한다.
프레미스 / 오프 프레미스 대칭 배치
전술한 바와 같이, 종래 기술의 결과는 각각의 아이덴티티 제공자가 자신의 저장소를 가졌다는 것이었다. 아이덴티티 제공자의 콘텍스트 밖의 애플리케이션이 액세스될 때마다, 자신의 자격 세트를 이용한 개별 로그온이 제공되었다. 극단적인 예는 기업 인증과 같은 온 프레미스 인증과, 예를 들어 웹 서비스로부터의 오프 프레미스 인증이다. 개발자의 관점에서, 각각의 아이덴티티 제공자 및 애플리케이션 순열은 자신의 맞춤 인증 코드 베이스(code base)를 수신하였을 수 있다. 또한, 오프 프레미스가 전통적으로 온 프레미스에 비하여 덜 안전하는 것으로 보였기 때문에, 오프 프레미스 코드는 더 제약적이고 더 무거운 경향이 있었다.
그러나, 서비스로서의 아이덴티티를 이용하여, 보안의 구현은 아이덴티티 서버 API의 하부로 추상화된다. 따라서, 애플리케이션을 위한 코드 베이스는 온 프레미스로부터 오프 프레미스로 포팅(porting)할 때 변경될 필요가 없다. 이 시나리오는 레거시 기업 애플리케이션이 공공 클라우드로 포팅되고 있을 때 일반적이다.
로그인 위젯 코드 베이스가 재사용 가능한 것처럼, 단지 속성 및 컨테이너 코드 변경만으로, 애플리케이션은 최소 코드 변경으로 배치될 수 있다. 구체적으로는, 애플리케이션의 인증 부분은 단순히 로그인 위젯 코드를 사용할 수 있다. 이 대신에, 애플리케이션의 인증 부분은, 아이덴티티 서버 API로 이전에 작성되었다면, 단순히 코드 기반의 변경 없이 이의 속성이 변경되게 할 수 있다. 마지막으로, 인증을 위한 복잡한 레거시 코드 베이스는 인증을 아이덴티티 서버 및 임의의 특정된 아이덴티티 제공자로 위임하는 코드로 대체될 수 있다. 이러한 방식으로, 포팅은 인증 로직이 아니라 애플리케이션 로직에 초점을 맞출 수 있다.
중앙 아이덴티티 서버로부터 균일하게 액세스 가능한 아이덴티티 제공자를 갖는 것의 결과는 공공 클라우드 내에 있는 애플리케이션이 여전히 기업 자격을 이용하여 인증될 수 있다는 것이다. 이것은 애플리케이션이 공공 클라우드 내에 있더라도 인증을 위하여 아이덴티티 서버를 여전히 호출하기 때문이다. 아이덴티티 서버가 온 프레미스 기업 아이덴티티 제공자에 대한 연결을 가지면, 애플리케이션은 공공 클라우드 내에 있더라도 기업 아이덴티티 제공자를 이용하여 여전히 인증할 수 있다.
커스터마이즈된 가입(Customized Signup )
전술한 바와 같이, 로그인 위젯은 설정될 때 웹 서비스에 가입하거나 패스워드를 리셋하기 위한 웹 링크를 제공하는 속성을 제공한다. 가입/패스워드 리셋 기능은 로그인 위젯 및 아이덴티티 서버의 콘텍스트 밖에 수행되기 때문에, 가입/패스워드 리셋 기능에 관한 추가 데이터/메타 데이터를 획득하는 것은 어려울 수 있다.
그러나, 아이덴티티 서버가 아이덴티티 데이터에 대한 잘 알려진 위치를 제공하기 때문에, 가입/패스워드 리셋 웹 페이지가 캡처될 커스텀 필드를 포함하는 HTML 필드로 구현될 수 있다. 로그인 위젯은 통상적인 애플리케이션과 같이 가입/패스워드 리셋 HTML 페이지에 추가될 수 있고, 아이덴티티 서버로 추가 필드를 전송하기 위하여 스크립트를 작성한다. 스크립트를 제출(submit) 이벤트에 묶는 것으로, 기입에 따른 추가 필드와 입력 이벤트(예를 들어, 제출 버튼 누르기)는 아이덴티티 서버로 전송된 대응하는 값을 가질 수 있다. 아이덴티티 서버는 그 다음 데이터를 파싱하고, 추가 필드를 인증 레코드와 연관시킨다. 예를 들어, 데이터는 JSON 레코드 형태로 도달할 수 있고, 필드는 사용자의 이메일 및 패스워드를 포함한다. 파싱 후에, 아이덴티티 서버는 추가 필드를 그 이메일 및 패스워드의 조합으로 연관시킬 수 있다.
지불
인증 및 아이덴티티 기능을 중앙 집중화하는 것을 이용하여, 사용 로그온 마다의 그리고 인증 스킴 마다의 지불이 가능하게 된다. 예를 들어, 애플리케이션은 Gmail™을 통한 일부 사용자 로그온과 FaceBook™을 통한 다른 사용자 로그온을 가질 수 있다. 개발자가 매 사용 기반으로 또는 다른 제한된 기반으로(예를 들어, 월간 구독과 같은 시간에 의해) 과금하는 애플리케이션을 가지고 있다면, 로그온에 따른 장래의 청구서 작성을 위한 과금(billing) 기록을 작성하기 위한 규칙이 구현될 수 있다. 대신에, 청구서를 준비하기 위하여 로그온하는 사용자의 과금 청구 가능한 인스턴스를 열거하도록 개별 청구서 발부 애플리케이션이 아이덴티티 서버에 질의할 수 있다.
이 대신에, 아이덴티티 제공자는 아이덴티티 제공자가 액세스될 때마다 과금 기록을 작성하기 위한 규칙을 아이덴티티 서버에서 구현함으로써 그 액세스를 금액화할 수 있다. 아니면, 개별 과금 애플리케이션이 아이덴티티 제공자를 통해 로그온하는 사용자의 청구 가능한 인스턴스를 열거하도록 아이덴티티 서버에 질의할 수 있다.
싱글 사인온 (Single-Sign On)
아이덴티티 서버는 애플리케이션과 아이덴티티 제공자 사이에 상이한 기수(cardinality)를 제공한다. 따라서, 복수의 아이덴티티 제공자가 단일 아이덴티티 제공자로 위임되는 싱글 사인온(SSO)은 아이덴티티 서버를 위한 자연적인 시나리오이다. SSO는 다수의 아이덴티티 제공자를 이용한 다수의 애플리케이션을 하나의 아이덴티티 제공자에 대한 다수의 애플리케이션으로 감소시키는 것으로 개념화될 수 있다.
종래 기술의 SSO을 능가하여, 하나의 아이덴티티 서버를 통한 SSO는, 온 프레미스인지 오프 프레미스인지 관계 없이 다수의 아이덴티티 제공자를 통한 SSO를 제공한다. 구체적으로는, 관리자는 기업 제공자와 같은 특정 아이덴티티 제공자를 SSO로서 특정하고, 기업 인증(또는 특정된 SSO 아이덴티티 제공자)이 인증한다면, 다른 아이덴티티 제공자를 통한 인증 허락을 제공하기 위한 규칙을 설정할 수 있다.
계정 연결
계정을 연결하는 것은 단일 앱 내의 사용자가 상이한 시간에 상이한 아이덴티티 제공자를 이용하여 인증할 수 있는 경우이다. 따라서, 계정 연결은 다수의 아이덴티티 제공자를 이용하여 단일 애플리케이션의 기수를 가지는 것으로 개념화될 수 있다. 구체적으로는, 사용자는 제1 아이덴티티 제공자를 이용하여 애플리케이션에 로그온할 것이다. 그 다음, 사용자는 애플리케이션을 벗어나고, 애플리케이션이 타임 아웃에 따라 잠길 수 있다. 그 다음, 사용자는 제2 아이덴티티 제공자를 이용하여 애플리케이션에 다시 로그온할 수 있다. 인증이 동일한 아이덴티티 서버에 의해 추상화되기 때문에, 애플리케이션은 사용자가 벗어난 것으로부터 애플리케이션 세션을 마음대로 재시작할 수 있어, 끊김 없는 전이(seamless transition)를 제공한다.
다인자 인증( Multifactor Authentication)
아이덴티티 서버가 다수의 아이덴티티 제공자에 액세스할 수 있기 때문에, 애플리케이션은 다인자 인증을 이용할 수 있다. 다인자 인증은 로그온 프로세스가 2 이상의 인자를 이용하는 경우이다. 한 세트의 자격보다 다수의 자격을 해킹하는 것이 더 어렵기 때문에, 다수의 자격을 제공하는 사용하는 자가 단일 세트의 자격을 제공하는 사용자보다 더 안전하다는 것이 아이디어이다.
다인자 인증에서, 로그온 다이얼로그가 제공된다. 사용자는 먼저 아이덴티티 제공자에 대하여 제1 자격을 입력한다. 성공에 따라, 사용자는 제2 세트의 자격을 입력하도록 요구된다. 로그온 다이얼로그는 제1 인증 시도의 성공 또는 실패를 나타내기 위해 외양을 변경할 수 있고, 제1 인증 시도로부터 임의의 프롬프트를 제거할 수 있다. 그 다음, 사용자는 제2 자격을 입력할 수 있다. 성공적인 인증에 따라, 그리고 임의의 적용 가능한 규칙에 따라, 사용자는 자신의 특권을 수신한다.
예를 들어, 사용자는 Facebook™ 연결 아이콘 및 Gmail™ 연결 아이콘을 보여주는 로그온 다이얼로그를 제공받을 수 있다. 사용자는 자신의 Facebook™ 자격을 입력할 것이다. 성공적이라면, 사용자는 Gmail™ 연결 아이콘만이 보이는 로그온 다이얼로그를 제공받을 수 있다. Gmail™ 자격을 성공적으로 입력한 것에 따라, 사용자는 자신의 특권을 수신한다. 본 예에서, 양 자격이 오프 프레미스 자격이었다는 점을 주목하라. 이 대신에, 온 프레미스 및 오프 프레미스 아이덴티티 제공자를 모두 제공하는 다어얼로그가 또한 제공되었을 수 있다.
소유자 사용자 관리 기능/감사
중앙 집중화된 아이덴티티 서버는 온 프레미스 및 오프 프레미스 인증 모두를 위한 인증 기록에 액세스할 수 있다. 따라서, 관리자는 복수의 애플리케이션과 복수의 아이덴티티 제공자에 걸쳐, 이들이 온 프레미스인지 오프 프레미스인지 관계없이, 인증 활동에 대한 분석 차트를 검토할 수 있다. 도 7은 일부 예시적인 분석 보고를 제공한다. 통계 보고(702)는 어느 애플리케이션이 가장 빈번하게 사용되고, 어느 사용자에 의해 가장 빈번하게 사용되었는지의 보고를 도시한다. 따라서, 이 보고는 사용 행동 연구를 위하여, 잠재적으로는 맞춤형 광고를 위하여 사용될 수 있다. 감사 보고(704)는 실패된 로그온 시도를 열거한다. 다수의 아이덴티티 제공자가 보고되기 때문에, 관리자는 어느 아이덴티티 제공자가 가장 많이 공격받았고, 어느 아이덴티티 제공자가 잠재적으로 가장 약한지 검출할 수 있다. 보고는 지도의 형태를 가질 수 있다. 지도 위치 보고(706)는 로그온 시도의 위치에 대한 지도를 제공한다. 로그온 시도가 사무실 및/또는 사용자의 알려진 거주지로부터 멀리 있는 것과 같은 기대되는 위치가 아닌 경우에, 관리자는 의심되는 활동인지 판단할 수 있다.
결론
내용이 구조적인 특징 및/또는 방법적인 동작에 고유한 언어로 설명되었지만, 첨부된 청구범위에 정의된 내용은 전술된 특정 특징 또는 동작에 반드시 한정되지 않는다는 것이 이해되어야 한다. 대신, 전술된 특정 특징 및 동작은 청구범위를 구현하는 예시적인 형태로서 개시된다.

Claims (27)

  1. 사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하도록 구성된 아이덴티티 서비스 시스템에 있어서,
    외부 인증 브로커에 대한 프로그래밍적 액세스를 제공하도록 구성된 기업 브로커 애플리케이션 프로그래밍 인터페이스(application programming interface(API));
    인증 브로커;
    상기 인증 브로커에 결합되는 하나 이상의 데이터베이스 연결부(database connection);
    상기 데이터베이스 연결부에 연결된 복수의 보안 델리게이트(delegate); 및
    상기 복수의 보안 델리게이트에 결합되고, (i) 하나 이상의 사용자 자격(credential), (ii) 하나 이상의 확장 스크립트(extension script) 및 (iii) 메타 데이터 중 적어도 하나를 저장하도록 구성된 데이터 저장소; 및
    추가 보안 격리(security isolation)를 제공하고, 적어도 상기 기업 브로커 API, 상기 외부 인증 브로커 및 상기 인증 브로커의 기능을 실행하도록 동작하는, 저장 매체에 저장된 런타임(runtime) 프로그램
    을 포함하는,
    아이덴티티 서비스 시스템.
  2. 제1항에 있어서,
    상기 복수의 보안 델리게이트는, (i) 기업 보안, (ii) 클라우드 서비스 및 (iii) 서드 파티 인증 제공자(provider) 중 적어도 하나를 위임하도록 동작하는,
    아이덴티티 서비스 시스템.
  3. 제1항에 있어서,
    상기 외부 인증 브로커는, 상기 기업 브로커 API로부터, (i) 인증 데이터 포맷, (ii) 프로토콜 및 (iii) 커스텀(custom) 자격 저장소 중 적어도 하나로의 호출(call)을 구현하는,
    아이덴티티 서비스 시스템.
  4. 제1항에 있어서,
    복수의 인증 기술에 대한 프로그래밍적인 액세스를 제공하도록 구성된 외부 인증 API를 더 포함하고, 상기 외부 인증 API는, (i) 상기 인증 브로커 및 (ii) 상기 복수의 보안 델리게이트 중 적어도 하나를 호출하도록 동작하는 상기 하나 이상의 데이터베이스 연결부 중 적어도 하나와 통신하도록 구성되는,
    아이덴티티 서비스 시스템.
  5. 제4항에 있어서,
    상기 외부 인증 API는 로그온 위젯을 통한 싱글 사인온(single sign-on) 기능을 제공하도록 구성되는,
    아이덴티티 서비스 시스템.
  6. 제1항에 있어서,
    상기 보안 델리게이트는, (i) 클라우드 서비스, (ii) 인터넷 호스팅 서비스 및 (iii) LAN(local area network) 상에서 호스팅되는 서비스 중 적어도 하나를 포함하는,
    아이덴티티 서비스 시스템.
  7. 제1항에 있어서,
    상기 사용자의 인증에 따라 인가(authorization)를 제공하도록 동작하는 확장 스크립트 엔진(extension script engine)을 더 포함하는,
    아이덴티티 서비스 시스템.
  8. 제7항에 있어서,
    상기 적어도 하나의 확장 스크립트는 조합하여 아이덴티티 서비스의 프로그래밍 확장을 포함하는,
    아이덴티티 서비스 시스템.
  9. 사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하도록 구성된 아이덴티티 서비스 시스템에 있어서,
    외부 인증 브로커에 대한 프로그래밍적 액세스를 제공하도록 구성된 기업 브로커 애플리케이션 프로그래밍 인터페이스(application programming interface(API));
    인증 브로커;
    상기 인증 브로커에 결합되는 하나 이상의 데이터베이스 연결부(database connection);
    상기 데이터베이스 연결부에 연결된 복수의 보안 델리게이트(delegate); 및
    상기 복수의 보안 델리게이트에 결합되고, (i) 하나 이상의 사용자 자격(credential), (ii) 하나 이상의 확장 스크립트(extension script) 및 (iii) 메타 데이터 중 적어도 하나를 저장하도록 구성된 데이터 저장소; 및
    상기 기업 브로커 API를 액세스하기 위한 (i) 도구 및 (ii) 라이브러리 중 적어도 하나를 제공하도록 구성된, 클라이언트 측의 소프트웨어 개발 키트(software development kit(SDK))
    를 포함하고,
    상기 SDK의 도구는 자바 스크립트(JavaScript) 코드를 실행하는 임의의 애플리케이션을 위한 로그인 다이얼로그를 위한 단일 본문 소스 코드(single body source code)를 제공하도록 동작하는 로그인 위젯을 포함하는,
    아이덴티티 서비스 시스템.
  10. 제1항에 있어서,
    상기 하나 이상의 확장 스크립트에 의해 수행될 수 있는 변화 범위를 제한하도록 동작하는 샌드박스(sandbox)를 더 포함하는,
    아이덴티티 서비스 시스템.
  11. 제1항에 있어서,
    상기 기업 브로커 API 및 상기 외부 인증 API를 액세스하기 위한 (i) 도구 및 (ii) 라이브러리 중 적어도 하나를 제공하도록 구성된, 클라이언트 측의 소프트웨어 개발 키트(software development kit(SDK))를 더 포함하고, 상기 SDK의 도구는 자바 스크립트(JavaScript) 코드를 실행하는 임의의 애플리케이션을 위한 로그인 다이얼로그를 위한 단일 본문 소스 코드(single body source code)를 제공하도록 동작하는 로그인 위젯을 포함하는,
    아이덴티티 서비스 시스템.
  12. 제1항에 있어서,
    사용자 관리 및 인가 기능을 포함하는 대시보드(dashboard)를 더 포함하는,
    아이덴티티 서비스 시스템.
  13. 제12항에 있어서,
    상기 대시보드는, 상기 데이터베이스 연결부를 (i) 추가하는 것, (ii) 삭제하는 것, (iii) 편집하는 것 및 (vi) 구성하는 것 중 적어도 하나를 하도록 동작하는 연결 컴포넌트를 더 포함하는,
    아이덴티티 서비스 시스템.
  14. 제12항에 있어서,
    상기 인가 기능은 특권이 이네이블되거나 디스에이블되는 동작의 상황을 설명하는 하나 이상의 확장 스크립트를 포함하는 프로그래밍 확장의 개발을 지원하도록 동작하는,
    아이덴티티 서비스 시스템.
  15. 사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하기 위하여 아이덴티티 서비스를 제공하는 방법에 있어서,
    애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통해 상기 복수의 애플리케이션에서의 애플리케이션으로부터 로그온 정보를 포함하는 상기 사용자에 대한 인증 요청을 수신하는 단계;
    상기 인증 요청을 하나 이상의 아이덴티티 제공자(provider)에게 중계하는 단계;
    상기 하나 이상의 아이덴티티 제공자에 의한 인증에 따라, 상기 사용자와 연관된 하나 이상의 프로그래밍 확장 스크립트(programmatic extension script)를 연속적으로 실행하는 단계;
    상기 사용자와 연관된 상기 프로그래밍 확장 스크립트 중 적어도 하나에 기초하여 상기 사용자에게 특권을 부여하는 단계; 및
    샌드박스(sandbox) 내에 상기 하나 이상의 프로그래밍 확장 스크립트를 실행함으로써 상기 하나 이상의 프로그래밍 확장 스크립트에 의해 수행될 수 있는 변경 범위를 제한하는 단계
    를 포함하는,
    아이덴티티 서비스를 제공하는 방법.
  16. 제15항에 있어서,
    상기 사용자에 대하여 부여된 상기 특권을 상기 애플리케이션에 통지하는 단계를 더 포함하는,
    아이덴티티 서비스를 제공하는 방법.
  17. 사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하기 위하여 아이덴티티 서비스를 제공하는 방법에 있어서,
    애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통해 상기 복수의 애플리케이션에서의 애플리케이션으로부터 로그온 정보를 포함하는 상기 사용자에 대한 인증 요청을 수신하는 단계;
    상기 인증 요청을 하나 이상의 아이덴티티 제공자(provider)에게 중계하는 단계;
    상기 하나 이상의 아이덴티티 제공자에 의한 인증에 따라, 상기 사용자와 연관된 하나 이상의 프로그래밍 확장 스크립트(programmatic extension script)를 연속적으로 실행하는 단계; 및
    상기 사용자와 연관된 상기 프로그래밍 확장 스크립트 중 적어도 하나에 기초하여 상기 사용자에게 특권을 부여하는 단계
    를 포함하고,
    상기 API는, (i) 도구 및 (ii) 라이브러리 중 적어도 하나를 제공하도록 구성된 클라이언트 측의 소프트웨어 개발 키트(software development kit(SDK))에 의해 액세스되고, 상기 SDK의 도구는 자바 스크립트(JavaScript) 코드를 실행하는 임의의 애플리케이션을 위한 로그인 다이얼로그를 위한 단일 본문 소스 코드(single body source code)를 제공하도록 동작하는 로그인 위젯을 포함하는,
    아이덴티티 서비스를 제공하는 방법.
  18. 제15항에 있어서,
    각각의 인증 요청에 대하여 상기 사용자에게 과금하는(billing) 단계를 더 포함하는,
    아이덴티티 서비스를 제공하는 방법.
  19. 제15항에 있어서,
    상기 사용자가 온 프레미스(on-premise)인지 오프 프레미스(off-premise)인지 관계없이 상기 하나 이상의 아이덴티티 제공자를 통해 싱글 사인온(single-sign on(SSO))을 제공하는 단계를 더 포함하는,
    아이덴티티 서비스를 제공하는 방법.
  20. 사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하는 아이덴티티 서버에 있어서,
    프로세서;
    콘텐츠 및 프로그래밍을 위한 스토리지 장치; 및
    상기 스토리지 장치 내에 저장된 프로그램
    을 포함하고,
    상기 프로세서에 의한 상기 프로그램의 실행은,
    애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통해 상기 복수의 애플리케이션에서의 애플리케이션으로부터 로그온 정보를 포함하는 상기 사용자에 대한 인증 요청을 수신하는 단계;
    상기 인증 요청을 하나 이상의 아이덴티티 제공자(provider)에게 중계하는 단계;
    상기 하나 이상의 아이덴티티 제공자에 의한 인증에 따라, 상기 사용자와 연관된 하나 이상의 프로그래밍 확장 스크립트(programmatic extension script)를 연속적으로 실행하는 단계; 및
    상기 사용자와 연관된 상기 프로그래밍 확장 스크립트 중 적어도 하나에 기초하여 상기 사용자에게 특권을 부여하는 단계
    를 포함하는 동작을 수행하도록 상기 아이덴티티 서버를 구성하고,
    상기 프로그램의 실행은, 샌드박스(sandbox) 내에 상기 하나 이상의 프로그래밍 확장 스크립트를 실행함으로써 상기 하나 이상의 프로그래밍 확장 스크립트에 의해 수행될 수 있는 변경 범위를 제한하는 단계를 포함하는 동작을 수행하도록 상기 아이덴티티 서버를 더 구성하는,
    아이덴티티 서버.
  21. 사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하도록 구성된 아이덴티티 서비스 시스템에 있어서,
    외부 인증 브로커에 대한 프로그래밍적 액세스를 제공하도록 구성된 기업 브로커 애플리케이션 프로그래밍 인터페이스(application programming interface(API));
    인증 브로커;
    상기 인증 브로커에 결합되는 하나 이상의 데이터베이스 연결부(database connection);
    상기 데이터베이스 연결부에 연결된 복수의 보안 델리게이트(delegate); 및
    상기 복수의 보안 델리게이트에 결합되고, (i) 하나 이상의 사용자 자격(credential), (ii) 하나 이상의 확장 스크립트(extension script) 및 (iii) 메타 데이터 중 적어도 하나를 저장하도록 구성된 데이터 저장소; 및
    사용자 관리 및 인가 기능을 포함하는 대시보드(dashboard)
    를 포함하는,
    아이덴티티 서비스 시스템.
  22. 제20항에 있어서,
    상기 프로그램의 실행은, 각각의 인증 요청에 대하여 상기 사용자에게 과금하는(billing) 단계를 포함하는 동작을 수행하도록 상기 아이덴티티 서버를 더 구성하는,
    아이덴티티 서버.
  23. 제20항에 있어서,
    상기 프로그램의 실행은, 상기 사용자가 온 프레미스(on-premise)인지 오프 프레미스(off-premise)인지 관계없이 상기 하나 이상의 아이덴티티 제공자를 통해 싱글 사인온(single-sign on(SSO))을 제공하는 단계를 포함하는 동작을 수행하도록 상기 아이덴티티 서버를 더 구성하는,
    아이덴티티 서버.
  24. 제20항에 있어서,
    상기 프로그램의 실행은, (i) 기업 보안, (ii) 클라우드 서비스 및 (iii) 서드 파티 인증 제공자 중 적어도 하나에게 위임하는 단계를 포함하는 동작을 수행하도록 상기 아이덴티티 서버를 더 구성하는,
    아이덴티티 서버.
  25. 제20항에 있어서,
    상기 프로그램의 실행은, 저장 매체에 저장된 런타임(runtime) 프로그램을 통해 적어도 기업 브로커 API, 외부 인증 브로커 및 인증 브로커의 기능의 실행 및 추가 보안 격리(security isolation)를 포함하는 동작을 수행하도록 상기 아이덴티티 서버를 더 구성하는,
    아이덴티티 서버.
  26. 제20항에 있어서,
    상기 프로그램의 실행은, 샌드박스 내에 상기 사용자와 연관된 상기 하나 이상의 프로그래밍 확장 스크립트의 실행을 통해 상기 사용자와 연관된 상기 적어도 하나 이상의 프로그래밍 확장 스크립트에 의해 수행될 수 있는 변경 범위를 제한하는 단계를 포함하는 동작을 수행하도록 상기 아이덴티티 서버를 더 구성하는,
    아이덴티티 서버.
  27. 사용자 아이덴티티(identity)의 인증을 위하여 복수의 애플리케이션에 대한 단일 액세스 포인트를 제공하기 위하여 아이덴티티 서비스를 제공하는 방법에 있어서,
    애플리케이션 프로그래밍 인터페이스(application programming interface(API))를 통해 상기 복수의 애플리케이션에서의 애플리케이션으로부터 로그온 정보를 포함하는 상기 사용자에 대한 인증 요청을 수신하는 단계;
    상기 인증 요청을 하나 이상의 아이덴티티 제공자(provider)에게 중계하는 단계;
    상기 하나 이상의 아이덴티티 제공자에 의한 인증에 따라, 상기 사용자와 연관된 하나 이상의 프로그래밍 확장 스크립트(programmatic extension script)를 연속적으로 실행하는 단계; 및
    상기 사용자와 연관된 상기 프로그래밍 확장 스크립트 중 적어도 하나에 기초하여 상기 사용자에게 특권을 부여하는 단계
    를 포함하고,
    상기 사용자는 대시보드(dashboard)를 통해 관리 및 인가되는,
    아이덴티티 서비스를 제공하는 방법.
KR1020177016659A 2014-11-18 2015-11-18 서비스로서의 아이덴티티 인프라 스트럭처 KR102520361B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462081552P 2014-11-18 2014-11-18
US62/081,552 2014-11-18
US14/877,316 US10225245B2 (en) 2014-11-18 2015-10-07 Identity infrastructure as a service
US14/877,316 2015-10-07
PCT/US2015/061438 WO2016081665A1 (en) 2014-11-18 2015-11-18 Identity infrastructure as a service

Publications (2)

Publication Number Publication Date
KR20170107967A KR20170107967A (ko) 2017-09-26
KR102520361B1 true KR102520361B1 (ko) 2023-04-11

Family

ID=55962763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177016659A KR102520361B1 (ko) 2014-11-18 2015-11-18 서비스로서의 아이덴티티 인프라 스트럭처

Country Status (9)

Country Link
US (1) US10225245B2 (ko)
EP (1) EP3207661B1 (ko)
JP (1) JP6625636B2 (ko)
KR (1) KR102520361B1 (ko)
AR (1) AR102688A1 (ko)
AU (1) AU2015349886B2 (ko)
CA (1) CA2968248C (ko)
MX (1) MX2017006511A (ko)
WO (1) WO2016081665A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507663B2 (en) 2014-08-11 2022-11-22 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
US9710648B2 (en) 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US9998446B2 (en) * 2014-08-29 2018-06-12 Box, Inc. Accessing a cloud-based service platform using enterprise application authentication
CN105187372B (zh) * 2015-06-09 2018-05-18 深圳市腾讯计算机系统有限公司 一种基于移动应用入口的数据处理方法、装置和系统
US10560342B2 (en) * 2015-06-30 2020-02-11 SkyKick, Inc. Synchronizing data between cloud manager and providers
US10542044B2 (en) * 2016-04-29 2020-01-21 Attivo Networks Inc. Authentication incident detection and management
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
WO2018053258A1 (en) * 2016-09-16 2018-03-22 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US11616812B2 (en) 2016-12-19 2023-03-28 Attivo Networks Inc. Deceiving attackers accessing active directory data
US11695800B2 (en) 2016-12-19 2023-07-04 SentinelOne, Inc. Deceiving attackers accessing network data
KR101816653B1 (ko) * 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
CN107222536A (zh) * 2017-05-31 2017-09-29 济南浪潮高新科技投资发展有限公司 一种云物联平台适配终端的方法
JP2020530922A (ja) 2017-08-08 2020-10-29 センチネル ラボ, インコーポレイテッドSentinel Labs, Inc. エッジネットワーキングのエンドポイントを動的にモデリングおよびグループ化する方法、システム、およびデバイス
US10782880B2 (en) 2017-08-30 2020-09-22 Electronics And Telecommunications Research Institute Apparatus and method for providing storage for providing cloud services
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US11470115B2 (en) 2018-02-09 2022-10-11 Attivo Networks, Inc. Implementing decoys in a network environment
US11568039B2 (en) * 2018-06-03 2023-01-31 Apple Inc. Credential manager integration
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
WO2020236981A1 (en) 2019-05-20 2020-11-26 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
EP3751532A1 (en) * 2019-06-13 2020-12-16 Rohde & Schwarz GmbH & Co. KG Remote access and control system and corresponding method
US11032134B2 (en) 2019-06-18 2021-06-08 International Business Machines Corporation Providing and managing an adapter as a service (AaaS) brokering service
US11916912B2 (en) 2019-08-21 2024-02-27 Aeris Communications, Inc. Method and system for providing secure access to IoT devices using access control
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
CN111753264B (zh) * 2020-07-01 2023-11-21 电子科技大学 一种基于Oauth 2.0的高校移动应用通用授权认证系统
US11627126B2 (en) * 2020-08-20 2023-04-11 Bank Of America Corporation Expedited authorization and access management
US11579857B2 (en) 2020-12-16 2023-02-14 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US11797701B1 (en) * 2021-02-01 2023-10-24 OneIQ Corp. Secure data collaboration
US20230015789A1 (en) * 2021-07-08 2023-01-19 Vmware, Inc. Aggregation of user authorizations from different providers in a hybrid cloud environment
US11899782B1 (en) 2021-07-13 2024-02-13 SentinelOne, Inc. Preserving DLL hooks
US11734408B2 (en) * 2021-07-15 2023-08-22 Citrix Systems, Inc. Remapping of uniform resource locators for accessing network applications

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000014618A2 (en) * 1998-08-24 2000-03-16 Fujitsu Limited Workflow system and method
US6651168B1 (en) * 1999-01-29 2003-11-18 International Business Machines, Corp. Authentication framework for multiple authentication processes and mechanisms
US7032002B1 (en) * 2000-09-06 2006-04-18 Xanboo, Inc. Service broker for processing data from a data network
JP5576005B2 (ja) * 2000-11-07 2014-08-20 株式会社三菱東京Ufj銀行 認証代行装置
US7370351B1 (en) * 2001-03-22 2008-05-06 Novell, Inc. Cross domain authentication and security services using proxies for HTTP access
EP1421509A4 (en) 2001-08-07 2009-12-02 Tatara Systems Inc METHOD AND DEVICE FOR INTEGRATING CHARGING CALCULATION AND AUTHENTICATION FUNCTIONS IN LOCAL AND LARGE AREA WIRELESS DATA NETWORKS
US7610390B2 (en) * 2001-12-04 2009-10-27 Sun Microsystems, Inc. Distributed network identity
US7167551B2 (en) * 2001-12-12 2007-01-23 International Business Machines Corporation Intermediary device based callee identification
US7073195B2 (en) 2002-01-28 2006-07-04 Intel Corporation Controlled access to credential information of delegators in delegation relationships
JP4676703B2 (ja) * 2003-03-20 2011-04-27 株式会社リコー ユーザ認証装置、ユーザ認証方法、ユーザ認証プログラム及び記録媒体
US7428750B1 (en) * 2003-03-24 2008-09-23 Microsoft Corporation Managing multiple user identities in authentication environments
US7831693B2 (en) * 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
US9130921B2 (en) * 2003-09-30 2015-09-08 Ca, Inc. System and method for bridging identities in a service oriented architectureprofiling
US7607008B2 (en) * 2004-04-01 2009-10-20 Microsoft Corporation Authentication broker service
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
CA2615659A1 (en) * 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US9177124B2 (en) * 2006-03-01 2015-11-03 Oracle International Corporation Flexible authentication framework
US7913084B2 (en) 2006-05-26 2011-03-22 Microsoft Corporation Policy driven, credential delegation for single sign on and secure access to network resources
US7657639B2 (en) * 2006-07-21 2010-02-02 International Business Machines Corporation Method and system for identity provider migration using federated single-sign-on operation
US8689287B2 (en) * 2006-08-17 2014-04-01 Northrop Grumman Systems Corporation Federated credentialing system and method
US8281378B2 (en) 2006-10-20 2012-10-02 Citrix Systems, Inc. Methods and systems for completing, by a single-sign on component, an authentication process in a federated environment to a resource not supporting federation
US20080148298A1 (en) * 2006-12-18 2008-06-19 Palm, Inc. System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications
US9110685B2 (en) * 2008-03-25 2015-08-18 Qualcomm, Incorporated Apparatus and methods for managing widgets in a wireless communication environment
US20090293117A1 (en) 2008-05-21 2009-11-26 Mei Yan Authentication for access to software development kit for a peripheral device
US8850548B2 (en) * 2008-05-27 2014-09-30 Open Invention Network, Llc User-portable device and method of use in a user-centric identity management system
US8032932B2 (en) * 2008-08-22 2011-10-04 Citibank, N.A. Systems and methods for providing security token authentication
EP2359570B1 (en) * 2008-08-29 2018-12-19 NEC Corporation Process for providing network access for a user via a network provider to a service provider
CN102362269B (zh) * 2008-12-05 2016-08-17 社会传播公司 实时内核
US8843997B1 (en) 2009-01-02 2014-09-23 Resilient Network Systems, Inc. Resilient trust network services
US8887308B2 (en) 2010-03-21 2014-11-11 William Grecia Digital cloud access (PDMAS part III)
US8402555B2 (en) 2010-03-21 2013-03-19 William Grecia Personalized digital media access system (PDMAS)
US8533860B1 (en) 2010-03-21 2013-09-10 William Grecia Personalized digital media access system—PDMAS part II
US8881227B2 (en) * 2010-03-30 2014-11-04 Authentic8, Inc. Secure web container for a secure online user environment
KR101681281B1 (ko) * 2010-04-12 2016-12-12 구글 인코포레이티드 입력 방법 에디터에 대한 확장 프레임워크
US9189649B2 (en) * 2010-06-25 2015-11-17 International Business Machines Corporation Security model for workflows aggregating third party secure services
US8863225B2 (en) * 2010-06-29 2014-10-14 International Business Machines Corporation Generalized identity mediation and propagation
KR20140043068A (ko) * 2011-02-17 2014-04-08 타세라, 아이엔씨. 애플리케이션 증명을 위한 시스템 및 방법
US20130205028A1 (en) * 2012-02-07 2013-08-08 Rackspace Us, Inc. Elastic, Massively Parallel Processing Data Warehouse
US9405896B2 (en) 2011-04-12 2016-08-02 Salesforce.Com, Inc. Inter-application management of user credential data
JP5797060B2 (ja) * 2011-08-24 2015-10-21 株式会社野村総合研究所 アクセス管理方法およびアクセス管理装置
US9268933B2 (en) * 2012-08-22 2016-02-23 Mcafee, Inc. Privacy broker
JP2014142736A (ja) * 2013-01-23 2014-08-07 Canon Inc サービスプロバイダ装置、サービスプロバイダ装置を制御するための制御方法、およびプログラム
US9355223B2 (en) * 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
KR101924683B1 (ko) * 2013-04-26 2018-12-03 인터디지탈 패튼 홀딩스, 인크 요구된 인증 보증 레벨을 달성하기 위한 다중요소 인증
FR3008837B1 (fr) * 2013-07-19 2015-08-07 In Webo Technologies Procede d'authentification forte
US9444808B1 (en) * 2014-01-30 2016-09-13 Dell Software Inc. System and method for providing multtenant access to shared resources

Also Published As

Publication number Publication date
MX2017006511A (es) 2018-05-17
WO2016081665A1 (en) 2016-05-26
EP3207661B1 (en) 2021-12-29
EP3207661A1 (en) 2017-08-23
AU2015349886A1 (en) 2017-06-08
JP2017539017A (ja) 2017-12-28
US10225245B2 (en) 2019-03-05
AR102688A1 (es) 2017-03-15
CA2968248C (en) 2023-09-19
EP3207661A4 (en) 2018-05-02
JP6625636B2 (ja) 2019-12-25
US20160142399A1 (en) 2016-05-19
KR20170107967A (ko) 2017-09-26
CA2968248A1 (en) 2016-05-26
AU2015349886B2 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
KR102520361B1 (ko) 서비스로서의 아이덴티티 인프라 스트럭처
US11881937B2 (en) System, method and computer program product for credential provisioning in a mobile device platform
CN112154639B (zh) 在没有用户足迹的情况下的多因素认证
JP6348661B2 (ja) サードパーティの認証サポートを介した企業認証
US8904477B2 (en) Configuring and providing profiles that manage execution of mobile applications
US9223807B2 (en) Role-oriented database record field security model
US10511584B1 (en) Multi-tenant secure bastion
JP2016513851A (ja) ネットワーク接続時に安全なアプリケーションを識別するためのシステム及び方法
US11531929B2 (en) Systems and methods for machine generated training and imitation learning
US9942240B2 (en) Anonymous application wrapping
US11411904B2 (en) Systems and methods for filtering notifications for end points associated with a user
JP6998497B1 (ja) ライブsaasオブジェクトのためのシステムおよび方法
US11829191B2 (en) Systems and methods for deep linking of SaaS application via embedded browser
US11443023B2 (en) Distributed profile and key management
JP6994607B1 (ja) Saasアプリケーションのためのインテリセンスのためのシステムおよび方法
Edge et al. Identity and Device Trust
Andrews et al. Securing Your Mobile Business with IBM Worklight
Thakore et al. Scalable and Privacy-preserving Access Mechanism for Dynamic Clouds
Vleju Client-centric identity and access management in cloud computing/eingereicht von: Mircea Boris Vleju
Gomez-Skarmeta et al. User-Centric Privacy Management in Future Network Infrastructure
Kolluru Simple Identity Manager
NATH PANDEY Secure IDMS for Cloud Computing Environment

Legal Events

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