KR20230027241A - 공유 자원 식별 - Google Patents

공유 자원 식별 Download PDF

Info

Publication number
KR20230027241A
KR20230027241A KR1020237002342A KR20237002342A KR20230027241A KR 20230027241 A KR20230027241 A KR 20230027241A KR 1020237002342 A KR1020237002342 A KR 1020237002342A KR 20237002342 A KR20237002342 A KR 20237002342A KR 20230027241 A KR20230027241 A KR 20230027241A
Authority
KR
South Korea
Prior art keywords
resource
application
service
user
access
Prior art date
Application number
KR1020237002342A
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 구글 엘엘씨
Publication of KR20230027241A publication Critical patent/KR20230027241A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • 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
    • 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/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
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Storage Device Security (AREA)

Abstract

자원 식별을 공유하기 위한 방법(300)은, 룩업 서비스(120)에서, 사용자와 연관된 특정 디바이스(10a) 상에서 실행되는 제1 애플리케이션(130a)으로부터, 특정 디바이스를 식별하는 자원 ID(identifier)(122)에 대한 액세스를 제1 애플리케이션에 제공하도록 룩업 서비스에 요청하는 자원 ID 요청(132)을 수신하는 단계를 포함한다. 이 방법은 또한, 특정 디바이스 상에서 실행되는 제1 애플리케이션이 자원 ID에 액세스하도록 인가되는지 여부를 룩업 서비스에 의해 결정하는 단계를 포함한다. 제1 애플리케이션이 자원 ID에 액세스하도록 인가될 때, 이 방법은 룩업 서비스에 의해 자원 ID를 획득하는 단계, 및 룩업 서비스에 의해, 특정 디바이스 상에서 실행되는 제1 애플리케이션에 자원 ID를 송신하는 단계를 포함한다.

Description

공유 자원 식별
[0001] 본 개시내용은 2개 이상의 디바이스들 간에 자원 식별을 공유하는 것에 관한 것이다.
[0002] REST(representational state transfer) API(application programming interface)들은 독립적인 시스템들이 공통 관심 자원들에 관해 통신할 수 있게 하는 데 종종 사용되는 컴퓨팅 인터페이스들이다. 예컨대, 2개의 독립적인 시스템들은 종종 사용자 세션 또는 사용자에 의해 사용되고 있는 디바이스(예컨대, 모바일 사용자 디바이스)에 관해 통신한다. 이러한 자원들은 통상적으로 API가 그 자원 내에서 애플리케이션의 존재를 호출함으로써 식별된다. API 호출자가 그러한 존재 없이 공유 자원을 처리하기를 원하면, API 호출자는 이를테면, API 서버에 저장되고 사용자와 연관된 사용자 계정을 식별하는 대안적인 수단을 사용해야 한다.
[0003] 본 개시내용의 일 양상은 자원 식별을 공유하기 위한 방법을 제공한다. 이 방법은, 데이터 프로세싱 하드웨어 상에서 실행되는 룩업 서비스(lookup service)에서, 사용자와 연관된 특정 디바이스 상에서 실행되는 제1 애플리케이션으로부터, 특정 디바이스를 식별하는 자원 ID(identifier)에 대한 액세스를 제1 애플리케이션에 제공하도록 룩업 서비스에 요청하는 자원 ID 요청을 수신하는 단계를 포함한다. 이 방법은 또한, 특정 디바이스 상에서 실행되는 제1 애플리케이션이 자원 ID에 액세스하도록 인가되는지 여부를 룩업 서비스에 의해 결정하는 단계를 포함한다. 이 방법은 또한, 제1 애플리케이션이 자원 ID에 액세스하도록 인가될 때, 룩업 서비스에 의해 자원 ID를 획득하는 단계, 및 룩업 서비스에 의해, 특정 디바이스 상에서 실행되는 제1 애플리케이션에 자원 ID를 송신하는 단계를 포함한다.
[0004] 본 개시내용의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 자원 ID 요청은, 사용자를 인증하는 인증 크리덴셜(credential)들 및 룩업 서비스로부터 자원 ID에 액세스하도록 제1 애플리케이션에 대해 사용자에 의해 부여된 허가를 포함하는 자원 ID 범위를 포함한다. 제1 애플리케이션이 자원 ID에 대해 인가되는지 여부를 결정하는 단계는, 사용자를 인증하는 인증 크리덴셜들 및 룩업 서비스로부터 자원 ID에 액세스하도록 제1 애플리케이션에 대해 사용자에 의해 부여된 허가에 기초하여 제1 애플리케이션이 자원 ID에 액세스하도록 인가됨을 결정하는 단계를 포함할 수 있다.
[0005] 일부 구현들에서, 이 방법은 특정 디바이스로부터, 데이터 프로세싱 하드웨어 상에서 실행되는 인증/인가 서비스에서, 사용자를 인증하는 인증 크리덴셜들 및 룩업 서비스로부터 자원 ID에 액세스하도록 제1 애플리케이션에 대해 사용자에 의해 부여된 허가를 포함하는 자원 ID 범위를 수신하는 단계를 포함한다. 이 방법은 또한, 인증/인가 서비스에 의해, 특정 디바이스 상에서 실행되는 제1 애플리케이션에, 자원 ID 범위를 포함하는 액세스 토큰(access token)을 송신하는 단계를 포함한다. 자원 ID 요청은 액세스 토큰을 포함할 수 있다.
[0006] 일부 예들에서, 특정 디바이스 상에서 실행되는 제1 애플리케이션은 특정 디바이스 상에서 인증/인가 사용자 인터페이스를 호출하도록 구성된다. 인증/인가 사용자 인터페이스는 인증/인가 서비스에 자원 ID 범위를 제공하고 제1 애플리케이션에 의한 자원 ID의 사용을 인가하도록 사용자를 촉진시킨다. 일부 예들에서, 사용자와 연관된 특정 디바이스는 물리적 디바이스를 포함한다. 다른 예들에서, 사용자와 연관된 특정 디바이스는 가상 디바이스를 포함한다.
[0007] 일부 구현들에서, 자원 ID는 룩업 서비스의 엔티티에 의해 할당되고, 특정 디바이스를 식별하도록 룩업 서비스의 하나 이상의 컴퓨팅 인터페이스들에 의해 공유된다. 룩업 서비스가 자원 ID를 제1 애플리케이션에 송신한 후에, 제1 애플리케이션은 제1 애플리케이션과 연관된 제1 원격 서비스에 자원 ID를 송신하도록 구성되고, 제1 원격 서비스는 자원 ID를 사용하여 제2 원격 서비스로부터 특정 디바이스에 관한 정보를 리트리브(retrieve)하도록 구성된다. 제1 원격 서비스는 제2 원격 서비스와 상이한 엔티티와 연관될 수 있다. 선택적으로, 제2 원격 서비스는 특정 디바이스 상에서 실행 가능한 제2 애플리케이션과 연관된다.
[0008] 제1 원격 서비스가 제2 원격 서비스로부터 특정 디바이스에 관한 정보를 리트리브하기 전에, 제2 원격 서비스는 특정 디바이스 상에서 실행 가능한 제2 애플리케이션으로부터 자원 ID를 수신할 수 있다. 일부 구현들에서, 제1 애플리케이션은 제1 실행 환경에서 실행되고, 제2 애플리케이션은 제2 실행 환경에서 실행된다. 제1 실행 환경은 제2 실행 환경으로부터 격리된다.
[0009] 본 개시내용의 다른 양상은 자원 식별을 공유하기 위한 시스템을 제공한다. 이 시스템은 룩업 서비스를 실행하는 데이터 프로세싱 하드웨어 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는 데이터 프로세싱 하드웨어 상에서 실행될 때, 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령들을 저장한다. 동작들은 사용자와 연관된 특정 디바이스 상에서 실행되는 제1 애플리케이션으로부터, 특정 디바이스를 식별하는 자원 ID(identifier)에 대한 액세스를 제1 애플리케이션에 제공하도록 룩업 서비스에 요청하는 자원 ID 요청을 수신하는 동작을 포함한다. 동작들은 또한, 특정 디바이스 상에서 실행되는 제1 애플리케이션이 자원 ID에 액세스하도록 인가되는지 여부를 룩업 서비스에 의해 결정하는 동작을 포함한다. 동작들은 또한, 제1 애플리케이션이 자원 ID에 액세스하도록 인가될 때, 룩업 서비스에 의해 자원 ID를 획득하는 동작, 및 룩업 서비스에 의해, 특정 디바이스 상에서 실행되는 제1 애플리케이션에 자원 ID를 송신하는 동작을 포함한다.
[0010] 이 양상은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 본 개시내용의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 자원 ID 요청은, 사용자를 인증하는 인증 크리덴셜들 및 룩업 서비스로부터 자원 ID에 액세스하도록 제1 애플리케이션에 대해 사용자에 의해 부여된 허가를 포함하는 자원 ID 범위를 포함한다. 일부 구현들에서, 자원 ID 요청은 자원 ID 룩업 범위를 사용하도록 인가되는 액세스 토큰을 포함한다. 액세스 토큰은 사용자의 인증 크리덴셜들을 검증함으로써, 제1 애플리케이션이 룩업 서비스, 즉 자원 ID 룩업 범위로부터 자원 ID에 액세스하도록 사용자에 의한 동의 및 사용자를 인증하는 것에 기반한다. 제1 애플리케이션이 자원 ID에 대해 인가되는지 여부를 결정하는 단계는, 사용자를 인증하는 인증 크리덴셜들 및 룩업 서비스로부터 자원 ID에 액세스하도록 제1 애플리케이션에 대해 사용자에 의해 부여된 허가에 기초하여 제1 애플리케이션이 자원 ID에 액세스하도록 인가됨을 결정하는 단계를 포함할 수 있다.
[0011] 일부 구현들에서, 데이터 프로세싱 하드웨어는 추가로 인증/인가 서비스를 실행한다. 동작들은 자원 ID 요청을 수신하기 전에, 특정 디바이스로부터, 사용자를 인증하는 인증 크리덴셜들 및 룩업 서비스로부터 자원 ID에 액세스하도록 제1 애플리케이션에 대해 사용자에 의해 부여된 허가를 포함하는 자원 ID 범위를 수신하는 동작을 더 포함한다. 동작들은 또한, 인증/인가 서비스에 의해, 특정 디바이스 상에서 실행되는 제1 애플리케이션에, 자원 ID 범위를 포함하는 액세스 토큰을 송신하는 동작을 포함한다. 자원 ID 요청은 액세스 토큰을 포함할 수 있다.
[0012] 일부 예들에서, 특정 디바이스 상에서 실행되는 제1 애플리케이션은 특정 디바이스 상에서 인증/인가 사용자 인터페이스를 호출하도록 구성된다. 인증/인가 사용자 인터페이스는 인증/인가 서비스에 자원 ID 범위를 제공하고 제1 애플리케이션에 의한 자원 ID의 사용을 인가하도록 사용자를 촉진시킨다. 일부 예들에서, 사용자와 연관된 특정 디바이스는 물리적 디바이스를 포함한다. 다른 예들에서, 사용자와 연관된 특정 디바이스는 가상 디바이스를 포함한다.
[0013] 일부 구현들에서, 자원 ID는 룩업 서비스의 엔티티에 의해 할당되고, 특정 디바이스를 식별하도록 룩업 서비스의 하나 이상의 컴퓨팅 인터페이스들에 의해 공유된다. 룩업 서비스가 자원 ID를 제1 애플리케이션에 송신한 후에, 제1 애플리케이션은 제1 애플리케이션과 연관된 제1 원격 서비스에 자원 ID를 송신하도록 구성되고, 제1 원격 서비스는 자원 ID를 사용하여 제2 원격 서비스로부터 특정 디바이스에 관한 정보를 리트리브하도록 구성된다. 제1 원격 서비스는 제2 원격 서비스와 상이한 엔티티와 연관될 수 있다. 선택적으로, 제2 원격 서비스는 특정 디바이스 상에서 실행 가능한 제2 애플리케이션과 연관된다.
[0014] 제1 원격 서비스가 제2 원격 서비스로부터 특정 디바이스에 관한 정보를 리트리브하기 전에, 제2 원격 서비스는 특정 디바이스 상에서 실행 가능한 제2 애플리케이션으로부터 자원 ID를 수신할 수 있다. 일부 구현들에서, 제1 애플리케이션은 제1 실행 환경에서 실행되고, 제2 애플리케이션은 제2 실행 환경에서 실행된다. 제1 실행 환경은 제2 실행 환경으로부터 격리된다.
[0015] 본 개시내용의 하나 이상의 구현들의 세부사항들은 아래 첨부 도면들 및 설명에서 제시된다. 다른 양상들, 특징들 및 이점들은 설명 및 도면들로부터 그리고 청구항들로부터 자명해질 것이다.
[0016] 도 1a 및 도 1b는 자원 식별을 공유하기 위한 예시적인 시스템들의 개략도들이다.
[0017] 도 2는 사용자 디바이스의 사용자로부터 인증 크리덴셜들 및 허가를 획득하기 위한 인증 서비스의 개략도이다.
[0018] 도 3은 자원 식별을 공유하기 위한 동작들의 시퀀스 다이어그램의 개략도이다.
[0019] 도 4는 자원 식별을 공유하는 방법에 대한 동작들의 예시적인 어레인지먼트(arrangement)의 흐름도이다.
[0020] 도 5는 본 명세서에서 설명되는 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
[0021] 다양한 도면들에서 동일한 참조 심벌들은 동일한 엘리먼트들을 표시한다.
[0022] REST(representational state transfer) API(application programming interface)들은 독립적인 시스템들이 공통 관심 자원들에 관해 통신할 수 있게 하는 데 사용되는 컴퓨팅 인터페이스들이다. 예로서, 2개의 독립적인 시스템들은 종종 사용자 세션 또는 사용자에 의해 사용되고 있는 디바이스(예컨대, 모바일 폰 또는 다른 사용자 디바이스)에 관해 통신한다. 이러한 자원들은 통상적으로 API가 그 자원 내에서 애플리케이션의 존재를 호출함으로써 식별된다. API 호출자가 그러한 존재 없이 공유 자원을 처리하기를 원하면, API 호출자는 이를테면, API 서버에 저장되고 사용자와 연관된 사용자 계정을 식별하는 대안적인 수단을 사용해야 한다. 그러나 프라이버시 우려들은 API 호출자가 그러한 정보를 발견하는 것을 방지할 수 있다.
[0023] 일부 상황들에서, 동일한 실행 환경에서(예컨대, 모바일 폰과 같은 사용자 디바이스 상에서) 실행되는 2개의 애플리케이션들은 서로 통신하기를 원한다. 예컨대, 제1 애플리케이션은 사용자에 대한 서비스를 수행하기 전에 사용자 디바이스 상에서 또한 실행되는 제2 애플리케이션으로부터 사용자 디바이스의 보안 위험 태세를 획득하기를 원할 수 있다. 그러나 일부 사용자 디바이스들 상에 존재하는 애플리케이션들은 프라이버시 또는 보안 우려들로 인해 사용자 디바이스에 대한 고유한 디바이스 식별자를 획득할 수 없다. 따라서 2개의 독립적인 애플리케이션들이 동일한 실행 환경에서(즉, 동일한 사용자 디바이스 상에서) 각각 실행되고 있음을 결정하는 것은 어려울 수 있다.
[0024] 본 명세서의 구현들은 애플리케이션들 및/또는 서비스들이 불투명한 공유 자원 ID(identifier)를 획득하여 그들의 실행 환경들을 상관시킬 수 있게 하는 공유 자원 식별을 위한 시스템에 관한 것이다. 특정 디바이스 상에서 실행되는 애플리케이션은 룩업 서비스로부터 자원 ID에 대한 액세스를 요청한다. 룩업 서비스는 애플리케이션이 자원 ID에 액세스하도록 인가되는지 여부를 결정하고, 애플리케이션이 자원 ID에 액세스하도록 인가되면, 룩업 서비스는 자원 ID를 획득하고, 자원 ID를 특정 디바이스 상에서 실행되는 애플리케이션에 송신한다. 다른 이점들 중에서도, 시스템은, 어떠한 개인 식별 가능 정보도 공유될 필요가 없고, 발생하는 어떠한 공유도 사용자의 동의에 의해 제재되기 때문에, 신뢰할 수 없는 애플리케이션들에 대한 프라이버시 우려들(즉, 신뢰할 수 없는 디바이스들과의 디바이스 식별 공유)을 완화하는 것을 돕는다.
[0025] 이제 도 1a를 참조하면, 일부 구현들에서, 예시적인 시스템(100, 100a)은 네트워크(112, 112a)를 통해 원격 시스템(140)과 통신하는 개개의 사용자(12)와 연관된 사용자 디바이스(10, 10a)를 포함한다. 사용자 디바이스(10)는 데스크탑 워크스테이션, 랩탑 워크스테이션, 또는 모바일 디바이스(즉, 스마트 폰)와 같은 임의의 컴퓨팅 디바이스에 대응할 수 있다. 사용자 디바이스(10)는 컴퓨팅 자원들(18)(예컨대, 데이터 프로세싱 하드웨어) 및/또는 저장 자원들(16)(예컨대, 메모리 하드웨어)을 포함한다.
[0026] 원격 시스템(140)은 컴퓨팅 자원들(144)(예컨대, 데이터 처리 하드웨어)을 포함하는 확장 가능(scalable)/탄력적 컴퓨팅 자원들(142) 및/또는 저장 자원들(146)(예컨대, 메모리 하드웨어)을 갖는 분산 시스템(예컨대, 클라우드 환경), 단일 컴퓨터 또는 다수의 컴퓨터들일 수 있다. 원격 시스템(140)은 룩업 서비스(120)를 실행한다.
[0027] 룩업 서비스(120)는 사용자 디바이스(10) 상에서 실행되는 제1 애플리케이션(130, 130a)으로부터 자원 ID 요청(132)을 수신한다. 제1 애플리케이션(130a)은 사용자 디바이스(10) 상에서 또한 실행되는 임의의 다른 애플리케이션으로부터 독립적이고 그리고/또는 격리된 실행 환경(131, 131a) 내에서 실행될 수 있다. 제1 애플리케이션(130a)(즉, 소프트웨어 자원)은 컴퓨팅 디바이스로 하여금 작업을 수행하게 하는 컴퓨터 소프트웨어를 지칭할 수 있다. 일부 예들에서, 소프트웨어 애플리케이션은 "애플리케이션", "앱" 또는 "프로그램"으로 지칭될 수 있다. 예시적인 애플리케이션들은 시스템 진단 애플리케이션들, 시스템 관리 애플리케이션들, 시스템 유지 보수 애플리케이션들, 워드 프로세싱 애플리케이션들, 스프레드시트 애플리케이션들, 메시징 애플리케이션들, 미디어 스트리밍 애플리케이션들, 소셜 네트워킹 애플리케이션들 및 게임 애플리케이션들을 포함하지만 이에 제한되는 것은 아니다.
[0028] 자원 ID 요청(132)은 특정 디바이스(10)를 식별하는 자원 ID(122)에 대한 액세스를 제1 애플리케이션(130a)에 제공하도록 룩업 서비스(120)에 요청한다. 자원 ID(122)는 일부 구현들에서, 사용자 디바이스(10)에 관한 어떠한 정보도 직접적으로 제공하지 않는 불투명 식별자이다. 즉, 자원 ID(122)는 사용자 디바이스(10)에 관한 어떠한 식별 정보도 포함하지 않지만, 대신에 원격 시스템(140)의 엔티티가 특정 사용자 디바이스(10)를 식별하기 위한 식별자로서 기능한다. 예컨대, 자원 ID(122)는 원격 시스템(140)의 엔티티와 연관된 컴퓨팅 인터페이스들, 예컨대 API(application programming interface)들이 특정 사용자 디바이스(10)를 식별하는 데 사용하는 숫자들 및/또는 문자들의 랜덤 스트링(random string)을 포함할 수 있다.
[0029] 룩업 서비스(120)는 제1 애플리케이션(130a)이 자원 ID(122)에 액세스하도록 인가되는지 여부를 결정한다. 일부 구현들에서, 자원 ID 요청(132)은 사용자(12)를 인증하는 인증 크리덴셜들(210)(도 2) 및 룩업 서비스(120)로부터 자원 ID(122)에 액세스하도록 제1 애플리케이션(130a)에 대해 사용자(12)에 의해 부여된 허가(220)(도 2)를 포함하는 자원 ID 범위(202)를 포함한다. 아래에서 보다 상세히 논의되는 바와 같이, 룩업 서비스(120)는 사용자(12)를 인증하는 인증 크리덴셜들(210) 및 룩업 서비스(120)로부터 자원 ID(122)에 액세스하도록 제1 애플리케이션(130a)에 대해 사용자에 의해 부여된 허가(220)에 기초하여 제1 애플리케이션(130a)이 자원 ID(122)에 액세스하도록 인가되는지 여부를 결정할 수 있다.
[0030] 제1 애플리케이션이 자원 ID(122)에 액세스하도록 인가될 때, 룩업 서비스(120)는 자원 ID(122)를 획득한다. 일부 예들에서, 자원 ID(122)는 룩업 서비스(120)에 저장된다. 다른 예들에서, 룩업 서비스(120)는 원격 시스템(140) 상에서 또는 다른 곳에서 실행되는 다른 서비스(예컨대, 식별 서비스)로부터 자원 ID(122)를 리트리브한다.
[0031] 일부 구현들에서, 룩업 서비스(120) 또는 룩업 서비스(120)와 통신하는 다른 서비스가 자원 ID(122)를 생성한다. 룩업 서비스(120)는 자원 ID 요청(132)에 대한 응답으로 또는 임의의 자원 ID 요청(132) 이전에(예컨대, 사용자 디바이스(10) 상의 애플리케이션(130)의 설치 동안) 자원 ID(122)를 생성할 수 있다. 다른 예들에서, 룩업 서비스(120) 또는 룩업 서비스와 동일한 엔티티와 연관된 다른 서비스는, 사용자 디바이스(10)가 엔티티에 의해 제공되는 서비스에 처음 액세스할 때 사용자 디바이스(10)에 대한 자원 ID(122)를 생성한다. 자원 ID(122)를 생성하기 위해, 룩업 서비스는 사용자 디바이스(10)로부터 하나 이상의 공통 컴포넌트들(14)을 획득한다. 공통 컴포넌트(들)(14)는 사용자 디바이스(10) 상에서 실행되는 각각의 애플리케이션(130)에 대해 공통인 사용자 디바이스(10)에 관한 정보를 나타낸다. 공통 컴포넌트들(14)은 사용자 디바이스(10) 상에 설치된 브라우저에 관한 정보(예컨대, 버전 정보), 사용자 디바이스(10) 상에 저장된 라이브러리, 사용자 디바이스(10) 상에 설치된 다른 애플리케이션에 관한 정보, 디바이스의 OS(operating system)에 관한 정보 등을 포함할 수 있지만 이에 제한되지 않는다. 공통 컴포넌트들(14)은 격리된 실행 환경(131)에서 실행될 때 각각의 애플리케이션이 액세스하는 정보를 포함할 수 있다.
[0032] 이러한 공통 컴포넌트들(14) 중 하나 이상의 조합은 룩업 서비스(120)가 동일한 사용자(12)에 속할 수 있는 다른 사용자 디바이스들(10)과 사용자 디바이스(10)를 구별하기에 충분할 수 있다. 룩업 서비스(120)는 사용자 디바이스(10)로부터 수신된 이러한 공통 컴포넌트들(14)을 생성된 자원 ID(122)와 연관시킨다. 예컨대, 룩업 서비스는 랜덤으로 생성된 자원 ID(122)와 공통 컴포넌트들(14) 간의 연관성을 저장한다. 각각의 자원 ID 요청(132)은 개개의 애플리케이션(130)에 의해 수집된 공통 컴포넌트들(14)을 포함할 수 있고, 룩업 서비스(120)는 만약 존재한다면, 어느 자원 ID(122)가 자원 ID 요청(132)의 공통 컴포넌트들에 대응하는지를 결정한다.
[0033] 제1 애플리케이션(130a)이 자원 ID(122)에 액세스하도록 인가될 때, 그리고 자원 ID(122)를 획득한 후에, 룩업 서비스(120)는 사용자 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)에 자원 ID(122)를 송신한다. 자원 ID(122)가 공유 자원(이 예에서는, 사용자 디바이스(10))의 불투명 식별자(예컨대, 난수)이기 때문에, 자원 ID(122)는 제1 애플리케이션(130a)에 어떠한 개인 정보 또는 식별 정보도 드러내지 않는다. 더욱이, 자원 ID 요청(132)은, 사용자(12)를 인증하는 인증 크리덴셜들(210) 및 룩업 서비스(120)로부터 자원 ID(122)에 액세스하도록 제1 애플리케이션(130a)에 대해 사용자에 의해 부여된 허가(220)를 제공하는 자원 ID 범위(202)를 포함할 수 있다.
[0034] 일부 예들에서, 자원 ID(122)는 룩업 서비스 및/또는 원격 시스템(140)과 연관된 (도시되지 않은) 엔티티에 의해 할당된다. 자원 ID(122)는 사용자 디바이스(10)를 식별하기 위해 엔티티/원격 시스템(140)의 하나 이상의 컴퓨팅 인터페이스들(예컨대, API(application programming interface)들)에 의해 공유될 수 있다. 제1 애플리케이션(130a)은 룩업 서비스(120)의 컴퓨팅 인터페이스들 중 하나에 "API 호출"을 수행함으로써 자원 ID 요청(132)을 룩업 서비스(120)에 전송할 수 있다.
[0035] 일부 구현들에서, 제2 애플리케이션(130b)은 또한 제1 애플리케이션(130a)과 동시에 사용자 디바이스(10) 상에서 실행되고 있다. 제2 애플리케이션(130b)은 개개의 격리된 실행 환경(131b) 내에서 실행될 수 있다. 격리된 실행 환경(131b) 내에서, 제2 애플리케이션(130b)은 사용자 디바이스 상에서 실행되는 다른 애플리케이션들(130)(예컨대, 제1 애플리케이션(130a))과 통신하지 않을 수 있다. 즉, 제1 애플리케이션(130a) 및 제2 애플리케이션(130b)이 이 둘 모두 동일한 공유 자원 내에서(즉, 동일한 사용자 디바이스(10) 상에서) 실행되고 있다고 결정하기 위한 직접적인 수단이 없다.
[0036] 일부 예들에서, 제2 애플리케이션(130b)은 제1 애플리케이션(130a)과 같이, 룩업 서비스(120)에 자원 ID 요청(132)을 송신하고, 유사하게 룩업 서비스(120)로부터, 사용자 디바이스(10)에 대응하는 자원 ID(122)를 수신한다. 즉, 제2 애플리케이션(130b)이 제1 애플리케이션(130a)과 동일한 사용자 디바이스(10) 상에서 실행되기 때문에(그리고 자원 ID 요청(132)을 통해 동일한 공통 컴포넌트들(14)을 송신하기 때문에), 제2 애플리케이션(130b)은 제1 애플리케이션(130a)과 동일한 자원 ID(122)를 수신한다. 사용자(12)는 또한 제2 애플리케이션(130b)이 자원 ID(122)에 액세스하기 위한 허가를 부여할 수 있다.
[0037] 룩업 서비스(120)가 제1 애플리케이션(130a)에 자원 ID(122)를 송신한 후, 일부 구현들에서 제1 애플리케이션(130a)은 제1 애플리케이션(130a)과 연관된 제1 원격 서비스(134, 134a)에 자원 ID(122)를 송신하도록 구성된다. 제1 원격 서비스(134a)는 제2 원격 서비스(134b)로부터 사용자 디바이스(10)에 관한 정보를 리트리브하기 위해 자원 ID(122)를 사용하도록 구성된다. 제2 원격 서비스(134b)는 제2 애플리케이션(130b)과 연관될 수 있다. 각각의 원격 서비스(134a, 134b)는 (도시되지 않은) 엔티티와 연관되고, 제1 원격 서비스(134a)와 연관된 엔티티는 제2 원격 서비스(134b)와 연관된 엔티티와 상이할 수 있다.
[0038] 제1 애플리케이션(130a) 및 제2 애플리케이션(130b) 둘 모두가 룩업 서비스(120)로부터 자원 ID(122)를 수신한 후, 그리고 각각의 애플리케이션(130a, 130b)이 수신된 자원 ID(122)를 그들의 개개의 원격 서비스(134a, 134b)에 송신한 후, 원격 서비스들(134a, 134b)은 사용자 디바이스(10)에 관한 정보를 공유하도록 (네트워크(112a)와 동일하거나 상이할 수 있는) 다른 네트워크(112, 112b)를 통해 통신할 수 있다. 두 원격 서비스들(134a, 134b) 모두가 동일한 자원 ID(122)를 수신했기 때문에, 각각의 원격 서비스(134a, 134b)는 이들 개개의 자원 ID들(122)을 비교하고, 제1 애플리케이션(130a)과 제2 애플리케이션(130b)이 동일한 사용자 디바이스(10) 상에서 실행되고 있음을 상관시킬 수 있다.
[0039] 예컨대, 제1 애플리케이션(130a)이 클라우드에 저장된 파일 저장 시스템에 대한 액세스를 허용하고 제2 애플리케이션(130b)이 사용자 디바이스(10)의 보안 태세를 결정하는 보안 애플리케이션이라고 가정한다. 제1 애플리케이션(130a)은, 사용자(12)가 사용자 디바이스(10)를 통해 파일 저장 시스템에 액세스하는 것을 허용하기 전에, 제2 애플리케이션(130b)으로부터 사용자 디바이스(10)의 보안 태세를 수신해야 한다. 그러나 두 애플리케이션들(130a, 130b) 모두가 개개의 격리된 실행 환경들(131a, 131b)에서 실행되고 있기 때문에, 어느 애플리케이션(130a, 130b)도 서로 직접 통신할 수 없다. 그러나 두 애플리케이션들(130a, 130b) 모두는 그들의 개개의 원격 서비스들(134a, 134b)과 통신할 수 있다. 제1 원격 서비스(134a)와 제2 원격 서비스(134b) 둘 모두가 자원 ID(122)를 수신한 후에, 원격 서비스들은 제1 애플리케이션(130a)과 제2 애플리케이션(130b) 둘 모두가 동일한 사용자 디바이스 상에서 실행되고 있음을 상관시킨다. 후속적으로, 제2 애플리케이션(130b)(즉, 이 예에서는 보안 태세 애플리케이션)은 사용자 디바이스(10)의 보안 태세를 제2 원격 서비스(134b)에 통신할 수 있고, 이는 결국 보안 태세를 제1 원격 서비스(134a)에 통신할 수 있다. 이어서, 제1 원격 서비스(134a)는 사용자 디바이스(10)의 보안 태세를 제1 애플리케이션(130a)에 통신할 수 있다. 따라서 두 애플리케이션들(130a, 130b) 모두는, 사용자(12)로부터 동의를 수신한 후에, 어느 애플리케이션(130a, 130b)도 어떠한 직접적인 식별 정보도 허용하지 않는 불투명 자원 ID(122)를 사용하여 공유 자원에 관해 통신할 수 있다. 제1 애플리케이션(130a) 및 제1 원격 서비스(134a)는 임의의 위치로부터(즉, 단지 사용자 디바이스(10) 또는 다른 공유 자원의 컨텍스트 내가 아님) 자원 ID(122)를 사용할 수 있다.
[0040] 도 1a는 물리적 디바이스(10a)로서 사용자 디바이스(10)(즉, 공유 자원)를 예시하지만, 사용자 디바이스(10)는 자원 ID(122)에 대한 액세스를 원하는 애플리케이션들(130)의 실행을 허용하는 임의의 사용자 디바이스(10)에 대응할 수 있다. 사용자 디바이스(10)는 (예컨대, 컨테이너형(containerized) 시스템의) 가상 디바이스(10b)를 포함할 수 있다. 예컨대, 도 2b에서, 시스템(100, 100b)은 제1 애플리케이션(130a)을 실행하는 제1 VM(virtual machine)(11a) 및 제2 애플리케이션(130b)을 실행하는 제2 VM(11b)을 포함하는 사용자 디바이스(10b)를 포함한다. 여기서, 각각의 애플리케이션(130a, 130b)이 개별 VM들(11a, 11b) 상에서 실행되고 있기 때문에, 애플리케이션들(130a, 130b)은 용이하게 통신하지 않을 수 있고, 따라서 사용자 디바이스(10b)와 연관된 정보를 상관시키고 공유하기 위해 자원 ID(122)에 의존할 수 있다. 여기서, 사용자 디바이스(10b)는 원격 시스템(140) 상에서 실행되는 것으로 도시되지만, 사용자 디바이스(10b)는 또한 원격 시스템(140)과 독립적인 임의의 실행 환경에서 실행되고 네트워크(112a)를 통해 원격 시스템(140)과 통신할 수 있다.
[0041] 이제 도 2를 참조하면, 일부 구현들에서, 자원 ID 요청(132)을 수신하기 전에, 원격 시스템(140) 상에서(또는 대안적으로, 사용자 디바이스(10) 상에서) 실행되는 인증 서비스(230)(즉, 인가/인증 서비스)가 사용자(12)를 인증하는 인증 크리덴셜들(210) 및 룩업 서비스(120)로부터 자원 ID(122)에 액세스하도록 제1 애플리케이션에 대해 사용자(12)에 의해 부여된 허가(220)를 포함하는 자원 ID 범위(202)를 수신한다. 인증 서비스는 라이브러리, API, 브라우저 등을 포함할 수 있다. 선택적으로, 인증 서비스(230)는 사용자 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)에 액세스 토큰(232)(예컨대, 사인-온 쿠키(sign-on cookie))을 송신한다. 액세스 토큰(232)은 자원 ID 범위(202)를 포함할 수 있고, 자원 ID 요청(132)은 액세스 토큰(232)을 포함할 수 있다.
[0042] 도 2에 도시된 바와 같이, 일부 예들에서, 사용자 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)은 인증 서비스(230)에 자원 ID 범위(202)를 제공하도록 사용자(12)를 촉진시키는 인증/인가 사용자 인터페이스(204)를 사용자 디바이스(10) 상에서 호출하도록 구성된다. 여기서, 인증 사용자 인터페이스(204)는 "이 애플리케이션은 다른 애플리케이션과 식별 정보를 공유하기를 원합니다. 이 공유에 대한 동의를 제공하려면 아래에서 로그인하십시오."를 사용자(12)에게 표시하는 메시지(222)를 포함한다. 이 메시지(222)는, 사용자(12)가 자원 ID(122)를 애플리케이션과 공유하는 것에 동의하고, 따라서 자원 ID(122)에 액세스하도록 애플리케이션에 대해 사용자(12)에 의해 부여된 허가로서 기능하는 것을 보장한다. 여기서, 인증 사용자 인터페이스(204)는 또한, 사용자(12)에게 그들의 아이덴티티를 검증하기 위한 인터페이스를 제공하는 인증 크리덴셜 입력 영역(212)을 포함한다. 예컨대, 인증 크리덴셜 입력 영역(212)은 사용자 이름 및 비밀번호를 위한 입력 텍스트 박스들, 생체 인식 입력(예컨대, 지문 센서), 2-팩터 인증 코드 입력 박스, 또는 사용자(12)로부터의 인증 및/또는 인증 크리덴셜들(210) 및 허가(220)를 얻기 위한 임의의 다른 기법들을 포함한다.
[0043] 도시된 예에서, 사용자(12)가 자신의 사용자 이름 및 비밀번호를 입력할 때, 사용자(12)는 또한 자원 ID(122)를 다른 애플리케이션들(130) 및 연관된 원격 서비스들(134)과 공유하는 것에 동의하여, 사용자 이름 및 비밀번호의 입력은 인증 크리덴셜들(210) 및 허가(220) 모두를 포함한다. 그러나 인증 사용자 인터페이스(204)는 (예컨대, 체크 박스를 마킹(mark)하도록 사용자(12)를 촉진시키는 것을 통해) 허가(220)를 개별적으로 촉진시킬 수 있다. 따라서 허가(220)는 사용자(12)가 자원 ID(122)를 공유하는 것에 동의한다는 것을 인증 서비스에 표시하는 한편, 인증 크리덴셜(210)은 동의하는 사용자(12)가 동의하는 것이 인가되는 것을 인증 서비스(230)에 표시한다. 일부 구현들에서, 사용자 디바이스(10) 및/또는 시스템(100)의 관리자는 사용자(12)를 대신하여 동의를 제공한다. 즉, 일부 시스템들(100)에서, 룩업 서비스(120) 및 사용자 디바이스(10)에 관해 시스템(100)의 관리자에 의해 설정된 정책은 사용자(12)에 대한 동의를 자동으로 제공한다.
[0044] 인증 서비스(230)는 (인증 크리덴셜들(210) 및 허가(220)를 포함하는) 자원 ID 범위(202)를 원격 시스템(140) 상에서 실행되는 룩업 서비스(120)에 전달한다. 룩업 서비스(120)(또는 식별 서비스와 같이 원격 시스템(140) 상에서 실행되는 다른 서비스)는 자원 ID 범위(202)에 기반하여 사용자(12)를 인가 및/또는 인증하고, 대응하는 액세스 토큰(232)을 생성한다. 룩업 서비스(120)는 액세스 토큰(232)을 인증 서비스(230)에 전송하고, 이는 결국 액세스 토큰(232)을 제1 애플리케이션(130a)에 전달한다. 제1 애플리케이션(130a)이 (예컨대, API 호출을 통해) 룩업 서비스(120)로부터 자원 ID(122)에 대한 액세스를 요청하는 후속 자원 ID 요청(132)을 발행하면, 제1 애플리케이션(130a)의 증명이 자원 ID(122)에 액세스하도록 인가되므로, 즉 인증된/인가된 사용자(12)가 자원 ID(122)를 공유하는 것에 동의하므로,제1 애플리케이션(130a)은 룩업 서비스(120)에 액세스 토큰(232)을 제공할 수 있다. 일부 예들에서, 액세스 토큰(232)은 사인-온 쿠키를 포함한다.
[0045] 일부 구현들에서, 인증 서비스(230)는 이전에 획득된 액세스 토큰(232)을 제1 애플리케이션(130a)에 제공한다. 예컨대, 사용자(12)가 현재 시간의 임계 시간 기간 내에 인증 크리덴셜들(210) 및/또는 허가(220)를 제공했을 때, 인증 서비스(230)는 추가적인 허가(220) 및/또는 인증 크리덴셜들(210)을 사용자(12)에게 촉구하지 않고 제2 액세스 토큰(232)을 획득하지 않으면서 룩업 서비스(120)에 의해 이전에 생성된 액세스 토큰(232)을 사용한다. 일부 예들에서, 인증 서비스(230)는 (인증 크리덴셜들(210)을 요청하지 않고) 단지 사용자에게 허가(220)를 촉구하는 한편, 다른 예들에서, 인증 서비스(230)는 (허가(220)를 요청하지 않고) 단지 사용자에게 인증 크리덴셜들(210)을 촉구한다.
[0046] 이제 도 3을 참조하면, 예시적인 시퀀스 다이어그램(300)은 시스템(100)에 의한 동작들을 시간 시퀀스로 배열한다. 동작(310)에서, 제1 애플리케이션(130a)은 인증 서비스(230)로부터 (예컨대, 도 2의 사용자 로그인을 통해) 인증을 요청한다. 인증 서비스(230)는 동작(312)에서, 인증 사용자 인터페이스(204)를 통해 사용자(12)로부터 획득된 인증 크리덴셜들(210) 및 허가(220)를 통해 사용자(12)를 인가 및/또는 인증하기 위해 룩업 서비스(120)(및/또는 아이덴티티 서비스(124))와 통신한다. 예컨대, 인증 서비스(230)는 룩업 서비스(120)로부터 액세스 토큰(232)을 획득한다. 동작(314)에서, 인증 서비스(230)는 액세스 토큰(232)을 제1 애플리케이션(130a)에 송신한다. 동작(316)에서, 제1 애플리케이션(130a)은 (예컨대, 자원 ID 요청(132)을 통해) 자원 ID(122)에 대한 액세스를 요청한다. 제1 애플리케이션(130a)은 자원 ID 요청(132)을 갖는 액세스 토큰(232)을 포함할 수 있다.
[0047] 동작(318)에서, 액세스 토큰(232)에 기초하여, 룩업 서비스(120)는 자원 ID(122)를 제1 애플리케이션(130a)에 제공한다. 이 예에서, 룩업 서비스(120)는 이전에 공통 컴포넌트들(14)에 기반하여 자원 ID(122)를 생성하였다. 동작(320)에서, 제1 애플리케이션(130a)은 제1 애플리케이션(130a)과 연관된 제1 원격 서비스(134a)에 자원 ID(122)를 송신한다.
[0048] 동작들(322-332)은 제1 애플리케이션(130a) 대신에 제2 애플리케이션(130b)에 대한 동작들(310-320)의 복제들이다. 즉, 동작(322)에서, 제2 애플리케이션(130b)은 인증 서비스(230)로부터 인증을 요청한다. 동작(324)에서, 인증 서비스(230)는 룩업 서비스(120)로부터 액세스 토큰(232)을 획득한다. 동작(326)에서, 인증 서비스(230)는 액세스 토큰(232)을 제2 애플리케이션(130b)에 송신한다. 동작(328)에서, 제2 애플리케이션(130b)은 액세스 토큰(232)을 사용하여 (예컨대, 자원 ID 요청(132)을 통해) 자원 ID(122)에 대한 액세스를 요청한다. 동작(330)에서, 액세스 토큰(232)에 기초하여, 룩업 서비스(120)는 자원 ID(122)를 제2 애플리케이션(130b)에 제공하고, 동작(332)에서, 제2 애플리케이션(130b)은 제2 애플리케이션(130b)과 연관된 제2 원격 서비스(134b)에 자원 ID(122)를 송신한다.
[0049] 이 시점에서, 제1 원격 서비스(134a) 및 제2 원격 서비스(134b) 둘 모두는 각각 사용자 디바이스(10)와 연관된 자원 ID(122)에 대한 액세스를 갖는다. 동작(336)에서, 제1 원격 서비스(134a)는 제2 원격 서비스(134b)로부터 사용자 디바이스(10)와 연관된 공유 자원에 관한 정보(예컨대, 사용자 디바이스(10)의 보안 태세)를 획득하기 위해 공유 자원 ID(122)를 사용한다. 동작(338)에서, 제1 원격 서비스(134a)는 제2 원격 서비스(134b)로부터 획득된 정보를 제1 애플리케이션(130a)에 송신한다. 이러한 동작들(310-338)의 순서는 예시적이며 임의의 순서로 발생할 수 있다. 예컨대, 원격 서비스들(134a, 134b)은 (동작(334)에서) 제1 애플리케이션(130a)으로부터 정보에 대한 요청을 수신하기 전에 (동작(336)에서) 정보를 공유한다.
[0050] 일부 예들에서, 제1 원격 서비스(134a) 및 제2 원격 서비스(134b)가 자원 ID들(122)을 비교할 때, 원격 서비스들(134a, 134b)은 애플리케이션들(130a, 130b)이 동일한 사용자 디바이스(10) 상에서 실행되고 있지 않음을 결정한다. 이 시나리오에서, 제1 원격 서비스(134a)는 에러 메시지를 제1 애플리케이션(130a)에 통신할 수 있다. 제1 애플리케이션(130a)은 제1 원격 서비스(134a)로부터의 에러 메시지에 대한 응답으로, (예컨대, 사용자 디바이스(10)의 그래픽 사용자 인터페이스를 통해) 사용자(12)에게 에러 메시지를 디스플레이한다. 일부 구현들에서, 에러 메시지는 (예컨대, 링크를 제공함으로써 또는 사용자(12)를 애플리케이션 설치 사이트로 재지향시킴으로써) 제2 애플리케이션(130b)을 설치하기 위한 수단을 사용자(12)에게 제공한다.
[0051] 도 4는 자원 식별을 공유하기 위한 방법(400)에 대한 동작들의 예시적인 어레인지먼트의 흐름도이다. 이 방법(400)은 동작(402)에서, 데이터 프로세싱 하드웨어(144) 상에서 실행되는 룩업 서비스(120)에서, 사용자(12)와 연관된 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)으로부터, 특정 디바이스(10)를 식별하는 자원 ID(identifier)(122)에 대한 액세스를 제1 애플리케이션(130a)에 제공하도록 룩업 서비스(120)에 요청하는 자원 ID 요청(132)을 수신하는 단계를 포함한다. 이 방법(400)은 동작들(404)에서, 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)이 자원 ID(122)에 액세스하도록 인가되는지 여부를 룩업 서비스(120)에 의해 결정하는 단계를 포함한다. 제1 애플리케이션(130a)이 자원 ID(122)에 액세스하도록 인가될 때, 이 방법(400)은 동작(406)에서, 룩업 서비스(120)에 의해 자원 ID(122)를 획득하는 단계, 및 동작(408)에서, 룩업 서비스(120)에 의해, 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)에 자원 ID(122)를 송신하는 단계를 포함한다.
[0052] 도 5는 본 문서에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(500)의 개략도이다. 컴퓨팅 디바이스(500)는 랩톱들, 데스크톱들, 워크스테이션들, 개인용 디지털 보조기기들, 서버들, 블레이드 서버들, 메인프레임들 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내는 것으로 의도된다. 여기에 도시된 컴포넌트들, 이들의 접속들 및 관계들, 그리고 이들의 기능들은 단지 예시로 여겨지며, 본 문서에서 설명 및/또는 청구된 발명들의 구현들을 제한하는 것으로 여겨지는 것은 아니다.
[0053] 컴퓨팅 디바이스(500)는 프로세서(510), 메모리(520), 저장 디바이스(530), 메모리(520)와 고속 확장 포트들(550)에 접속되는 고속 인터페이스/제어기(540), 및 저속 버스(570)와 저장 디바이스(530)에 접속되는 저속 인터페이스/제어기(560)를 포함한다. 컴포넌트들(510, 520, 530, 540, 550, 560) 각각은 다양한 버스들을 사용하여 상호 접속되고, 공통 마더보드 상에 또는 다른 방식들로 적절하게 장착될 수 있다. 프로세서(510)는 메모리(520)에 또는 저장 디바이스(530) 상에 저장된 명령들을 포함하여 컴퓨팅 디바이스(500) 내에서 실행하기 위한 명령들을 처리하여, 고속 인터페이스(540)에 결합된 디스플레이(580)와 같은 외부 입력/출력 디바이스 상에 GUI(graphical user interface)에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현들에서는, 다수의 메모리들 및 다수의 타입들의 메모리와 함께 다수의 프로세서들 및/또는 다수의 버스들이 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(500)이 접속될 수 있으며, 각각의 디바이스는 (예컨대, 서버 뱅크, 블레이드 서버들의 그룹 또는 다중 프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
[0054] 메모리(520)는 컴퓨팅 디바이스(500) 내에 비-일시적으로 정보를 저장한다. 메모리(520)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비-일시적 메모리(520)는 컴퓨팅 디바이스(500)에 의한 사용을 위해 일시적 또는 영구적으로 프로그램들(예컨대, 명령들의 시퀀스들) 또는 데이터(예컨대, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 ROM(read-only memory)/PROM(programmable read-only memory)/EPROM(erasable programmable read-only memory)/EEPROM(electronically erasable programmable read-only memory)(예컨대, 통상적으로 부팅 프로그램들과 같은 펌웨어에 사용됨)을 포함한다(그러나 이에 한정되는 것은 아님). 휘발성 메모리의 예들은 RAM(random access memory), DRAM(dynamic random access memory), SRAM(static random access memory), PCM(phase change memory)뿐만 아니라 디스크들 또는 테이프들을 포함한다(그러나 이에 한정된 것은 아님).
[0055] 저장 디바이스(530)는 컴퓨팅 디바이스(500)에 대한 대용량 저장소를 제공할 수 있다. 일부 구현들에서, 저장 디바이스(530)는 컴퓨터 판독 가능 매체이다. 다양한 서로 다른 구현들에서, 저장 디바이스(530)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들의 디바이스들을 포함하는 디바이스들의 어레이일 수 있다. 추가 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어로 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때, 앞서 설명한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(520), 저장 디바이스(530), 또는 프로세서(510) 상의 메모리와 같은 컴퓨터 판독 가능 또는 기계 판독 가능 매체이다.
[0056] 고속 제어기(540)는 컴퓨팅 디바이스(500)에 대한 대역폭 집약적 동작들을 관리하는 한편, 저속 제어기(560)는 더 낮은 대역폭 집약적 동작들을 관리한다. 이러한 임무들의 할당은 단지 예시일 뿐이다. 일부 구현들에서, 고속 제어기(540)는 메모리(520)에, (예컨대, 그래픽 프로세서 또는 가속기를 통해) 디스플레이(580)에, 그리고 (도시되지 않은) 다양한 확장 카드들을 수용할 수 있는 고속 확장 포트들(550)에 결합된다. 일부 구현들에서, 저속 제어기(560)는 저장 디바이스(530) 및 저속 확장 포트(590)에 결합된다. 다양한 통신 포트들(예컨대, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(590)는 하나 이상의 입력/출력 디바이스들, 이를테면 키보드, 포인팅 디바이스, 스캐너, 또는 네트워킹 디바이스, 이를테면 스위치 또는 라우터에 예컨대, 네트워크 어댑터를 통해 결합될 수 있다.
[0057] 컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이, 다수의 서로 다른 형태들로 구현될 수 있다. 예컨대, 이는 표준 서버(500a)로서 또는 그러한 서버들(500a)의 그룹으로 여러 번, 랩톱 컴퓨터(500b)로서, 또는 랙(rack) 서버 시스템(500c)의 일부로서 구현될 수 있다.
[0058] 본 명세서에서 설명된 시스템들 및 기법들의 다양한 구현들은 디지털 전자 및/또는 광학 회로, 집적 회로, 특수 설계된 ASIC(application specific integrated circuit)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현들은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에 데이터 및 명령들을 송신하도록 결합된, 특수 또는 범용일 수 있는 적어도 하나의 프로그래밍 가능 프로세서를 포함하는 프로그래밍 가능 시스템 상에서 실행 가능하고 그리고/또는 해석 가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
[0059] (프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로도 또한 알려진) 이러한 컴퓨터 프로그램들은 프로그램가능 프로세서에 대한 기계 명령들을 포함하며, 고레벨 절차적 그리고/또는 객체 지향 프로그래밍 언어로, 그리고/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용된 바와 같이, "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"라는 용어들은 기계 판독 가능 신호로서 기계 명령들을 수신하는 기계 판독 가능 매체를 포함하여, 프로그래밍 가능한 프로세서에 기계 명령들 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비-일시적 컴퓨터 판독 가능 매체, 장치 및/또는 디바이스(예컨대, 자기 디스크들, 광 디스크들, 메모리, PLD(Programmable Logic Device)들)를 의미한다. "기계 판독 가능 신호"라는 용어는 기계 명령들 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는 데 사용되는 임의의 신호를 의미한다.
[0060] 본 명세서에서 설명한 프로세스들 및 논리 흐름들은 입력 데이터에 대해 동작하여 출력을 발생시킴으로써 기능들을 수행하도록 하나 이상의 컴퓨터 프로그램들을 실행하는, 데이터 처리 하드웨어로도 또한 지칭되는 하나 이상의 프로그래밍 가능 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 로직 회로, 예컨대 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은 예로서, 범용 및 특수 목적의 마이크로프로세서들 모두, 그리고 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령들을 수행하기 위한 프로세서 그리고 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대 자기, 마그네토 광 디스크들, 또는 광 디스크들을 포함하거나, 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하도록, 또는 둘 다를 위해 동작 가능하게 연결될 것이다. 그러나 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체들은 예로서 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드 디스크들 또는 착탈식 디스크들; 마그네토 광 디스크들; 그리고 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 특수 목적 로직 회로에 포함될 수 있다.
[0061] 사용자와의 상호 작용을 제공하기 위해, 본 개시내용의 하나 이상의 양상들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예컨대 CRT(cathode ray tube), LCD(liquid crystal display) 모니터 또는 터치 스크린, 그리고 선택적으로는, 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드와 포인팅 디바이스, 예컨대 마우스 또는 트랙볼을 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호 작용을 제공하는 데 역시 사용될 수 있는데; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대 시각적 피드백, 청각적 피드백 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 이러한 디바이스로부터 문서들을 수신함으로써; 예컨대, 웹 브라우저로부터 수신된 요청들에 대한 응답으로 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호 작용할 수 있다.
[0062] 다수의 구현들이 설명되었다. 그럼에도, 본 개시내용의 사상 및 범위를 벗어나지 않으면서 다양한 변형들이 이루어질 수 있다고 이해될 것이다. 이에 따라, 다른 구현들이 다음의 청구항들의 범위 내에 있다.

Claims (24)

  1. 방법(400)으로서,
    데이터 프로세싱 하드웨어(144) 상에서 실행되는 룩업 서비스(lookup service)(120)에서, 사용자와 연관된 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)으로부터, 상기 특정 디바이스(10)를 식별하는 자원 ID(identifier)(122)에 대한 액세스를 상기 제1 애플리케이션(130a)에 제공하도록 상기 룩업 서비스(120)에 요청하는 자원 ID 요청(132)을 수신하는 단계;
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가되는지 여부를 상기 룩업 서비스(120)에 의해 결정하는 단계; 및
    상기 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가될 때:
    상기 룩업 서비스(120)에 의해 상기 자원 ID(122)를 획득하는 단계; 및
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)에 상기 자원 ID(122)를 상기 룩업 서비스(120)에 의해 송신하는 단계를 포함하는,
    방법(400).
  2. 제1 항에 있어서,
    상기 자원 ID 요청(132)은, 상기 사용자를 인증하는 인증 크리덴셜(authentication credential)들(210) 및 상기 룩업 서비스(120)로부터 상기 자원 ID(122)에 액세스하도록 상기 제1 애플리케이션(130a)에 대해 상기 사용자에 의해 부여된 허가(220)를 포함하는 자원 ID 범위(202)를 포함하고; 그리고
    상기 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가되는지 여부를 결정하는 단계는, 상기 사용자를 인증하는 인증 크리덴셜들(210) 및 상기 룩업 서비스(120)로부터 상기 자원 ID(122)에 액세스하도록 상기 제1 애플리케이션(130a)에 대해 상기 사용자에 의해 부여된 허가(220)에 기초하여 상기 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가됨을 결정하는 단계를 포함하는,
    방법(400).
  3. 제1 항 또는 제2 항에 있어서,
    상기 자원 ID 요청(132)을 수신하기 전에:
    상기 특정 디바이스(10)로부터, 상기 데이터 프로세싱 하드웨어(144) 상에서 실행되는 인증/인가 서비스(230)에서, 상기 사용자를 인증하는 인증 크리덴셜들(210) 및 상기 룩업 서비스(120)로부터 상기 자원 ID(122)에 액세스하도록 상기 제1 애플리케이션(130a)에 대해 상기 사용자에 의해 부여된 허가(220)를 포함하는 자원 ID 범위(202)를 수신하는 단계; 및
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)에 상기 자원 ID 범위(202)를 포함하는 액세스 토큰(access token)(232)을 상기 인증/인가 서비스(230)에 의해 송신하는 단계를 더 포함하며,
    상기 자원 ID 요청(132)은 상기 액세스 토큰(232)을 포함하는,
    방법(400).
  4. 제3 항에 있어서,
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)은 상기 특정 디바이스(10) 상에서 인증/인가 사용자 인터페이스(204)를 호출하도록 구성되고,
    상기 인증/인가 사용자 인터페이스(204)는 상기 인증/인가 서비스(230)에 상기 자원 ID 범위(202)를 제공하도록 상기 사용자를 촉진시키는,
    방법(400).
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 사용자와 연관된 특정 디바이스(10)는 물리적 디바이스(10a)를 포함하는,
    방법(400).
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 사용자와 연관된 특정 디바이스(10)는 가상 디바이스(10b)를 포함하는,
    방법(400).
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 자원 ID(122)는 상기 룩업 서비스(120)의 엔티티에 의해 할당되고, 상기 특정 디바이스(10)를 식별하도록 상기 룩업 서비스(120)의 하나 이상의 컴퓨팅 인터페이스들에 의해 공유되는,
    방법(400).
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 룩업 서비스(120)가 상기 자원 ID(122)를 상기 제1 애플리케이션(130a)에 송신한 후에,
    상기 제1 애플리케이션(130a)은 상기 제1 애플리케이션(130a)과 연관된 제1 원격 서비스(134a)에 상기 자원 ID(122)를 송신하도록 구성되고; 그리고
    상기 제1 원격 서비스(134a)는 제2 원격 서비스(134b)로부터 상기 특정 디바이스(10)에 관한 정보를 리트리브(retrieve)하기 위해 상기 자원 ID(122)를 사용하도록 구성되는,
    방법(400).
  9. 제8 항에 있어서,
    상기 제1 원격 서비스(134a)는 상기 제2 원격 서비스(134b)와는 상이한 엔티티와 연관되는,
    방법(400).
  10. 제8 항 또는 제9 항에 있어서,
    상기 제2 원격 서비스(134b)는 상기 특정 디바이스(10) 상에서 실행 가능한 제2 애플리케이션(130b)과 연관되는,
    방법(400).
  11. 제10 항에 있어서,
    상기 제1 원격 서비스(134a)가 상기 제2 원격 서비스(134b)로부터 상기 특정 디바이스(10)에 관한 정보를 리트리브하기 전에, 상기 제2 원격 서비스(134b)는 상기 특정 디바이스(10) 상에서 실행 가능한 제2 애플리케이션(130b)으로부터 상기 자원 ID(122)를 수신한,
    방법(400).
  12. 제10 항 또는 제11 항에 있어서,
    상기 제1 애플리케이션(130a)은 제1 실행 환경(131a)에서 실행되고, 상기 제2 애플리케이션(130b)은 제2 실행 환경(131b)에서 실행되며,
    상기 제1 실행 환경(131a)은 상기 제2 실행 환경(131b)으로부터 격리되는,
    방법(400).
  13. 시스템(100)으로서,
    룩업 서비스(120)를 실행하는 데이터 프로세싱 하드웨어(144); 및
    상기 데이터 프로세싱 하드웨어(144)와 통신하는 메모리 하드웨어(146)를 포함하며,
    상기 메모리 하드웨어(146)는 상기 데이터 프로세싱 하드웨어(144) 상에서 실행될 때, 상기 데이터 프로세싱 하드웨어(144)로 하여금 동작들을 수행하게 하는 명령들을 저장하며,
    상기 동작들은:
    사용자와 연관된 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)으로부터, 상기 특정 디바이스(10)를 식별하는 자원 ID(identifier)(122)에 대한 액세스를 상기 제1 애플리케이션(130a)에 제공하도록 상기 룩업 서비스(120)에 요청하는 자원 ID 요청(132)을 수신하는 동작;
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가되는지 여부를 결정하는 동작; 및
    상기 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가될 때:
    상기 자원 ID(122)를 획득하는 동작; 및
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)에 상기 자원 ID(122)를 송신하는 동작을 포함하는,
    시스템(100).
  14. 제13 항에 있어서,
    상기 자원 ID 요청(132)은, 상기 사용자를 인증하는 인증 크리덴셜들(210) 및 상기 룩업 서비스(120)로부터 상기 자원 ID(122)에 액세스하도록 상기 제1 애플리케이션(130a)에 대해 상기 사용자에 의해 부여된 허가(220)를 포함하는 자원 ID 범위(202)를 포함하고; 그리고
    상기 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가되는지 여부를 결정하는 동작은, 상기 사용자를 인증하는 인증 크리덴셜들(210) 및 상기 룩업 서비스(120)로부터 상기 자원 ID(122)에 액세스하도록 상기 제1 애플리케이션(130a)에 대해 상기 사용자에 의해 부여된 허가(220)에 기초하여 상기 제1 애플리케이션(130a)이 상기 자원 ID(122)에 액세스하도록 인가됨을 결정하는 동작을 포함하는,
    시스템(100).
  15. 제13 항 또는 제14 항에 있어서,
    상기 동작들은 상기 자원 ID 요청(132)을 수신하기 전에:
    상기 특정 디바이스(10)로부터, 상기 데이터 프로세싱 하드웨어(144) 상에서 실행되는 인증/인가 서비스(230)에서, 상기 사용자를 인증하는 인증 크리덴셜들(210) 및 상기 룩업 서비스(120)로부터 상기 자원 ID(122)에 액세스하도록 상기 제1 애플리케이션(130a)에 대해 상기 사용자에 의해 부여된 허가(220)를 포함하는 자원 ID 범위(202)를 수신하는 동작; 및
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)에 상기 자원 ID 범위(202)를 포함하는 액세스 토큰(232)을 상기 인증/인가 서비스(230)에 의해 송신하는 동작을 더 포함하며,
    상기 자원 ID 요청(132)은 상기 액세스 토큰(232)을 포함하는,
    시스템(100).
  16. 제15 항에 있어서,
    상기 특정 디바이스(10) 상에서 실행되는 제1 애플리케이션(130a)은 상기 특정 디바이스(10) 상에서 인증/인가 사용자 인터페이스(204)를 호출하도록 구성되고,
    상기 인증/인가 사용자 인터페이스(204)는 상기 인증/인가 서비스(230)에 상기 자원 ID 범위(202)를 제공하도록 상기 사용자를 촉진시키는,
    시스템(100).
  17. 제13 항 내지 제16 항 중 어느 한 항에 있어서,
    상기 사용자와 연관된 특정 디바이스(10)는 물리적 디바이스(10a)를 포함하는,
    시스템(100).
  18. 제13 항 내지 제17 항 중 어느 한 항에 있어서,
    상기 사용자와 연관된 특정 디바이스(10)는 가상 디바이스(10b)를 포함하는,
    시스템(100).
  19. 제13 항 내지 제18 항 중 어느 한 항에 있어서,
    상기 자원 ID(122)는 상기 룩업 서비스(120)의 엔티티에 의해 할당되고, 상기 특정 디바이스(10)를 식별하도록 상기 룩업 서비스(120)의 하나 이상의 컴퓨팅 인터페이스들에 의해 공유되는,
    시스템(100).
  20. 제13 항 내지 제19 항 중 어느 한 항에 있어서,
    상기 룩업 서비스(120)가 상기 자원 ID(122)를 상기 제1 애플리케이션(130a)에 송신한 후에,
    상기 제1 애플리케이션(130a)은 상기 제1 애플리케이션(130a)과 연관된 제1 원격 서비스(134a)에 상기 자원 ID(122)를 송신하도록 구성되고; 그리고
    상기 제1 원격 서비스(134a)는 제2 원격 서비스(134b)로부터 상기 특정 디바이스(10)에 관한 정보를 리트리브(retrieve)하기 위해 상기 자원 ID(122)를 사용하도록 구성되는,
    시스템(100).
  21. 제20 항에 있어서,
    상기 제1 원격 서비스(134a)는 상기 제2 원격 서비스(134b)와는 상이한 엔티티와 연관되는,
    시스템(100).
  22. 제20 항 또는 제21 항에 있어서,
    상기 제2 원격 서비스(134b)는 상기 특정 디바이스(10) 상에서 실행 가능한 제2 애플리케이션(130b)과 연관되는,
    시스템(100).
  23. 제22 항에 있어서,
    상기 제1 원격 서비스(134a)가 상기 제2 원격 서비스(134b)로부터 상기 특정 디바이스(10)에 관한 정보를 리트리브하기 전에, 상기 제2 원격 서비스(134b)는 상기 특정 디바이스(10) 상에서 실행 가능한 제2 애플리케이션(130b)으로부터 상기 자원 ID(122)를 수신한,
    시스템(100).
  24. 제22 항 또는 제23 항에 있어서,
    상기 제1 애플리케이션(130a)은 제1 실행 환경(131a)에서 실행되고, 상기 제2 애플리케이션(130b)은 제2 실행 환경(131b)에서 실행되며,
    상기 제1 실행 환경(131a)은 상기 제2 실행 환경(131b)으로부터 격리되는,
    시스템(100).
KR1020237002342A 2020-06-24 2021-01-21 공유 자원 식별 KR20230027241A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/910,344 US11425125B2 (en) 2020-06-24 2020-06-24 Shared resource identification
US16/910,344 2020-06-24
PCT/US2021/014476 WO2021262251A1 (en) 2020-06-24 2021-01-21 Shared resource identification

Publications (1)

Publication Number Publication Date
KR20230027241A true KR20230027241A (ko) 2023-02-27

Family

ID=74666783

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237002342A KR20230027241A (ko) 2020-06-24 2021-01-21 공유 자원 식별

Country Status (6)

Country Link
US (2) US11425125B2 (ko)
EP (1) EP4172818B1 (ko)
JP (1) JP7403010B2 (ko)
KR (1) KR20230027241A (ko)
CN (1) CN115769200A (ko)
WO (1) WO2021262251A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11175967B2 (en) * 2019-12-18 2021-11-16 Citrix Systems, Inc. Intelligent contextual grouping of notifications in an activity feed
WO2024039235A1 (ko) * 2022-08-19 2024-02-22 삼성전자주식회사 전자 장치 및 전자 장치에서 사용자 인증을 수행하는 방법
US11792279B1 (en) * 2022-09-29 2023-10-17 Microsoft Technology Licensing, Llc Intelligent download and session copy

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001337917A (ja) * 2000-05-30 2001-12-07 Matsushita Electric Ind Co Ltd Gui装置端末装置、リソース制御装置、ネットワークシステム、媒体及び情報集合体
JP2008514242A (ja) * 2004-10-01 2008-05-08 ノバルティス ヴァクシンズ アンド ダイアグノスティクス, インコーポレイテッド 改変型の小さい干渉rna分子および使用方法
CN102195957B (zh) * 2010-03-19 2014-03-05 华为技术有限公司 一种资源共享方法、装置及系统
US9183361B2 (en) 2011-09-12 2015-11-10 Microsoft Technology Licensing, Llc Resource access authorization
US9521551B2 (en) * 2012-03-22 2016-12-13 The 41St Parameter, Inc. Methods and systems for persistent cross-application mobile device identification
US8769651B2 (en) 2012-09-19 2014-07-01 Secureauth Corporation Mobile multifactor single-sign-on authentication
US10425481B2 (en) * 2013-05-13 2019-09-24 Telefonaktiebolaget Lm Ericsson (Publ) Node in a telecommunications network, a virtual network element and methods for retrieving resource identification information
US10032168B2 (en) * 2014-03-07 2018-07-24 Fmr Llc Secure validation of financial transactions
US9378345B2 (en) * 2014-04-29 2016-06-28 Bank Of America Corporation Authentication using device ID
US10542008B2 (en) * 2015-07-24 2020-01-21 Dropbox, Inc. Proxy authorization of a network device
US9509684B1 (en) 2015-10-14 2016-11-29 FullArmor Corporation System and method for resource access with identity impersonation
US10114944B1 (en) * 2015-11-12 2018-10-30 Symantec Corporation Systems and methods for classifying permissions on mobile devices
CN110637449B (zh) * 2017-09-29 2020-12-15 华为技术有限公司 一种访问设备标识符的方法及装置

Also Published As

Publication number Publication date
CN115769200A (zh) 2023-03-07
JP7403010B2 (ja) 2023-12-21
US11425125B2 (en) 2022-08-23
US20210409402A1 (en) 2021-12-30
JP2023524173A (ja) 2023-06-08
US20220360582A1 (en) 2022-11-10
WO2021262251A1 (en) 2021-12-30
EP4172818A1 (en) 2023-05-03
EP4172818B1 (en) 2024-04-17
US11848932B2 (en) 2023-12-19

Similar Documents

Publication Publication Date Title
EP3445015B1 (en) Methods and devices for accessing protected applications
RU2707717C2 (ru) Мобильная аутентификация в мобильной виртуальной сети
CN113316783A (zh) 使用活动目录和一次性口令令牌组合的双因素身份认证
EP4172818B1 (en) Shared resource identification
US11265165B2 (en) Initial provisioning through shared proofs of knowledge and crowdsourced identification
JP2006024205A (ja) アプリケーションにセキュリティを提供するシステムおよび方法
US10642664B2 (en) System and method for securing an inter-process communication via a named pipe
KR20100020947A (ko) 캐스케이딩 인증 시스템
US11233776B1 (en) Providing content including sensitive data
KR20150092890A (ko) 가상화 기반 보안 강화 장치 및 그 방법
US10257182B2 (en) Login proxy for third-party applications
US11394698B2 (en) Multi-party computation (MPC) based authorization
US20080229396A1 (en) Issuing a command and multiple user credentials to a remote system
US11956233B2 (en) Pervasive resource identification
US10382398B2 (en) Application signature authorization
WO2022095958A1 (zh) 资源管理方法、装置、计算机系统、可读存储介质
US11146379B1 (en) Credential chaining for shared compute environments
US9240988B1 (en) Computer system employing dual-band authentication
US11726674B2 (en) Bridging authorization standard for cloud storage
CN112182530A (zh) 通过主控系统控制操作系统权限的方法及装置
CN117827475A (zh) 用于进程间通信的方法、装置、电子设备和介质