KR102362108B1 - 인증 시스템 및 방법 - Google Patents

인증 시스템 및 방법 Download PDF

Info

Publication number
KR102362108B1
KR102362108B1 KR1020207009095A KR20207009095A KR102362108B1 KR 102362108 B1 KR102362108 B1 KR 102362108B1 KR 1020207009095 A KR1020207009095 A KR 1020207009095A KR 20207009095 A KR20207009095 A KR 20207009095A KR 102362108 B1 KR102362108 B1 KR 102362108B1
Authority
KR
South Korea
Prior art keywords
application
user
server
identification
parameter
Prior art date
Application number
KR1020207009095A
Other languages
English (en)
Other versions
KR20200051670A (ko
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 KR20200051670A publication Critical patent/KR20200051670A/ko
Application granted granted Critical
Publication of KR102362108B1 publication Critical patent/KR102362108B1/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/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 명세서는 파라미터화된 애플리케이션 설치를 위한 시스템 및 방법을 제공한다. 클라이언트 장치는 사용자의 인증 크리덴셜을 인증 서버에 제공할 수 있으며, 이는 사용자와 애플리케이션에 링크되고 애플리케이션에 의해 사용되는 파라미터를 식별하는 콘텐츠 아이템 사이의 연관성을 저장할 수 있다. 클라이언트 장치는 애플리케이션 서버 또는 애플리케이션 저장소를 통해 애플리케이션을 다운로드하여 설치할 수 있다. 설치되면 애플리케이션은 인증 크리덴셜을 인증 서버에 다시 제공하여 연관성을 검색하고 애플리케이션에 의해 사용하기 위한 파라미터를 제공할 수 있다. 따라서, 애플리케이션 서버 또는 애플리케이션 저장소는 애플리케이션에 대한 리퍼러 정보 또는 파라미터를 계속 폐기할 수 있지만, 애플리케이션은 추가 사용자 개입없이 파라미터를 수신하여 이용할 수 있다.

Description

인증 시스템 및 방법
본 명세서는 인증 시스템 및 방법에 관한 것이다.
애플리케이션은 애플리케이션 서버 또는 애플리케이션 저장소를 통해 컴퓨팅 장치에 설치되어 사용자가 애플리케이션을 검색, 다운로드 및 설치할 수 있도록 한다. 애플리케이션 게시자는 예를 들어 애플리케이션을 사용자 지정하거나 특정 사용자 (또는 사용자 그룹)에게 개인화된(customized) 콘텐츠를 제공하기 위해 사용자를 인증할 수 있다. 사용자를 인증하는 한 가지 방법은 애플리케이션에 대한 링크를 제공하는 것이며, 그 링크는 링크를 따라갈 때 애플리케이션 저장소에 전달되는 개인화된 파라미터를 포함한다. 예를 들어, 시스템 관리자에게 제공되는 링크는 사용자에게 제공되는 링크에 대한 상이한 개인화된 파라미터를 포함할 수 있고, 이에 의해 애플리케이션이 관리자 및 사용자에 대해 다르게 개인화될 수 있게 하거나, 또는 애플리케이션 내에 상이한 콘텐츠가 관리자 및 사용자에게 제공 될 수 있다. 그러나 많은 애플리케이션 저장소 또는 애플리케이션 서버는 애플리케이션에 링크되는 콘텐츠를 통해 제공된 파라미터와 같은 개인화된 파라미터가 설치된 후 애플리케이션으로 전달되지 않도록 한다. 불가능한 것은 아니지만, 사용자 (또는 사용자 그룹)에 특정한 애플리케이션의 개인화 또는 콘텐츠 제공은 어려울 수 있으며, 애플리케이션 설치 후 사용자와 게시자 간의 추가 상호 작용이 필요할 수 있다.
본 명세서에서 설명된 시스템 및 방법은 파라미터화된 애플리케이션 설치를 제공한다. 클라이언트 장치는 사용자의 인증 크리덴셜을 인증 서버에 제공할 수 있으며, 이 인증 크리덴셜은 사용자와 애플리케이션에 링크되고 애플리케이션에 의해 사용되는 파라미터를 식별하는 콘텐츠 아이템 사이의 연관성을 저장할 수 있다. 클라이언트 장치는 애플리케이션 서버 또는 애플리케이션 저장소를 통해 애플리케이션을 다운로드하여 설치할 수 있다. 설치되면, 애플리케이션은 인증 크리덴셜을 인증 서버에 다시 제공하여 연관성을 검색하고 애플리케이션에서 사용할 파라미터를 제공할 수 있다. 따라서, 애플리케이션 서버 또는 애플리케이션 저장소는 애플리케이션에 대한 리퍼러(referrer) 정보 또는 파라미터를 계속 폐기할 수 있지만, 애플리케이션은 추가 사용자 개입없이 파라미터를 수신하여 이용할 수 있다.
하나 이상의 구현의 세부 사항은 첨부 도면 및 이하의 설명에서 설명된다. 본 개시의 다른 특징, 양태 및 이점은 다음의 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1a는 일부 구현들에 따른, 애플리케이션에 의해 사용하기 위한 파라미터를 포함하는 콘텐츠 아이템의 예시이다.
도 1b는 파라미터가 손실되는 애플리케이션 설치의 구현을 나타내는 신호 흐름도이다.
도 1c는 일부 구현들에 따른, 파라미터화된 애플리케이션 설치 및 실행(launch)을 나타내는 신호 흐름도이다.
도 2는 파라미터화된 애플리케이션 설치 및 실행과 함께 사용하기 위한 컴퓨팅 장치의 구현을 나타내는 블록도이다.
도 3은 파라미터화된 애플리케이션 설치 및 실행을 위한 방법의 구현을 나타내는 흐름도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 구성요소를 나타낸다.
애플리케이션은 애플리케이션 서버 또는 애플리케이션 저장소를 통해 컴퓨팅 장치에 설치되어 사용자가 애플리케이션을 검색, 다운로드 및 설치할 수 있도록 한다. 애플리케이션 게시자는 보안상의 이유로 애플리케이션을 개인화(customize)하거나 특정 사용자 또는 사용자 그룹에 개인화된(customized) 콘텐츠를 제공할 수 있다. 그러나 많은 애플리케이션 저장소 또는 애플리케이션 서버는 설치 후 링크를 통해 제공된 파라미터와 같은 개인화된 파라미터가 애플리케이션에 전달되지 않도록 한다. 불가능한 것은 아니지만, 사용자 (또는 사용자 그룹)에 특정한 애플리케이션의 개인화 또는 콘텐츠 제공은 어려울 수 있으며, 애플리케이션 설치 후 사용자와 게시자 간의 추가 상호 작용이 필요할 수 있다.
예를 들어, 도 1a는 일부 구현들에 따른, 애플리케이션에 의해 사용하기 위한 파라미터를 포함하는 콘텐츠 아이템(102)의 예시이다. 콘텐츠 아이템(102)은 웹 브라우저, 모바일 게임, 데스크톱 애플리케이션 또는 임의의 다른 이러한 애플리케이션과 같은 애플리케이션(100) 내에 제공될 수 있으며, 이는 제1 애플리케이션, 호스트 애플리케이션, 브라우저 애플리케이션, 게임 애플리케이션, 추천 애플리케이션 또는 임의의 다른 용어로 다양하게 지칭될 수 있다. 콘텐츠 아이템(102)은 그래픽, 텍스트, 비디오, 애니메이션, 또는 다른 매체를 포함할 수 있고, 새로운 애플리케이션, 클라이언트 애플리케이션, 제2 애플리케이션, 참조된 애플리케이션 또는 다양한 다른 용어로 지칭되는 관련 애플리케이션을 후속적으로 설치하고 시작(실행)하는 하나 이상의 사용자를 대상으로 할 수 있다. 예를 들어, 도시된 바와 같이, 콘텐츠 아이템(102)은 애플리케이션을 설치하기 위한 제안을 포함할 수 있다.
콘텐츠 아이템(102)은 설치시에 새로운 애플리케이션에 제공될 애플리케이션 식별자 및 애플리케이션 파라미터와 연관되거나 이들을 포함할 수 있다. 많은 구현에서, 콘텐츠 아이템(102)은 URL(Uniform Resource Locator) 또는 URI(Uniform Resource Identifier)와 같은 애플리케이션 서버 또는 애플리케이션 저장소(스토어)를 통한 애플리케이션에 대한 링크 또는 주소를 포함할 수 있다. 링크를 선택하면 클라이언트 장치가 "앱 스토어(App Store)" 애플리케이션과 같은 다른 애플리케이션 내에 해당 URL 또는 URI를 로드하여 사용자가 새로운 애플리케이션을 다운로드하여 설치할 수 있다. 파라미터화된 URI로서 도시되어 있지만, 많은 구현에서, 애플리케이션 파라미터는 리퍼러(referrer) 태그 또는 유사한 메타데이터를 통해 제공될 수 있다.
위에서 설명한 것처럼 많은 구현에서, 애플리케이션 서버, 애플리케이션 저장소 또는 앱 스토어 애플리케이션은 요청으로부터 파라미터를 제거하거나 리퍼러 태그를 제거하거나 또는 참조 콘텐츠 아이템(102)으로부터 새로운 애플리케이션으로 파라미터를 전달하는 것을 방지하여, 사용자를 인증하고 애플리케이션 내에 개인화된 애플리케이션 또는 개인화 콘텐츠를 제공하는 것을 어렵게 하거나 불가능하게 한다.
예를 들어, 도 1b는 파라미터가 손실되는 애플리케이션 설치의 구현을 나타내는 신호 흐름도이다. 클라이언트 장치에 의해 실행되는 웹 브라우저 또는 게임과 같은 제1 애플리케이션(100)은 제2 애플리케이션에 대한 링크 및 애플리케이션에 의해 사용될 파라미터를 포함하는 콘텐츠 아이템을 디스플레이할 수 있다. 사용자에 의한 콘텐츠 아이템 또는 링크를 선택하면, 단계(120)에서, 애플리케이션(100)은 새로운 애플리케이션 및 파라미터를 포함하는 요청을 앱 스토어(저장소)(104)에 제공할 수 있다. 앱 스토어(104)는 클라이언트 장치상의 애플리케이션 또는 서버에 의해 제공되는 웹 페이지 또는 네트워크 애플리케이션을 포함할 수 있다. 앱 스토어(104)는 단계(122)에서 파라미터 또는 리퍼러 태그를 제거하고 단계(124)에서 애플리케이션 서버(106) 또는 콘텐츠 전달 네트워크로부터 제2 애플리케이션을 요청함으로써 요청을 처리할 수 있다. 제2 애플리케이션에 대한 요청은 애플리케이션에 대한 클라이언트 장치상의 앱 스토어 애플리케이션으로부터의 HTTP 또는 FTP 요청과 같은 네트워크를 통해 전송된 요청을 포함할 수 있다. 애플리케이션 서버(106)는 단계 126에서 새로운 애플리케이션으로 응답하고, 단계 128에서 앱 스토어 애플리케이션 또는 클라이언트 장치의 운영 체제에 의해 설치될 수 있다. 설치에는 압축된 애플리케이션의 압축 풀기, 시스템 라이브러리 설치 또는 수정 또는 다른 기능 수행이 포함될 수 있다. 새로운 애플리케이션(108)은 많은 구현에서 설치시에 자동으로 시작될 수 있거나, 클라이언트 장치의 사용자에 의해 수동으로 시작될 수 있다. 그러나, 단계 122에서 파라미터가 요청으로부터 제거되었기 때문에, 새로운 애플리케이션(108)이 파라미터를 이용하기 위해 사용자는 단계 130에서 수동으로 파라미터를 재입력해야 할 수 있다. 예를 들어, 콘텐츠 아이템(102)은 영숫자 코드를 포함할 수 있고, 사용자는 영숫자 코드를 수동으로 입력해야 할 수 있다. 사용자가 추가 노력을 요구하는 것 외에도, 이러한 방법은 사용자가 서로 잠금 해제 코드를 공유할 수 있기 때문에 안전하지 않을 수 있으며, 그에 따라 콘텐츠 아이템이 게시자(publisher)에 의해 제공되지 않은 사용자가 다른 사용자 또는 사용자 그룹을 위한 개인화된 콘텐츠 또는 애플리케이션의 버전을 획득할 수 있게 한다.
대신에, 본 명세서에서 설명된 시스템 및 방법은 인증 서버를 이용하여 사용자와 개인화된 애플리케이션(또는 개인화된 콘텐츠) 사이의 연관성을 유지함으로써 파라미터화된 애플리케이션 설치를 제공한다. 클라이언트 장치는 사용자의 인증 크리덴셜을 인증 서버에 제공할 수 있으며, 인증 서버는 사용자와 콘텐츠 아이템 사이의 연관성을 저장하고 애플리케이션에 의해 사용되는 파라미터를 식별할 수 있다. 클라이언트 장치는 애플리케이션 서버 또는 애플리케이션 저장소(스토어)를 통해 애플리케이션을 다운로드하여 설치할 수 있다. 설치되면 애플리케이션은 인증 크리덴셜을 인증 서버에 다시 제공하여 연관성을 검색하고 애플리케이션에서 사용할 파라미터를 제공할 수 있다. 따라서, 애플리케이션 서버 또는 애플리케이션 저장소(스토어)는 애플리케이션에 대한 리퍼러 정보 또는 파라미터를 계속 폐기할 수 있지만, 애플리케이션은 추가 사용자 개입없이 파라미터를 수신하여 이용할 수 있다.
예를 들어, 도 1c는 일부 구현들에 따른, 파라미터화된 애플리케이션 설치 및 실행을 나타내는 신호 흐름도이다. 콘텐츠 아이템(102)의 선택시에, 제1 애플리케이션(100)은 단계 150에서 사용자의 인증 크리덴셜을 인증 서버(110)에 제공할 수 있다. 인증 크리덴셜을 제공하는 것은 일부 구현에서 사용자에게 로그인 프롬프트를 디스플레이하는 것을 포함할 수 있거나, 또는 애플리케이션(100)에 의해 이미 사용된 로그인 정보 또는 인증 정보(예를 들어, 이전 인증 프로세스 동안 획득된 인증 토큰)를 이용하는 것을 포함할 수 있다. 일부 구현들에서, 사용자는 새로운 계정을 등록하도록 프롬프트될 수 있고, 사용자 및/또는 장치(디바이스)에 대한 인증 크리덴셜이 생성될 수 있다. 인증 서버는 인증 크리덴셜과 콘텐츠 아이템(102) 사이의 연관성 또는 새로운 애플리케이션에 제공될 콘텐츠 아이템의 파라미터를 저장할 수 있다. 저장된 연관성은 장치(디바이스) 식별자, 암호 키 또는 공유 비밀 또는 연관성이 폐기될 수 있는 만료 날짜와 같은 추가 세부 사항을 포함할 수 있다.
도 1b와 관련하여 위에서 설명된 바와 같이, 120' 단계에서, 애플리케이션(100)은 애플리케이션의 식별자(및 잠재적으로 파라미터 또는 리퍼러 태그를 포함함)를 포함하는 요청을 앱 스토어(104)에 제공할 수 있다. 전술한 바와 같이, 앱 스토어(104)는 단계(122')에서 파라미터를 제거하고, 단계(124')에서 새로운 애플리케이션을 애플리케이션 서버(106)에 요청하고, 단계(126')에서 새로운 애플리케이션의 전송을 수신하고, 새로운 애플리케이션(128')을 설치할 수 있다. 그러나, 사용자가 수동으로 파라미터를 입력하도록 요구하는 대신에, 새로운 애플리케이션(108)은 인증 크리덴셜을 인증 서버(110)에 다시 제공할 수 있다. 인증 크리덴셜을 제공하는 것은 일부 구현에서 사용자에게 로그인 프롬프트를 디스플레이하는 것을 포함하거나, 제1 애플리케이션(100)으로부터 로그인 정보 또는 인증 정보를 검색하는 것을 포함할 수 있다. 일부 구현들에서, 새로운 애플리케이션(108)은 제1 애플리케이션(100)에 의해 수신된 인증 토큰을 제공할 수 있다. 사용자 또는 장치(디바이스)의 인증시에, 인증 서버(110)는 단계(154)에서 콘텐츠 아이템의 해당 파라미터를 검색할 수 있고, 단계(156)에서 파라미터를 새로운 애플리케이션(108)으로 전송할 수 있다. 파라미터는 HTTP 요청/응답, 원격 프로시저 호출, 또는 다른 그러한 방법과 같은 임의의 적절한 수단을 통해 제공될 수 있다. 일부 구현들에서, 파라미터는 인증 크리덴셜과 관련된 공유 비밀(shared secret)을 통한 전송을 위해 암호화될 수 있다. 단계 158에서, 새로운 애플리케이션(108)은 예를 들어 파라미터를 이용하여 게시자 또는 콘텐츠 전송(전달) 네트워크 등에서 새로운 애플리케이션에 대한 추가 데이터를 다운로드할 수 있다.
도 2는 파라미터화된 애플리케이션 설치 및 실행(launch)과 함께 사용하기 위한 컴퓨팅 장치의 구현을 나타내는 블록도이다. 위에서 설명된 바와 같이, 클라이언트 장치(들)(250)는 클라이언트, 장치(디바이스), 클라이언트 장치, 컴퓨팅 장치, 사용자 장치 또는 임의의 다른 그러한 용어로 다양하게 지칭 될 수 있고, 데스크톱 컴퓨터, 랩톱 컴퓨터, 휴대용 컴퓨터, 태블릿 컴퓨터, 웨어러블 컴퓨터, 내장(embedded) 컴퓨터, 스마트 텔레비전, 콘솔, 사물 인터넷(IoT) 장치 또는 스마트 기기를 포함하는 임의의 유형 및 형태의 컴퓨팅 장치, 또는 임의의 다른 유형 및 형태의 컴퓨팅 장치를 포함할 수 있다.
많은 구현들에서, 클라이언트 장치(250)는 프로세서(200) 및 메모리(206)를 포함한다. 메모리(206)는 프로세서(200)에 의해 실행될 때 프로세서(200)로 하여금 본 명세서에 설명된 동작들 중 하나 이상을 수행하게 하는 기계 명령어를 저장할 수 있다. 프로세서(200)는 마이크로프로세서, ASIC, FPGA 등 또는 이들의 조합을 포함할 수 있다. 많은 구현들에서, 프로세서(200)는 멀티-코어 프로세서 또는 프로세서들의 어레이일 수 있다. 메모리(206)는 전자, 광학, 자기, 또는 프로세서 (200)에 프로그램 명령을 제공할 수 있는 임의의 다른 저장 장치를 포함할 수 있지만, 이에 제한되지는 않는다. 메모리(206)는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ROM, RAM, EEPROM, EPROM, 플래시 메모리, 광학 매체, 또는 프로세서(200)가 명령어를 판독할 수 있는 임의의 다른 적절한 메모리를 포함할 수 있다. 명령어는 C, C ++, C #, 자바(Java), 자바스크립트(JavaScript), 펄(Perl), HTML, XML, Python 및 Visual Basic과 같은 임의의 적합한 컴퓨터 프로그래밍 언어로부터의 코드를 포함할 수 있다.
클라이언트 장치(250)는 하나 이상의 네트워크 인터페이스(202)를 포함할 수 있다. 네트워크 인터페이스(202)는 임의의 유형 및 형태의 인터페이스를 포함할 수 있으며, 10 Base T, 100 Base T 또는 1000 Base T("기가비트")를 포함하는 이더넷; 802.11a, 802.11b, 802.11g, 802.11n 또는 802.11ac와 같은 다양한 종류의 802.11 무선; CDMA, LTE, 3G 또는 4G 셀룰러를 포함하는 셀룰러; 블루투스 또는 기타 단거리 무선 연결; 네트워크와 통신하기 위한 이러한 인터페이스 또는 다른 인터페이스의 조합을 포함한다. 많은 구현에서, 클라이언트 장치(250)는 예를 들면, 다른 하위 네트워크를 통한 인터넷과 같은 상이한 유형의 복수의 네트워크 인터페이스(202)를 포함하여 다양한 네트워크에 대한 연결을 허용할 수 있다.
클라이언트 장치(250)는 하나 이상의 사용자 인터페이스 장치(I/O 인터페이스)(204)를 포함할 수 있다. 사용자 인터페이스 장치(204)는 감각 정보(예를 들어, 디스플레이상의 시각화, 하나 이상의 사운드, 촉각 피드백 등)를 생성함으로써 사용자에게 데이터를 전달하고 및/또는 사용자로부터 수신된 감각 정보를 전자 신호(예를 들어, 키보드, 마우스, 포인팅 장치, 터치 스크린 디스플레이, 마이크로폰 등)로 변환하는 임의의 전자 장치일 수 있다. 하나 이상의 사용자 인터페이스 장치는 내장 디스플레이, 터치 스크린, 마이크로폰 등과 같은 클라이언트 장치(250)의 하우징 내부에 또는 다양한 구현에 따라 클라이언트 장치(250)에 연결된 모니터, 클라이언트 장치(250)에 연결된 스피커 등과 같은 클라이언트 장치(250)의 하우징 외부에 있을 수 있다.
클라이언트 장치(250)는 메모리(206)에 애플리케이션(100)을 포함하거나 프로세서(200)로 애플리케이션(100)을 실행할 수 있다. 애플리케이션(100)은 콘텐츠를 수신하고 클라이언트 장치의 출력 인터페이스(204)(예를 들어, 디스플레이, 스피커 등)를 통해 콘텐츠를 수신하거나 디스플레이하거나 달리 출력하기 위한 애플리케이션, 애플릿, 스크립트, 서비스, 데몬, 루틴 또는 다른 실행 가능한 로직일 수 있다. 일부 구현들에서, 애플리케이션(100)은 웹 브라우저, 메일 클라이언트, 비디오 플레이어, 음악 플레이어, 비디오 게임, 또는 임의의 다른 그러한 애플리케이션일 수 있다. 애플리케이션(100)은 네트워크 인터페이스(202)를 통해 수신되고 및/또는 프로세서(200)에 의해 로컬로 생성된 콘텐츠를 디스플레이하기 위한 기능을 포함할 수 있다. 일부 구현들에서, 애플리케이션(100)은 미디어 플레이어일 수 있거나 웹 브라우저 내의 플러그인 또는 네이티브 미디어 플레이어와 같은 내장형 미디어 플레이어를 포함할 수 있다. 이러한 애플리케이션(100)은 커맨드 라인 인터페이스, 그래픽 사용자 인터페이스, 또는 이들 또는 다른 인터페이스의 임의의 조합을 포함할 수 있다.
클라이언트(250)는 설치 애플리케이션(104)을 실행할 수 있다. 설치 애플리케이션(104)은 애플리케이션을 검색하고 설치하기 위한 애플리케이션, 서비스, 데몬, 루틴 또는 다른 실행 가능한 로직을 포함할 수 있다. 많은 구현에서, 설치 애플리케이션(104)은 앱 스토어 애플리케이션, 브라우저 또는 다른 이러한 애플리케이션을 포함할 수 있다. 일부 구현들에서, 설치 애플리케이션(104) 및 애플리케이션(100)은 동일한 애플리케이션일 수 있다. 일부 구현들에서, 설치 애플리케이션(104)은 애플리케이션 서버에 의해 제공되고 클라이언트 장치(250)의 브라우저 내에 렌더링되는 네트워크 애플리케이션 또는 서비스형 소프트웨어 애플리케이션을 포함할 수 있다. 위에서 설명한 것처럼 많은 구현에서, 설치 애플리케이션(104)은 설치될 애플리케이션의 URI 또는 URL 또는 다른 식별자를 수신할 수 있고, 설치시 애플리케이션에 전달될 파라미터를 수신할 수 있고; 반면 설치 애플리케이션(104)은 설치 후 새로운 애플리케이션에 대한 파라미터를 제거, 무시 또는 달리 제공하지 않을 수 있다. 이러한 구현들에서, 파라미터는 위에서 설명된 바와 같이 인증 서버(110)를 통해 제공될 수 있다.
위에서 설명된 바와 같이, 클라이언트 장치(250)는 수신된 애플리케이션, 제2 애플리케이션, 설치된 애플리케이션 또는 다른 용어로 지칭되는 새로운 애플리케이션(108)을 검색하고 설치할 수 있다. 새로운 애플리케이션(108)은 제2 애플리케이션, 설치된 애플리케이션, 검색된 애플리케이션, 다운로드된 애플리케이션 또는 임의의 다른 이러한 용어로 지칭될 수 있고, 설치 애플리케이션(104)에 의해 애플리케이션 서버(106)로부터 검색되어 설치될 수 있다. 일부 구현들에서, 애플리케이션을 설치하는 것은 애플리케이션의 압축 해제 또는 복호화, 애플리케이션의 라이브러리를 디바이스의 운영 체제에 설치, 또는 실행을 위해 애플리케이션의 하나 이상의 부분을 설치하는 것을 포함할 수 있다. 많은 구현들에서, 새로운 애플리케이션(108)은 설치시에 실행될 수 있는 반면, 다른 구현들에서, 새로운 애플리케이션(108)은 설치 후에 애플리케이션을 실행하기 위해 사용자에 의한 선택에 응답하여 실행될 수 있다.
클라이언트 장치(250)는 장치 식별자(ID)(208)를 포함하거나 식별할 수 있다. 장치 식별자(208)는 영숫자 문자열, 데이터 문자열, 일련번호, MAC(Media Access Control) 주소, 인터넷 프로토콜(IP) 주소, 사용자 이름 또는 계정 이름, GUID(Globally Unique Identifier), 쿠키, 난수 또는 의사 난수, 또는 이들 또는 다른 식별자들의 조합을 포함하는 다른 유형 및 식별자의 형태일 수 있다. 일부 구현들에서, 장치 식별자(208)는 장치에 고정되거나 제조자 일련 번호 또는 MAC 주소와 같은 장치에서 미리 구성될 수 있으며, 다른 구현들에서, 장치 식별자(208)는 콘텐츠 제공자, 스트리밍 서버, 애플리케이션(100), 또는 쿠키 또는 사용자 이름과 같은 다른 엔티티에 의해 동적으로 설정될 수 있다. 일부 구현에서, 고유하거나 새로운 장치 식별자(208)는 콘텐츠 제공자 또는 인증 서버(110)와의 통신마다 설정될 수 있고, 다른 구현들에서, 장치 식별자(208)는 변경되지 않을 수 있거나, 주기적으로(예를 들어, 매시간, 매일, 매주 등) 또는 다른 간격으로(예를 들어 클라이언트 장치의 재시작, 인터넷 서비스에 로그인 등) 변경될 수 있다. 일부 구현들에서, 장치 식별자(208)는 하나 이상의 다른 장치 식별자들(208)(예를 들어, 모바일 장치를 위한 장치 식별자, 가정용 컴퓨터를 위한 장치 식별자 등)과 연관될 수 있다. 많은 구현들에서, 위에서 설명된 바와 같이, 장치 식별자(208)는 인증 서버에 의해 생성 및/또는 장치(250)로 전송될 수 있다. 다른 구현에서, 위에서 설명된 바와 같이, 클라이언트(250)는 인증 서버(110)로부터 장치 식별자를 요청할 수 있고, 콘텐츠 또는 애플리케이션 파라미터에 대한 요청과 관련하여 장치 식별자를 인증 서버(110)에 전송할 수 있다.
클라이언트 장치(250)는 사용자 크리덴셜(210)을 포함할 수 있다. 사용자 크리덴셜(210)은 사용자 이름, 암호, 계정 이름, 계정 식별자, 암호 문구, 지문, 얼굴 스캔 데이터, 망막 정보 또는 보이스프린트와 같은 생체 데이터, 또는 다른 유형 및 형태의 사용자별 정보를 포함하는 임의의 유형 및 형태의 식별자 또는 크리덴셜일 수 있다. 많은 구현들에서, 클라이언트 장치(250)는 애플리케이션(100) 및/또는 새로운 애플리케이션(108)에 의한 로그인 프롬프트의 디스플레이에 응답하여 사용자 크리덴셜을 수신할 수 있다. 일부 구현들에서, 클라이언트 장치(250)는 예를 들어 애플리케이션의 실행 동안 또는 미리 결정된 기간 동안 사용자 크리덴셜을 일시적으로 저장할 수 있다. 예를 들어, 그러한 일 구현에서, 사용자는 애플리케이션(100)을 실행하고 그리고 애플리케이션에 크리덴셜을 제공할 수 있으며, 이는 장치(디바이스)의 메모리(206)에 저장될 수 있다. 이어서, 사용자는 새로운 애플리케이션을 다운로드하여 설치하도록 선택할 수 있고, 애플리케이션(100)은 메모리로부터 사용자 크리덴셜(210)을 검색하고 그 사용자 크리덴셜을 인증 서버(110)에 제공할 수 있다. 많은 구현에서, 사용자 크리덴셜(210)은 사용자 프라이버시 및 보안을 보호하기 위해 암호화, 해시 또는 난독화될 수 있다. 많은 구현에서, 사용자 크리덴셜은 인증 프로세스(사용자 크리덴셜, 또는 사용자 크리덴셜의 해시)를 통해 인증 서버(110)에 제공될 수 있고; 인증 서버(110)에 제공될 수 있으며, 이는 서버 데이터베이스의 해시 또는 크리덴셜을 매칭(일치)시킬 수 있으며; 매칭(일치)을 식별하면, 인증 서버는 사용자 또는 장치가 인증되었는지를 결정할 수 있고, 장치가 인증되었음을 나타내는 인증 토큰 또는 다른 데이터로 응답할 수 있다. 장치는 타사 서버, 애플리케이션 또는 기타 엔티티와 함께 인증 토큰을 사용할 수 있다.
클라이언트 장치(250)는 하나 이상의 네트워크를 통해 애플리케이션 서버(106) 및 인증 서버(110)와 통신할 수 있다. 네트워크는
근거리 통신망(LAN), 인터넷과 같은 광역 통신망(WAN), 위성 네트워크, 케이블 네트워크, 광대역 네트워크, 광섬유 네트워크, 마이크로파 네트워크, 셀룰러 네트워크, 무선을 포함하는 임의의 유형 및 형태의 네트워크를 포함할 수 있으며, 또는 이들 또는 다른 그러한 네트워크의 임의의 조합을 포함할 수 있다. 네트워크는 동일한 유형의 네트워크 또는 상이한 유형일 수 있고, 게이트웨이, 모뎀, 방화벽, 라우터, 스위치 등을 포함하는 복수의 추가 장치(도시되지 않음)를 포함할 수 있다. 네트워크는 또한 네트워크 내에서 데이터를 수신 및/또는 전송하도록 구성된 임의의 수의 컴퓨팅 장치(예를 들어, 컴퓨터, 서버, 라우터, 네트워크 스위치 등)를 포함할 수 있다. 네트워크는 임의의 수의 유선 및/또는 무선 연결을 더 포함할 수 있다. 클라이언트 장치(250)는 네트워크의 다른 컴퓨팅 장치에 (예 : 광섬유 케이블, CAT5 케이블 등을 통해) 고정된(hardwired) 송수신기와 무선(예: WiFi, 셀룰러, 라디오 등을 통해)으로 통신할 수 있다. 일부 구현들에서, 네트워크는 단일 물리적 머신에 의해 실행되는 복수의 가상 머신들 사이의 가상 네트워크와 같은 가상 네트워크, 또는 물리적으로 이동 가능한 매체(예: 테이프 미디어, CD-ROM, 플래시 미디어, 외장 하드 드라이브, 플로피 디스크 등을 통해 데이터를 전송하는 스니커넷(Sneakernet))를 통한 데이터의 오프라인 전송과 같은 추상 네트워크일 수 있다.
또한 도 2는 애플리케이션 서버(106)의 구현의 블록도이다. 클라이언트 장치(250)와 마찬가지로, 중개 서버(106)는 하나 이상의 프로세서(200), 메모리 또는 저장 장치(206), 네트워크 인터페이스(202) 및 사용자 인터페이스(204)를 포함할 수 있다. 헤드리스(headless) 서버로 지칭되는 일부 구현에서, 서버(106)는 사용자 인터페이스(204)를 포함하지 않을 수 있지만, 네트워크를 통해 사용자 인터페이스(204)를 갖는 클라이언트(250) 또는 콘텐츠 제공자와 통신할 수 있다. 일부 구현들에서, 메모리(206)는
FTP 서버들, 웹 서버들, 메일 서버들, 파일 공유 서버들, 피어 투 피어(peer to peer) 서버들, 또는 콘텐츠 또는 클라이언트가 콘텐츠 제공자에서 콘텐츠에 액세스할 수 있도록 콘텐츠 또는 재지정(redirection) 명령을 전달하기 위한 다른 애플리케이션를 포함하는, 서버의 프로세서(200)에 의해 실행하기 위한 하나 이상의 애플리케이션을 저장할 수 있다. 애플리케이션 서버(106)는 데스크톱 컴퓨터, 서버, 워크스테이션, 랩톱 컴퓨터, 휴대용 컴퓨터, 내장 컴퓨터, 또는 임의의 다른 유형 및 형태의 컴퓨팅 장치를 포함하는 임의의 유형 및 형태의 컴퓨팅 장치를 포함할 수 있다. 많은 구현에서, 애플리케이션 서버(106)는 하나 이상의 물리적 컴퓨팅 장치에 의해 실행되는 하나 이상의 가상 머신을 포함할 수 있고, 서버 팜, 클러스터 또는 장치의 클라우드로 구성될 수 있다.
애플리케이션 서버(106)는 클라이언트 장치(250)에 의한 검색 및 설치를 위한 하나 이상의 애플리케이션(108)을 저장하는 애플리케이션 저장소(212)를 포함할 수 있다. 애플리케이션들(108)은 위에서 설명된 바와 같이 URI 또는 URL 또는 다른 애플리케이션 식별자를 통해 식별될 수 있고, 다운로드 및 설치를 위해 압축, 암호화 또는 패키지될 수 있다. 많은 구현에서, 애플리케이션(108)은 다양한 애플리케이션 라이브러리, 패키지 및 애플리케이션의 다른 실행 파일을 설치하기 위한 명령을 포함하는 소정의 애플리케이션에 대한 애플리케이션 인스톨러를 포함할 수 있다.
상술한 바와 같이, 많은 구현에서, 애플리케이션 서버(106)는 클라이언트 장치(250)에 설치시 새로운 애플리케이션(108)에 파라미터를 제공하지 못하거나 구성할 수 없다. 많은 구현들에서, 그러한 파라미터들은 클라이언트 장치의 설치 애플리케이션(104)에 의해 제거될 수 있고; 다른 구현들에서, 그러한 파라미터들은 애플리케이션 서버(106)에 의해 제거되거나 무시(disregarded)될 수 있다.
또한, 도 2에 도시된 것은 인증 서버(110)이다. 인증 서버(110)는 네트워크에 연결되고 클라이언트(250)와의 인증을 수행하고 새로운 애플리케이션(108)에 의해 사용하기 위한 애플리케이션 파라미터를 저장 및 제공하도록 구성된 하나 이상의 컴퓨팅 장치를 포함할 수 있다. 인증 서버(110)는 콘텐츠 제공자, 서버, 웹 서버, 데이터 서버, 게시자(퍼블리셔), 서비스 제공자, 또는 다른 유사한 용어로 다양하게 지칭될 수 있다. 많은 구현에서, 인증 서버(110)는 서버 팜 또는 클라우드로 구성된 복수의 컴퓨팅 장치를 포함할 수 있고, 라우터, 로드 밸런서, 네트워크 주소 변환기, 방화벽 또는 기타 장치를 포함할 수 있다. 인증 서버(110)는 컴퓨터 서버(예를 들어, FTP 서버, 파일 공유 서버, 웹 서버 등) 또는 서버의 조합(예를 들어, 데이터 센터, 클라우드 컴퓨팅 플랫폼 등) 일 수 있다. 인증 서버(110)는 또한 콘텐츠 제공자일 수 있고, 텍스트, 이미지, 비디오, 오디오, 멀티미디어 또는 다른 데이터, 또는 이들의 임의의 조합을 포함하는 임의의 유형 및 형태의 콘텐츠를 제공한다. 예를 들어, 일부 구현들에서, 인증 서버(110)는 애플리케이션 서버(106)일 수 있다. 이러한 구현에서, 설치 애플리케이션(104)은, 인증 서버(110)가 설치시에 새로운 애플리케이션(108)에 파라미터를 제공하기 위해 콘텐츠 아이템(102)의 해당 프리젠테이션의 식별을 수신하거나 또는 애플리케이션(100)으로부터 파라미터를 수신해야 하도록 전술한 바와 같이 애플리케이션 파라미터를 제거할 수 있다.
인증 서버(110)는 도시된 바와 같이 하나 이상의 프로세서(200), 네트워크 인터페이스(202), I/O 인터페이스(204) 및/또는 메모리 장치(206)를 포함할 수 있다. 많은 구현에서, 인증 서버(110)는 물리적 장치에 의해 실행되는 가상 머신을 포함하는 복수의 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 인증 서버(110)는 하나 이상의 물리적 컴퓨팅 장치에 의해 실행되는 복수의 가상 머신을 포함할 수 있으며, 각각의 이러한 가상 머신은 콘텐츠 서버(예: 웹 서버, 파일 서버, 스트리밍 미디어 서버 등)를 실행하고 네트워크 저장 장치, RAID 저장 장치 또는 다른 그러한 장치와 같은 하나 이상의 저장 장치와 통신한다.
인증 서버(110)는 인증 엔진(212)을 포함하거나 실행할 수 있다. 인증 엔진(212)은 클라이언트 장치(250)로부터 인증 크리덴셜을 수신하고, 예를 들어 크리덴셜-파라미터 데이터베이스(214)에서 사용자 크리덴셜 및 콘텐츠 아이템과 관련된 파라미터를 저장 및/또는 검색하기 위한 애플리케이션, 서버, 서비스, 데몬, 루틴 또는 다른 실행 가능한 로직을 포함할 수 있다. 크리덴셜-파라미터 데이터베이스(214)는 데이터베이스, 플랫 파일, 관계형 데이터베이스, 어레이, 또는 장치 식별자(208) 또는 사용자 식별자를 콘텐츠 아이템(102), 애플리케이션에 의해 사용되는 파라미터, 또는 다른 대응하는 식별자와 연관시킬 수 있는 다른 구조를 포함하는 임의의 유형 및 형태의 데이터 저장 장치를 포함할 수 있다. 많은 구현들에서, 크리덴셜-파라미터 데이터베이스(214)는 예를 들어 애플리케이션(108)과 같은 파라미터를 사용하기 위해 애플리케이션과 더 연관될 수 있다. 예를 들어, 크리덴셜-파라미터 데이터베이스(214)는 애플리케이션에 의해 인덱싱될 수 있으며, 이는 애플리케이션으로부터의 요청을 수신할 때 사용자 크리덴셜 및 파라미터의 서치(search) 및 검색(retrieval)을 가속화할 수 있다. 크리덴셜-파라미터 데이터베이스(214)는 애플리케이션 식별자, 콘텐츠 아이템 식별자, 사용자 또는 장치 식별자, 애플리케이션에 의해 사용되는 파라미터, 또는 이러한 식별자 또는 데이터의 조합을 저장할 수 있다. 많은 구현들에서, 각각의 엔트리 또는 연관성은 만료 시간 또는 지속 기간과 더 연관될 수 있다. 지속 시간 또는 만료 시간이 만료되면 해당 연관성(association) 또는 엔트리가 제거되어 연관성이 '시간 초과'되거나 만료되도록 하여 보안을 더욱 향상시킬 수 있다.
도 3은 파라미터화된 애플리케이션 설치 및 실행을 위한 방법의 구현을 나타내는 흐름도이다. 단계 300에서, 클라이언트 장치(250)는 콘텐츠 아이템을 디스플레이할 수 있다. 콘텐츠 아이템은 웹 브라우저, 게임 또는 다른 애플리케이션(배너 광고, 팝업 광고, 전면 광고, 프리롤 또는 포스트 롤 광고, 링크, 그래픽 또는 기타 아이템)과 같은 제1 애플리케이션에 디스플레이될 수 있다. 콘텐츠 아이템은 애플리케이션 스토어 또는 애플리케이션 서버에서 제2 애플리케이션에 대응하는 URL 또는 URI와 같은 제2 애플리케이션의 링크 또는 주소, 및 설치시 제2 애플리케이션에 의해 사용될 파라미터를 포함할 수 있다. 파라미터는 URI 또는 URL(예를 들어, URL의 파라미터-값 쌍) 또는 리퍼러 태그와 같은 메타데이터에 저장될 수 있다.
단계 302에서, 제1 애플리케이션은 클라이언트 장치의 사용자가 콘텐츠 아이템과 상호 작용했는지 여부를 결정할 수 있다(예를 들어, 아이템을 클릭하고, 터치 인터페이스를 통해 아이템을 선택하는 등). 그렇지 않다면, 단계 300-302는 예를 들어, 상이한 또는 동일한 콘텐츠 아이템으로 반복될 수 있다. 상호 작용이 검출되면, 단계 304에서, 장치의 제1 애플리케이션 또는 운영 체제는 사용자에 대한 로그인 프롬프트를 디스플레이할 수 있다. 사용자는 사용자 이름, 계정 이름, 비밀번호, 생체 데이터 또는 기타 그러한 정보와 같은 사용자 크리덴셜을 입력할 수 있다. 일부 구현들에서, 제1 애플리케이션 또는 운영 체제는 사전에 프롬프트를 디스플레이하거나 사용자를 인증했을 수 있고; 그러한 구현들에서, 단계 304는 생략될 수 있다. 단계(306)에서, 크리덴셜은 인증 서버(110)로 전송될 수 있다. 크리덴셜은 사용자 개인 정보를 보호하고 보안을 강화하기 위해 암호화, 해시 또는 난독처리될 수 있다. 일부 구현들에서, 전송은 장치 식별자, 사용자 식별자, 계정 식별자, (예: 제1 애플리케이션 및/또는 설치할 애플리케이션의) 애플리케이션 식별자, 콘텐츠 아이템의 식별, 파라미터 및/또는 파라미터 값의 식별, 또는 임의의 다른 그러한 정보를 포함할 수 있다.
단계 308에서, 인증 서버(110)는 크리덴셜이 유효한지 여부(예를 들어, 크리덴셜이 인증 서버의 크리덴셜 또는 계정 데이터베이스의 계정 크리덴셜 또는 장치 크리덴셜과 일치(매칭)하는지 여부)를 결정할 수 있다. 크리덴셜이 일치하지 않으면, 크리덴셜은 단계 310에서 거부될 수 있다. 사용자가 아직 인증 서버에 계정을 등록하지 않은 일부 구현에서, 클라이언트 장치(250)는 대신에 사용자가 인증 서버(110)에 등록될 계정을 생성할 수 있는 새로운 계정 등록 인터페이스를 제공할 수 있다. 일단 등록되면, 계정은 위에서 설명된 바와 같이 확인될 수 있다 (또는 단계 308은 생략될 수 있다).
단계 312에서, 인증 서버(110)는 사용자 또는 장치 크리덴셜과 콘텐츠 아이템 및/또는 파라미터 사이의 연관성을 저장할 수 있다. 일부 구현들에서, 콘텐츠 아이템과 파라미터 사이의 연관성은 이미 인증 서버에 의해 저장되거나 그렇지 않으면 콘텐츠 서버(예를 들어, 콘텐츠 제공자 또는 게시자(퍼블리셔) 서버로부터)에 의해 이용 가능할 수 있다. 예를 들어, 애플리케이션에 링크되는 제1 콘텐츠 아이템과 제1 파라미터 사이의 연관성이 저장될 수 있고, 애플리케이션에 링크되는 제2 콘텐츠 아이템과 제2 파라미터 사이의 연관성이 저장될 수 있다. 이와 같이, 인증 서버는 해당 파라미터를 결정하기 위해 어떤 콘텐츠 아이템이 장치 또는 사용자에게 제공되었는지의 식별만 저장하면 된다. 유사하게, 파라미터는 클라이언트 장치에 의해 제공될 필요가 없고, 단지 콘텐츠 아이템의 식별일뿐이다. 다른 구현들에서, 파라미터 값은 저장을 위해 인증 서버에 제공될 수 있다. 단계(314)에서, 일부 구현에서, 인증 서버는 인증 확인 또는 인증 토큰을 클라이언트 장치에 제공할 수 있다. 인증 토큰 또는 확인은 쿠키, 암호화 키 또는 다른 유형의 식별자를 포함할 수 있다.
단계 316에서, 클라이언트 장치(250)는 새로운 애플리케이션을 다운로드하여 설치할 수 있다. 위에서 설명된 일부 구현들에서, 클라이언트 장치는 애플리케이션을 검색하기 위해 애플리케이션 서버 또는 콘텐츠 전달 시스템과 인터페이스하기 위해 설치 애플리케이션 또는 앱 스토어 애플리케이션을 실행할 수 있다. 위에서 설명된 바와 같이, 애플리케이션은 압축 또는 암호화될 수 있고, 설치 애플리케이션은 애플리케이션을 압축 해제 및/또는 해독 및 설치할 수 있다.
단계(318)에서, 새로운 애플리케이션이 실행되거나 시작될 수 있다. 일부 구현들에서, 새로운 애플리케이션은 설치가 완료되자마자 자동으로 시작될 수 있는 반면, 다른 구현들에서, 사용자는 수동으로 애플리케이션을 시작(실행)할 수 있다. 위에서 설명된 바와 같이, 애플리케이션은 게임, 유틸리티 또는 사무 애플리케이션, 미디어 애플리케이션, 소셜 네트워크 애플리케이션, 또는 임의의 다른 유형 및 애플리케이션의 형태를 포함하는 임의의 유형 및 형태의 애플리케이션을 포함할 수 있다.
단계 320에서, 일부 구현들에서, 새로운 애플리케이션 또는 운영 체제는 단계 304에서의 것과 유사한 로그인 프롬프트를 디스플레이하여 사용자 또는 장치 크리덴셜을 수신할 수 있다. 다른 구현들에서, 위에서 설명된 바와 같이, 새로운 애플리케이션은 클라이언트 장치의 제1 애플리케이션 또는 운영 체제로부터 크리덴셜을 검색할 수 있거나 (예를 들어, 사용자가 이전에 크리덴셜을 제공했을 때 저장됨) 또는 장치에 제공된 인증 토큰을 (예를 들어, 단계 314에서 또는 이전 인증 인스턴스에서) 검색할 수 있다. 단계(322)에서, 새로운 애플리케이션은 크리덴셜 또는 인증 토큰을 인증 서버에 전송할 수 있다.
단계 324에서, 인증 서버는 단계 308과 유사하게, 크리덴셜이 유효한지 확인할 수 있다. 크리덴셜이 유효하지 않은 경우, 단계 310에서 인증 서버는 크리덴셜을 거절할 수 있다. 크리덴셜이 유효하면, 단계 326에서, 인증 서버는 크리덴셜의 저장된 연관성 및 애플리케이션에 대한 콘텐츠 아이템 및/또는 파라미터를 검색할 수 있다. 일부 구현들에서, 인증 서버는 사용자 또는 장치 크리덴셜 및/또는 애플리케이션 유형 또는 크리덴셜이 제공된 애플리케이션 식별자를 통해 상기 저장된 연관성을 검색할 수 있고; 해당 콘텐츠 아이템 또는 파라미터를 식별할 수 있다. 다른 구현에서, 일단 콘텐츠 아이템을 식별하면, 인증 서버는 파라미터를 (예를 들어, 콘텐츠 아이템-파라미터 저장소에서, 퍼블리셔 또는 콘텐츠 전달 네트워크 등으로부터 파라미터를 검색함으로써) 개별적으로 조회할 수 있다. 단계 328에서, 인증 서버는 단계 314에서와 같이 인증 확인 및/또는 검색된 파라미터를 제공할 수 있다. 파라미터는 애플리케이션에 의해 사용되는 데이터(예를 들어, n에 의한 증분 토큰 카운터, 또는 유사한 명령)일 수 있거나, 애플리케이션에 의해 사용되는 잠금 해제 코드일 수 있다. 단계(330)에서, 파라미터는 개인화된(customized) 애플리케이션 또는 개인화된 콘텐츠를 제공하기 위해 애플리케이션에 의해 이용될 수 있다.
따라서, 본 명세서에서 설명된 시스템 및 방법은, 애플리케이션 스토어 또는 다른 제3자 애플리케이션 제공자에 의해 파라미터 또는 리퍼러 태그가 제거됨에도 불구하고, 사용자의 인증이 새로 설치된 애플리케이션 내에서 사용하기 위해 사용자 애플리케이션 또는 콘텐츠가 사용자에게 제공될 수 있게 한다.
일 양태에서, 본 명세서는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법에 관한 것이다. 이 방법은 장치(디바이스)에 의해, 애플리케이션의 식별 및 애플리케이션에 의해 사용되는 파라미터를 포함하는 콘텐츠 아이템을 수신하는 단계를 포함한다. 이 방법은 또한 장치에 의해, 사용자에 의해 콘텐츠 아이템과의 상호 작용을 검출하는 단계를 포함한다. 이 방법은 또한 장치에 의해, 사용자의 인증 크리덴셜 및 콘텐츠 아이템의 식별을 인증 서버에 전송하고, 인증 서버는 사용자와 관련하여 콘텐츠 아이템의 식별을 저장한다. 이 방법은 또한 사용자가 콘텐츠 아이템과의 상호 작용의 검출에 응답하여 상지 장치에 의해 애플리케이션을 설치하는 단계를 포함하며, 상기 애플리케이션은 설치 완료시 실행된다. 방법은 애플리케이션의 실행에 의해 응답하여, 장치에 의해, 사용자의 인증 크리덴셜을 인증 서버로 재전송하는 단계를 포함한다. 이 방법은 또한 인증 서버로부터 장치에 의해, 애플리케이션에 의해 사용되는 파라미터의 식별을 수신하는 단계를 포함하며, 파라미터는 사용자와 관련된 콘텐츠 아이템의 식별의 저장 및 사용자의 인증 크리덴셜의 재전송에 응답하여 검색된다. 상기 방법은 또한 파라미터의 식별의 수신에 응답하여, 장치에 의해, 애플리케이션 내에서 수신된 파라미터를 이용하는 단계를 포함한다.
일부 구현들에서, 애플리케이션에 의해 사용되는 파라미터는 애플리케이션을 설치하는 동안 로컬로 저장되지 않는다. 일부 구현들에서, 애플리케이션에 의해 사용되는 파라미터는 인증 서버로부터 파라미터의 식별을 수신하기 전에 애플리케이션에 의해 액세스 가능하지 않다.
일부 구현들에서, 콘텐츠 아이템의 식별을 전송하는 것은 애플리케이션에 의해 사용하기 위해 파라미터의 식별을 전송하는 것을 포함한다. 일부 구현들에서, 애플리케이션의 식별 및 애플리케이션에 의해 사용되는 파라미터는 리소스(자원) 식별자에 포함되고; 그리고 이 방법은 리소스 식별자에 대응하는 주소에서 설치 애플리케이션을 통해 장치(디바이스)에 의해 애플리케이션을 다운로드하는 단계를 포함하고, 설치 애플리케이션은 애플리케이션의 설치 전에 애플리케이션이 리소스 식별자로부터 애플리케이션에 의해 사용하기 위한 파라미터를 제거한다.
일부 구현들에서, 사용자의 인증 크리덴셜을 전송하는 단계는 인증 크리덴셜에 대한 프롬프트를 디스플레이하는 단계; 및 사용자로부터 인증 크리덴셜을 수신하는 단계를 포함한다. 다른 구현에서, 인증 크리덴셜을 재전송하는 단계는 인증 크리덴셜에 대한 프롬프트를 다시 디스플레이하는 단계; 및 사용자로부터 인증 크리덴셜을 다시 수신하는 단계를 포함한다.
다른 양태에서, 본 출원은 파라미터화된 애플리케이션 설치 및 실행(시작) 방법에 관한 것이다. 방법은 서버에 의해 장치에, 애플리케이션의 식별 및 애플리케이션에 의해 사용되는 파라미터를 포함하는 콘텐츠 아이템을 제공하는 단계를 포함한다. 이 방법은 장치로부터 서버에 의해, 장치의 사용자의 인증 크리덴셜 및 콘텐트 아이템의 식별을 수신하는 단계를 포함한다. 방법은 서버에 의해, 사용자와 관련하여 콘텐츠 아이템의 식별을 저장하는 단계를 포함한다. 이 방법은 후속적으로 서버에 의해 장치의 애플리케이션으로부터 사용자의 인증 크리덴셜을 수신하고, 상기 애플리케이션은 상기 애플리케이션의 설치 완료에 응답하여 장치에 의해 실행된다. 상기 방법은 서버에 의해, 사용자의 인증 크리덴셜의 수신에 기초하여 콘텐츠 아이템의 식별 및 애플리케이션에 의해 사용되는 파라미터를 검색하는 단계를 포함한다. 상기 방법은 서버에 의해 장치에 파라미터를 전송하는 단계를 포함하며, 상기 장치의 애플리케이션은 수신된 파라미터를 이용(utilizing)한다.
일부 구현들에서, 애플리케이션에 의해 사용되는 파라미터는 애플리케이션을 설치하는 동안 장치에 의해 저장되지 않는다. 일부 구현들에서, 애플리케이션에 의해 사용되는 파라미터는 인증 서버로부터 파라미터의 식별을 수신하기 전에 애플리케이션에 의해 액세스 가능하지 않다. 일부 구현들에서, 콘텐츠 아이템의 식별을 수신하는 단계는 애플리케이션에 의해 사용되는 파라미터의 식별을 수신하는 단계를 포함한다. 일부 구현들에서, 콘텐츠 아이템의 식별을 수신하는 단계는 서버에 의해 장치를 애플리케이션 설치 서버로 재지향(리다이렉팅)(redirecting)시키는 것을 포함한다. 다른 구현에서, 장치를 애플리케이션 설치 서버로 재지향시키는 단계는 애플리케이션에 대응하는 리소스 식별자를 제공하는 단계를 더 포함하며, 리소스 식별자는 애플리케이션에 의해 사용되는 파라미터를 포함하지 않는다. 다른 추가 구현에서, 장치를 애플리케이션 설치 서버로 재지향시키는 단계는 애플리케이션에 의해 사용하기 위한 파라미터를 포함하는 애플리케이션에 대응하는 리소스 식별자를 제공하는 단계를 포함하고, 애플리케이션 설치 서버는 장치로부터 애플리케이션에 대한 요청을 수신하면 파라미터를 제거한다.
다른 양태에서, 본 출원은 파라미터화된 애플리케이션 설치 및 실행(런칭)을 위한 시스템에 관한 것이다. 시스템은 전술한 양태의 방법을 수행하도록 구성된 하나 이상의 장치를 포함할 수 있다. 예를 들어, 시스템은 인증 서버 및 애플리케이션 서버와 통신하는 네트워크 인터페이스를 포함하는 장치를 포함할 수 있다. 장치는 제2 애플리케이션의 식별 및 제2 애플리케이션에 의해 사용되는 파라미터를 포함하는 콘텐츠 아이템을 수신하고; 콘텐츠 아이템과 사용자에 의한 상호 작용을 검출하고; 사용자의 인증 크리덴셜 및 콘텐츠 아이템의 식별을 인증 서버에 전송하도록 구성된 제1 애플케이션을 실행하고, 인증 서버는 사용자와 관련하여 콘텐츠 아이템의 식별을 저장한다. 상기 장치는 콘텐츠 아이템과의 사용자에 의한 상호 작용의 검출에 응답하여 애플리케이션 서버로부터 제2 애플리케이션을 검색하고 설치하도록 구성되며, 제2 애플리케이션은 설치 완료시 실행된다. 제2 애플리케이션은, 제2 애플리케이션의 실행에 응답하여, 사용자의 인증 크리덴셜을 인증 서버로 재전송하고; 인증 서버로부터, 제2 애플리케이션에 의해 사용하기 위한 파라미터의 식별을 수신하고 -파라미터는 사용자와 관련된 콘텐츠 아이템의 식별의 저장 및 사용자의 인증 크리덴셜의 재전송에 응답하여 검색됨-; 파라미터의 식별의 수신에 응답하여, 제2 애플리케이션 내에서 수신된 파라미터를 이용하도록 구성된다.
일부 구현들에서, 제2 애플리케이션에 의해 사용되는 파라미터는 제2 애플리케이션을 설치하는 동안 로컬로 저장되지 않는다. 일부 구현들에서, 제2 애플리케이션에 의해 사용되는 파라미터는 인증 서버로부터 파라미터의 식별을 수신하기 전에 제2 애플리케이션에 의해 액세스 가능하지 않다.
일부 구현들에서, 제1 애플리케이션은 또한 제2 애플리케이션에 의해 사용되는 파라미터의 식별을 전송하도록 구성된다. 일부 구현들에서, 애플리케이션의 식별 및 애플리케이션에 의해 사용되는 파라미터는 리소스 식별자에 포함되고; 장치는 리소스 식별자에 대응하는 어드레스에서 설치 애플리케이션을 통해 제2 애플리케이션을 검색하고 설치하도록 추가로 구성되며, 설치 애플리케이션은 제2 애플리케이션의 설치 전에 리소스 식별자로부터 제2 애플리케이션에 의해 사용하기 위한 파라미터를 제거한다. 일부 구현들에서, 제2 애플리케이션은 인증 크리덴셜에 대한 프롬프트를 디스플레이하도록 추가로 구성되고; 사용자로부터 인증 크리덴셜을 수신한다.
본 명세서에서 설명된 요지 및 동작은 본 명세서 및 그 구조적 균등물에 개시된 구조 또는 이들 중 하나 이상의 조합을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 본 명세서에서 설명된 요지는 하나 이상의 컴퓨터 프로그램, 예컨대 데이터 처리 장치에 의한 실행 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 선택적으로 또는 부가 적으로, 프로그램 명령어는 인공적으로 생성된 전파된 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위한 적절한 수신기 장치로의 송신을 위해 정보를 인코딩하기 위해 생성된 기계 - 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합일 수 있거나 포함될 수 있다. 컴퓨터 저장 매체가 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 개별 물리적 컴포넌트 또는 매체 (예를 들어, 복수의 CD, 디스크 또는 다른 저장 장치)일 수 있거나 포함될 수 있다. 따라서, 컴퓨터 저장 매체는 유형적일 수 있다.
본 명세서에서 설명된 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장된 데이터 또는 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다.
"클라이언트" 또는 "서버"라는 용어는 예를 들어, 프로그램 가능한 프로세서, 컴퓨터, 칩 상의 시스템, 또는 다수의 것들, 또는 이들의 조합들을 포함하는, 데이터를 프로세싱하기 위한 다양한 장치들, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 상기 장치는, 하드웨어 이외에, 해당 컴퓨터 프로그램을 위한 실행 환경을 제작하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 환경, 가상 기계, 또는 그들 중 하나 이상의 조합을 구성하는 코드를 또한 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 기반구조들과 같은, 다양한 상이한 컴퓨팅 모델 기반구조들을 실현할 수 있다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트, 또는 코드로 또한 알려짐)은 컴파일된 또는 해석된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램을 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서의 사용을 위해 적합한 다른 유닛을 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수도 있지만 그렇지 않을 수도 있다. 컴퓨터 프로그램은 다른 프로그램들 또는 데이터 (예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들), 해당 프로그램 전용의 단일 파일, 또는 다수의 조정된 파일들 (예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 일부들을 저장하는 파일들)을 보유하는 파일의 일부에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 자리에 위치되거나 또는 복수의 자리들에 분산되고 그리고 통신 네트워크에 의해 상호연결된 복수의 컴퓨터들 상에도 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작시키고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 특수 목적 논리 회로, 예를 들어, FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)에 의해 또한 수행될 수 있으며, 장치들 또한 특수 목적 논리회로에 의해 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은 예를 들어, 범용 및 특수 목적 마이크로프로세서들 둘 모두 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들과 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들에 따라 액션들을 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들 (예를 들어, 자기, 광 자기 디스크들 또는 광학 디스크들)로부터 데이터를 수신하거나 저장 디바이스들로 데이터를 전송하기 위해 저장 디바이스들에 동작 가능하게 결합되거나 저장 디바이스들을 포함할 것이다. 그러나 컴퓨터에는 그러한 디바이스들이 필요 없다. 또한, 컴퓨터는 다른 디바이스, 예를 들어, 모바일 폰, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적절한 디바이스들은 모든 형태의 비-휘발성 메모리, 매체, 메모리 디바이스들을 포함하며, 상기 메모리 디바이스들은 반도체 메모리 디바이스들 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 분리성 디스크들; 광 자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들이다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 포함될 수 있다.
사용자와의 인터랙션을 제공하기 위해, 본 명세서에서 기술된 발명의 구현예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스 예를 들어, 음극선관(CRT), 플라즈마 또는 액정 디스플레이(LCD), OLED(organic light emitting diode), TFT(thin-film transistor), 플라즈마, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 터치스크린, 터치 패드, 키보드 및 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼 등을 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 디바이스들이 사용자와의 인터랙션을 제공하는데 사용될 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백을 포함할 수 있고; 그리고 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 예를 들어, 웹브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 송신함으로써, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 보내고 그로부터 문서들을 수신하여 사용자와 인터랙팅할 수 있다.
본 명세서에 기술된 발명은 컴퓨팅 시스템 내에서 구현될 수 있으며, 상기 컴퓨팅 시스템은 백 엔드 컴포넌트(예를 들어 데이터 서버)를 포함하거나 미들웨어 컴포넌트(예를 들어 애플리케이션 서버)를 포함하거나 프론트 엔드 컴포넌트(예를 들어 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 사용자가 본 명세서에 기술된 발명의 구현과 인터랙팅할 수 있는 웹 브라우저)를 포함하거나 또는 하나 이상의 그러한 백 엔드, 미들웨어, 프론트 엔드 컴포넌트들의 조합을 포함할 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신 예를 들어, 통신 네트워크, 의 임의의 형태 또는 매체에 의해 상호연결 될 수 있다. 통신 네트워크들의 예시들은 근거리 통신망( "LAN") 및 광역 통신망("WAN"), 인터-네트워크 (예를 들어, 인터넷) 및 피어-투-피어 네트워크들 (예를 들어, 애드 혹 피어-투-피어 네트워크들)을 포함할 수 있다.
본 명세서에서 설명된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황들에서, 사용자들은 개인 정보 (예를 들어, 사용자의 소셜 네트워크에 관한 정보, 소셜 행동들 또는 활동들, 사용자의 선호도들 또는 사용자의 위치)를 수집할 수 있는 프로그램들 또는 구성들을 제어하거나, 콘텐츠 서버 또는 다른 데이터 프로세싱 시스템으로부터 사용자에게 보다 관련 있는 콘텐츠를 수신할지 또는 어떻게 수신할지를 제어할 기회를 제공받을 수 있다. 또한, 소정 데이터는 저장 또는 사용되기 전에 하나 이상의 방식들로 익명화될 수 있어, 파라미터들을 생성할 때 개인 식별 정보는 제거된다. 예를 들어, 사용자의 신원이 익명화되어 사용자에 대해 개인 식별 정보가 결정될 수 없거나, 또는 사용자의 지리적 위치가 위치 정보가 획득된 곳(도시, 우편 번호 또는 주 레벨과 같은)으로 일반화될 수 있어, 사용자의 특정한 위치가 결정되지 못할 수 있다. 따라서, 사용자는 사용자에 관한 정보가 콘텐츠 서버에 의해 어떻게 수집되고 사용되는지를 제어할 수 있다.
본 명세서는 많은 특정 구현예 세부 사항들을 포함하지만, 이들이 발명들의 범위 또는 청구될 수 있는 범위의 제한들로 해석되어서는 안되며, 오히려 본 명세서에 기술된 시스템들 및 방법들의 특정한 구현예들에 특정적인 구성들의 설명들로 해석되어야한다. 별도 구현예들의 컨텍스트에서 본 명세서에 기술된 일정 구성들은 단일 구현으로 조합하여 또한 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 기술된 다양한 구성들은 다수의 구현 구현예들에서 개별적으로 또는 임의의 적절한 하위조합으로 또한 구현될 수 있다. 또한, 구성들이 일정 조합들로 작용하는 것으로 기술되고 그렇게 초기에 청구될 수 있지만, 일부 경우들에서 청구된 조합으로부터의 하나 이상의 구성들은 조합으로부터 제거될 수 있고, 청구된 조합은 하위조합 또는 하위조합의 변형으로 유도될 수 있다.
예를 들어, 본 명세서에서 언급된 개인화된(커스텀) 콘텐츠는 임의의 형태를 취할 수 있음을 이해할 것이다. 단지 예로서, 커스텀 콘텐츠는 쿠폰 또는 토큰 등과 같은 애플리케이션을 설치하기 위한 인센티브를 포함할 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작을 달성하기 위해 이러한 동작이 도시된 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 구현 예에서 다양한 시스템 컴포넌트의 분리는 모든 구현 예에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품 내에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
따라서, 본 발명의 특정 구현 예가 설명되었다. 다른 구현 예들은 다음의 청구항들의 범위 내에 있다. 경우에 따라 청구 범위에 나열된 동작을 다른 순서로 수행할 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현 예에서, 멀티태스킹 또는 병렬 처리가 이용될 수 있다.

Claims (20)

  1. 파라미터화된 애플리케이션 설치 및 실행을 위한 방법으로서,
    장치에 의해, 애플리케이션의 식별 및 상기 애플리케이션에 의해 사용되는 파라미터를 포함하는 콘텐츠 아이템을 수신하는 단계;
    상기 장치에 의해, 상기 콘텐츠 아이템과의 사용자에 의한 상호 작용을 검출하는 단계;
    상기 장치에 의해, 사용자의 인증 크리덴셜 및 상기 콘텐츠 아이템의 식별을 인증 서버에 전송하는 단계 -상기 인증 서버는 사용자와 관련하여 상기 콘텐츠 아이템의 식별을 저장함-;
    상기 장치에 의해, 상기 콘텐츠 아이템과의 사용자에 의한 상호 작용의 검출에 응답하여, 상기 애플리케이션을 설치하는 단계 -상기 애플리케이션은 설치 완료시 실행됨-;
    상기 장치에 의해, 상기 애플리케이션의 실행에 응답하여, 사용자의 인증 크리덴셜을 인증 서버로 재전송하는 단계;
    상기 장치에 의해, 인증 서버로부터 상기 애플리케이션에 의해 사용하기 위한 파라미터의 식별을 수신하는 단계 -상기 파라미터는 사용자와 관련하여 상기 콘텐츠 아이템의 식별의 저장 및 상기 사용자의 인증 크리덴셜의 재전송에 응답하여 검색됨-; 그리고
    상기 장치에 의해, 상기 파라미터의 식별의 수신에 응답하여, 상기 애플리케이션 내에서 수신된 파라미터를 이용(utilizing)하는 단계를 포함하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  2. 제1항에 있어서, 상기 애플리케이션에 의해 사용하기 위한 상기 파라미터는 상기 애플리케이션을 설치하는 동안 로컬로 저장되지 않는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  3. 제1항에 있어서, 상기 애플리케이션에 의해 사용하기 위한 상기 파라미터는 상기 인증 서버로부터 상기 파라미터의 식별을 수신하기 전에 상기 애플리케이션에 의해 액세스 가능하지 않는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  4. 제1항에 있어서, 상기 콘텐츠 아이템의 식별을 전송하는 단계는 상기 애플리케이션에 의해 사용하기 위한 상기 파라미터의 식별을 전송하는 단계를 더 포함하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  5. 제1항에 있어서, 상기 애플리케이션의 식별 및 상기 애플리케이션에 의해 사용하기 위한 파라미터는 리소스 식별자에 포함되고; 그리고
    상기 애플리케이션을 설치하는 단계는, 리소스 식별자에 대응하는 어드레스에서, 설치 애플리케이션을 통해 상기 장치에 의해 상기 애플리케이션을 다운로드하는 단계를 더 포함하고,
    상기 설치 애플리케이션은 상기 애플리케이션의 설치 전에 상기 리소스 식별자로부터 상기 애플리케이션에 의해 사용하기 위한 파라미터를 제거하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  6. 제1항에 있어서, 상기 사용자의 인증 크리덴셜을 전송하는 단계는,
    인증 크리덴셜에 대한 프롬프트를 디스플레이하는 단계; 그리고
    사용자로부터 인증 크리덴셜을 수신하는 단계를 포함하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  7. 제6항에 있어서, 상기 인증 크리덴셜을 재전송하는 단계는,
    인증 크리덴셜에 대한 프롬프트를 다시 디스플레이하는 단계; 그리고
    사용자로부터 인증 크리덴셜을 다시 수신하는 단계를 더 포함하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  8. 파라미터화된 애플리케이션 설치 및 실행을 위한 방법으로서,
    서버에 의해, 애플리케이션의 식별 및 상기 애플리케이션에 의해 사용하기 위한 파라미터를 포함하는 콘텐츠 아이템을 장치에 제공하는 단계;
    상기 서버에 의해, 상기 장치로부터 상기 장치의 사용자의 인증 크리덴셜 및 상기 콘텐츠 아이템의 식별을 수신하는 단계;
    상기 서버에 의해, 사용자와 관련하여 상기 콘텐츠 아이템의 식별을 저장하는 단계;
    상기 서버에 의해, 상기 장치의 애플리케이션으로부터 사용자의 인증 크리덴셜을 추후(subsequently) 수신하는 단계 -상기 애플리케이션은 상기 애플리케이션의 설치 완료에 응답하여 상기 장치에 의해 실행됨-;
    상기 서버에 의해, 사용자의 인증 크리덴셜의 수신에 기초하여 콘텐츠 아이템의 식별 및 애플리케이션에 의해 사용하기 위한 파라미터를 검색하는 단계; 그리고
    상기 서버에 의해, 상기 장치에 상기 파라미터를 전송하는 단계 -상기 장치의 애플리케이션은 상기 수신된 파라미터를 이용하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  9. 제8항에 있어서, 상기 애플리케이션에 의해 사용하기 위한 상기 파라미터는 상기 애플리케이션을 설치하는 동안 상기 장치에 의해 저장되지 않는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  10. 제8항에 있어서, 상기 애플리케이션에 의해 사용하기 위한 파라미터는 상기 서버로부터 상기 파라미터의 식별을 수신하기 전에 상기 애플리케이션에 의해 액세스 가능하지 않는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  11. 제8항에 있어서, 상기 콘텐츠 아이템의 식별을 수신하는 단계는 상기 애플리케이션에 의해 사용하기 위한 상기 파라미터의 식별을 수신하는 단계를 더 포함하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  12. 제8항에 있어서, 상기 콘텐츠 아이템의 식별을 수신하는 단계는 상기 서버에 의해 상기 장치를 애플리케이션 설치 서버로 리다이렉팅(redirecting)하는 단계를 더 포함하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  13. 제12항에 있어서, 상기 장치를 상기 애플리케이션 설치 서버로 리다이렉팅하는 단계는 상기 애플리케이션에 대응하는 리소스 식별자를 제공하는 단계를 더 포함하고, 상기 리소스 식별자는 상기 애플리케이션에 의해 사용하기 위한 파라미터를 포함하지 않는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  14. 제12항에 있어서, 상기 장치를 상기 애플리케이션 설치 서버로 리다이렉팅는 단계는,
    상기 애플리케이션에 의해 사용하기 위한 파라미터를 포함하여 상기 애플리케이션에 대응하는 리소스 식별자를 제공하는 단계를 더 포함하며, 상기 애플리케이션 설치 서버는 상기 장치로부터 상기 애플리케이션에 대한 요청을 수신하면 상기 파라미터를 제거하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 방법.
  15. 파라미터화된 애플리케이션 설치 및 실행을 위한 시스템으로서,
    인증 서버 및 애플리케이션 서버와 통신하는 네트워크 인터페이스를 포함하는 장치를 포함하며, 상기 장치는 동작들을 수행하도록 구성된 제1 애플리케이션을 실행하며, 상기 동작들은,
    제2 애플리케이션의 식별 및 제2 애플리케이션에 의해 사용하기 위한 파라미터를 포함하는 콘텐츠 아이템을 수신하는 동작;
    상기 콘텐츠 아이템과의 사용자 상호 작용을 검출하는 동작;
    사용자의 인증 크리덴셜 및 상기 콘텐츠 아이템의 식별을 인증 서버에 전송하는 동작 -상기 인증 서버는 사용자와 관련하여 콘텐츠 아이템의 식별을 저장하고; 상기 장치는 콘텐츠 아이템과의 사용자 상호 작용의 검출에 응답하여, 애플리케이션 서버로부터 제2 애플리케이션을 검색하고 설치하도록 구성되고; 제2 애플리케이션은 설치 완료시 실행되고; 상기 제2 애플리케이션은 제2 애플리케이션의 실행에 응답하여, 사용자의 인증 크리덴셜을 인증 서버로 재전송하도록 구성됨-;
    인증 서버로부터, 제2 애플리케이션에 의해 사용하기 위한 파라미터의 식별을 수신하는 동작 -상기 파라미터는 사용자와 관련된 콘텐츠 아이템의 식별의 저장 및 사용자의 인증 크리덴셜의 재전송에 응답하여 검색됨-; 그리고
    상기 파라미터의 식별의 수신에 응답하여, 제2 애플리케이션 내에서 상기 수신된 파라미터를 이용하는 동작을 포함하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 시스템.
  16. 제15항에 있어서, 상기 제2 애플리케이션에 의해 사용하기 위한 상기 파라미터는 상기 제2 애플리케이션을 설치하는 동안 로컬로 저장되지 않는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 시스템.
  17. 제15항에 있어서, 상기 제2 애플리케이션에 의해 사용하기 위한 상기 파라미터는 상기 인증 서버로부터 상기 파라미터의 식별을 수신하기 전에 상기 제2 애플리케이션에 의해 액세스 가능하지 않는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 시스템.
  18. 제15항에 있어서, 상기 제1 애플리케이션은 상기 제2 애플리케이션에 의해 사용하기 위한 상기 파라미터의 식별을 전송하도록 더 구성되는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 시스템.
  19. 제15항에 있어서,
    상기 애플리케이션의 식별 및 상기 애플리케이션에 의해 사용하기 위한 파라미터는 리소스 식별자에 포함되고; 상기 장치는 상기 리소스 식별자에 대응하는 주소에서, 설치 애플리케이션을 통해 상기 제2 애플리케이션을 검색하고 설치하도록 더 구성되며, 설치 애플리케이션은 제2 애플리케이션의 설치 이전에 리소스 식별자로부터 제2 애플리케이션에 의해 사용하기 위한 파라미터를 제거하는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 시스템.
  20. 제15항에 있어서, 상기 제2 애플리케이션은,
    인증 크리덴셜에 대한 프롬프트를 디스플레이하고; 그리고
    사용자로부터 인증 크리덴셜을 수신하도록 더 구성되는 것을 특징으로 하는 파라미터화된 애플리케이션 설치 및 실행을 위한 시스템.
KR1020207009095A 2018-11-02 2018-11-02 인증 시스템 및 방법 KR102362108B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/058975 WO2020091809A1 (en) 2018-11-02 2018-11-02 Systems and methods for authenticated parameterized application installation and launch

Publications (2)

Publication Number Publication Date
KR20200051670A KR20200051670A (ko) 2020-05-13
KR102362108B1 true KR102362108B1 (ko) 2022-02-14

Family

ID=64362744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207009095A KR102362108B1 (ko) 2018-11-02 2018-11-02 인증 시스템 및 방법

Country Status (6)

Country Link
US (1) US11544357B2 (ko)
EP (1) EP3673395B1 (ko)
JP (1) JP6914436B2 (ko)
KR (1) KR102362108B1 (ko)
CN (1) CN111406257B (ko)
WO (1) WO2020091809A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6956233B1 (ja) * 2020-07-08 2021-11-02 Tis株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US11526339B1 (en) * 2020-08-11 2022-12-13 NortonLifeLock Inc. Systems and methods for improving application installation
JP7297275B1 (ja) * 2022-12-06 2023-06-26 株式会社and DC3 コンテンツ処理方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012136165A1 (zh) 2012-06-13 2012-10-11 华为终端有限公司 实现共享信息的方法、用户设备和服务器以及装置
WO2017210063A1 (en) 2016-06-02 2017-12-07 Google Inc. Client device application interaction monitoring

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148222A (en) * 1990-08-22 1992-09-15 Spectrum Sciences B.V. Liquid developer system
JP2003216872A (ja) * 2001-11-19 2003-07-31 Ricoh Co Ltd レンタルソフトウェア提供方法およびレンタルソフトウェア提供プログラム
JP2003256213A (ja) * 2002-03-06 2003-09-10 Nippon Telegr & Teleph Corp <Ntt> アプリケーション起動方法及びシステム及びアプリケーション起動プログラム及びアプリケーション起動プログラムを格納した記憶媒体
US7080404B2 (en) * 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
US8613108B1 (en) * 2009-03-26 2013-12-17 Adobe Systems Incorporated Method and apparatus for location-based digital rights management
FR2962571B1 (fr) * 2010-07-08 2012-08-17 Inside Contactless Procede d'execution d'une application securisee dans un dispositif nfc
AU2012203903B2 (en) * 2011-07-12 2015-03-12 Apple Inc. System and method for linking pre-installed software to a user account on an online store
US9148429B2 (en) * 2012-04-23 2015-09-29 Google Inc. Controlling access by web applications to resources on servers
US9098687B2 (en) * 2013-05-03 2015-08-04 Citrix Systems, Inc. User and device authentication in enterprise systems
JP6201885B2 (ja) * 2014-05-13 2017-09-27 株式会社セガゲームス サーバ装置及びサーバプログラム
US20150379559A1 (en) * 2014-06-30 2015-12-31 Google Inc. Application installation conversion and identification
US10425392B2 (en) 2015-08-05 2019-09-24 Facebook, Inc. Managing a device cloud
US9886256B2 (en) * 2015-09-10 2018-02-06 Green Almond Limited Application download and link correlation
US10397191B2 (en) * 2015-12-01 2019-08-27 Adobe Inc. Passing content securely from web browsers to computer applications
US10542069B2 (en) * 2016-07-13 2020-01-21 Mobisave Llc System and method for providing a customized resource
AU2017101431B4 (en) 2016-10-26 2018-05-17 Apple Inc. User interfaces for browsing content from multiple content applications on an electronic device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012136165A1 (zh) 2012-06-13 2012-10-11 华为终端有限公司 实现共享信息的方法、用户设备和服务器以及装置
WO2017210063A1 (en) 2016-06-02 2017-12-07 Google Inc. Client device application interaction monitoring

Also Published As

Publication number Publication date
KR20200051670A (ko) 2020-05-13
EP3673395B1 (en) 2021-06-23
JP6914436B2 (ja) 2021-08-04
US11544357B2 (en) 2023-01-03
CN111406257A (zh) 2020-07-10
CN111406257B (zh) 2023-10-31
JP2021503637A (ja) 2021-02-12
WO2020091809A1 (en) 2020-05-07
EP3673395A1 (en) 2020-07-01
US20210216614A1 (en) 2021-07-15

Similar Documents

Publication Publication Date Title
US11025624B2 (en) Inter-application delegated authentication
US10931683B2 (en) Automatic token-based secure content streaming method and apparatus
CN100581103C (zh) 安全地处理被用于基于web的资源访问的客户证书
US20210056541A1 (en) Method and system for mobile cryptocurrency wallet connectivity
US9015494B2 (en) Methods and apparatus for digital steganography
CN103155513A (zh) 加速认证的方法和装置
KR102362108B1 (ko) 인증 시스템 및 방법
US20140090041A1 (en) Method, apparatus and system for authenticating open identification based on trusted platform
US20230219006A1 (en) Systems and methods for providing multi-part persistent content
US20220141208A1 (en) Passing authentication information via parameters
KR20200131311A (ko) 브라우저 쿠키를 대체하는 도메인 특정 브라우저 식별자
EP3977701A1 (en) Systems and methods of application single sign on
US8892647B1 (en) System and method for associating a cookie with a device identifier
JP7015400B2 (ja) 自己認証ドメイン固有のブラウザ識別子
JP7438295B2 (ja) データを保護するためのシステムおよび方法
KR102164301B1 (ko) 서버기반의 간편 로그인 시스템 및 간편 로그인 방법
JP7525572B2 (ja) マルチパート持続性コンテンツを提供するためのシステムおよび方法

Legal Events

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