(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
アプリケーションから、ユーザリソースへのアクセスを求める要求を受け取るステップと、
前記要求を受け取ったことに応答して、権限付与要求を権限付与エンティティに転送するステップと、
前記権限付与エンティティから、前記アプリケーションが前記ユーザリソースへアクセスするのを許可されることを示す応答を受け取るステップであって、該応答は、前記アプリケーションのアプリケーション識別子を含む、ステップと、
前記アプリケーション識別子が、前記アプリケーションが動作しているコンピューティングデバイスから取得したシステムアプリケーション識別子に合致する場合、前記ユーザリソースへのアクセスを可能にするトークンを前記アプリケーションに提供するステップと
を含む、方法。
【請求項２】
前記要求は、前記アプリケーションを識別し、前記権限付与エンティティに転送されて前記アプリケーション識別子を返すのに使用される、リダイレクトユニフォームリソース識別子（ＵＲＩ）を含む、請求項１に記載の方法。
【請求項３】
前記要求により、前記権限付与エンティティによるユーザ認証とは独立に、前記ユーザリソースへアクセスする権限を前記アプリケーションに付与することを可能にする、持続型認証モードが生じ、
前記権限付与エンティティは、前記コンピューティングデバイスからリモートに実装されるサービスを備える、請求項１に記載の方法。
【請求項４】
前記システムアプリケーション識別子を取得するステップであって、
前記システムアプリケーション識別子を、前記コンピューティングデバイスのうち、前記アプリケーションに対してアクセス可能でない部分から取得することと、
前記システムアプリケーション識別子が前記アプリケーションによって改変されないように、前記システムアプリケーション識別子に署名をすることと
のうちの１つ又は複数により、前記システムアプリケーション識別子を取得するステップを更に備える、請求項１に記載の方法。
【請求項５】
前記トークンは、前記ユーザリソースにアクセスするという１つ又は複数の後続の要求の一部として、前記ユーザリソースにアクセスするのに使用される、請求項１に記載の方法。
【請求項６】
システムであって、
１つ又は複数のプロセッサと、
前記プロセッサによって実行されると、該プロセッサに、
アプリケーションから、ユーザリソースへのアクセスを求める要求を受け取るステップと、
前記要求を受け取ったことに応答して、権限付与要求を権限付与エンティティに転送するステップと、
前記権限付与エンティティから、前記アプリケーションが前記ユーザリソースへアクセスするのを許可されることを示す応答を受け取るステップであって、該応答は、前記アプリケーションのアプリケーション識別子を含む、ステップと、
前記アプリケーション識別子が、前記アプリケーションが動作しているコンピューティングデバイスから取得したシステムアプリケーション識別子に合致する場合、前記ユーザリソースへのアクセスを可能にするトークンを前記アプリケーションに提供するステップと
を含む処理を実行させる、プログラムを記憶するメモリと、
を備える、システム。
【請求項７】
コンピューティングデバイスによって実行されると、該コンピューティングデバイスに、
アプリケーションに関して、該アプリケーションがユーザリソースにアクセスするのを可能にするのに使用されるキャッシュされた認証状態を保持するステップと、
前記アプリケーションから、前記ユーザリソースにアクセスするのを許可するよう求める要求を受け取るステップと、
前記アプリケーションからの前記要求に応答して、前記キャッシュされた認証状態の１つ又は複数の部分を権限付与サービスに転送するステップと、
前記権限付与サービスからアプリケーション識別子を受け取るステップと、
前記権限付与サービスから受け取った前記アプリケーション識別子を、前記コンピューティングデバイスから取得した前記アプリケーションに対するシステムアプリケーション識別子と比較することによって、前記ユーザリソースにアクセスするのを可能にするトークンを前記アプリケーションに提供するかどうかを決定するステップと、
を含む処理を実行させる、コンピュータプログラム。
【請求項８】
前記アプリケーション識別子は、前記アプリケーションが前記ユーザリソースにアクセスするのを許可されることを示す、前記権限付与サービスに対するユーザの認証に応答して、前記権限付与サービスから受信される、請求項７に記載のコンピュータプログラム。
【請求項９】
前記比較は、前記アプリケーションのランタイムに、前記権限付与サービスとの対話とは独立に起こる、請求項７に記載のコンピュータプログラム。
【請求項１０】
前記処理は更に、
前記アプリケーションからの前記要求に応答して、前記権限付与サービスに関連付けられた権限付与ユーザインタフェースを提示させるステップであって、該権限付与ユーザインタフェースは、ユーザからユーザ認証情報を受け取るように構成される、ステップと、
前記権限付与ユーザインタフェースを介した前記権限付与サービスに対する前記ユーザの認証に基づいて、前記権限付与サービスから前記アプリケーション識別子を受け取るステップと、
を含む、請求項７に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソースアクセスの権限付与に関する。
【背景技術】
【０００２】
今日のコンピュータユーザは、メディアサービス、ウェブアプリケーション及びソーシャルメディアアプリケーション等のような、幅広い種類のアプリケーションへのアクセスを有する。これらのアプリケーションの多くは、ユーザの識別を確認し、ユーザ情報に対するアクセスを得るため、オンライン認証及び／又は権限付与サービスのような、何らかのタイプの識別技術を使用する。このような技術を用いる際の主な課題は、ユーザの識別を確実に保護しつつ、アプリケーションに対してユーザリソースへアクセスする権限を付与することである。
【発明の概要】
【０００３】
この「発明の概要」の記載は、以下で「発明を実施するための形態」においてさらに説明される概念の選択を簡略化した形で紹介するために提供される。この「発明の概要」における記載は、特許請求に係る主題の主要な特徴及び本質的特徴を特定するようには意図されておらず、特許請求に係る主題の範囲を決定する際の一助として用いられるようにも意図されていない。
【０００４】
リソースアクセスの権限付与のための技術を説明する。１つ又は複数の実装において、アプリケーション識別子を使用して、アプリケーションによるユーザリソースへのアクセスを制御する。アプリケーションがユーザリソースにアクセスすることを許可するかどうかの決定は、権限付与サービスから受信したアプリケーション識別子を、そのアプリケーションが動作しているコンピューティングデバイスから取得した、アプリケーションに対するシステムアプリケーション識別子と比較することによって行われる。
【０００５】
１つ又は複数の実装において、アプリケーションが、ユーザリソースへのアクセスを許可されているか否かの判断を求める要求に応答して、アプリケーションのアプリケーション識別子を含む応答を権限付与エンティティから受信する。アプリケーション識別子が、そのアプリケーションが動作しているコンピューティングデバイスから取得した、アプリケーションに対するシステムアプリケーション識別子と合致する場合、そのアプリケーションはユーザリソースへのアクセスを許可される。
【０００６】
１つ又は複数の実装において、諸技術は、コンピューティングデバイス上で動作しているアプリケーションが、持続型認証（ｐｅｒｓｉｓｔｅｄ  ａｕｔｈｅｒｎｔｉｃａｔｉｏｎ）モードにより、ユーザリソースへのアクセスを要求していることを検出する。権限付与サービスから受信したアプリケーション識別子が、上記コンピューティングデバイスから取得したシステムアプリケーション識別子に合致するかどうかの判断が行われる。アプリケーション識別子がシステムアプリケーション識別子に合致する場合、アプリケーションは、権限付与サービスから受信した認証データを介して、ユーザリソースにアクセスすることを許可される。
【０００７】
以下の詳細な説明は、添付の図面を参照しながら記載される。図面において、参照番号の左端の桁は、その参照番号が最初に現れる図面を識別する。説明及び図面の異なる例における同じ参照番号の使用は、同様又は同じ項目であることを示す。
【図面の簡単な説明】
【０００８】
【図１】本明細書で議論される技術を用いるのに使用可能な例示的実装の環境を示す図である。
【図２】本明細書で議論される技術を用いるのに使用可能な例示的実装の権限付与環境を示す図である。
【図３】アプリケーションがユーザリソースにアクセスするのをユーザが認証することができる例示的実装のプロシージャを示すフロー図である。
【図４】持続型認証モードがリソースアクセスに用いられる例示的実装のプロシージャを示すフロー図である。
【図５】アプリケーションが、権限付与トランザクションに参加することが認められる、例示的実装のプロシージャを示すフロー図である。
【図６】ローカルの権限付与情報を使用して、アプリケーションにユーザリソースへアクセスする権限を付与するかどうかを判断する、例示的実装のプロシージャを示すフロー図である。
【図７】図１、２及び８に関連して説明されるようなコンピューティングデバイスを含む例示的システムを示す図である。
【図８】図１、２及び７に関連して説明されるような、本明細書で説明される技術の実施形態を実装する任意のタイプのポータブル及び／又はコンピューティングデバイスとして実装される例示的デバイスの様々なコンポーネントを示す図である。
【発明を実施するための形態】
【０００９】
＜概要＞
リソースアクセスの権限付与のための技術を説明する。１つ又は複数の実装において、本技術を用いて、ユーザ名及び／又はパスワードなどのユーザの認証情報を、認証されていないエンティティから保護しつつ、アプリケーションに対してユーザリソースへアクセスする権限を付与することができる。例えばユーザリソースへのアクセスを要求しているアプリケーションと、ユーザの識別を確認してユーザリソースへのアクセスを可能にすることができる権限付与エンティティとの間の仲介として機能するアクセスブローカを用いることができる。ユーザリソースの例には、ユーザコンテンツ（例えばイメージ、オーディオ、ビデオ等）、ユーザデータ（例えばファイル）、アプリケーション及び／又はサービスに関するユーザプロファイル等が含まれる。
【００１０】
諸実装において、アクセスブローカは、アプリケーションがユーザリソースにアクセスするのを許可する権限付与エンティティによって、そのアプリケーションに権限を付与することを可能にする。例えばアプリケーションは、アプリケーションブローカを起動することができ、アプリケーションブローカは、権限付与エンティティと通信して、該権限付与エンティティに関連付けられたユーザインタフェースを提示させる。ユーザは、ユーザ名及びパスワードなどの認証情報をユーザインタフェースに提示することができる。ユーザ名及びパスワードが、権限付与エンティティに知られているユーザプロファイルに合致するとき、権限付与エンティティは、アクセスブローカに権限付与情報を返す。諸実装において、ユーザがアプリケーションに対してユーザリソースへのアクセスの権限を与えることができるようにする権限付与プロンプトを、ユーザに提示することができる。アクセスブローカは、アプリケーションが権限付与情報によりユーザリソースにアクセスすることを可能にすることができる。
【００１１】
更なる実施形態では、持続型認証モードを用いることができる。持続型認証モードは、ユーザが各トランザクションに対して認証情報を提供する必要なく、アプリケーションが複数の別個のトランザクション中にユーザリソースにアクセスすることを可能にする。例えばユーザが認証情報を権限付与サービスに与えて、アプリケーションによるユーザリソースへのアクセスを可能にするとき、アプリケーション及び／又はユーザは持続型認証モードを要求することができる。認証情報は他の情報とともに、アプリケーションのキャッシュされた認証状態の一部として（例えばアクセスブローカによって）キャッシュされる。
【００１２】
アプリケーションが、後続のトランザクション中にユーザリソースへのアクセスを要求するとき、アクセスブローカは、この要求をキャッシュされた認証状態とともに権限付与サービスに転送する。権限付与サービスは、キャッシュされた認証状態に基づいて、そのアプリケーションがユーザによって以前にユーザリソースへアクセスする権限を与えられたことを突き止め、そのアプリケーションに対するアクセストークン及びアプリケーション識別子をアクセスブローカに返す。諸実装において、権限付与サービスは、アクセスブローカに権限付与の指示を返す前に、ユーザの権限付与を（例えば認証プロンプトを介して）要求することができる。
【００１３】
アクセスブローカは、権限付与サービスから受信したアプリケーション識別子が、アプリケーションが動作しているコンピューティングデバイスによって提供された、アプリケーションのシステムレベル識別子に合致するかどうかを確かめる。両識別子が合致した場合、アクセスブローカは、アクセストークンをアプリケーションに提供する。アプリケーションは、このアクセストークンを使用してユーザリソースにアクセスすることができる。両識別子が合致しなかった場合、アプリケーションはユーザリソースへのアクセスを拒否され、及び／又はユーザに、アプリケーションがユーザリソースにアクセスできるように認証情報を提供するように促すこともできる。
【００１４】
本明細書で使用されるとき、「権限付与」という用語は一般に、アプリケーション及び他のエンティティがリソースにアクセスするのを可能にする技術を指し、特定のプロトコル、プロシージャ、規定又は基準に限定されない。したがって、用語は、本明細書で議論される実施形態の精神及び範囲内において任意の適切な技術を含むように広く解釈されるべきである。
【００１５】
以下の議論では、最初に、本明細書で説明されるリソースアクセスの権限付与技術を用いるように使用可能な例示的な環境について説明する。次いで、リソースアクセスの権限付与技術に関する例示的なプロシージャを説明する。このプロシージャは、上記例示的な環境だけでなく他の環境においても用いることができる。したがって、例示的な環境は例示的なプロシージャを実行することに限定されない。同様に、例示的なプロシージャは例示的な環境における実装に限定されない。最後に、１つ又は複数の実施形態に従って本明細書で議論される技術を用いるのに使用可能な例示的なシステム及びデバイスを説明する。
【００１６】
＜例示的な環境＞
図１は、リソースアクセスの権限付与のための技術を用いるのに使用可能な例示的実装の環境１００を示す図である。環境１００は、１つ又複数のプロセッサ１０４と、１つ又は複数のコンピュータ読取可能記憶媒体１０６と、コンピュータ読取可能記憶媒体１０６上に存在し、プロセッサ１０４によって実行可能な１つ又は複数のアプリケーション１０８とを有するコンピューティングデバイス１０２を含む。コンピューティングデバイス１０２は、限定ではなく例として、デスクトップコンピュータ、ポータブルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）のようなハンドヘルドコンピュータ、モバイルフォン及びタブレットコンピュータ等のような、任意の適切なコンピューティングデバイスとして具現化され得る。コンピューティングデバイス１０２の様々な異なる例の１つが、図７及び図８に示されおり、以下で説明される。
【００１７】
図１のコンピューティングデバイス１０２は、例えばウェブブラウザなどのブラウザ１１０も含むように図示されており、ブラウザ１１０は、ネットワーク１１２を介してナビゲートするように構成される機能を表す。ネットワーク１１２はインターネットとして図示されているが、ネットワークは幅広い種類の構成が想定される。例えばネットワーク１１２は、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、公衆電話網、イントラネット等を含むことができる。さらに、単一のネットワーク１１２が示されているが、ネットワーク１１２は複数のネットワークを含むように構成してもよい。
【００１８】
ブラウザ１１０は、例えばネットワーク１１２を介してナビゲートして、１つ又は複数のウェブリソース１１４から取得可能なコンテンツと対話し、そしてデータを１つ又は複数のウェブリソース１４に通信する、例えばダウンロードとアップロードを実行するように構成される。ウェブリソース１１４は、ネットワーク１１２を介してアクセス可能なコンテンツを提供するように構成される、任意の適切なコンピューティングリソースを含むことができる。そのようなコンテンツの例には、ウェブページ、テキストコンテンツ、ビデオ及びオーディオ等が含まれる。
【００１９】
アプリケーション１０８の１つ又は複数は、ネットワーク１１２に、例えば該アプリケーション自身が直接及び／又はブラウザ１１０を通じてアクセスするようにも構成される。例えばアプリケーション１０８の１つ又は複数は、ウェブリソース１１４のうちの１つ又は複数にアクセスして、コンテンツを取り出す、及び／又はアップロードするように構成される。したがって、アプリケーション１０８は、ネットワーク１１２への直接アクセス又は間接的なアクセスを含む様々な機能に対して構成されることもある。例えばアプリケーション１０８は、該アプリケーション１０８がローカルで利用することができる構成設定及び他のデータであって、別のコンピューティングデバイス上で実行されるアプリケーションと同期される構成設定及び他のデータを含むことができる。この方法では、これらの設定を複数のデバイスによって共有することができる。様々な他の例も含まれる。したがって、コンピューティングデバイス１０２は、様々な方法で様々な異なるソースからのコンテンツと対話することができる。
【００２０】
さらに、コンピューティングデバイス１０２の一部としてオペレーティングシステム１１６が図示されている。オペレーティングシステム１１６は、コンピューティングデバイス１０２のリソースを管理し、コンピューティングデバイス１０２の機能に対するアクセスを提供する機能を表す。諸実装において、オペレーティングシステム１１６は、本明細書で議論される技術を実装するのに用いられる、アプリケーション１０８の識別情報を保持する。例えばアプリケーション１０８の１つがコンピューティングデバイス１０２上にインストールされ、及び／又は開始されると、コンピューティングデバイス１０２は、そのアプリケーションのシステムアプリケーション識別子を記録する。システムアプリケーション識別子を、コンピューティングデバイス１０２のうち、アプリケーション１０８によってアクセス可能ではない、及び／又は操作可能ではない部分、例えば保護されたデータベースやオペレーティングシステム１１６のカーネルなどに格納することができる。あるいはまた、アプリケーションがシステムアプリケーション識別子を改変することができないように、システムアプリケーション識別子にデジタル署名をすることができる。
【００２１】
コンピューティングデバイス１０２は、図示される例において、アクセスブローカモジュール１１８も含むように示されている。アクセスブローカモジュール１１８は、アプリケーション１０８に対する権限付与及び認証トランザクションを仲介する、コンピューティングデバイス１０２の機能を表す。アクセスブローカモジュール１１８は、様々な形式の権限付与及び認証情報を、権限付与トランザクションで関与するエンティティ間に通信するように構成される。諸実装において、アクセスブローカモジュール１１８は、ブラウザの機能を介して情報を通信するように構成され、したがってアクセスブローカモジュール１１８をブラウザ１１０と組み合わせること、及び／又はブラウザ１１０として具現化することができる。
【００２２】
そのような権限付与トランザクションについて、環境１００は権限付与サービス１２０を含む。権限付与サービス１２０は、ユーザプロファイルをトラックし、アクセスブローカモジュール１１８と対話してアプリケーション１０８及び／又は他のエンティティが、ユーザリソースにアクセスする権限を付与されるかどうかを判断する機能を表す。例えば権限付与サービス１２０は、複数のユーザ及び複数の異なるデバイスによってアクセスされて権限付与トランザクション及び／又は認証トランザクションを実施する、ウェブベースの権限付与サービスとして実装されることがある。諸実装において、権限付与サービス１２０は、アプリケーション１０８などの様々なアプリケーションに対するアプリケーション識別子を保持することができる。例えばアプリケーション１０８のうちの特定のアプリケーションについて上記したシステムアプリケーション識別子を、権限付与サービス１２０に、例えば権限付与サービスを用いるアプリケーションの登録の一部として通信することができる。権限付与サービス１２０は、本明細書で議論されるリソースアクセスオペレーションの一部として使用すべきアプリケーション識別子を格納することができる。
【００２３】
そのような実施形態について、環境１００は、コンピューティングデバイス１０２のユーザに関連付けられたリソースを表す、ユーザリソース１２２を含む。ユーザリソース１２２の例には、ユーザコンテンツ（例えばイメージ、オーディオ、ビデオ等）、ユーザデータ（例えばファイル）、アプリケーション及び／又はサービスに関するユーザプロファイル等が含まれる。
【００２４】
権限付与サービス１２０及びユーザリソース１２２は、別個のエンティティとして図示されているが、一部の実装では、ユーザリソース１２２を、権限付与サービス１２０によって管理及び／又は保持することができる。例えば権限付与サービス１２０を、ソーシャルネットワークサービス、写真共有サービス、ウェブログ（ブログ）サービス等のような、ユーザリソース１２２を管理するコンテンツサービスのタイプに関連付けることができる。そのような実装において、権限付与サービス１２０は、コンテンツサービス、並び該コンテンツサービスと対話することができる他のサービス（例えばアプリケーション１０８）に対してユーザを認証するように実装される。
【００２５】
諸実装において、アクセスブローカモジュール１１８が、アプリケーション１０８のうちのいずれか１つに対して、ユーザリソース１２２にアクセスする権限を付与すると決定すると、アクセスブローカモジュール１１８は、アクセストークン又は他の権限付与機構をそのアプリケーションに与える。アプリケーションは、そのアクセストークン又は他の権限付与機構を用いてユーザリソース１２２にアクセスすることができる。したがって、アクセストークン又は他の権限付与機構を用いて、アプリケーション１０８及び／又は他のエンティティがユーザリソース１２２にアクセスすることを可能にすることができる。
【００２６】
一般に、本明細書で説明される機能のうちの任意の機能は、ソフトウェア、ファームウェア、ハードウェア（例えば固定の論理回路）又はこれらの実装の組み合わせを用いて実装される。本明細書で使用されるとき、「モジュール」、「機能」及び「ロジック（論理）」という用語は一般に、ソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを表す。ソフトウェアでの実装の場合、モジュール、機能又はロジックは、プロセッサ（例えば１つ又は複数のＣＰＵ）において実行されるときに、指定されたタスクを実行するプログラムコードを表す。プログラムコードを、１つ又は複数のコンピュータ読取可能メモリデバイスに格納することができる。以下で説明される技術の特徴はプラットフォーム独立であり、これは、その技術を、様々なプロセッサを有する様々な市販のコンピューティングプラットフォーム上で実装することができることを意味する。
【００２７】
例えばコンピューティングデバイス１０２は、例えばプロセッサ及び機能ブロック等の、コンピューティングデバイス１０２のハードウェアにオペレーションを実行させるエンティティ（例えばソフトウェア）を含むこともできる。例えばコンピューティングデバイス１０２は、該コンピューティングデバイスに、より具体的には、コンピューティングデバイス１０２のハードウェアにオペレーションを実行させる命令を保持するように構成される、コンピュータ読取可能媒体を含むことができる。したがって、命令は、オペレーションを実行させるようハードウェアを構成するように機能し、このようにして、その結果、ハードウェアの変換が起こり、関数を実行させる。命令は、コンピュータ読取可能媒体によってコンピューティングデバイス１０２に様々な異なる構成により提供される。
【００２８】
コンピュータ読取可能媒体のそのような構成の１つが信号担持媒体であり、したがって、そのような構成は、命令を（例えば搬送波として）コンピューティングデバイスのハードウェアに、ネットワークを介するなどして伝送するように構成される。コンピュータ読取可能媒体は、コンピュータ読取可能記憶媒体としても構成され、したがってそのような構成は信号担持媒体ではない。コンピュータ読取可能媒体の例には、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、光ディスク、フラッシュメモリ、ハードディスクメモリ、あるいは磁気、光学及び他の技術を使用して命令及び他のデータを格納することができる他のメモリデバイスが含まれる。
【００２９】
図２は、１つ又は複数の実装による例示的な権限付与環境を、全体的に２００として図示している。権限付与環境２００の一部として含まれるのは、コンピューティングデバイス１０２の一部として含めることができるディスプレイスクリーン２０２である。諸実装において、ディスプレイスクリーン２０２は、物理的な入力、例えばタッチ入力やスタイラス入力を受け取るように構成されてもよく、そのように構成しなくてもよい。ディスプレイスクリーン２０２上に提示されるのは、例えばアプリケーション１０８等のアプリケーションに関連付けられるアプリケーションユーザインタフェース２０４である。
【００３０】
ユーザが、ユーザリソースにアクセスするための権限をアプリケーションに与えることができるように、権限付与ユーザインタフェース２０６が提供される。諸実装において、権限付与ユーザインタフェース２０６を自動的に、例えばアプリケーション１０８が開かれたことに応答して表示することができる。例えばユーザがアプリケーション１０８を開始すると、アクセスブローカモジュール１１８は、ブラウザ１１０及び／又は権限付与サービス１２０と通信して、権限付与ユーザインタフェース２０６を表示させることができる。例えば権限付与サービス１２０は、権限付与ユーザインタフェース２０６を、ウェブブラウザ１１０に、例えばウェブページとして提供することができる。あるいはまた、ユーザは、ログインボタン又はアプリケーションユーザインタフェース２０４に関連付けられた他のコントロール（図示せず）を選択することによって、権限付与ユーザインタフェース２０６を起動させることができる。
【００３１】
諸実装において、権限付与ユーザインタフェース２０６は、アプリケーションユーザインタフェース２０４に対してモーダルにすることができる。例えばアプリケーションユーザインタフェース２０４は、例えば権限付与ユーザインタフェースに対するユーザ入力に応答して、権限付与ユーザインタフェース２０６が終了されるまで、入力を受信すること及び／又は閉じることを妨げられる。
【００３２】
権限付与ユーザインタフェース２０６の一部として図示されているのは、ユーザ名フィールド２０８とパスワードフィールド２１０である。ユーザ名フィールド２０８は、ユーザ名及び／又は他の識別指標（ｉｎｄｉｃｉａ）（例えばユーザ電子メール）をユーザから受け取るように構成される。加えて、パスワードフィールド２１０は、ユーザからパスワードを受け取るように構成される。諸実装において、ユーザ名及びパスワードは、ユーザのユーザプロファイル、例えば権限付与サービス１２０で以前に確立されたユーザプロファイル等に関連付けられる。したがって、ユーザ名及びパスワードを権限付与ユーザインタフェース２０６に提供することにより、特定のユーザプロファイル及び／又はそのユーザプロファイルに関連付けられたユーザリソースにアクセスする権限を付与されているものとして、ユーザを認証することができる。
【００３３】
権限付与ユーザインタフェース２０６の一部として更に図示されているのは、ログインコントロール２１２である。ログインコントロール２１２は、選択されると、権限付与ユーザインタフェース２０６に提供されたログイン情報を提示する。例えばユーザ名フィールド２０８に提供されたユーザ名と、パスワードフィールド２１０に提供されたパスワードを、ログインコントロール２１２の選択に応答して、権限付与サービス１２０に提示することができる。
【００３４】
権限付与ユーザインタフェース２０６はキャンセルコントロール２１４も含む。キャンセルコントロール２１４は、選択されると、権限付与トランザクションをキャンセルさせるか、及び／又は権限付与ユーザインタフェース２０６を閉じることができる。
【００３５】
権限付与ユーザインタフェース２０６の一部として更に含まれるのは、持続型ログインオプション２１６であり、この持続型ログインオプション２１６は、持続型認証モードをアクティブにするのに選択可能である。諸実装において、持続型認証モードは、ユーザによって（例えば持続型ログインオプション２１６の選択を介して）、及び／又はアプリケーション１０８及び／又はアクセスブローカモジュール１１８などの別のエンティティによってアクティブにされることができる。持続型認証モードに関する更なる詳細は、上記及び下記においてより詳しく議論される。
【００３６】
本明細書において説明される技術が動作することができる例示的な環境について説明したが、次に、１つ又は複数の実施形態による幾つかの例示的なプロシージャの議論を検討する。
【００３７】
＜例示的なプロシージャ＞
以下の議論では、本明細書で説明されるシステム及びデバイスを用いて実装することができるリソースアクセスの権限付与の技術を説明する。プロシージャそれぞれの諸態様は、ハードウェア、ファームウェア又はソフトウェア、又はこれらの組み合わせで実装することができる。これらのプロシージャは、１つ又は複数のデバイスによって実行されるオペレーションを指定するブロックのセットとして示されているが、必ずしもその順序は、個々のブロックによってオペレーションを実行する順序として示されている順序に限定されない。さらに、１つ又は複数の実装に従って、特定のプロシージャに関して示されているオペレーションを、異なるプロシージャのオペレーションと組み合わせること、及び／又は交換することができる。以下の議論の一部において、図１及び２の環境１００及び／又は２００を参照する。
【００３８】
図３は、ユーザがアプリケーションにユーザリソースへアクセスする権限を付与することができる、例示的な実装におけるプロシージャ３００を示す。ステップ３０２において、アプリケーションがユーザリソースにアクセスするのを許可するよう求める要求を検出する。例えばアクセスブローカモジュール１１８は、アプリケーション１０８から、ユーザリソース１２２へのアクセスを求める要求を受信する。あるいはまた、アプリケーションがユーザリソースにアクセスするための要求を開始することに先行して、この要求をアプリケーション以外のエンティティから受信することができる。例えばあるエンティティは、アプリケーションに先立ってユーザリソースにアクセスする許可を取得することができる。諸実装において、コンピューティングデバイス１０２及び／又はブラウザ１１０の一部は、ログオン情報、認証及び／又は権限付与クッキー、ユーザ名並びにパスワード等のユーザ識別情報を格納することができる。アプリケーション１０８が、そのような識別情報に対する認証されていないアクセスを得ることを防ぐために、アクセスブローカモジュール１１８は、例えばアプリケーションからの要求を受信したことに応答して、コンピューティングデバイス１０２のうちアプリケーション１０８に対してアクセス可能な部分から、識別情報を消去する。
【００３９】
ステップ３０４において、アプリケーション識別子を含む権限付与要求を、権限付与エンティティに転送する。例えばアクセスブローカモジュール１１８は、ブラウザ１１０と通信して、権限付与要求をブラウザから権限付与サービス１２０に転送させる。諸実装において、権限付与要求は、アプリケーション識別子と、情報をアプリケーションに返すのに使用されるリダイレクトアドレス（例えばユニフォームリソース識別子（ＵＲＩ））とを含む、権限付与サービス１２０のユニフォームリソースロケータ（ＵＲＬ）を含むことができる。そのようなＵＲＬの一例は、https://www.authozationservice.com/requestAccess.html?applicationID=X&redirectAddress=http://redirect.comとすることができる。
【００４０】
諸実装において、権限付与サービス１２０は、権限付与要求を受信し、ブラウザ１１０を介して権限付与ユーザインタフェース２０６を提示させる。ユーザは次いで、認証情報、例えばユーザ名とパスワードを権限付与ユーザインタフェース２０６に提供することができる。あるいはまた、ユーザは、アプリケーションがユーザリソースにアクセスすることに対する承諾を、例えば権限付与ユーザインタフェース２０６を介して提供することができる。
【００４１】
ステップ３０６において、権限付与エンティティから、ユーザの許可を示す応答を受信する。この応答はアプリケーション識別子を含む。例えば権限付与ユーザインタフェース２０６に提供された認証情報は、権限付与サービス１２０に提示され、権限付与サービス１２０はその認証情報が、該権限付与サービスが知っているユーザプロファイルと合致することを判断する。権限付与サービス１２０は、権限付与要求に対する応答をアクセスブローカモジュール１１８に送信する。諸実装において、この応答は、アプリケーション識別子を含み、またユーザリソースにアクセスするのに使用されるアクセストークンなどの追加の情報も含むことができる。
【００４２】
ステップ３０８において、持続型認証モードが選択された場合、アプリケーションに対する認証状態をキャッシュする。例えばユーザは、例えば権限付与ユーザインタフェース２０６により、ユーザの資格認証情報（ｃｒｅｄｅｎｔｉａｌ）を提供することの一部として、持続型認証モードを選択することができる。持続型認証状態が選択される場合、認証状態が、例えばアクセスブローカモジュール１１８によってキャッシュされる。キャッシュされた認証状態は、ユーザリソースへのアクセスを求める後続の要求の間に、ユーザが更なる認証を実行する必要なく、アプリケーションによるユーザリソースへのアクセスを可能にする、認証情報及び他の情報を含むことができる。持続型認証モードの更なる諸態様は、以下で議論する。持続型認証モードが選択されない場合、後続の使用のために認証状態はキャッシュされず、及び／又はユーザは、後続のリソースアクセス要求の一部として認証を要求されることになる。
【００４３】
ステップ３１０において、権限付与エンティティから受信したアプリケーション識別子を、コンピューティングデバイスによって保持されているシステムアプリケーション識別子と比較する。例えばシステムアプリケーション識別子は、アプリケーションをコンピューティングデバイスの他のアプリケーション及び／又はリソースから区別する一意の識別子とすることができる。システムアプリケーション識別子の更なる議論は上記に提示されている。
【００４４】
権限付与エンティティから受信したアプリケーション識別子が、システムアプリケーション識別子と合致する場合（「合致」の場合）、ステップ３１２において、ユーザリソースへのアクセスを可能にするトークンをアプリケーションに提供する。諸実装において、アクセスブローカモジュール１１８は、トークンを権限付与サービス１２０から受信して、該トークンをアプリケーション１０８に転送することができる。アプリケーション１０８は、このトークンを使用してユーザリソースにアクセスすることができる。権限付与エンティティから受信したアプリケーション識別子が、システムアプリケーション識別子に合致しない場合（「合致せず」の場合）、ステップ３１４において、アプリケーションがトークンにアクセスするのを妨げる。したがって、ユーザリソースに対するアクセスは、トークンを提示するアプリケーションに限定されるので、上記アプリケーションはユーザリソースにアクセスすることができない。
【００４５】
図４は、ユーザリソースのアクセスに持続型認証モードを用いる例示的実装のプロシージャ４００を示す。１つ又は複数の実施形態において、プロシージャ４００を、図３に関して上述したリソースアクセス要求に後続する部分として実行することができる。
【００４６】
ステップ４０２において、コンピューティングデバイス上で動作しているアプリケーションが、持続型認証モードによりユーザリソースへのアクセスを要求していることを検出する。持続型認証モードを開始する例示的な方法は、上記されている。ステップ４０４において、アプリケーション識別子を含む権限付与要求を、権限付与エンティティに転送する。例えばアクセスブローカモジュール１１８は、権限付与要求をアプリケーションから受信し、上述のキャッシュされた認証状態情報を権限付与サービス１２０に転送することができる。
【００４７】
諸実装において、権限付与要求は、持続型認証モードが使用されていることを示すカスタムのユニフォームリソース識別子（ＵＲＩ）スキーマを含むことができる。例えば、権限付与サービス１２０にナビゲートするのに使用されるＵＲＬ（この例は上記されている）を、カスタムＵＲＩスキーマに添付することができる。カスタムのＵＲＩスキーマは、アプリケーション識別子と持続型認証モードに固有の識別指標、例えば「persisted://application_id」を含むことができる。諸実装において、アクセスブローカモジュール１１８は、アプリケーションによって実装されるべき持続型認証スキーマに対して、カスタムＵＲＩスキーマが使用されることを要求することができる。
【００４８】
ステップ４０６において、権限付与確認（ａｕｔｈｏｒｉｚａｔｉｏｎ  ｃｏｎｆｉｒｍａｔｉｏｎ）を、権限付与エンティティから受信する。権限付与確認は、アプリケーション識別子とアクセストークンを含む。諸実装において、ユーザリソースにアクセスしようとするアプリケーションに対する、ユーザが提供する許可に少なくとも部分的に基づいて、例えば権限付与エンティティによって提供された権限付与プロンプトを介して、権限付与確認を受け取ることができる。権限付与エンティティは、権限付与要求が、ユーザリソースにアクセスする権限を付与されるアプリケーションからのものであることを（例えば権限付与要求のアプリケーション識別子に基づいて）判別することができる。例えばアプリケーションは以前に、権限付与エンティティとのユーザ対話により、ユーザリソースへアクセスする権限を付与されていることがある。更にそのような実装に関して、権限付与エンティティは、権限付与要求の一部として提供されたカスタムＵＲＩを、カスタムＵＲＩに添付されているアクセストークンとともにアクセスブローカモジュール１１８に返すことができる。
【００４９】
ステップ４０８において、アプリケーション識別子を、コンピューティングデバイスによって保持される、アプリケーションのシステムアプリケーション識別子と比較する。アプリケーション識別子の合致処理に関する詳細は、上記に提示されている。権限付与エンティティから受信したアプリケーション識別子がシステムアプリケーション識別子と合致する場合（「合致」の場合）、ステップ４１０において、アプリケーションがユーザリソースにアクセスすることを可能にするトークンを提供する。例えばアクセスブローカモジュール１１８は、認証トークンを権限付与サービス１２０から受信し、この認証トークンをアプリケーション１０８に提供することができる。アプリケーション１０８は認証トークンを使用してユーザリソース１２２にアクセスすることができる。
【００５０】
権限付与エンティティから受信したアプリケーション識別子が、システムアプリケーション識別子に合致しない場合（「合致せず」の場合）、ステップ４１２において、トークンに対するアプリケーションのアクセスは拒否される。
【００５１】
したがって、持続型認証モードは、アプリケーションがユーザリソースにアクセスする権限を付与されているかどうかの決定を、ユーザ認証トランザクション及び／又は例えば権限付与サービスとのユーザ対話とは独立に行うことを可能にする。
【００５２】
図５は、アプリケーションが権限付与トランザクションに参加することができるかの決定を行う、例示的実装のプロシージャ５００を示す。ステップ５０２において、アプリケーション識別子を、ユーザリソースへのアクセスの要求の一部としてアプリケーションから受信する。ステップ５０４において、アプリケーション識別子を、コンピューティングデバイスによって保持されているアプリケーションのシステムアプリケーション識別子と比較する。アプリケーション識別子の合致処理に関する詳細は上記に提示されている。諸実装において、アクセスブローカモジュール１１８は、アプリケーションからアプリケーション識別子を受信し、そのアプリケーションのシステムアプリケーション識別子をオペレーティングシステム１１６に対して照会することができる。アクセスブローカモジュール１１８は次いで、アプリケーション識別子をシステムアプリケーション識別子と比較して、これらが合致するかどうかを判断することができる。
【００５３】
アプリケーションから受信したアプリケーション識別子が、システムアプリケーション識別子に合致しない場合（「合致せず」の場合）、ステップ５０６において、アプリケーションが権限付与トランザクションに進むのを妨げる。アプリケーションから受信したアプリケーション識別子が、システムアプリケーション識別子に合致する場合（「合致」の場合）、ステップ５０８において権限付与トランザクションに進む。例示的な権限付与トランザクションは、本明細書の他の箇所において図３、４及び６に関連して説明されている。
【００５４】
図６は、ローカルの権限付与情報を使用して、アプリケーションが、ユーザリソースにアクセスする権限を付与されているかどうかを判定する、例示的実装のプロシージャ６００を示す。ステップ６０２において、アプリケーションの権限付与情報を権限付与エンティティから受信する。このアプリケーションの権限付与情報は、アプリケーション識別子と権限付与エンティティ識別子とを含む。例えば権限付与情報は、ユーザが権限付与サービスを認証し、ユーザリソース１２２へアクセスする許可をアプリケーションに提供したことに応答して、権限付与サービス１２０から受け取ることができる。ユーザ認証及びユーザ許可を提供する例示的な方法については上述されている。諸実装において、権限付与エンティティ識別子により、他のエンティティ（例えばアクセスブローカモジュール１１８）が、どの権限付与エンティティから権限付与情報を受信したかを識別することが可能になる。
【００５５】
ステップ６０４において、権限付与情報をローカルに格納する。諸実装において、権限付与情報は、アクセスブローカモジュール１１８によって格納され、及び／又はアクセスブローカモジュール１１８に対してアクセス可能な位置に格納される。ステップ６０６において、アプリケーションから、ユーザリソースにアクセスする権限の付与を求める要求を受信する。この要求は、権限付与エンティティ識別子を含む。例えばアクセスブローカモジュール１１８は、この要求をアプリケーション１０８から受け取ることができる。
【００５６】
ステップ６０８において、権限付与情報を、アプリケーションから受け取った権限付与エンティティ識別子に基づいてローカルから取り出し、権限付与情報のアプリケーション識別子を、そのアプリケーションのシステムアプリケーション識別子と比較する。アプリケーション識別子をシステムアプリケーション識別子と比較する例示的方法は、上記に説明されている。ステップ６１０において、アプリケーション識別子がシステムアプリケーション識別子に合致するか判断する。
【００５７】
アプリケーション識別子がシステムアプリケーション識別子に合致する場合（「合致」の場合）、ステップ６１２において、ユーザリソースへのアクセスを可能にするトークンをアプリケーションに提供する。アプリケーション識別子がシステムアプリケーション識別子に合致しない場合（「合致せず」の場合）、ステップ６１４において、アプリケーションがトークンにアクセスするのを妨げる。
【００５８】
諸実装において、プロシージャ６００は、アプリケーションランタイムにおける権限付与サービスとの通信を必要とせずに、アプリケーションに対してユーザリソースにアクセスする権限を付与するかどうかの決定を行うことができる、例示的な技法を例示している。例えばユーザは権限付与サービスと対話して、アプリケーションにユーザリソースへアクセスする権限を付与することができる。ユーザ権限付与トランザクションからの情報を、例えばステップ６０２及び６０４において説明したように、後で取り出すために格納しておくことができる。ユーザリソースへのアクセスを求めるアプリケーションからの後続の要求について、アクセスブローカモジュール１１８は、ローカルに格納された権限付与情報を使用して、権限付与サービスと通信することなく、アプリケーションがユーザリソースにアクセスするのを許可するかどうかを判断することができる。
【００５９】
少なくとも一部の実施形態において、アプリケーションは、上述の持続型認証モードと１つ又は複数の観点で相違する、持続型権限付与モードを保持することができる。例えばアプリケーションは、上述のような技術を介して受信したトークンのような、該アプリケーションがユーザリソースにアクセスすることを可能にするトークンを保持することができる。このトークンは、複数の異なるリソースアクセストランザクションの間において、例えばアプリケーションからのユーザリソースへのアクセスを求める複数の異なる要求に応答して、ユーザリソースへのアクセスを可能にすることができる。アプリケーションがトークンを使用してユーザリソースへのアクセスを求めているとき、該アプリケーションは、そのトークンが有効期限切れであり、その結果ユーザリソースへのアクセスを可能にする効果がないかどうかを確認することができる。トークンが有効期限切れの場合、アプリケーションは、上記の技術を使用して、例えばアクセスブローカモジュール１１８及び／又は権限付与サービス１２０からのような、新しい有効なトークンを取得することができる。したがって、諸実装において、持続型権限付与モードにより、アプリケーションは、複数のリソースアクセストランザクションの間に、該アプリケーションがアクセスを要求する必要なく、例えばアクセスブローカモジュール１１８及び／又は権限付与サービス１２０を介して、ユーザリソースにアクセスすることが可能になる。
【００６０】
＜例示的システム及びデバイス＞
図７は、図１及び２に関連して説明したコンピューティングデバイス１０２を含む、例示的システム７００を図示している。例示的システム７００は、パーソナルコンピュータ（ＰＣ）、テレビジョンデバイス及び／又はモバイルデバイス上でアプリケーションが動作しているときに、シームレスなユーザエクスペリエンスのユビキタスな環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用し、ビデオゲームを使い、ビデオを見ている間等に、あるデバイスから次のデバイスに遷移するときに、共通のユーザエクスペリエンスについて３つ全ての環境において実質的に同様に動作する。
【００６１】
例示的システム７００において、複数のデバイスが中央のコンピューティングデバイスを通じて相互接続されている。中央コンピューティングデバイスは、これらの複数のデバイスに対してローカルであってもよく、またこれら複数のデバイスからリモートに配置されてもよい。１つ又は複数の実装において、中央コンピューティングデバイスは、ネットワーク、インターネット又は他のデータ通信リンクを通じて複数のデバイスに接続される、１つ又は複数のサーバコンピュータのクラウドとすることができる。１つ又は複数の実装において、この相互接続アーキテクチャにより、複数のデバイスにまたがって機能を配信して、これらの複数のデバイスのユーザに共通のシームレスなエクスペリエンスを提供することが可能になる。複数のデバイスはそれぞれ異なる物理的属性及び能力を有し、中央コンピューティングデバイスは、そのデバイスに対するエクスペリエンスの配信を可能にするプラットフォームを使用する。このエクスペリエンスは、そのデバイスに対して調整され、しかも全てのデバイスに対して共通なものである。一実施形態において、あるターゲットデバイスのクラスが作成され、複数のデバイスの汎用クラスに対してエクスペリエンスが調整される。デバイスのクラスを、物理的特徴、利用のタイプ又はデバイスの他の共通の特性によって定義することができる。
【００６２】
様々な実装において、コンピューティングデバイス１０２は、コンピュータ７０２、モバイル７０４及びテレビジョン７０６が使用するような様々な異なる構成を想定する。これらの構成はそれぞれ、一般に異なる構成及び能力を有するデバイスを含み、したがって、コンピューティングデバイス１０２を、異なるデバイスクラスのうちの１つ又は複数に従って構成することができる。例えばコンピューティングデバイス１０２を、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ及びネットブック等のコンピュータ７０２デバイスクラスとして実装することができる。
【００６３】
コンピューティングデバイス１０２を、モバイルフォン、ポータブル音楽プレイヤ、ポータブルゲームデバイス、タブレットコンピュータ及びマルチスクリーンコンピュータ等のモバイルデバイスを含むモバイル７０４デバイスクラスとして実装することもできる。コンピューティングデバイス１０２は、カジュアルな視聴環境において、一般により大きなスクリーンを有するか、そのようなスクリーンに接続されたデバイスを含む、テレビジョン７０６デバイスクラスとして実装されることもできる。これらのデバイスは、テレビジョン、セットトップボックス及びゲームコンソール等を含む。本明細書で説明される技術は、コンピューティングデバイス１０２のこれらの様々な構成によってサポートされ、本明細書で説明される技術の特定の実施例には限定されない。
【００６４】
クラウド７０８は、コンテンツサービス７１２のプラットフォーム７１０を含む、及び／又は表す。プラットフォーム７１０は、ハードウェア（例えばサーバ）の基礎となる機能と、クラウド７０８のソフトウェアリソースを抽象化する。コンテンツサービス７１２は、コンピューティングデバイス１０２からリモートのサーバ上でコンピュータ処理が実行されている間に、利用することができるアプリケーション及び／又はデータを含むことができる。コンテンツサービス７１２を、インターネットを介して、及び／又は携帯電話若しくはＷｉ−Ｆｉ（登録商標）ネットワークなどの加入者ネットワークを通じてサービスとして提供することができる。
【００６５】
プラットフォーム７１０は、リソース及び機能を抽象化して、コンピューティングデバイス１０２を他のコンピューティングデバイスに接続することができる。プラットフォーム７１０は、リソースのスケーリングを抽象化し、プラットフォーム７１０を介して実装されるコンテンツサービス７１２が直面した需要に対して、スケールの対応するレベルを提供するように機能することもできる。したがって、相互接続されるデバイスの実施形態において、本明細書で説明される機能の実装を、システム７００を通じて分散させることができる。例えばアプリケーション１０８、ブラウザ１１０、及びアクセスブローカモジュール１１８の包含により示されているように、機能を部分的にコンピューティングデバイス１０２上に実装し、そしてクラウド７０８の機能を抽象化するプラットフォーム７１０を介して実装することができる。
【００６６】
図８は、例示的デバイス８００の様々なコンポーネントを図示している。例示的デバイス８００は、図１乃至７に関連して説明された、本明細書で説明される技術の実施形態を実装する、任意のタイプのコンピューティングデバイスとして実装されうる。デバイス８００は、デバイスデータ８０４（例えば受信したデータ、受信中のデータ、放送用にスケジュールされたデータ及びデータのデータパケット等）の有線及び／又は無線通信を可能にする通信デバイス８０２を含む。デバイスデータ８０４又は他のデバイスコンテンツは、デバイスの構成設定、デバイスに格納されたメディアコンテンツ、及び／又はデバイスのユーザに関連付けられた情報を含むことができる。デバイス８００上に格納されたメディアコンテンツは、任意のタイプのオーディオ、ビデオ及び／又はイメージデータを含むことができる。デバイス８００は１つ又は複数の入力部８０６を含み、この入力部８０６を介して、ユーザ選択可能な入力、メッセージ、音楽、テレビメディアコンテンツ、録画されたビデオコンテンツ、並びに任意のコンテンツ及び／又はデータソースから受信した任意の他のタイプのオーディオ、ビデオ及び／又はイメージデータなど、任意のタイプのデータ、メディアコンテンツ及び／又は入力を受信することができる。
【００６７】
デバイス８００は通信インタフェース８０８も含む。通信インタフェース８０８を、シリアル及び／又はパラレルインタフェース、無線インタフェース任意のタイプのネットワークインタフェース、モデム、及び任意の他のタイプの通信インタフェース、のうちのいずれか１つ又は複数として実装することができる。通信インタフェース８０８は、デバイス８００と、該デバイス８００とデータを通信する他の電子的なコンピューティング通信デバイスによる通信ネットワークとの間の接続及び／又は通信リンクを提供する。
【００６８】
デバイス８００は、１つ又は複数のプロセッサ８１０（例えばマイクロプロセッサ及びコントローラ等のいずれか）を含む。プロセッサ８１０は、様々なコンピュータ実行可能命令を処理して、デバイス８００のオペレーションを制御し、本明細書で説明される技術の実施形態を実装する。あるいはまた、デバイス８００を、一般に８１２で特定された処理及び制御回路に関連して実装される、ハードウェア、ファームウェア又は固定の論理回路のうちのいずれか１つ又は組み合わせにより実装することができる。図示されていないが、デバイス８００は、システムバス、又はデバイス内の様々なコンポーネントを接続するデータ伝送システムを含むことができる。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は様々なバスアーキテクチャのいずれかを用いるプロセッサ若しくはローカルバスなど、異なるバス構造のいずれか１つ又は組み合わせを含むことができる。
【００６９】
デバイス８００は、１つ又は複数のメモリコンポーネントなどのコンピュータ読取可能媒体８１４も含む。そのようなメモリコンポーネントの例には、ランダムアクセスメモリ（ＲＡＭ）、非揮発性メモリ（例えば読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等のうちのいずれか１つ又は複数）及びディスク記憶デバイスが含まれる。ディスク記憶デバイスは、ハードディスクドライブ、記録可能及び／又は再書き込み可能コンパクトディスク（ＣＤ）、任意のタイプのデジタル多用途ディスク（ＤＶＤ）のような、任意のタイプの磁気又は光記憶デバイスとして実装することができる。デバイス８００は大容量記憶媒体デバイス８１６も含むことができる。
【００７０】
コンピュータ読取可能媒体８１４は、デバイスデータ８０４並びに様々なデバイスアプリケーション８１８及びデバイス８００の動作的態様に関連する任意の他のタイプの情報及び／又はデータを格納する、データ記憶機構を提供する。例えばオペレーティングシステム８２０を、コンピュータ読取可能媒体８１４を用いてコンピュータアプリケーションとして保持し、プロセッサ８１０上で実行することができる。デバイスアプリケーション８１８は、デバイスマネージャ（例えばコントロールアプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定のデバイスにネイティブなコード、特定のデバイスのハードウェア抽象化レイヤ等）を含むことができる。デバイスアプリケーション８１８は、本明細書で実装される技術の諸実施形態を実装する任意のシステムコンポーネント又はモジュールも含む。
【００７１】
この例において、デバイスアプリケーション８１８は、ソフトウェアモジュール及び／又はコンピュータアプリケーションとして示されている、インタフェースアプリケーション８２２及び入出力モジュール８２４を含む。入出力モジュール８２４は、タッチスクリーン、トラックパッド、カメラ及びマイクロフォンなどの、入力をキャプチャするように構成されたデバイスとのインタフェースを提供するのに使用されるソフトウェアを表す。あるいはまた、インタフェースアプリケーション８２２及び入出力モジュールを、ハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組み合わせとして実装することができる。さらに、入出力モジュール８２４は、ビジュアル入力とオーディオ入力をそれぞれキャプチャする別個のデバイスなど、複数の入力デバイスをサポートするように構成されることもある。
【００７２】
デバイス８００は、オーディオ及び／又はビデオ入出力システム８２６も含む。オーディオ及び／又はビデオ入出力システム８２６は、オーディオデータをオーディオシステム８２８に提供し、及び／又はビデオデータをディスプレイシステム８３０に提供する。オーディオシステム８２８及び／又はディスプレイシステム８３０は、オーディオ、ビデオ及びイメージデータを処理、表示、及び／又はそうでなければレンダリングする任意のデバイスを含むことができる。ビデオ信号及びオーディオ信号を、デバイス８００からオーディオデバイス及び／又はディスプレイデバイスに、ＲＦ（無線周波数）リンク、Ｓ−ビデオリンク、コンポジットビデオリンク、コンポーネントビデオリンク、ＤＶＩ（デジタルビデオインタフェース）、アナログオーディオ接続又は他の類似の通信リンクを介して通信することができる。一実施形態において、オーディオシステム８２８及び／又はディスプレイシステム８３０は、デバイス８００の外付けコンポーネントとして実装される。あるいは、オーディオシステム８２８及び／又はディスプレイシステム８３０は、例示的デバイス８００の組み込みコンポーネントとして実装される。
【００７３】
＜結論＞
リソースアクセスの権限付与のための技術を説明した。諸実施形態を、構造的特徴及び／又は方法的動作に特有の言語で説明したが、添付の特許請求の範囲によって定義される実施形態は、必ずしも説明された特定の特徴及び動作に限定されないことを理解されたい。むしろ、これらの特定の特徴及び動作は、特許請求に係る実施形態を実装する例示的な形式として開示されている。
【図１】
0005992524.tif 000002
【図２】
0005992524.tif 000003
【図３】
0005992524.tif 000004
【図４】
0005992524.tif 000005
【図５】
0005992524.tif 000006
【図６】
0005992524.tif 000007
【図７】
0005992524.tif 000008
【図８】
0005992524.tif 000009