JP6224792B2 - プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体 - Google Patents

プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体 Download PDF

Info

Publication number
JP6224792B2
JP6224792B2 JP2016170774A JP2016170774A JP6224792B2 JP 6224792 B2 JP6224792 B2 JP 6224792B2 JP 2016170774 A JP2016170774 A JP 2016170774A JP 2016170774 A JP2016170774 A JP 2016170774A JP 6224792 B2 JP6224792 B2 JP 6224792B2
Authority
JP
Japan
Prior art keywords
data
request
access
computing device
client application
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2016170774A
Other languages
English (en)
Other versions
JP2017021825A (ja
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 JP2017021825A publication Critical patent/JP2017021825A/ja
Application granted granted Critical
Publication of JP6224792B2 publication Critical patent/JP6224792B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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
    • G06F21/6281Protecting 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 at program execution time, where the protection is within the operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Description

本開示は概して、オペレーティングシステム経由でデータにアクセスするためのクライアントアプリケーションの認証に関する。
データや情報のセキュリティには、特定のエンティティによる特定データへのアクセスの制御を伴うことが多い。1組のデータがあるとすると、そのデータの所有者は、そのデータへのアクセスを許可するエンティティや、そのデータへのアクセスをリクエストしているエンティティにそのデータへのアクセス権が付与されるまでの認証手順を指定し得る。1組の特定データへのアクセス権を制御する方法は、各種存在する。たとえば、そのデータは、アクセスコード(パスワードやアクセストークンなど)で保護され得る。正しいアクセスコードを提供できるエンティティにのみ、そのデータへのアクセス権が付与される。別例を挙げると、あるエンティティがそのデータへのアクセスをリクエストするたびに、明示的なリクエストがそのデータの所有者に送られ、所有者がそのエンティティにデータへのアクセス権を付与するかどうかを選択できるようにし得る。
ソーシャル・ネットワーキング・ウェブサイトなどのソーシャル・ネットワーキング・システムを利用すれば、ユーザは、そのシステムとやり取りし、そのシステムを通じて互いに交流することができる。ソーシャル・ネットワーキング・システムは、ユーザに関するレコード(ユーザプロファイルと称されることが多い)を作成および記憶し得る。ユーザプロファイルは、ユーザの人口学的情報と、通信チャネル情報と、個人的興味とを含み得る。ソーシャル・ネットワーキング・システムはまた、或るユーザと他のユーザとの関係に関するレコード(ソーシャルグラフなど)を作成および保存し得るとともに、ユーザ間の社会的交流を促すサービス(ウォールポスト、写真共有、あるいはインスタントメッセージングなど)の提供もし得る。
ソーシャル・ネットワーキング・システムは、ユーザのプロフィール情報、ユーザのソーシャルネットワーク仲間の識別情報、ユーザのニュースフィードなど、ソーシャル・ネットワーキング・システムによって維持される情報にアクセスするアプリケーションを開発者が設定できるようにするアプリケーション・プログラミング・インターフェースを提供し得る。このようなアプリケーションは、ブラウザクライアントがアクセスするサーバによってホスティングされるウェブベースのアプリケーションであり得るか、あるいはクライアント装置にローカルインストールされるネイティブアプリケーション(またはこれらの組み合わせ)であり得る。実際、一部のソーシャル・ネットワーキング・システムでは、ユーザは、いわゆるキャンバスアプリケーションを本人のユーザプロファイルに追加し得る。キャンバスアプリケーションは、ソーシャル・ネットワーキング・システムのウェブページによって提供されるリンクまたは他のコントロールをユーザがクリックすることによってアクセスし得るサードパーティ製アプリケーションであり得る。キャンバスアプリケーションは、サードパーティ製システムによってホスティングされ得る。そしてキャンバスアプリケーションは、ソーシャル・ネットワーキング・システムによって提供されるウェブページのIフレーム(iframe)(または他のセクション)で実行され得る。
米国特許出願公開第2003/0079120号明細書 米国特許出願公開第2003/0093666号明細書 米国特許出願公開第2008/0235782号明細書 米国特許出願公開第2005/0160161号明細書
キャンバスアプリケーションは、サードパーティ製システムによってホスティングされ得る。そしてキャンバスアプリケーションは、ソーシャル・ネットワーキング・システムによって提供されるウェブページのIフレーム(iframe)(または他のセクション)で実行され得る。
本開示は概して、オペレーティングシステム経由でデータにアクセスするためのクライアントアプリケーションの認証に関する。さらに詳しくは、オペレーティングシステムが、ファーストパーティに関連付けられている、あるいはファーストパーティによって管理される1組のデータへのアクセス権を個々のクライアントアプリケーションがリクエストするためのプロキシの働きをする。
特定の実施形態では、第1の演算装置のオペレーティングシステムにより、かつ第1の演算装置上で実行されているクライアントアプリケーションから、第1の演算装置のユーザに関連付けられており、第2の演算装置によって管理されている1組のデータにアクセスするための第1のリクエストを受け取ること、1組のデータにアクセスするための第2のリクエストであって、クライアントアプリケーションを識別するアプリケーション識別情報と、クライアントアプリケーションの開発者を識別する開発者識別情報と、その1組のデータにアクセスするためのアクセス権種別と、を含む第2のリクエストを、第1の演算装置のオペレーティングシステムがクライアントアプリケーションに代わって、第2の演算装置に送ることと、第1の演算装置のオペレーティングシステムにより、かつ第2の演算装置から、第2のリクエストに対するレスポンスを受け取ること、および第2のリクエストに対するレスポンスが、その1組のデータにクライアントアプリケーションにアクセス権を付与する場合に、第2の演算装置でその1組のデータにアクセスするためのクライアントアプリケーションによって使用されるアクセストークンであって、第1の演算装置のオペレーティングシステムにより、かつ第2の演算装置から受け取られるアクセストークンを、第1の演算装置のオペレーティングシステムにより、かつクライアントアプリケーションに転送することである。
本開示のこれらの特徴、態様、および利点、および他の特徴、態様、および利点について、添付の図面を参照しながら以下に詳述する。
オペレーティングシステムが、ファーストパーティに関連付けられている、あるいはファーストパーティによって管理されている1組のデータへのアクセスをクライアントアプリケーションがリクエストするためのプロキシの働きをする処理フローの例。 ユーザ装置の例。 コンピュータシステムの例。
本開示について、添付の図面に示す或る実施形態を参照しながら、以下に詳述する。以下の記述では、本開示についての理解を徹底するために、数々の具体的詳細が記載されている。ただし本開示は、これら具体的詳細の一部または全部がなくても実施され得る。他の事例では、本開示を無用にわかりにくくするのを避けるために、周知の処理ステップお
よび/または構造について詳しく説明していない。加えて、本開示は特定の実施形態を併用しながら説明しているが、この説明内容は、記載された実施形態に本開示を制限することを意図するものではないものと理解されたい。説明内容はむしろ、代替物、変形物、および均等物を網羅することを意図するものであり、これらは、添付の特許請求の範囲によって定められる本開示の趣旨および範囲内に含まれ得る。
場合によっては、或るパーティ(party)によって開発されたアプリケーションは、別のパーティに関連付けられている、所有されている、および/または制御されている情報またはデータにアクセスする必要があり得る。わかりやすくするために、以降、1組の特定データに関して、そのデータと直接関連付けられているパーティ(本人のユーザプロファイルデータに関連付けられているユーザなど)は「ファーストパーティ」と称し、ファーストパーティに関連付けられたデータへのアクセスを希望するパーティを「サードパーティ」と称する。特定の実施形態では、サードパーティによって開発されたアプリケーションが、サードパーティに関連付けられている、あるいはそのサードパーティによって管理されているデータにアクセスする必要がある場合に、サードパーティがファーストパーティに直接データアクセス権をリクエストするのではなく、オペレーティングシステムが、サードパーティのプロキシとしての働きをし、サードパーティに代わってファーストパーティにデータアクセス権をリクエストし得る。
図1は、オペレーティングシステムが、リモートシステムをホストとするファーストパーティに関連付けられている、あるいはリモートシステムをホストとするファーストパーティによって管理されている1組のデータへのアクセスをクライアント装置プラットフォームにインストールされたクライアントアプリケーションがリクエストするためのプロキシの働きをする処理フロー例を表している。図2は、ユーザ装置例を表している。図1および図2は、互いに関連している。
特定の実施形態では、デスクトップコンピュータやモバイル装置(たとえば、ノートコンピュータ、ネットブックコンピュータ、携帯電話、ゲーム機その他)などのユーザ装置210は、オペレーティングシステム213と、いくつかの(a number of)クライアントアプリケーション214とを有し得る。たとえば、ユーザ装置210は、カリフォルニア州クパチーノにあるアップル株式会社が提供しているiPhone(登録商標)であり得る。クライアントアプリケーション214は、ユーザ装置210にインストールされ得る。そしてユーザ装置210上で実行され得る。特定の実施形態において、ユーザ装置210は、記憶媒体(メモリやハードドライブなど)を有し得る。そして記憶媒体の或る部分が、安全であり、不正に加工できないようになっており、安全な情報(デジタル証明書211やアクセストークン212など)を記憶する目的で使用され得る。
特定の実施形態では、ファーストパーティ220に関連付けられたリモートホスト(サーバやデータベースなど)に記憶されたデータ221の管理を担うファーストパーティ220が存在する。特定の実施形態では、ファーストパーティ220は、ソーシャル・ネットワーキング・システムであり得る。そしてユーザ装置210のユーザは、ソーシャル・ネットワーキング・システム220のメンバーであり得る。データ221は、ユーザのプロフィール、ソーシャルネットワーク上の知人と仲間、カレンダーエントリ、興味や趣味、ユーザ向けに生成されたニュースフィード、ユーザによってソーシャル・ネットワーキング・システム220にアップロードされた画像、ユーザが送った、あるいはユーザに送られたメッセージまたは投稿など、ソーシャル・ネットワーキング・システム220によって維持されるユーザのデータであり得る。ユーザデータ221は、ソーシャル・ネットワーキング・システム220に関連付けられたリモートホストに記憶され得る。ソーシャル・ネットワーキング・システム220は、ユーザ本人のデータ221を管理し得る。
特定の実施形態では、ソーシャル・ネットワーキング・システム220は、ユーザ装置210またはリモートホストに記憶されたユーザのデータ(データ221など)の一部または全部にソフトウェアアプリケーション(サードパーティの開発者によって開発されたアプリケーションなど)がアクセスできるようにするアプリケーション・プログラミング・インターフェース(API)を提供し得る。たとえば、クライアントアプリケーション214は、ソーシャル・ネットワーキング・システム220によって提供されるAPIを使用して、ユーザのデータ(たとえば、プロフィール情報、ソーシャルネットワーク上の知人、画像など)の一部にアクセスし得る。同時に、ソーシャル・ネットワーキング・システム220は、(ユーザプライバシーを保護するなどの目的で)認証されたクライアントアプリケーション214だけがユーザデータ221にアクセスできるようにするために必要なステップを実行し得る。たとえば、クライアントアプリケーション214がある特定のユーザデータにアクセスする場合、最初に認証を受けた上でアクセス権が付与される。
特定の実施形態では、ユーザ装置210のオペレーティングシステム213は、クライアントアプリケーション214とファーストパーティのデータマネージャ220(たとえばソーシャル・ネットワーキング・システム)との間での認証セッションを代行する。特定の実施形態では、リモートホストに記憶されているユーザデータ221にクライアントアプリケーション214がアクセスする必要がある場合、ファーストパーティのデータマネージャ220に直接アクセストークンをするのではなく、ステップ110に示すとおり、クライアントアプリケーション214は、オペレーティングシステムシステム213にリクエストを送り得る。たとえば、クライアントアプリケーション214は、オペレーティングシステム213にAPIコールを出して、ファーストパーティのデータマネージャ220(ソーシャル・ネットワーキング・システムなど)とのセッション「getSession(app_id, permissions)」などを開き得る。「permissions(許可)」は、クライアントアプリケーション214が所望するアクセス許可の種類である。たとえば、アクセス許可は、読み出し許可(たとえば、ユーザのプロフィール情報、ユーザに送られたメッセージなどを読み出す)または書き込み許可(たとえば、写真のアップロード、ウォールへの投稿、電子メールの送信、ステータスの更新、イベントまたは場所へのチェックインなどを行う)を含み得る。特定の実施形態において、このリクエストは、リクエスト側クライアントアプリケーション214のアプリケーション識別情報(app_id)を含み得る。任意選択的に、このリクエストは、リクエスト側クライアントアプリケーション214がアクセスする必要のあるセキュアデータ221のどの特定部分にアクセスするか(たとえば、リクエスト側クライアントアプリケーション214がリモートホストに記憶されたデータ221のすべてにアクセスする必要は必ずしもない)を記載している情報も含み得る。
特定の実施形態では、ユーザ装置210に記憶された任意の数のデジタル証明書211が存在し得る。これらのデジタル証明書211は、装置メーカーによってユーザ装置210のユーザごとに構成され得る。そしてこれらのデジタル証明書211は、ユーザ装置210の記憶媒体の、不正に加工できないようになっている安全な部分に記憶され得る。たとえば、ユーザ装置210の各認証済みユーザは、自分のデジタル証明書211を有し得る。特定のユーザがユーザ装置210の上でクライアントアプリケーション214を実行しているときに、クライアントアプリケーション214が特定のユーザのデータにアクセスする必要がある場合には、そのユーザのデジタル証明書211は、認証プロセスと併用され得る(たとえば、ユーザ装置210とファーストパーティ220との間で安全な接続を確立する目的で使用され得る)。特定の実施形態において、このリクエストは、(たとえばオブジェクト指向CまたはCを使用して)関数呼び出しとして実装され得る。この関数は、入力引数としてアプリケーション識別情報(たとえばfunction_name(app_id, permissions))を取り得る。クライアントアプリケーシ
ョン214は、データ221にアクセスする必要がある場合、この関数を呼び出し、アプリケーション識別情報を入力値として「app_id」に渡し、入力値として必要とされるアクセス権の種類(読み出しや書き込みなど)を「permissions」に指定し得る。
特定の実施形態では、ステップ120に示すとおり、オペレーティングシステム213は、リクエスト側クライアントアプリケーション(requesting client
application)214のアプリケーション識別情報に基づき開発者識別情報(DEV ID、「バンドルID」とも称される)を判断し得る。開発者識別情報は、リクエスト側クライアントアプリケーション214の開発者(ソフトウェア会社など)を表す。各クライアントアプリケーション214が初めてユーザ装置210にインストールされると、オペレーティングシステム213は、自身のアプリケーション識別情報と開発者識別情報とを判断し得る。そしてオペレーティングシステム213は、その情報のレコードを(たとえばルックアップテーブルとして)維持し得る。続いてオペレーティングシステム213は、アプリケーション識別情報に基づき、このレコードを使用して開発者識別情報を調べ得る。
特定の実施形態では、ステップ130に示すとおり、オペレーティングシステム213は、リクエスト側クライアントアプリケーション214に代わってファーストパーティのデータマネージャ220にリクエストを送り得る。proxy.Authorize(app_id, developer_id, permissions)などのリクエストは、リクエスト側クライアントアプリケーション214の開発者識別情報(たとえば「ABCD1234」)とアプリケーション識別情報との両方を含み得る。リクエストは、リモートホストが1組のデータ(ユーザ・アカウント・データなど)に関連付け得るユーザ識別情報(あるいは、その他任意の適切なアカウント識別情報)も含み得る。任意で、このリクエストは、クライアントアプリケーション214がアクセスする必要のあるユーザデータ221特定部分(permissions)について記載した情報(たとえば、クライアントアプリケーション214から受け取った初回リクエストからの情報)も含み得る。特定の実施形態では、オペレーティングシステム213は、ファーストパーティのデータマネージャ220との安全なネットワーク接続(SSL接続など)を確立し得る、そしてこの安全な接続を経由してリクエストを送り得る。SSL接続は、ユーザ装置210の記憶媒体の安全な部分に記憶されたデジタル証明書211を使用して確立され得る。たとえば、ファーストパーティのデータマネージャ220におけるSSL実装は、有効なデジタル証明書を提示することをクライアントに要求するSSLVerifyclientマンデートで構成され得る。SSL接続を有効なデジタル証明書に制限することにより、装置および/またはユーザの識別情報にいくらかの信頼が得られる。この点が特に該当するのは、デジタル証明書がユーザ装置の不正加工防止対策済み記憶装置(tamper−resistant storage)に記憶されており、場合によっては、さらに装置メーカーによってインストールされている場合である。
特定の実施形態では、ファーストパーティのデータマネージャ220は、リクエストを受け取ると(かつユーザ装置レベルのデジタル証明書が妥当であり、SSL接続が確立されたと想定すると)、ステップ140に示すとおり、自身のアプリケーション識別情報と開発者識別情報とに基づきリクエスト側クライアントアプリケーション214を認証し得る。たとえば、ファーストパーティのデータマネージャ220は、リクエストに対応するユーザ識別情報に関連付けられたユーザデータ221(および/またはSSL接続に関連付けられたクライアント側デジタル証明書)へのアクセス権を有するすべてのクライアントアプリケーションのレコードを維持し得る。リクエスト側クライアントアプリケーション214が(たとえば自身のアプリケーション識別情報と開発者識別情報に基づき)その中の1つであれば、ユーザデータ221へのアクセス権が付与される。そうでなければ、
ユーザデータ221へのアクセスは、拒絶される。
なお、開発者識別情報とアプリケーション識別情報との組み合わせは、各クライアントアプリケーション214を一意に識別する。ただし、1組のクライアントアプリケーションを一意に識別する他の手段が存在する。たとえば、各クライアントアプリケーション214に、グローバルに一意の識別情報が割り当てられ得る。
リクエスト側クライアントアプリケーション(requesting client application)214にユーザデータ221へのアクセスが許可されている場合には、ステップ150に示すとおり、ファーストパーティのデータマネージャ220は、オペレーティングシステム213にアクセストークンを送り得る。一実装形態において、このアクセストークンは、セッション鍵とセッション秘密とを備え得る。セッション秘密は、特定のセッションのハッシュ値であり得る。オペレーティングシステム213はその後、リクエスト側クライアントアプリケーション214にアクセストークンを転送して、リクエスト側クライアントアプリケーション214がリモートホスト220でユーザに関連付けられたデータにアクセストークンを使用してアクセスできるようにし得る。特定の実施形態において、このアクセストークンは、期限を有し得る。たとえば、クライアントアプリケーション214は、アクセストークンを取得すると、期限が切れるまで、そのアクセストークンを使用して現在のセッション期間または特定の期間(たとえば24時間)にわたってユーザデータ221にアクセスし得る。その後、クライアントアプリケーション214は、ユーザデータ221にアクセスするために別のアクセストークンをリクエストする必要がある。
特定の実施形態において、オペレーティングシステム213またはリクエスト側クライアントアプリケーション214は、ファーストパーティ220から有効なアクセストークン212を受け取ると、ユーザ装置210(たとえばユーザ装置210の記憶媒体の安全な部分)にアクセストークン212を記憶し得る。アクセストークン212の期限が切れるまで、リクエスト側クライアントアプリケーション214は、そのアクセストークン212を使用してユーザデータ221に繰り返しアクセスする。同時に、オペレーティングシステム213は、リクエスト側クライアントアプリケーション214だけが、リクエスト側クライアントアプリケーション213用に取得されたこの特定のアクセストークン212を使用できるようにし、ユーザ装置210にインストールされた他のクライアントアプリケーション214がこの特定のアクセストークン212を使用できないようにし得る。
一方、リクエスト側クライアントアプリケーション214がユーザデータ221へのアクセスを拒否された場合には、ファーストパーティのデータマネージャ220は、オペレーティングシステム213にアクセストークンを送らない。代わりにファーストパーティのデータマネージャ220は、既定の信号で応答し、ユーザデータ221へのアクセスリクエストが否定されたことをオペレーティングシステム213がリクエスト側クライアントアプリケーション214に通知できるようにし得る。
特定の実施形態では、ユーザ装置210は、ソーシャル・ネットワーキング・ウェブサイトのメンバーであるユーザに関連付けられ得る。一般にソーシャルネットワークとは、友情、血縁、共通利害、金銭交換(financial exchange)、嫌悪(dislike)、あるいは信仰、知識、名声の関係など、1以上の種類の相互依存または関係によって結び付いた個人や組織などのエンティティで構成される社会構造のことである。ソーシャルネットワークは近年、インターネットを活用するようになってきた。インターネット上には、ソーシャル・ネットワーキング・ウェブサイトという形態のソーシャル・ネットワーキング・システムが存在する。このようなソーシャル・ネットワーキング
・ウェブサイトを利用して、一般にウェブサイトユーザと称されるメンバーが、各種の社交活動を行うことができる。たとえば、フェイスブック社がwww.facebook.comで運営するソーシャル・ネットワーキング・ウェブサイトでは、ユーザは、電子メール、インスタントメッセージ、あるいはブログ投稿を介して友人と通信したり、社交イベントを企画したり、写真を共有したり、友人または面白い出来事のニュースを受け取ったり、ゲームをしたりすることができる。
データ221は、ソーシャル・ネットワーキング・ウェブサイトに表示されるユーザの情報(たとえば、プロフィール、背景情報、ソーシャルネットワーク上の知人、ユーザによってソーシャル・ネットワーキング・ウェブサイトにアップロードされた写真、メッセージと投稿、社交行事予定とイベント、チェックイン、最新情報、通知、ニュースフィードなど)を含み得る。この場合、ソーシャル・ネットワーキング・ウェブサイトは、クライアントアプリケーション214によってユーザのソーシャル情報または他の情報へのアクセスを制御するファーストパーティのデータマネージャ220であり得る。場合によっては、ユーザは、特定のクライアントアプリケーション214を認識あるいは使用したときなどに、どのクライアントアプリケーション214が(たとえば、ユーザのアカウントを通じて提供されるセットアップオプションを使用して)ユーザのどの情報にアクセスできるかをソーシャル・ネットワーキング・ウェブサイトに指定し得る。こうして特定のクライアントアプリケーション214が必要とする情報を把握する。また、クライアントアプリケーション214は、そのユーザにアクセス許可をリクエストするために、オペレーティングシステムを通過し得る。オペレーティングシステムは、特定のクライアントアプリケーション214に代わってそのユーザへの情報リクエストを表示し得る。そして、ユーザがそのクライアントアプリケーション214に情報アクセス権を付与すると、オペレーティングシステムは、そのユーザの認証をソーシャル・ネットワーキング・ウェブサイト送り得る。その後、クライアントアプリケーション214がユーザの情報(たとえばデータ221)にアクセスする必要が生じるたびに、オペレーティングシステム213は、ユーザに問い合わせて煩わせるのではなく、ソーシャル・ネットワーキング・ウェブサイトをホスティングしているソーシャル・ネットワーキング・システム(すなわちファーストパーティのデータマネージャ220)にリクエストを送り得る。ソーシャル・ネットワーキング・システムは、ユーザによって以前に規定された、ユーザの情報へのアクセスに関する仕様に従ってクライアントアプリケーション214を認証し得る。一実装形態では、ユーザが、クライアントアプリケーションのアクセス許可(読み出しや書き込みなど)を指定し得る。そして、ユーザのアカウントにおける許可をソーシャル・ネットワーキング・ウェブサイトと共に(たとえば構成セッティングの一部として)記憶する。その後、ソーシャル・ネットワーキング・ウェブサイト(すなわちファーストパーティのデータマネージャ)は、特定のクライアントアプリケーションが、ソーシャル・ネットワーキング・ウェブサイトと共に記憶されたユーザのデータへのアクセス権を有するかどうかを判断し、有する場合には、ユーザのアカウントに記憶された構成設定に基づき、そのクライアントアプリケーションがどのアクセス許可を有するかを判断し得る。当然のことながら、ユーザは、これらの設定をいつでも修正することができる。
本発明の実装形態は、ユーザがユーザ装置210(スマーフォトンなど)を使用してリモートホスト220にいったんログインしたら、ログアウトすることを明示的に選択するまで、そのユーザ装置210へのログイン状態を保つように構成されうる。たとえば、ユーザは、ユーザ装置210にインストールされたクライアントアプリケーションを使用してリモートホスト220にアクセスし、リモートホスト220によって維持されたユーザアカウントに明示的にログインし得る。リモートホスト220にログインすると、ユーザ装置220にインストールされたクライアントアプリケーション214は、ユーザにアカウントに明示的にログインさせたり、別の方法でユーザ名とパスワードとを提供させたりすることなく、リモートホスト220によって維持されている、あるいはリモートホスト
220を通じて利用できる、そのユーザに関連付けられたデータに即座にアクセスし得る。たとえば、特定のユーザを識別するプロキシ認証リクエストを処理するとき、リモートホスト220は、ユーザのアカウント情報にアクセスして、そのユーザが特定のユーザ装置210に依然としてログインしているかどうかを判断し得る。たとえば、ログインステータス情報は、ユーザ装置のクライアント側デジタル証明書に関連付けることができる。リモートホスト220は、この情報にアクセスして、ユーザがユーザ装置210に依然としてログインしているか否か、プロキシ認証リクエストの認証の一部として判断し得る。
加えて、ユーザは、クライアントアプリケーションを自身のアカウントに追加したり、自身のアカウントから削除したりすることによって、どのクライアントアプリケーション214は、自身のデータにアクセスし得るかを設定し得る。或る実装形態では、このアプリケーションのリストは、所与のアプリケーションのモバイル版およびウェブ版に対応し得る。たとえば、ユーザがデスクトップPCを使用してリモートホスト220にアクセスし、特定のウェブベースのキャンバスアプリケーションを「インストール」した後に、同じアプリケーションのモバイル版をユーザ装置210にインストールすると仮定する。そのアプリケーションのモバイル版のデータアクセス権は、キャンバスアプリケーションのユーザのインストールに基づき許可され得る。
特定の実施形態は、1以上のコンピュータシステム上で実装され得る。図3は、例示的なコンピュータシステム300を表している。特定の実施形態では、1以上のコンピュータシステム300は、本明細書に記載または図示された1以上の方法のうち1以上のステップを実行する。特定の実施形態では、1以上のコンピュータシステム300は、本明細書に記載または図示された機能を提供する。特定の実施形態では、1以上のコンピュータシステム300上で実行されているソフトウェアが、本明細書に記載または図示された1以上の方法のうち1以上のステップを実行するか、本明細書に記載または図示された機能を提供する。特定の実施形態は、1以上のコンピュータシステム300の1以上の部分を含む。
本開示は、あらゆる適切な数のコンピュータシステム300を想定している。本開示は、任意の適切な形態をとるコンピュータシステム300を想定している。非制限的な例として、コンピュータシステム300は、組み込みコンピュータシステム、システムオンチップ(SOC)、シングルボード・コンピュータ・システム(SBC)(たとえばコンピュータオンモジュール(COM)やシステムオンモジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップまたはノート型コンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステム網、携帯電話、携帯情報端末(PDA)、サーバあるいはこれらの2以上の組み合わせであり得る。コンピュータシステム300は適宜、1以上のコンピュータシステム300を含み得るか、一元的または分散型であり得るか、複数箇所にまたがり得るか、クラウドに置かれて1以上のネットワークに1以上のクラウド構成要素を含み得る。1以上のコンピュータシステム300は、適宜本明細書に記載または図示された1以上の方法のうち1以上のステップを、実質的な空間または時間的制限なしで実行し得る。非制限的な例として、1以上のコンピュータシステム300は、本明細書に記載または図示された1以上の方法のうち1以上のステップを、リアルタイムまたはバッチモードで実行し得る。1以上のコンピュータシステム300は、本明細書に記載または図示された1以上の方法のうち1以上のステップを、さまざまな時期あるいはさまざまな箇所で実行し得る。
特定の実施形態では、コンピュータシステム300は、プロセッサ302と、メモリ304と、記憶装置306と、入出力(I/O)インターフェース308と、通信インターフェース310と、バス312とを備える。本開示は、特定数の特定の構成要素を特定の配置構成で有する特定のコンピュータシステムを記載および図示しているが、本開示は、
あらゆる適切な数のあらゆる適切な構成要素をあらゆる適切な配置構成で有するあらゆる適切なコンピュータシステムを想定している。
特定の実施形態では、プロセッサ302は、コンピュータプログラムを構成する命令など、命令を実行するためのハードウェアを備える。非制限的な例として、命令を実行するために、プロセッサ302は、内部レジスタ、内部キャッシュ、メモリ304、または記憶装置306から命令を取得(またはフェッチ)し、それらを復号して実行した後、内部レジスタ、内部キャッシュ、メモリ304、または記憶装置306に1以上の結果を書き込む。特定の実施形態では、プロセッサ302は、データ、命令、またはアドレスを格納する1以上の内部キャッシュを備え得る。本開示は、あらゆる適切な数の任意の適切な内部キャッシュを備えるプロセッサ302を適宜想定している。非制限的な例として、プロセッサ302は、1以上の命令キャッシュと、1以上のデータキャッシュと、1以上の変換索引バッファ(TLB、translation lookaside buffer)とを備え得る。命令キャッシュ内の命令は、メモリ304または記憶装置306内の命令のコピーであり得る。命令キャッシュは、プロセッサ302によってそれらの命令の取得を高速化し得る。データキャッシュ内のデータは、プロセッサ302で実行中の命令が処理するメモリ304または記憶装置306内のデータ、プロセッサ302で実行中の以降の命令がアクセスするため、あるいはメモリ304または記憶装置306に書き込むためにプロセッサ302で実行された前回の命令の結果、または他の適切なデータのコピーであり得る。データキャッシュは、プロセッサ302による読み出し操作または書き込み操作を高速化し得る。TLBは、プロセッサ302の仮想アドレス変換を高速化し得る。特定の実施形態では、プロセッサ302は、データ、命令、またはアドレスを格納する1以上の内部レジスタを備え得る。本開示は、あらゆる適切な数の任意の適切な内部レジスタを備えるプロセッサ302を適宜想定している。プロセッサ302は、1以上の算数論理ユニット(ALU、arithmetic logic unit)を備え得るか、マルチコアプロセッサであり得るか、あるいは1以上のプロセッサ302を適宜備え得る。本開示は、特定のプロセッサを記載および図示しているが、あらゆる適切なプロセッサを想定している。
特定の実施形態では、メモリ304は、プロセッサ302が実行する命令またはプロセッサ302が処理するデータを記憶するためのメインメモリを備える。非制限的な例として、コンピュータシステム300は、記憶装置306または別のソース(たとえば別のコンピュータシステム300)からメモリ304に命令をロードし得る。その後プロセッサ302は、メモリ304から内部レジスタまたは内部キャッシュにその命令をロードし得る。その命令を実行するために、プロセッサ302は、内部レジスタまたは内部キャッシュから命令を取得し、復号し得る。プロセッサ302は、命令の実行中または実行後に、(中間または最終結果であり得る)1以上の結果を内部レジスタまたは内部キャッシュに書き込み得る。その後プロセッサ302は、それらの結果のうち1またはそれ以上をメモリ304に書き込み得る。特定の実施形態では、プロセッサ302は、1以上の内部レジスタまたは内部キャッシュ、あるいはメモリ304内の命令だけを実行し(記憶装置306または他の場所にある命令は実行しない)、1以上の内部レジスタまたは内部キャッシュ、あるいはメモリ304内のデータだけを処理する(記憶装置306または他の場所にあるデータは処理実行しない)。(アドレスバスとデータバスとを各々含み得る)1つ以上のメモリバスは、プロセッサ302をメモリ304に連結し得る。バス312は、下記のとおり、1以上のメモリバスを含み得る。特定の実施形態では、1以上のメモリ管理ユニット(MMU)は、プロセッサ302とメモリ304との間に存在し、プロセッサ302によってリクエストされたメモリ304へのアクセスを促す。特定の実施形態では、メモリ304は、ランダム・アクセス・メモリ(RAM)を含む。このRAMは適宜、揮発性メモリであり得る。このRAMは適宜、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。さらに、このRAMは適宜、シングルポートまた
はマルチポートRAMでもあり得る。本開示は、あらゆる適切なRAMを想定している。メモリ304は、1以上のメモリ304を適宜含み得る。本開示は特定のメモリを記載および図示しているが、本開示はあらゆる適切なメモリを想定している。
特定の実施形態では、記憶装置306は、データまたは命令を記憶するための大容量記憶装置を含む。非制限的な例として、記憶装置306は、HDD、フロッピー(登録商標)・ディスク・ドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)・ドライブ、あるいはこれらのうち2以上の組み合わせを含み得る。記憶装置306は、取り外し可能または不能な(あるいは固定された)媒体を適宜含み得る。記憶装置306は適宜、コンピュータシステム300に対して内部的または外部的であり得る。特定の実施形態では、記憶装置306は、不揮発性のソリッドステートメモリである。特定の実施形態では、記憶装置306は、読み出し専用メモリ(ROM)を含む。このROMは適宜、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうち2以上の組み合わせであり得る。本開示は、あらゆる適切な形態をとる大容量記憶装置306を想定している。記憶装置306は、プロセッサ302と記憶装置306との間での通信を促す1以上の記憶装置制御ユニットを適宜備え得る。記憶装置306は、1以上の記憶装置306を適宜含み得る。本開示は特定の記憶装置を記載および図示しているが、あらゆる適切な記憶装置を想定している。
特定の実施形態では、I/Oインターフェース308は、コンピュータシステム300と1以上のI/O装置との間での通信を仲介するための1以上のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を備える。コンピュータシステム300は、これらのI/O装置のうち1もしくはそれ以上を適宜備え得る。これらのI/O装置のうち1またはそれ以上が、人とコンピュータシステム300との間での通信を可能にし得る。非制限的な例として、I/O装置は、キーボード、キーパッド、マイク、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/O装置、またはこれらのうち2以上の組み合わせを含み得る。I/O装置は、1以上のセンサを含み得る。本開示は、あらゆる適切なI/O装置と、その装置用のあらゆる適切なI/Oインターフェース308とを想定している。I/Oインターフェース308は、プロセッサ302がこれらのI/O装置のうち1もしくはそれ以上を駆動できるようにする1以上の装置またはソフトウェアドライバを適宜備え得る。I/Oインターフェース308は、1以上のI/Oインターフェース308を適宜含み得る。本開示は、特定のI/Oインターフェースを記載および図示しているが、あらゆる適切なI/Oインターフェースを想定している。
特定の実施形態では、通信インターフェース310は、コンピュータシステム300と1以上の他のコンピュータシステム300または1以上のネットワークとの間での通信(たとえばパケットベースの通信など)を仲介するための1以上のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を備える。非制限的な例として、通信インターフェース310は、イーサネット(登録商標)もしくは他の有線ベースのネットワークと通信するためのネットワーク・インターフェース・コントローラ(NIC)もしくはネットワークアダプタ、または、WI−FIネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)もしくは無線アダプタを備え得る。本開示は、あらゆる適切なネットワークと、そのネットワーク用のあらゆる適切な通信インターフェース310とを想定している。非制限的な例として、コンピュータシステム300は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1以上の部分、あるい
はこれらのうち2以上の組み合わせと通信し得る。これらのネットワークのうち1以上のうちの1以上の部分は、有線または無線であり得る。たとえば、コンピュータシステム300は、無線PAN(WPAN)(たとえばブルートゥースWPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラー方式電話ネットワーク(たとえばモバイル通信(GSM(登録商標))ネットワーク用のグローバルシステムなど)、もしくは他の適切な無線ネットワーク、またはこれらのうち2以上の組み合わせと通信し得る。コンピュータシステム300は、これらのネットワークのいずれをも仲介するあらゆる適切な通信インターフェース310を適宜備え得る。通信インターフェース310は、1以上の通信インターフェース310を適宜含み得る。本開示は、特定の通信インターフェースを記載および図示しているが、あらゆる適切な通信インターフェースを想定している。特定の実施形態では、バス312が、互いにコンピュータシステム300の構成要素を連結するハードウェア、ソフトウェア、またはその両方を含む。非制限的な例として、バス312は、Accelerated Graphics Port(AGP)または他のグラフィックスバス、Enhanced Industry Standard Architecture(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、Industry Standard Architecture(ISA)バス、INFINIBAND相互接続、Low−Pin−Count(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、Peripheral Component Interconnect(PCI)バス、PCI Express(PCI−X)バス、シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)バス、Video Electronics Standards Association Local(VLB)バス、もしくは別の適切なバス、またはこれらのうち2以上の組み合わせを含み得る。バス312は、1以上のバス312を適宜含み得る。本開示は、特定のバスを記載および図示しているが、あらゆる適切なバスまたは相互接続を想定している。
本明細書において、コンピュータ可読記憶媒体について言及した場合、構造を有する1以上の非一時的な有体コンピュータ可読記憶媒体を包含する。非制限的な例として、コンピュータ可読記憶媒体は、半導体ベースまたは他の集積回路(IC)(たとえば、フィールド・プログラマブル・ゲート・アレイ(FPGA)や特定用途向けIC(ASIC)など)、ハードディスク、HDD、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)ディスク、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュア・デジタル・カード、セキュア・デジタル・ドライブ、もしくは別の適切なコンピュータ可読記憶媒体、またはこれらのうち2以上の組み合わせを適宜含み得る。本明細書において、コンピュータ可読記憶媒体について言及した場合、米国特許法第101条下で特許保護の対象ではないあらゆる媒体を除外する。本明細書において、コンピュータ可読記憶媒体について言及した場合、信号伝達の一時的な形態(伝播する電気信号または電磁信号自体など)を、米国特許法第101条下で特許保護の対象でない程度まで除外する。非一時的なコンピュータ可読記憶媒体は適宜、揮発性、不揮発性、または揮発性および不揮発性の組み合わせであり得る。
本開示は、あらゆる適切な記憶装置を実装している1以上のコンピュータ可読記憶媒体を想定している。特定の実施形態では、コンピュータ可読記憶媒体は、プロセッサ302の1以上の部分(たとえば1以上の内部レジスタまたはキャッシュなど)、メモリ304の1以上の部分、記憶装置306の1以上の部分、またはこれらの組み合わせを適宜実装する。特定の実施形態では、コンピュータ可読記憶媒体は、RAMまたはROMを実装する。特定の実施形態では、コンピュータ可読記憶媒体が揮発性または永続メモリを実装する。特定の実施形態では、1以上のコンピュータ記憶媒体は、ソフトウェアを包含してい
る。本明細書において、ソフトウェアについての言及は、1以上のアプリケーション、バイトコード、1以上のコンピュータプログラム、1以上の実行可能プログラム、1以上の命令、論理、マシンコード、1以上のスクリプトまたはソースコードを包含し得る。そしてその逆もまた適宜該当し得る。特定の実施形態では、ソフトウェアが1以上のアプリケーション・プログラミング・インターフェース(API)を含む。本開示は、あらゆる適切なプログラミング言語でまたはプログラミング言語の組み合わせで、記述またはさもなければ表されたあらゆる適切なソフトウェアを想定している。特定の実施形態では、ソフトウェアは、ソースコードまたはオブジェクトコードとして表される。特定の実施形態では、ソフトウェアは、C、Perl、またはそれらの適切な拡張言語など、より高水準のプログラミング言語で表される。特定の実施形態では、ソフトウェアは、アセンブリ言語(または機械語)など、より低水準のプログラミング言語で表される。特定の実施形態では、ソフトウェアは、JAVA(登録商標)、C、またはC++で表される。特定の実施形態では、ソフトウェアは、ハイパー・テキスト・マークアップ言語(HTML)、拡張マークアップ言語(XML)、または他の適切なマークアップ言語で表される。
本明細書において、「または/あるいは」は、明示されていない限り、あるいは文脈によって示されていない限り、包含的であり独占的でない。したがって、本明細書において、「AまたはB」は、明示されていない限り、あるいは文脈によって示されていない限り、「A、B、またはその両方」を意味する。さらに、「と/および/かつ」は、明示されていない限り、あるいは文脈によって示されていない限り、結合的であり、かつ複数である。したがって、本明細書において、「AおよびB」は、明示されていない限り、あるいは文脈によって示されていない限り、「結合的かつ複数であるAおよびB」を意味する。
本開示は、実施形態例に対する変更、代替、変形、改造、改変について、当業者であれば理解できるすべてを本明細書に包含する。同様に、添付の請求項も、実施形態例に対する変更、代用、変形、改造、改変について、当業者であれば理解できるすべてを本明細書に適宜包含する。さらに、添付の特許請求の範囲の中で、特定の機能を実行するように適合させた、配置された、実行できる、実行可能にした、動作可能な、あるいは動作する機器またはシステム、あるいは機器またはシステムの構成要素について言及した場合、その機器、システム、または構成要素がそのように適合させてあるか、配置されているか、実行可能であるか、実行可能にしてあるか、動作可能であるか、あるいは動作する限り、それら自身あるいはそれらのその特定機能が起動しているか、オンになっているか、あるいはロック解除されているかどうかに関係なく、その機器、システム、または構成要素を包含する。

Claims (15)

  1. 方法であって、第1の演算装置によって、
    前記第1の演算装置のオペレーティングシステムが、前記第1の演算装置上で実行されているクライアントアプリケーションから、前記第1の演算装置のユーザに関連付けられている1組のデータの第1の部分にアクセスするための第1のリクエストを受け取る工程であって、前記1組のデータは、第2の演算装置によって管理されている、工程と;
    前記1組のデータの前記第1の部分にアクセスするための第2のリクエストを、前記第1の演算装置の前記オペレーティングシステムが前記クライアントアプリケーションに代わって前記第2の演算装置に送る、工程と;
    前記第1の演算装置の前記オペレーティングシステムが、前記第2の演算装置から、前記1組のデータの前記第1の部分にアクセスするための前記第2のリクエストに対するレスポンスを受け取る工程であって、前記第2のリクエストに対する前記レスポンスは前記第2の演算装置において前記1組のデータにアクセスするためのアクセストークンを含む、工程と;
    前記1組のデータの第2の部分にアクセスするための第1のリクエストを受け取ることに応じて、前記オペレーティングシステムが、第3のリクエストのソースを認証する工程であって、前記ソースが前記クライアントアプリケーションである場合、前記アクセストークンを用いて前記1組のデータの前記第2の部分にアクセスするための第2のリクエストを送り、前記ソースが別のソフトウェアアプリケーションである場合、前記アクセストークンと前記1組のデータの前記第2の部分とに対するアクセスを拒否する、工程と、を備える方法。
  2. 前記第2の演算装置は、ソーシャル・ネットワーキング・システムに関連付けられ、
    前記第1の演算装置のユーザは、ソーシャル・ネットワーキング・システムのメンバーであり、
    前記1組のデータは、ソーシャル・ネットワーキング・システムに記憶された前記ユーザのデータである、
    請求項1に記載の方法。
  3. 前記第1のリクエストは、前記クライアントアプリケーションのアプリケーション識別
    情報と、前記1組のデータにアクセスするためのアクセス権種別とを含み、
    前記方法はさらに、前記第1の演算装置の前記オペレーティングシステムが、前記クライアントアプリケーションの前記アプリケーション識別情報に基づき前記クライアントアプリケーションの開発者の開発者識別情報を判断する工程を含む、
    請求項1または2に記載の方法。
  4. 前記方法はさらに、前記クライアントアプリケーションが前記1組のデータにアクセスすることを前記第2のリクエストへの前記レスポンスが拒否した場合に、前記第1の演算装置の前記オペレーティングシステムが、前記クライアントアプリケーションに対し、前記1組のデータにアクセスするためのリクエストが拒否されたことを通知する工程を含む、
    請求項1乃至3のいずれか一項に記載の方法。
  5. 前記第2のリクエストはさらに、前記第1の演算装置の前記ユーザを識別するユーザ識別情報を含む、
    請求項1乃至4のいずれか一項に記載の方法。
  6. 前記方法はさらに、前記第2のリクエストが送られる際に使用される安全な接続を前記第2の演算装置と確立する工程を含む、
    請求項1乃至5のいずれか一項に記載の方法。
  7. 前記第2のリクエストへの前記レスポンスがクライアントアプリケーションに前記1組のデータへのアクセス権を付与する場合に、前記レスポンスは、前記アクセストークンを含み、
    前記方法はさらに、前記第1の演算装置に前記アクセストークンを記憶する工程を含む、
    請求項1乃至6のいずれか一項に記載の方法。
  8. 1以上のプロセッサと、前記1以上のプロセッサによって実行可能な命令を含むメモリとを備える第1のシステムであって、前記1以上のプロセッサは前記メモリに連結され、前記命令を実行するように構成されており、
    前記1以上のプロセッサは、前記命令を実行するとき、
    第1の演算装置上で実行されているクライアントアプリケーションから、前記第1の演算装置のユーザに関連付けられている1組のデータの第1の部分にアクセスするための第1のリクエストを受け取る工程であって、前記1組のデータは、第2の演算装置によって管理されている、工程と;
    前記1組のデータの前記第1の部分にアクセスするための第2のリクエストを、前記クライアントアプリケーションに代わって前記第2の演算装置に送る、工程と;
    前記第2の演算装置から、前記1組のデータの前記第1の部分にアクセスするための前記第2のリクエストに対するレスポンスを受け取る工程であって、前記第2のリクエストに対する前記レスポンスは前記第2の演算装置において前記1組のデータにアクセスするためのアクセストークンを含む、工程と;
    前記1組のデータの第2の部分にアクセスするための第1のリクエストを受け取ることに応じて、第3のリクエストのソースを認証する工程であって、前記ソースが前記クライアントアプリケーションである場合、前記アクセストークンを用いて前記1組のデータの前記第2の部分にアクセスするための第2のリクエストを送り、前記ソースが別のソフトウェアアプリケーションである場合、前記アクセストークンと前記1組のデータの前記第2の部分とに対するアクセスを拒否する、工程と、を行う、第1のシステム。
  9. 第2のシステムは、ソーシャル・ネットワーキング・システムに関連付けられ、
    前記第1のシステムのユーザは、前記ソーシャル・ネットワーキング・システムのメンバーであり、
    前記1組のデータは、前記ソーシャル・ネットワーキング・システムと一緒に記憶された前記ユーザのデータである、
    請求項8に記載の第1のシステム。
  10. 前記第1のリクエストは、前記クライアントアプリケーションのアプリケーション識別情報と、前記1組のデータにアクセスするためのアクセス権種別とを含み、
    前記命令を実行するとき、前記1以上のプロセッサはさらに、前記第1のシステムのオペレーティングシステムによって、前記クライアントアプリケーションの前記アプリケーション識別情報に基づき前記クライアントアプリケーションの開発者の開発者識別情報を判断するように構成されている、
    請求項8または9に記載の第1のシステム。
  11. 前記命令を実行するとき、前記1以上のプロセッサはさらに、
    前記クライアントアプリケーションが前記1組のデータにアクセスすることを前記第2のリクエストへの前記レスポンスが拒否した場合に、前記第1の演算装置のオペレーティングシステムによって、前記クライアントアプリケーションに対し、前記1組のデータにアクセスするためのリクエストが拒否されたことを通知するように構成されている、
    請求項8乃至10のいずれか一項に記載の第1のシステム。
  12. 前記第2のリクエストはさらに、前記第1のシステムの前記ユーザを識別するユーザ識別情報を含む、
    請求項8乃至11のいずれか一項に記載の第1のシステム。
  13. 前記命令を実行するとき、前記1以上のプロセッサはさらに、前記第2のリクエストが送られる際に使用される安全な接続を第2のシステムと確立するように構成されている、
    請求項8乃至12のいずれか一項に記載の第1のシステム。
  14. 前記第2のリクエストへの前記レスポンスがクライアントアプリケーションに前記1組のデータへのアクセス権を付与する場合に、前記レスポンスは、前記アクセストークンを備え、
    前記命令を実行するとき、前記1以上のプロセッサはさらに、前記第1のシステム上で前記アクセストークンを記憶するように構成されている、
    請求項8乃至13のいずれか一項に記載の第1のシステム。
  15. ソフトウェアを組み込んでいる1以上のコンピュータが読取り可能な記録媒体であって、
    前記ソフトウェアは、第1のコンピュータシステムによって実行されたときに、
    第1の演算装置上で実行されているクライアントアプリケーションから、前記第1の演算装置のユーザに関連付けられている1組のデータの第1の部分にアクセスするための第1のリクエストを受け取る工程であって、前記1組のデータは、第2の演算装置によって管理されている、工程と;
    前記1組のデータの前記第1の部分にアクセスするための第2のリクエストを、前記クライアントアプリケーションに代わって前記第2の演算装置に送る、工程と;
    前記第2の演算装置から、前記1組のデータの前記第1の部分にアクセスするための前記第2のリクエストに対するレスポンスを受け取る工程であって、前記第2のリクエストに対する前記レスポンスは前記第2の演算装置において前記1組のデータにアクセスするためのアクセストークンを含む、工程と;
    前記1組のデータの第2の部分にアクセスするための第1のリクエストを受け取ること
    に応じて、第3のリクエストのソースを認証する工程であって、前記ソースが前記クライアントアプリケーションである場合、前記アクセストークンを用いて前記1組のデータの前記第2の部分にアクセスするための第2のリクエストを送り、前記ソースが別のソフトウェアアプリケーションである場合、前記アクセストークンと前記1組のデータの前記第2の部分とに対するアクセスを拒否する、工程と、を行うように構成されている、
    1以上のコンピュータが読取り可能な記録媒体。
JP2016170774A 2011-08-31 2016-09-01 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体 Expired - Fee Related JP6224792B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/222,155 US9635028B2 (en) 2011-08-31 2011-08-31 Proxy authentication
US13/222,155 2011-08-31

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014528401A Division JP6001666B2 (ja) 2011-08-31 2012-07-31 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017195076A Division JP6615166B2 (ja) 2011-08-31 2017-10-05 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2017021825A JP2017021825A (ja) 2017-01-26
JP6224792B2 true JP6224792B2 (ja) 2017-11-01

Family

ID=47745288

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014528401A Expired - Fee Related JP6001666B2 (ja) 2011-08-31 2012-07-31 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体
JP2016170774A Expired - Fee Related JP6224792B2 (ja) 2011-08-31 2016-09-01 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体
JP2017195076A Active JP6615166B2 (ja) 2011-08-31 2017-10-05 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014528401A Expired - Fee Related JP6001666B2 (ja) 2011-08-31 2012-07-31 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017195076A Active JP6615166B2 (ja) 2011-08-31 2017-10-05 プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体

Country Status (5)

Country Link
US (2) US9635028B2 (ja)
JP (3) JP6001666B2 (ja)
BR (1) BR112014004767A2 (ja)
CA (1) CA2846575C (ja)
WO (1) WO2013032615A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943551B2 (en) 2008-08-14 2015-01-27 Microsoft Corporation Cloud-based device information storage
US9081938B1 (en) * 2011-02-07 2015-07-14 Symantec Corporation Systems and methods for determining whether profiles associated with social-networking websites have been compromised
US9053141B2 (en) * 2011-10-31 2015-06-09 International Business Machines Corporation Serialization of access to data in multi-mainframe computing environments
US8689310B2 (en) * 2011-12-29 2014-04-01 Ebay Inc. Applications login using a mechanism relating sub-tokens to the quality of a master token
US10049168B2 (en) * 2012-01-31 2018-08-14 Openwave Mobility, Inc. Systems and methods for modifying webpage data
US9154568B2 (en) * 2012-03-20 2015-10-06 Facebook, Inc. Proxy bypass login for applications on mobile devices
US9672574B2 (en) 2012-03-20 2017-06-06 Facebook, Inc. Bypass login for applications on mobile devices
US9189819B2 (en) * 2012-04-20 2015-11-17 Facebook, Inc. Personalizing an application with content from a social networking system
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
CN103546358B (zh) * 2012-07-09 2016-05-04 腾讯科技(深圳)有限公司 面向第三方应用的即时通讯方法及系统
JP6025480B2 (ja) * 2012-09-27 2016-11-16 キヤノン株式会社 認可サーバーシステム、権限移譲システム、その制御方法、およびプログラム
US11017432B2 (en) * 2013-03-15 2021-05-25 Comcast Cable Communications, Llc Market exchange for user data and rewards
KR102052651B1 (ko) * 2013-04-30 2019-12-05 삼성전자주식회사 데이터 접근 제어 방법 및 그 전자 장치
US9405932B2 (en) * 2013-05-24 2016-08-02 Microsoft Technology Licensing, Llc User centric data maintenance
US9722908B2 (en) 2013-10-17 2017-08-01 International Business Machines Corporation Problem determination in a hybrid environment
US9602949B2 (en) * 2013-12-11 2017-03-21 Capital One Financial Corporation Systems and methods for populating online applications using third party platforms
US9336358B2 (en) * 2014-03-25 2016-05-10 Google Inc. Granting permission in association with an application
US20150341347A1 (en) * 2014-05-23 2015-11-26 Google Inc. Methods and systems of issuing, transmitting and managing tokens using a low-latency session syndication framework
US10469484B1 (en) * 2015-01-27 2019-11-05 Google Llc Automatic discovery and retrieval of interoperable applications
US10671760B2 (en) * 2015-02-27 2020-06-02 Arash Esmailzadeh Secure and private data storage
US10127375B2 (en) 2015-03-07 2018-11-13 Protegrity Corporation Enforcing trusted application settings for shared code libraries
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
US10162982B2 (en) * 2015-12-10 2018-12-25 Sap Se End user control of personal data in the cloud
WO2018005613A1 (en) * 2016-06-28 2018-01-04 Solano Labs, Inc. Systems and methods for efficient distribution of stored data objects
US20180004936A1 (en) * 2016-07-04 2018-01-04 International Business Machines Corporation Computing device control and audit
CN106845252A (zh) * 2016-12-21 2017-06-13 北京奇虎科技有限公司 终端数据访问方法、装置及移动终端
JP7018557B2 (ja) * 2016-12-28 2022-02-14 高歩 中村 Bcn(ブロックチェーンネットワーク)を使用したデータ利用方法、システムおよびそのプログラム
US10404716B2 (en) * 2017-02-13 2019-09-03 Microsoft Technology Licensing, Llc Data classification and access control for cloud based data
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US11019073B2 (en) * 2017-07-23 2021-05-25 AtScale, Inc. Application-agnostic resource access control
US20230297621A1 (en) * 2017-10-19 2023-09-21 Capital One Services, Llc Identifying merchant data associated with multiple data structures
US10353956B2 (en) * 2017-10-19 2019-07-16 Capital One Services, Llc Identifying merchant data associated with multiple data structures
US11062320B2 (en) 2017-10-19 2021-07-13 Capital One Services, Llc User account controls for online transactions
GB2576506B (en) * 2018-08-20 2021-06-30 Advanced Risc Mach Ltd An apparatus and method for controlling use of bounded pointers
CN112035823B (zh) * 2019-06-03 2023-06-27 腾讯科技(深圳)有限公司 数据获取方法、装置、终端及存储介质
CN110717153B (zh) * 2019-09-30 2021-08-24 新华三大数据技术有限公司 一种权限验证方法和装置
US11803656B2 (en) * 2019-10-04 2023-10-31 Microsoft Technology Licensing, Llc Supplying personal information between different devices using different platforms
US11972000B2 (en) 2021-08-06 2024-04-30 Arash Esmailzadeh Information dispersal for secure data storage
WO2024039235A1 (ko) * 2022-08-19 2024-02-22 삼성전자주식회사 전자 장치 및 전자 장치에서 사용자 인증을 수행하는 방법

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412070B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Extensible security system and method for controlling access to objects in a computing environment
GB9913165D0 (en) 1999-06-08 1999-08-04 Secr Defence Access control in a web environment
US6842770B1 (en) * 2000-08-18 2005-01-11 Apple Computer, Inc. Method and system for seamlessly accessing remotely stored files
US7062654B2 (en) 2000-11-10 2006-06-13 Sri International Cross-domain access control
US7099917B2 (en) * 2001-04-18 2006-08-29 Openwave Systems Inc. Method of providing a proxy server based service to a communications device on a network
US6983479B1 (en) * 2001-06-08 2006-01-03 Tarantella, Inc. Dynamic content activation by locating, coordinating and presenting content publishing resources such that content publisher can create or change content
US7406519B2 (en) * 2001-11-13 2008-07-29 Microsoft Corporation Method and system for locking resources in a distributed environment
US7305469B2 (en) * 2001-12-18 2007-12-04 Ebay Inc. Prioritization of third party access to an online commerce site
US20030226036A1 (en) * 2002-05-30 2003-12-04 International Business Machines Corporation Method and apparatus for single sign-on authentication
JP4007873B2 (ja) * 2002-07-09 2007-11-14 富士通株式会社 データ保護プログラムおよびデータ保護方法
WO2005008456A2 (en) * 2003-07-07 2005-01-27 Progress Software Corporation Multi-platform single sign-on database driver
JP4564746B2 (ja) * 2003-12-26 2010-10-20 株式会社 デジタルデザイン データ通信方法及びデータ通信システム
US20050160161A1 (en) 2003-12-29 2005-07-21 Nokia, Inc. System and method for managing a proxy request over a secure network using inherited security attributes
JP2005234864A (ja) * 2004-02-19 2005-09-02 Nippon Telegr & Teleph Corp <Ntt> 配信サーバおよびセキュリティポリシ配信サーバ
US7802294B2 (en) * 2005-01-28 2010-09-21 Microsoft Corporation Controlling computer applications' access to data
JP2006295500A (ja) * 2005-04-08 2006-10-26 Ntt Docomo Inc 携帯電話、管理サーバ及び通信システム
JP4865445B2 (ja) * 2005-08-09 2012-02-01 学校法人 創価大学 情報管理方法及び情報管理システム
JP4766249B2 (ja) * 2006-03-01 2011-09-07 日本電気株式会社 トークン譲渡方法、トークン譲渡システム及び権限認証許可サーバ
US8151116B2 (en) * 2006-06-09 2012-04-03 Brigham Young University Multi-channel user authentication apparatus system and method
US8639939B2 (en) * 2006-07-07 2014-01-28 Sandisk Technologies Inc. Control method using identity objects
US8327427B2 (en) * 2006-09-25 2012-12-04 Rockstar Consortium Us Lp System and method for transparent single sign-on
US8510813B2 (en) * 2006-12-15 2013-08-13 Yahoo! Inc. Management of network login identities
US7945949B2 (en) 2007-03-19 2011-05-17 Microsoft Corporation Providing remote services to legacy applications
JP5145856B2 (ja) * 2007-10-17 2013-02-20 富士ゼロックス株式会社 電子情報管理システム、電子情報管理装置及び電子情報管理プログラム
US7836018B2 (en) * 2007-10-24 2010-11-16 Emc Corporation Simultaneously accessing file objects through web services and file services
JP5190252B2 (ja) * 2007-11-27 2013-04-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 嗜好マッチング・システム、方法及びプログラム
US8051491B1 (en) * 2007-12-10 2011-11-01 Amazon Technologies, Inc. Controlling use of computing-related resources by multiple independent parties
EP2243238A4 (en) * 2007-12-27 2011-03-16 Safend Ltd SYSTEM AND METHOD CONTROLLING ACCESS TO CONTEXTUAL AND BEHAVIORAL DATA
US8533797B2 (en) * 2008-06-12 2013-09-10 Microsoft Corporation Using windows authentication in a workgroup to manage application users
US9652788B2 (en) * 2008-06-18 2017-05-16 Oracle International Corporation Method and apparatus for logging privilege use in a distributed computing environment
US20100077467A1 (en) * 2008-09-19 2010-03-25 Microsoft Corporation Authentication service for seamless application operation
US8364969B2 (en) * 2009-02-02 2013-01-29 Yahoo! Inc. Protecting privacy of shared personal information
US9197417B2 (en) * 2009-04-24 2015-11-24 Microsoft Technology Licensing, Llc Hosted application sandbox model
US8296568B2 (en) * 2009-10-27 2012-10-23 Google Inc. Systems and methods for authenticating an electronic transaction
JP5644770B2 (ja) * 2009-11-09 2014-12-24 日本電気株式会社 アクセス制御システム、サーバ、およびアクセス制御方法
US7955175B1 (en) * 2009-12-17 2011-06-07 Face It Applications LLC Role based game play on a social network
US8387119B2 (en) * 2009-12-21 2013-02-26 Ebay Inc. Secure application network
US8763089B2 (en) * 2010-01-12 2014-06-24 Microsoft Corporation Flexible authentication and authorization mechanism
JP5440210B2 (ja) * 2010-01-28 2014-03-12 富士通株式会社 アクセス制御プログラム、アクセス制御方法およびアクセス制御装置
US8572710B2 (en) * 2010-03-18 2013-10-29 Microsoft Corporation Pluggable token provider model to implement authentication across multiple web services
EP2448303B1 (en) * 2010-11-01 2014-02-26 BlackBerry Limited Method and system for securing data of a mobile communications device
US20120203701A1 (en) * 2011-02-07 2012-08-09 Ayuso De Paul Joaquin Systems and methods for establishing a communication session between communication devices
US20120227098A1 (en) * 2011-03-03 2012-09-06 Microsoft Corporation Sharing user id between operating system and application
US9311462B1 (en) * 2011-03-04 2016-04-12 Zynga Inc. Cross platform social networking authentication system
US8621496B2 (en) * 2011-04-05 2013-12-31 Netapp, Inc. Decoupled application program-operating system computing architecture
US9405896B2 (en) * 2011-04-12 2016-08-02 Salesforce.Com, Inc. Inter-application management of user credential data
US9418216B2 (en) * 2011-07-21 2016-08-16 Microsoft Technology Licensing, Llc Cloud service authentication
US9183361B2 (en) * 2011-09-12 2015-11-10 Microsoft Technology Licensing, Llc Resource access authorization

Also Published As

Publication number Publication date
JP6001666B2 (ja) 2016-10-05
US10182052B2 (en) 2019-01-15
JP2017021825A (ja) 2017-01-26
US20170223020A1 (en) 2017-08-03
US9635028B2 (en) 2017-04-25
JP2014525625A (ja) 2014-09-29
JP2018037090A (ja) 2018-03-08
WO2013032615A1 (en) 2013-03-07
CA2846575A1 (en) 2013-03-07
CA2846575C (en) 2018-05-01
US20130054803A1 (en) 2013-02-28
JP6615166B2 (ja) 2019-12-04
BR112014004767A2 (pt) 2017-03-21

Similar Documents

Publication Publication Date Title
JP6615166B2 (ja) プロキシ認証のための方法、システム、およびコンピュータ読取り可能な記録媒体
US11316689B2 (en) Trusted token relay infrastructure
CN108351933B (zh) 用于最终用户启动的访问服务器真实性检查的方法和系统
EP2875463B1 (en) Method and system for browser identity
AU2014321579B2 (en) Securely authorizing access to remote resources
US9225704B1 (en) Unified management of third-party accounts
US9672382B2 (en) Managing access of user information by third party applications
KR20140068964A (ko) 자원 액세스 허가 기법
JP2020077353A (ja) 認証及び承認方法並びに認証サーバー
US11481509B1 (en) Device management and security through a distributed ledger system
US9742750B2 (en) Roaming internet-accessible application state across trusted and untrusted platforms
US9154497B1 (en) Maintaining accountability of a shared password among multiple users
US9959398B1 (en) Dynamic user authentication and authorization
JP6646076B2 (ja) フェデレーション方式のアプリケーションサービス
US9660989B1 (en) Internet-wide identity management widget
US11483316B1 (en) System and method for access using a circle of trust

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171005

R150 Certificate of patent or registration of utility model

Ref document number: 6224792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees