(58)【調査した分野】(Int.Cl.,DB名)
前記認証指示が認証の成功を特定するイベントにおいて、前記アカウントパラメータを使用して前記第2のアプリケーションのアカウントに完全または部分的なログインを実施するステップをさらに含む、
請求項1に記載の方法。
前記認証指示が認証の失敗を特定するイベントにおいて、前記第2のアプリケーションのアカウントに完全または部分的なログインを実施するための前記アカウントパラメータを使用することなく、前記第2のアプリケーションが実行される、
請求項2に記載の方法。
前記認証サーバによって、前記クライアントデバイスで実行している前記第1のアプリケーションを認証するために使用される前記アカウント証明書に基づいて前記アカウントパラメータを生成するステップをさらに含み、
前記アカウントパラメータを提供するステップが、前記アカウントパラメータを生成するステップに応答して、前記アカウントパラメータ、および前記第2のアプリケーションを参照する前記アドレスを含む前記リンクを提供するステップをさらに含む、
請求項1から9のいずれか一項に記載の方法。
パラメータを介してアカウント認証情報を渡すシステムであって、前記システムが、1つまたは複数のプロセッサを有する認証サーバで実行されるオーセンティケータを備え、前記オーセンティケータが、
クライアントデバイスで実行している第1のアプリケーションを認証するために使用されるアカウント証明書から導出したアカウントパラメータを、リンクに挿入するために前記クライアントデバイスに提供することであって、前記リンクは、前記クライアントデバイスで実行可能な第2のアプリケーションを参照するアドレスを含み、前記アカウントパラメータは、前記リンク上の対話の通信に応答して前記第1のアプリケーションから前記第2のアプリケーションへ渡される、ことと、
前記アカウントパラメータを前記第1のアプリケーションから前記第2のアプリケーションへ渡すことに続いて、前記第2のアプリケーションを認証するようにとの要求を前記クライアントデバイスの前記第2のアプリケーションから受信することであって、前記要求は前記アカウントパラメータを含む、ことと、
前記第1のアプリケーションに提供され前記リンクを介して前記第2のアプリケーションに渡された前記アカウントパラメータを使用して前記クライアントデバイスの前記第2のアプリケーションを認証することと、
前記クライアントデバイスの前記第2のアプリケーションを前記認証することに基づいて、前記クライアントデバイスの前記第2のアプリケーションの前記認証の成功または失敗のうちの1つを特定する認証指示を送信することとを行うように構成される、
システム。
実行されると1つまたは複数のプロセッサに請求項1から11のいずれか一項に記載の方法を実行させる、アカウント認証情報を渡すための命令を記憶する、コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0020】
以下は、パラメータを介してアカウント認証情報を渡す方法、装置、およびシステムに関する様々な概念の、またそれらの実装形態の、より詳細な説明である。上記で紹介され、また以下でさらに詳細に議論される様々な概念は、説明される概念は実装形態のいかなる特定のやり方にも限定されないため、数々のやり方の任意のやり方で実装され得る。
【0021】
別のアプリケーションへのリンクは、単一のアカウントまたは複数のアカウント(「共有デバイス」)に関連付けられるクライアントデバイスで実行している1つのアプリケーションに提供され得る。例えば、音楽アプリケーションを開くまたはインストールするためのリンクが動画共有ウェブサイトに提供され得る。現時点では、ユーザが第1のアプリケーションでそのようなリンクをクリックすると、クライアントデバイスは途切れなく第2のアプリケーションへ向けられ得る。この時折シームレスな第1のアプリケーションから第2のアプリケーションへの遷移は、ユーザがどのアカウントにサインオンしているかについて一部のユーザに混乱をもたらすことがあり、結果として誤って、または不意に別のアカウントへのアクセスを取得することがある。例えば、第1のアプリケーション、さらに第2のアプリケーションを使用しているユーザは、意図せず第2のアプリケーションについてのアクティビティを公開することがある。これらのプライバシーおよびセキュリティの問題は、特にユーザが時間的に第1のアプリケーションよりだいぶ後に第2のアプリケーションを操作する際、単一のクライアントデバイスにサインオンされた複数のアカウントに関して大きな懸念である。
【0022】
これらのおよび他の技術的な問題に対処するために、本開示はURL認証トークンを活用して様々なアプリケーションをまたいでアカウント情報を渡す。クライアントデバイスはエンコードされたアカウント情報をリンクのURLに埋め込むことによって、またはエンコードされたアカウント情報をアクティビティのファンクションコール(例えば、ANDROID(登録商標) Intentのファンクションコール)を介して渡すことによって、エンコードされたユーザアカウント情報を渡すことができる。クライアントデバイスで実行しているアプリケーションはアカウント情報を潜在的に少なくとも3つの手法で共有することができる。
【0023】
第1の実装形態では、第1のアプリケーションによって使用される外部のアカウント証明書は双方向暗号化機能(「二重難読化(bi-obfuscated)」)を使用して難読化することができる。難読化された識別子は、第2のアプリケーションにリンクするURLに埋め込むことができるか、アクティビティのファンクションコールを介して渡すことができる。第1のアプリケーションから受信されると、第2のアプリケーションは双方向暗号化機能を使用して元々のアカウント証明書を難読化された識別子から復元することができる。アカウント識別子を検証してあるため、第2のアプリケーションは自動的にユーザをその識別子に対応する第2のアプリケーションのアカウントにログインさせることができる。第2のアプリケーションがその識別子に対応するアカウントを含まないイベントにおいては、第2のアプリケーションはユーザがそのアプリケーションにログインすることを阻止することができるか、そうでなければユーザが第2のアプリケーションにログインすることができる前に、さらなる情報をユーザに要求することができる(代替のユーザアカウントの詳細など)。
【0024】
第2の実装形態において、第1のアプリケーションにログインするために使用されるアカウント証明書はフィンガープリント化機能を使用して暗号化することができる。第1の実装形態とは異なって、フィンガープリント化機能は一方向暗号化であるため、この暗号化された識別子は復元不可能であり得る。第2のアプリケーションは同一のアカウントについての暗号化された識別子のそれ自身のコピーを有することができるか、そうでなければ暗号化された識別子へのアクセスを有することができる。同一のアカウントとは、同一のユーザに登録されるアカウントを指してもよい。第1のアプリケーションからの暗号化された識別子の受信に伴い、第2のアプリケーションは2つの暗号化された識別子を比較してこれらの識別子が一致するかどうかを確認することができる。一致していることが分かると、第2のアプリケーションはユーザを、一致識別子を有するアカウントにログインさせることができる。第2のアプリケーションが一致識別子を有するアカウントを含まないか、または一致識別子を有するアカウントが第2のアプリケーションによって確認される中にはないイベントにおいては、第2のアプリケーションはユーザがそのアプリケーションにログインすることを阻止することができるか、そうでなければユーザが第2のアプリケーションにログインすることができる前に、さらなる情報をユーザに要求することができる(代替のユーザアカウントの詳細など)。
【0025】
第3の実装形態によると、2つのアプリケーションの間にそれぞれのアプリケーション内のユーザのアカウントについてのトークンを記憶するために、共有されるバックエンドキャッシュがあってもよい。トークンは第2のアプリケーションにリンクするために第1のアプリケーション上で見えるURLに埋め込むことができる。第2のアプリケーションについて第1のアプリケーションに要求すると、第2のアプリケーションはユーザのアカウントについてのトークンを検索するために共有されるバックエンドへアクセスすることができる。検索されたトークンを使用して、ユーザは自動的に第2のアプリケーションのユーザのアカウントにログインすることができる。
【0026】
図1は、パラメータを介してアカウント認証情報を渡す環境の一実装形態を描いたブロック図である。環境100はネットワーク105を介して少なくとも1つのクライアントデバイス120に接続される少なくとも1つの認証サーバ110を含むことができる。いくつかの実装形態において、環境100はネットワーク105を介して少なくとも1つのクライアント120に接続される少なくとも1つのアプリケーションサーバ115A〜115Nを含むことができる。いくつかの実装形態において、少なくとも1つの認証サーバ110は少なくとも1つのアプリケーションサーバ115A〜115Nに接続することができる。いくつかの実装形態において、環境100は少なくとも1つの認証サーバ100または少なくとも1つのアプリケーションサーバ115A〜115Nに接続されるリモートトークンキャッシュ125を含むことができる。いくつかの実装形態において、環境100はコンテンツプロバイダデバイスおよびネットワーク105に接続されるコンテンツパブリッシャデバイスを含むことができる。
【0027】
さらに詳細には、認証サーバ110は少なくとも1つのプロセッサおよびメモリ、すなわち処理回路を含むことができる。メモリはプロセッサ実行可能な命令を記憶し、プロセッサによって実行されると、そのプロセッサに本明細書において説明される動作の1つまたは複数を実施させる。プロセッサとしてはマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはその組合せが挙げられ得る。メモリとしては、限定しないが、電子的、光学的、磁気的、もしくは他のあらゆる記憶装置、またはプロセッサにプログラム命令を提供することができる送信デバイスが挙げられ得る。メモリとしては、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光学媒体、またはプロセッサが命令を読み取ることができる他のあらゆる適切なメモリがさらに挙げられ得る。命令はあらゆる適切なコンピュータプログラム言語からのコードを含むことができる。データ処理システムは1つまたは複数のコンピューティングデバイスまたは様々な機能を実施することができるサーバを含むことができる。いくつかの実装形態において、データ処理システムはオークションをホスティングするように構成されるコンテンツ配置システムを含むことができる。いくつかの実装形態において、データ処理システムはコンテンツ配置システムを含まないが、ネットワーク105を介してコンテンツ配置システムと通信するように構成される。
【0028】
ネットワーク105はインターネットローカル、ワイド、メトロ、または他のエリアネットワーク、イントラネット、サテライトネットワークなどのコンピュータネットワーク、ボイスもしくはデータ携帯電話通信ネットワークおよびその組合せなどの他のコンピュータネットワークを含むことができる。システム100の認証サーバ110はネットワーク105を介して例えば、少なくとも1つのアプリケーションサーバ115A〜115N、および少なくとも1つのクライアントデバイス120と通信することができる。ネットワーク105は、クライアントデバイス120、認証サーバ110、および1つまたは複数のコンテンツソース、とりわけウェブサーバなどの間で情報を中継するコンピュータネットワークのあらゆる形態であってもよい。いくつかの実装形態において、ネットワーク105はインターネットおよび/またはローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、サテライトネットワーク、もしくは他のタイプのデータネットワークなどの、他のタイプのデータネットワークを含むことができる。ネットワーク105はまた、ネットワーク105内でデータを受信および/または送信するように構成されるあらゆる数のコンピューティングデバイス(例えば、コンピュータ、サーバ、ルータ、ネットワークスイッチ、など)を含むことができる。ネットワーク105はあらゆる数のハードワイヤードおよび/または無線の接続をさらに含むことができる。クライアントデバイス120は、ネットワーク105内で他のコンピューティングデバイスにハードワイヤードされる(例えば、光ファイバ、CAT5ケーブルなどを介して)送受信機と無線通信する(例えば、WiFi、セルラー、ラジオなどを介して)ことができる。クライアントデバイス120はまたプロキシデバイス(例えば、ルータ、ネットワークスイッチ、またはゲートウェイ)を介してネットワーク105のコンピューティングデバイスと無線通信することができる。
【0029】
クライアントデバイス120は、コンテンツパブリッシャデバイスによって提供されるコンテンツ(例えば、一次的なウェブページコンテンツ、または他の情報リソース)、およびコンテンツプロバイダデバイスによって提供されるコンテンツ(例えば、情報リソース内で表示するために構成されるコンテンツ要素)などのデータを表示するためにネットワーク105を介して通信するように構成されるコンピューティングデバイスを含むことができる。クライアントデバイス120としてはデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、家庭用コンピューティングデバイス、サーバ、クライアント、デジタル動画レコーダ、テレビジョン用セットトップボックス、ビデオゲーム機、またはネットワーク105を介して通信するように構成される他のあらゆるコンピューティングデバイスを挙げることができる。クライアントデバイス120はエンドユーザがコンテンツを受信するために要求を送信する際に通過する通信デバイスであることができる。要求は探索エンジンへの要求であってもよく、要求は探索クエリを含むことができる。いくつかの実装形態において、要求はウェブページをアクセスための要求を含むことができる。
【0030】
クライアントデバイス120はプロセッサおよびメモリ、すなわち処理回路を含むことができる。メモリは機械命令を記憶し、プロセッサによって実行されると、プロセッサに本明細書において説明される動作の1つまたは複数を実施させる。プロセッサとしてはマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはその組合せが挙げられ得る。メモリとしては、限定しないが、電子的、光学的、磁気的、もしくは他のあらゆる記憶装置、またはプロセッサにプログラム命令を提供することができる送信デバイスが挙げられ得る。メモリとしては、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光学媒体、またはプロセッサが命令を読み取ることができる他のあらゆる適切なメモリがさらに挙げられ得る。命令はあらゆる適切なコンピュータプログラム言語からのコードを含むことができる。
【0031】
クライアントデバイス120はまた1つまたは複数のユーザインターフェースデバイスを含むことができる。一般に、ユーザインターフェースデバイスとは感覚的な情報(例えば、ディスプレイ上での可視化、1つまたは複数の音、など)を生成することによってデータをユーザに伝達する、および/またはユーザからの感覚的な情報を電子的な信号に変換するあらゆる電子的なデバイスを指す(例えば、キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、マイクロフォン、など)。1つまたは複数のユーザインターフェースデバイスはクライアントデバイス120のハウジングに対して内部にあってもよく(例えば、内蔵型のディスプレイ、マイクロフォン、など)、またはクライアントデバイス120のハウジングに対して外部にあってもよい(例えば、クライアントデバイス120に接続されるモニタ、クライアントデバイス120に接続されるスピーカ、など)。いくつかの実装形態において、クライアントデバイス120は電子的なディスプレイを含むことができ、1つまたは複数のコンテンツソースからおよび/またはネットワーク105を介してコンテンツパブリッシャデバイスもしくはコンテンツプロバイダデバイスから受信したウェブページデータを使用してウェブページを視覚的に表示する。
【0032】
認証サーバ110は少なくとも1つのサーバを含むことができる。認証サーバ110はクライアントデバイス120で実行する様々なアプリケーションについての中央認証オーソリティとして動作することができる。いくつかの実装形態において、認証サーバ110は少なくとも1つのデータセンタまたはサーバファーム内に位置する複数のサーバを含むことができる。いくつかの実装形態において、リモートトークンキャッシュ125は認証サーバ110の一部であってもよい。認証サーバ110は少なくとも1つのオーセンティケータ130を含むことができる。オーセンティケータ130は少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、アプライアンス、またはネットワーク105を介してデータベースおよび他のコンピューティングデバイス(例えば、アプリケーションサーバ115A〜115N、クライアントデバイス120、およびリモートトークンキャッシュ125)と通信するように構成されるプログラム可能論理アレイなどの他の論理デバイスを含むことができる。オーセンティケータ130は少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含む、または実行することができる。オーセンティケータ130は1つまたは複数のスクリプトを実行するよう構成される1つまたは複数のプロセッサなどの、ソフトウェアおよびハードウェアの組合せを含むことができる。
【0033】
認証サーバ110のオーセンティケータ130は認証するようにとの要求をクライアントデバイス120または他のアプリケーションサーバ115A〜115Nから受信することができる。認証するようにとの要求はアカウント証明書を含むことができる。アカウント証明書はアカウント識別子、アカウントアクセスコード、およびとりわけ他の暗号化パラメータを含むことができる。オーセンティケータ130はアカウント識別子およびアカウントアクセスコードを特定することができる。オーセンティケータ130はアカウントアクセスコードを、アカウント識別子について以前に記憶したアカウントアクセスコードと比較することができる。アクセスコードが一致する場合、オーセンティケータ130はアカウント証明書を認証し、認証の確認を、認証するようにとの要求を送信したクライアントデバイス120または他のアプリケーションサーバ115A〜115Nに送信することができる。アクセスコードが一致しない場合、オーセンティケータ130は認証に失敗したという指示を、認証するようにとの要求を送信したクライアントデバイス120または他のアプリケーションサーバ115A〜115Nに送信することができる。環境100に関してオーセンティケータ130の機能性を本明細書の以下で詳述する。
【0034】
アプリケーションサーバ115A〜115Nは少なくとも1つのサーバを含むことができる。アプリケーションサーバ115A〜115Nは、クライアントデバイス120で実行する様々なアプリケーションについてクライアントデバイス120とデータを交換することができる。いくつかの実装形態において、アプリケーションサーバ115A〜115Nは少なくとも1つのデータセンタまたはファーム内に位置する複数のサーバを含むことができる。いくつかの実装形態において、リモートトークンキャッシュ125は認証サーバ110の一部であってもよい。アプリケーションサーバ115A〜115Nは少なくとも1つのサーバ側認証インターフェース135A〜135Nを含むことができる。サーバ側認証インターフェース135A〜135Nは少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、アプライアンス、またはネットワーク105を介してデータベースおよび他のコンピューティングデバイス(例えば、アプリケーションサーバ115A〜115N、クライアントデバイス120、およびリモートトークンキャッシュ125)と通信するように構成されるプログラム可能論理アレイなどの他の論理デバイスを含むことができる。認証インターフェース135A〜135Nは少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含む、または実行することができる。認証インターフェース135A〜135Nは1つまたは複数のスクリプトを実行するよう構成される1つまたは複数のプロセッサなどの、ソフトウェアおよびハードウェアの組合せを含むことができる。認証インターフェース135A〜135Nの機能性を本明細書の以下で詳述する。
【0035】
クライアントデバイス120はプロセッサ140、ネットワークインターフェース145、入力/出力(I/O)インターフェース150、およびメモリ155を含むことができる。プロセッサ140、ネットワークインターフェース145、I/Oインターフェース150、およびメモリ155は
図5と併せて本明細書で説明されるコンポーネントであってもよい。メモリ155はオペレーティングシステムもしくはウェブブラウザ、またはクライアントデバイス120によって処理される他のコンピュータ実行可能な命令を実行することができるかそうでなければ呼び出すことができる他のあらゆるコンピュータプログラムなどのプラットフォームアプリケーション160を含むことができる。プラットフォームアプリケーション160は1つまたは複数のアプリケーション165A〜165Nを含むことができる。いくつかの実装形態において、それぞれのアプリケーション165A〜165Nは情報リソース(例えば、ウェブページ)であってもよい。いくつかの実装形態において、それぞれのアプリケーション165A〜165Nはプラットフォーム160によって処理される別個のコンピュータ実行可能であってもよい。それぞれのアプリケーション165A〜165Nはリンク170A〜170N、クライアント側認証インターフェース175A〜175N、パラメータ生成器180A〜180Nを含むことができる。いくつかの実装形態において、プラットフォームアプリケーション160はパラメータ転送器190を含むことができる。いくつかの実装形態において、プラットフォームアプリケーション160はローカルトークンキャッシュ195を含むことができる。少なくとも1つのアプリケーション165Aはアカウント証明書185を含むことができるが、一方他のアプリケーション165B〜165Nはアカウント証明書185を欠いていてもよい。アカウント証明書185はアカウント識別子、アカウントアクセスコード、およびとりわけ他の暗号化パラメータを含むことができる。アプリケーション165A〜165Nの少なくとも1つは、認証サーバ110のオーセンティケータ130またはアプリケーションサーバ115A〜115Nのサーバ側認証インターフェース135A〜135Nで認証または検証されたアカウント証明書185を有することができる。他のアプリケーション165A〜165Nも少なくとも1つは、アカウント証明書185を欠いていてもよいが、なお認証サーバ110のオーセンティケータ130またはアプリケーションサーバ115A〜115Nのサーバ側認証インターフェース135A〜135Nで認証またはそうでなければ検証されてもよい。いくつかの実装形態において、アプリケーション165A〜165Nの認証インターフェース175A〜175Nは、アカウント証明書185を認証サーバ110へ、または対応するアプリケーションサーバ115A〜115Nへ送信することができる。例えば、クライアントデバイス120のユーザはアカウント識別子およびアカウントアクセスコード(例えば、パスワードまたは個人識別番号(PIN))をアプリケーション165Aのグラフィカルユーザインターフェースに入力してあってもよい。送信ボタンで対話が発生すると、アプリケーション165Aはアカウント識別子およびアカウントアクセスコードを認証サーバ110との認証のためのアカウント証明書185の一部として送信することができる。
【0036】
アカウント証明書185を受信すると、認証サーバ110のオーセンティケータ130はアカウント証明書185を解析してアカウント識別子、およびとりわけアクセスコードを特定することができる。オーセンティケータ130はアプリケーション165A〜165Nからのアクセスコードをアカウント識別子について認証サーバ110に記憶されるアクセスコードと比較することができる。2つのアクセスコード同士に一致がない場合、オーセンティケータ130は認証に失敗したという指示を、アカウント証明書185が受信されたアプリケーション165A〜165Nに送信することができる。2つのアクセスコード同士に一致がある場合、オーセンティケータ130はアカウント証明書185が受信されたアプリケーション165A〜165Nについてのアカウント証明書185を認証またはそうでなければ検証することができる。オーセンティケータ130は次いで認証に成功したという指示を対応するアプリケーション165A〜165N送信することができる。アカウント証明書185が成功裏に認証されているため、オーセンティケータ130または個別のアプリケーション165A〜165Nはアカウントパラメータを以下で詳述されるやり方でアカウント証明書185から導出することができる。
【0037】
アプリケーション165A〜165Nに関して、最初にアカウント証明書185無しで、アプリケーション165A〜165Nのそれぞれの認証インターフェース175A〜175Nは以下で詳述されるようにパラメータ転送器190を使用してリンク170A〜175Nを介してアカウント証明書185を受信するように特に構成され得る。いくつかの実装形態において、アプリケーション165A〜165Nのそれぞれの認証インターフェース175A〜175Nはアプリケーションプログラミングインターフェースを使用してアカウント証明書185を解析または復元することができる。アプリケーションプログラミングインターフェースは、アプリケーション165A〜165Nについてのデータを通信するためまたは中継するための定義およびプロトコル(例えば、アカウント証明書185またはアカウント証明書185から導出したアカウントパラメータ)を含むことができる。いくつかの実装形態において、それぞれのアプリケーション165A〜165Nの認証インターフェース175A〜175Nはアプリケーションプログラミングインターフェースを使用してアプリケーション165A〜165Nを別のアプリケーション165A〜165Nのアカウント証明書185で認証することができる。いくつかの実装形態において、それぞれのアプリケーション165A〜165Nの認証インターフェース175A〜175Nはアプリケーションプログラミングインターフェースを使用して認証サーバ110のオーセンティケータ130とインターフェースまたは通信することができる。アプリケーション165A〜165Nのそれぞれの認証インターフェース175A〜175Nの機能性に関するさらなる詳細を以下で説明する。
【0038】
それぞれのアプリケーション165A〜165Nはアプリケーションサーバ115A〜115Nの1つに関連付けられ得る。いくつかの実装形態において、それぞれのアプリケーション165A〜165Nは特定のドメインについての情報リソース(例えば、ウェブページ)または1つまたは複数の情報リソースを含み得るウェブアプリケーションを含むことができる。いくつかの実装形態において、それぞれのアプリケーション165A〜165Nは、そうでなければコンピュータプログラム、コンピュータ可読命令、または個別のアプリケーションサーバ115A〜115Nによって提供される実行可能ファイルのインスタンスであってもよい。いくつかの実装形態において、アプリケーション165A〜165Nの一部はなおクライアントデバイス120にインストールすることができる。いくつかの実装形態において、アプリケーションサーバ115A〜115Nまたはアプリケーション配信サーバは、クライアントデバイス120からの要求に応答してアプリケーション165A〜165Nを提供することができる。いくつかの実装形態において、アプリケーション165A〜165Nの一部は既にクライアントデバイス120にインストールされてあってもよい。それぞれのアプリケーション165A〜165Nはネットワーク105を介してアプリケーションサーバ115A〜115Nの1つと通信していてもよい。それぞれのアプリケーション165A〜165Nに提供されるデータは、個別のアプリケーションサーバ115A〜115Nによって管理されてもよい。それぞれのアプリケーション165A〜165Nはアプリケーションサーバ115A〜115Nによってクライアントデバイス120に提供されてもよい。それぞれのアプリケーション165A〜165Nは集中型サーバ(例えば、アプリケーション配信サーバ)によってクライアントデバイス120に提供されてもよい。
【0039】
それぞれのアプリケーション165A〜165Nは少なくとも1つのリンク170A〜170N(例えば、ハイパーリンク)を含むことができる。いくつかの実施形態において、それぞれのアプリケーション165A〜165Nは1つまたは複数の情報リソース(例えば、ウェブページ)を含むことができる。1つまたは複数の情報リソースの少なくとも1つはリンク170A〜170Nを含むことができる。それぞれのリンク170A〜170Nは同一のアプリケーション165A〜165N内の特定の情報リソースへの参照機構であってもよい。それぞれのリンク170A〜170Nはまた指定されたアプリケーション(例えば、アプリケーション165A〜165N)への参照機構であってもよい。それぞれのリンク170A〜170Nはプロトコル(例えば、ハイパーテキスト転送プロトコル)ならびにホスト名およびパス名(例えば、Uniform Resource Locator(URL)またはUniform Resource Identifier(URI))を伴うアドレスを含むことができる。それぞれのリンク170A〜170Nのアドレスは別のアプリケーション165A〜165Nを参照することができる。いくつかの実装形態において、それぞれのリンク170A〜170Nはまたリンクパラメータ(例えば、クエリストリングなどのURLパラメータ)を含むことができる。リンクパラメータはアカウントパラメータを含むことができる。アカウントパラメータはアプリケーション165A〜165Nによって使用され、認証証明書185と共に別のアプリケーション165A〜165Nに渡すことができる。アカウントパラメータはアカウント証明書185から生成することができ、また様々なタイプのものであってもよい。生成され使用されるアカウントパラメータのタイプはアプリケーション165A〜165Nによってプリセットされてもよく、またはパラメータタイプポリシーに従って決定されてもよい。いくつかの実装形態において、アカウントパラメータは生成されてもよく、アプリケーション165A〜165Nに関連付けられるアプリケーションサーバ115A〜115Nによって提供されてもよい。いくつかの実装形態において、アカウントパラメータは生成されてもよく、認証サーバ110によって提供されてもよい。いくつかの実装形態において、アカウントパラメータはクライアントデバイス120においてパラメータ生成器180A〜180Nによって生成されてもよい。
【0040】
いくつかの実装形態において、アカウントパラメータはアカウント証明書185の難読化されたもの(obfuscation)を含むことができる。アカウント証明書185の難読化されたものは認証サーバ110、アプリケーションサーバ115A〜115N、またはクライアントデバイス120のパラメータ生成器180によって生成することができる。アカウント証明書185の難読化されたものは英数字の値を含むことができる。アカウント証明書185の難読化されたものは認証サーバ110、またはリンク170A〜170Nのパラメータの一部としてアプリケーションサーバ115A〜115Nによって提供されてもよい。アカウント証明書185の難読化されたものはリンク170A〜170Nで対話が発生する際、クライアントデバイスのパラメータ生成器180によって生成されてもよい。難読化されたものは暗号学的ハッシュ関数などの双方向暗号化機能を使用して生成することができる。双方向暗号化機能はアカウント識別子、アカウントアクセスコード、および/または他の暗号化パラメータの組合せに適用することができる。アカウント証明書185を双方向暗号化機能で難読化することによって、アカウント証明書185は後に同一の双方向暗号化機能を再適用することによってアカウントパラメータから復元することができる。
【0041】
いくつかの実装形態において、アカウントパラメータはアカウント証明書185のフィンガープリントを含むことができる。アカウント証明書185のフィンガープリントは認証サーバ110、アプリケーションサーバ115A〜115N、またはクライアントデバイス120のパラメータ生成器180によって生成することができる。アカウント証明書185のフィンガープリントは英数字の値を含むことができる。アカウント証明書185のフィンガープリントは認証サーバ110、またはリンク170A〜170Nのパラメータの一部としてアプリケーションサーバ115A〜115Nによって提供されてもよい。アカウント証明書185のフィンガープリントはリンク170A〜170Nで対話が発生する際、クライアントデバイスのパラメータ生成器180によって生成されてもよい。フィンガープリントはフィンガープリント化アルゴリズムなどの一方向暗号化機能を使用して生成することができる。一方向暗号化機能はアカウント識別子、アカウントアクセスコード、および/または他の暗号化パラメータの組合せに適用することができる。生成されると、アカウント証明書185のフィンガープリントはメモリ155、アプリケーションサーバ115A〜115Nまたは認証サーバ110に記憶することができる。アカウント証明書185を一方向暗号化機能でフィンガープリント化することによって、元々のアカウント証明書185は他のアプリケーション165B〜165Nならびに他のアプリケーションサーバ115B〜115N、またはネットワーク105に接続される他のあらゆるデバイスから隠されたままとなることができる。
【0042】
いくつかの実装形態において、アカウントパラメータはアカウント証明書185に対応するトークンを含むことができる。アカウント証明書185に対応するトークンは認証サーバ110、アプリケーションサーバ115A〜115N、またはクライアントデバイス120のパラメータ生成器180によって生成することができる。アカウント証明書185に対応するトークンは英数字の値を含むことができる。トークンは認証サーバ110、またはリンク170A〜170Nのパラメータの一部としてアプリケーションサーバ115A〜115Nによって提供されてもよい。アカウント証明書185に対応するトークンはリンク170A〜170Nとの対話が発生する際、クライアントデバイスのパラメータ生成器180によって生成されてもよい。トークンはアカウント識別子、アカウントアクセスコード、および/または他の暗号化パラメータの組合せを使用して生成することができる。いくつかの実装形態において、トークンは次いでローカルトークンキャッシュ195においてパラメータ生成器180A〜180Nによって記憶されてもよい。いくつかの実装形態において、トークンはリモートトークンキャッシュ125において認証サーバ110またはアプリケーションサーバ115A〜115Nによって記憶されてもよい。アカウント証明書185からトークンを生成することによって、元々のアカウント証明書185は要求があるとローカルトークンキャッシュ195またはリモートトークンキャッシュ125から検索することができる。
【0043】
リンク170A〜170Nとの対話イベントが発生すると(例えば、クリック、マウスオーバー、スクロール、スクリーンタッチ、など)、パラメータ転送器190はリンク170A〜170Nのアカウントパラメータを1つのアプリケーション165A〜165Nからリンク170A〜170Nによって参照されるアプリケーション165A〜165Nに渡すことができる。いくつかの実装形態において、パラメータ転送器190はリンク170A〜170Nを介してディープリンク手法を使用してアカウントパラメータを直接渡すことができる。パラメータ転送器190はリンク170A〜170Nを解析して、リンク170A〜170Nのアドレスによって参照されるアプリケーション165A〜165Nを特定することができる。プラットフォームアプリケーション160は次いでリンク170A〜170Nのアドレスに対応するアプリケーション165A〜165Nを実行することができる。パラメータ転送器190はまたリンク170A〜170Nを解析してリンク170A〜170Nのリンクパラメータを特定することができ、リンク170A〜170Nのリンクパラメータをリンク170A〜170Nによって参照されるアプリケーション165A〜165Nに(アカウントパラメータと共に)渡すことができる。いくつかの実装形態において、パラメータ転送器190はアカウントパラメータを、アクティビティのファンクションコールなどのファンクションコール(例えば、ANDROID(登録商標) Intentのファンクションコール)を使用して1つのアプリケーション165A〜165Nからリンク170A〜170Nによって参照される他のアプリケーション165A〜165Nに渡すことができる。リンク170A〜170Nからアカウントパラメータが特定されると、パラメータ転送器190はそのアカウントパラメータでファンクションコールを呼び出し、アカウントパラメータをリンク170A〜170Nによって参照されるアプリケーション165A〜165Nに中継または渡すことができる。
【0044】
いくつかの実装形態において、パラメータ転送器190はリンク170A〜170Nを介して保留された(deferred)ディープリンク手法を使用してアカウントパラメータを渡すことができる。リンク170A〜170Nはクライアントデバイス120にアプリケーション165A〜165Nをダウンロードおよびインストールするようにとの要求に対応することができる。いくつかの実装形態において、パラメータ転送器190はアプリケーション165A〜165Nをダウンロードおよびインストールするようにとの要求としてリンク170A〜170Nを特定することができる。パラメータ転送器190はメモリ155にリンク170A〜170Nのアカウントパラメータを記憶することができる。パラメータ転送器190はアプリケーション165A〜165Nのダウンロードおよびインストールの進行状況を継続的に監視することができる。アプリケーション165A〜165Nのダウンロードが終了すると、プラットフォームアプリケーション160はアプリケーション165A〜165Nの実行を開始することができ、パラメータ転送器190はアカウントパラメータをインストールされたアプリケーション165A〜165Nに渡すことができる。
【0045】
いくつかの実装形態において、対話イベントに応答して、パラメータ生成器180A〜180Nは本明細書において上で詳述した手法を使用してアカウントパラメータを生成することができる。パラメータ生成器180A〜180Nはリンク170A〜170Nを解析して、リンク170A〜170Nがアカウントパラメータを含むかどうかを判断することができる。リンク170A〜170Nがアカウントパラメータを含まない場合、パラメータ生成器180A〜180Nは本明細書において上で詳述した手法を使用してアカウントパラメータを生成することができる。リンク170A〜170Nがアカウントパラメータを含む場合、パラメータ転送器190はそのアカウントパラメータを特定し、アカウントパラメータをリンク170A〜170Nによって参照されるアプリケーション165A〜165Nに渡すことができる。
【0046】
認証パラメータが渡されると、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nの認証インターフェース175A〜175Nは、認証サーバ110のサーバ側認証インターフェース135A〜135Nで認証を開始することができる。サーバ側認証インターフェース135A〜135Nは次いでクライアントデバイス120のアプリケーション165A〜165Nの代わりに認証サーバ110で認証を続けることができる。いくつかの実装形態において、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nは直接認証サーバ110のオーセンティケータ130で認証を開始できる。認証インターフェース175A〜175Nはアカウントパラメータを解析して、以前にログインしたアプリケーション165A〜165Nから受信したアカウントパラメータのパラメータタイプを決定することができる。いくつかの実装形態において、認証インターフェース175A〜175Nはとりわけアカウントパラメータの長さおよびデータタイプ(例えば、数字、英数字、など)を特定することによってパラメータタイプを決定し、特定された長さおよびデータタイプをそのパラメータタイプについて指定された長さおよびデータタイプと比較することができる。上述のように、パラメータタイプはアカウント証明書185の難読化されたもの、フィンガープリント化されたアカウント証明書185、とりわけアカウント証明書185に対応するトークンであることができる。
【0047】
特定されたパラメータタイプがアカウント証明書185の難読化されたものである場合、元々のアカウント証明書185は元々認証されたプリケーション165A〜165Nから渡されたアカウントパラメータから復元することができる。次に
図2Aを参照すると、アカウントパラメータのパラメータタイプが難読化された証明書225Aである場合のアカウント証明書185を認証する環境200Aが描写されている。パス210〜240はネットワーク105を通る通信リンクであってもよい。
図1に関して、第1のアプリケーションサーバ115Aはアプリケーション165Aを(パス210を介して)クライアントデバイス120に提供してあってもよい。第1のアプリケーション115Aまたは認証サーバ110は(パス210またはパス215を介して)第2のアプリケーション165Bを参照するリンク170Aを提供してあってもよい。いくつかの実装形態において、クライアントデバイス120のユーザによって入力されたアカウント証明書185はクライアント側認証インターフェース175Aによって(パス210を介して)第1のアプリケーションサーバ115Aに渡されてもよい。第1のサーバ側認証インターフェース135Aは次いでアカウント証明書185を(パス220を介して)認証サーバ110で認証することができる。認証サーバ110のオーセンティケータ130は次いでアカウント証明書185の認証を検証することができ、アプリケーションサーバ115Aに(パス220を介して)確認を送信することができる。アプリケーションサーバ115Aの第1の認証インターフェース135Aは次いで第1のアプリケーション165Aに(パス210を介して)確認を送信することができる。いくつかの実装形態において、クライアントデバイス120の第1のアプリケーション165Aはアカウント証明書185を直接認証サーバ110に(パス215を介して)送信することができる。認証サーバ110のオーセンティケータ130は次いでアカウント証明書185の認証を検証することができ、(パス215を介して)認証の確認を返す。
【0048】
第1のアプリケーション165Aのリンク170Aにイベント205がある場合(例えば、クリック、マウスオーバー、など)、パラメータ転送器190はアカウント証明書185から生成された難読化された証明書225Aを、URLパラメータを介して、またはファンクションコールを介して第2のアプリケーション165Bに渡すことができる。いくつかの実装形態において、クライアント側認証インターフェース175A〜175Nは双方向暗号化アルゴリズムを使用して難読化された証明書225Aから元々のアカウント証明書185を復元することができる。双方向暗号化アルゴリズムはアカウントパラメータを生成するために使用されるものと同一であってもよい。復元されると、クライアント側認証インターフェース175Bはアカウント証明書185を(パス235を介して)第2のアプリケーション165Bを管理する第2のアプリケーションサーバ115Bに送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証135Bは次いで認証サーバ110で復元されたアカウント証明書185を認証のために(パス240を介して)送信することができる。
【0049】
第2のアプリケーションサーバ115Bによって難読化された証明書225Aから復元されたアカウント証明書185を受信しているため、認証サーバ110は認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致は復元されたアカウント証明書185と認証サーバ110で記憶されたアカウント証明書の1対1の対応(例えば、文字対文字)であってもよい。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)確認メッセージを送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)確認を送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)失敗の指示を送信することができる。いくつかの実装形態において、失敗の指示は応答パケットの形態であってもよい。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)失敗の指示を送信することができる。
【0050】
いくつかの実装形態において、クライアント側認証インターフェース175Bは復元したアカウント証明書185を(パス240を介して)認証サーバ110に直接送信することができる。第2のアプリケーション165Bによって難読化された証明書225Aから復元されたアカウント証明書185を受信しているため、認証サーバ110は認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bのサーバ側認証インターフェース135Bに(パス235を介して)確認メッセージを送信することができる。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bの認証インターフェース175Bに(パス235を介して)失敗の指示を送信することができる。
【0051】
いくつかの実装形態において、クライアント側認証インターフェース175A〜175Nは難読化された証明書225Aを直接(パス230を介して)認証サーバ110に送信することができる。オーセンティケータ130は次いで第2のアプリケーション165Bから受信した難読化された証明書225Aから元々のアカウント証明書185を復元することができる。難読化された証明書225Aからアカウント証明書185を復元しているため、認証サーバ110は認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bのクライアント側認証インターフェース175Bに(パス230を介して)確認メッセージを送信することができる。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bのクライアント側認証インターフェース175Bに(パス230を介して)失敗の指示を送信することができる。
【0052】
いくつかの実装形態において、クライアント側認証インターフェース175A〜175Nは難読化された証明書225Aを(パス235を介して)第2のアプリケーションサーバ115Bに送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証135Bは次いで認証サーバ110で復元されたアカウント証明書185を認証のために(パス240を介して)送信することができる。第2のアプリケーションサーバ115Bから難読化された証明書225Aを受信しているため、認証サーバ110は難読化された証明書225Aからアカウント証明書185を復元することができる。認証サーバ110のオーセンティケータ130は、認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)確認メッセージを送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)確認を送信することができる。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)失敗の指示を送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)失敗の指示を送信することができる。
【0053】
特定されたパラメータタイプがアカウント証明書185のフィンガープリントである場合、渡されたアカウント証明書185のフィンガープリントを、認証のために以前のフィンガープリントと比較することができる。次に
図2Bを参照すると、フィンガープリント化された証明書225Bを使用してアカウント証明書185を認証する環境200Bが図示されている。パス210〜240はネットワーク105を通る通信リンクであってもよい。
図1に関して、第1のアプリケーションサーバ115Aはアプリケーション165Aを(パス210を介して)クライアントデバイス120に提供してあってもよい。第1のアプリケーション115Aまたは認証サーバ110は(パス210またはパス215を介して)第2のアプリケーション165Bを参照するリンク170Aを提供してあってもよい。いくつかの実装形態において、クライアントデバイス120のユーザによって入力されたアカウント証明書185はクライアント側認証インターフェース175Aによって(パス210を介して)第1のアプリケーションサーバ115Aに渡されてもよい。サーバ側認証インターフェース135Aは次いでアカウント証明書185を(パス220を介して)認証サーバ110で認証することができる。認証サーバ110のオーセンティケータ130は次いでアカウント証明書185の認証を検証することができ、アプリケーションサーバ115Aに(パス220を介して)確認を送信することができる。アプリケーションサーバ115Aの第1の認証インターフェース135Aは次いで第1のアプリケーション165Aに(パス210を介して)確認を送信することができる。いくつかの実装形態において、クライアントデバイス120の第1のアプリケーション165Aはアカウント証明書185を直接認証サーバ110に(パス215を介して)送信することができる。認証サーバ110のオーセンティケータ130は次いでアカウント証明書185の認証を検証することができ、(パス215を介して)認証の確認を返す。オーセンティケータ130はまたフィンガープリント化された証明書225Bを認証サーバ110に記憶することができる。いくつかの実装形態において、フィンガープリント化された証明書225Bはアプリケーションサーバ115Aおよび115Bに、またはアプリケーション165Aおよび165Bについてはクライアントデバイス120に記憶することができる。
【0054】
第1のアプリケーション165Aのリンク170A上のイベント205に応答して、パラメータ転送器190はアカウント証明書185から生成されたフィンガープリント化された証明書225BをURLパラメータを介して、またはファンクションコールを介して第2のアプリケーション165Bに渡すことができる。フィンガープリント化された証明書225Bは一方向暗号化アルゴリズムを使用して生成されてもよく、認証サーバ110に記憶されてもよい。クライアント側認証インターフェース175Bはフィンガープリント化された証明書225Bを(パス235を介して)第2のアプリケーション165Bを管理する第2のアプリケーションサーバ115Bに送信することができる。第2のアプリケーションサーバ115Bからフィンガープリント化された証明書225Bを受信しているため、認証サーバ110はフィンガープリント化された証明書225Bを以前に記憶されているフィンガープリント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)確認メッセージを送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)確認を送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)失敗の指示を送信することができる。いくつかの実装形態において、失敗の指示は応答パケットの形態であってもよい。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)失敗の指示を送信することができる。
【0055】
いくつかの実装形態において、クライアント側認証インターフェース175A〜175Nはフィンガープリント化された証明書225Bを直接(パス230を介して)認証サーバ110に送信することができる。オーセンティケータ130は次いで第2のアプリケーション165Bから受信されたフィンガープリント化された証明書225Bを送信することができる。フィンガープリント化された証明書225Bを受信しているため、認証サーバ110はフィンガープリント化された証明書225Bを以前に記憶されているフィンガープリント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bの認証インターフェース175Bに(パス235を介して)確認メッセージを送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bの認証インターフェース175Bに(パス230を介して)失敗の指示を送信することができる。いくつかの実装形態において、失敗の指示は応答パケットの形態であってもよい。
【0056】
特定されたパラメータタイプがアカウント証明書185に対応するトークンである場合、元々のアカウント証明書185を、トークンを使用して検索して認証処理を完了することができる。次に
図2Cを参照すると、証明書トークン225Cを使用してアカウント証明書185を認証する環境200Cが示されている。パス210〜265はネットワーク105を通る通信リンクであってもよい。
図1に関して、第1のアプリケーションサーバ115Aはアプリケーション165Aを(パス210を介して)クライアントデバイス120に提供してあってもよい。第1のアプリケーション115Aまたは認証サーバ110は(パス210またはパス215を介して)第2のアプリケーション165Bを参照するリンク170Aを提供してあってもよい。いくつかの実装形態において、クライアントデバイス120のユーザによって入力されたアカウント証明書185はクライアント側認証インターフェース175Aによって(パス210を介して)第1のアプリケーションサーバ115Aに渡されてもよい。第1のサーバ側認証インターフェース135Aは次いでアカウント証明書185を(パス220を介して)認証サーバ110で認証することができる。認証サーバ110のオーセンティケータ130は次いでアカウント証明書185の認証を検証することができ、アプリケーションサーバ115Aに(パス220を介して)確認を送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。アプリケーションサーバ115Aの第1の認証インターフェース135Aは次いで第1のアプリケーション165Aに(パス210を介して)確認を送信することができる。いくつかの実装形態において、クライアントデバイス120の第1のアプリケーション165Aはアカウント証明書185を直接認証サーバ110に(パス215を介して)送信することができる。認証サーバ110のオーセンティケータ130は次いでアカウント証明書185の認証を検証することができ、(パス215を介して)認証の確認を返す。
【0057】
いくつかの実装形態において、認証サーバ110のオーセンティケータ130はアカウント証明書185のための証明書トークン225Cを生成することができ、トークンキャッシュ125についてのアカウント証明書185を(パス265を介して)記憶することができる。いくつかの実装形態において、サーバ側認証インターフェース135Aはアカウント証明書185のための証明書トークン225Cを生成することができ、(パス245を介して)トークンキャッシュ125についてのアカウント証明書185を記憶することができる。いくつかの実装形態において、第1のアプリケーション165Aのクライアント側認証インターフェース175Aはアカウント証明書185のための証明書トークン225Cを生成することができ、トークンキャッシュ125についてのアカウント証明書185を(パス250を介して)記憶することができる。証明書トークン225Cを使用して、第2のアプリケーション165Bなどの他のアプリケーション165B〜165Nによるさらなる認証のためにアカウント証明書185を参照または特定することができる。
【0058】
第1のアプリケーション165Aのリンク170Aにイベント205に応答して、パラメータ転送器190はアカウント証明書185から生成された証明書トークン225Cを、URLパラメータを介して、またはファンクションコールを介して第2のアプリケーション165Bに渡すことができる。第2のアプリケーション165Bによって受信されると、クライアント側認証インターフェース175Bは証明書トークン225Cを(パス235を介して)第2のアプリケーション165Bを管理する第2のアプリケーションサーバ115Bに送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証135Bは次いで認証サーバ110で証明書トークン225Cを認証のために(パス240を介して)送信することができる。第2のアプリケーションサーバ115Bから証明書トークン225Cを受信しているため、認証サーバ110はトークンキャッシュ125から(パス265を介して)アカウント証明書185を検索することができる。次いで認証サーバ110のオーセンティケータ130は、認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)確認メッセージを送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)確認を送信することができる。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス240を介して)失敗の指示を送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)失敗の指示を送信することができる。
【0059】
いくつかの実装形態において、次いでクライアント側認証インターフェース175Bは証明書トークン225Cを(パス240を介して)認証サーバ110に送信することができる。第2のアプリケーション165Bから証明書トークン225Cを受信しているため、認証サーバ110はトークンキャッシュ125から(パス265を介して)アカウント証明書185を検索することができる。次いで認証サーバ110は、認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bのサーバ側認証インターフェース135Bに(パス235を介して)確認メッセージを送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bの認証インターフェース175Bに(パス235を介して)失敗の指示を送信することができる。いくつかの実装形態において、失敗の指示は応答パケットの形態であってもよい。
【0060】
いくつかの実装形態において、クライアント側認証インターフェース175A〜175Nは証明書トークン225Cを直接(パス230を介して)認証サーバ110に送信することができる。オーセンティケータ130は次いでトークンキャッシュ125に記憶されるアカウント証明書185を、第2のアプリケーション165Bから(パス265を介して)受信した証明書トークン225Cを使用して検索することができる。アカウント証明書185を復元しているため、認証サーバ110は認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bのクライアント側認証インターフェース175Bに(パス230を介して)確認メッセージを送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bのクライアント側認証インターフェース175Bに(パス230を介して)失敗の指示を送信することができる。いくつかの実装形態において、失敗の指示は応答パケットの形態であってもよい。
【0061】
いくつかの実装形態において、クライアント側認証インターフェース175A〜175Nは証明書トークン225Cを使用してアカウント証明書225Cをリモートトークンキャッシュ125から(パス255を介して)検索することができる。いくつかの実装形態において、クライアント側認証インターフェース175A〜175Nは証明書トークン225Cを使用してアカウント証明書225Cをローカルトークンキャッシュ195から検索することができる。リモートトークンキャッシュ125またはローカルトークンキャッシュ195から復元されたアカウント証明書185を使用して、認証インターフェース175Bはアカウント証明書185を(パス235を介して)認証サーバ110に送信することができる。次いで認証サーバ110は、認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bのサーバ側認証インターフェース135Bに(パス235を介して)確認メッセージを送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーション165Bの認証インターフェース175Bに(パス235を介して)失敗の指示を送信することができる。いくつかの実装形態において、失敗の指示は応答パケットの形態であってもよい。
【0062】
いくつかの実装形態において、リモートトークンキャッシュ125またはローカルトークンキャッシュ195から復元されたアカウント証明書185を使用して、第2のアプリケーション165Bの認証インターフェース175Bはアカウント証明書185を(パス235を介して)第2のアプリケーションサーバ115Bに送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで認証サーバ110にアカウント証明書185を(パス240を介して)送信することができる。次いで認証サーバ110は、認証証明書185をアカウント識別子について記憶されているアカウント証明書と比較して一致があるかどうかを判断することができる。一致がある場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ165Bのサーバ側認証インターフェース135Bに(パス230を介して)確認メッセージを送信することができる。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス235を介して)確認を送信することができる。いくつかの実装形態において、確認メッセージは応答パケットの形態であってもよい。一方、一致がない場合、認証サーバ110のオーセンティケータ130は第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bに(パス235を介して)失敗の指示を送信することができる。いくつかの実装形態において、失敗の指示は応答パケットの形態であってもよい。第2のアプリケーションサーバ115Bのサーバ側認証インターフェース135Bは次いで第2のアプリケーション165Bに(パス230を介して)確認を送信することができる。
【0063】
図1を参照すると、認証の確認はリンク170A〜170Nによって参照されるアプリケーション165A〜165Nによって認証サーバ110から、またはアプリケーションサーバ115A〜115Nのいずれかを介して受信することができる。認証の確認は、以前にログインしたアプリケーション165A〜165N(例えば、第1のアプリケーション165A)からアカウント証明書185に固有のアカウント設定を含むことができる。確認を受信すると、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nは完全または部分的なログインを実施することができる。アプリケーション165A〜165Nによる確認メッセージの解析および解釈はアプリケーションプログラミングインターフェースを使用して実施してもよい。完全なログインでは、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nは自動的にアカウント証明書185のアカウント設定を適用する。このやり方で、1つのアプリケーション165A〜165Nから他のアプリケーション165A〜165Nにこのやり方でアカウントパラメータを渡すことは、シームレスな遷移および認証を考慮することができ、それによってプライバシーおよびセキュリティ上の懸念に対処している。部分的なログインでは、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nは、アカウント証明書が自動的に入力されたログインプロンプトを開くことができる。ログインプロンプトへの肯定的な反応に応答して、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nはアプリケーション165A〜165Nの実行を続けることができる。一方、失敗の指示が受信される場合、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nは実行を続けることができる。リンク170A〜170Nによって参照されるアプリケーション165A〜165Nを認証するのに失敗があったため、実行を続けることは、アカウント証明書185に固有のアカウント設定無しでもよい。アプリケーション165A〜165Nによる失敗の指示の解析および解釈はアプリケーションプログラミングインターフェースを使用して実施してもよい。いくつかの実装形態において、リンク170A〜170Nによって参照されるアプリケーション165A〜165Nは認証に失敗したことを示すプロンプトを表示することができる。
【0064】
次に、
図3Aおよび
図3Bを参照すると、パラメータを介してアカウント認証情報を渡すことの方法300の流れ図が描写されている。方法300に関して本明細書で説明される機能性は、
図1で示されるようなシステム100によって、
図2A〜
図2Cで示されるようなシステム200A〜200C、または
図5で示されるようなコンピューティングデバイス、またはそのあらゆる組合せによって、実施することができるか、そうでなければ実行することができる。いくつかの実装形態において、方法300の機能性はクライアントデバイス120、認証サーバ110、およびアプリケーションサーバ115A〜115Nのいずれかの間で分割され得る。
【0065】
より具体的には、ステップ302において、クライアントデバイスで実行している第1のアプリケーション(アプリケーションA)は第1のサーバ(サーバA)にアカウント証明書を送信することができる。ステップ304において、第1のサーバはクライアントデバイスからアカウント証明書を受信することができ、アカウント証明書を認証することができる。ステップ306において、第1のサーバは第1のアプリケーションについてのリンクにアカウントパラメータを挿入するかどうかを判断することができる。判断はポリシーに従うことができるか、またはアプリケーション(例えば、第1のアプリケーション)に固有のものとされてもよい。第1のサーバが、アカウントパラメータが挿入されるべきであると判断する場合、ステップ308において、第1のサーバはどのタイプのパラメータかを決定することができる。パラメータのタイプが難読化されたものである場合、ステップ310において、第1のサーバはアカウント証明書に双方向暗号化アルゴリズムを適用することによって難読化されたパラメータを生成することができる。パラメータのタイプがフィンガープリントである場合、ステップ312において、第1のサーバはアカウント証明書に一方向暗号化アルゴリズムを適用することによってフィンガープリント化されたパラメータを生成することができる。次いでステップ314において、第1のサーバはフィンガープリントを記憶することができる。パラメータのタイプがキャッシュである場合、ステップ316において、第1のサーバはアカウント証明書を特定するための証明書トークンを生成することができる。ステップ318において、第1のサーバは証明書トークンをリモートキャッシュに記憶することができる。ステップ320において、第1のサーバは第1のアプリケーションについてのリンクにアカウントパラメータを挿入することができる。ステップ322において、第1のサーバは第1のアプリケーションについて第2のアプリケーション(アプリケーションB)を参照するリンクをクライアントデバイスに送信することができる。
【0066】
ステップ324において、クライアントデバイスで実行している第1のアプリケーションは第2のアプリケーションを参照するリンクを受信することができる。ステップ326において、第1のアプリケーションはリンクに対するイベントについて監視することができる。リンクに対してイベントがあると、ステップ328において、第1のアプリケーションはリンクがアカウントパラメータを含むかどうかを判断することができる。リンクがリンクを含まない場合、ステップ330において、第1のアプリケーションはどのタイプのパラメータを使用するかを判断することができる。判断はポリシーに従うことができるか、またはアプリケーション(例えば、第1のアプリケーション)に固有のものとされてもよい。パラメータのタイプが難読化されたものである場合、ステップ332において、第1のアプリケーションはアカウント証明書に双方向暗号化アルゴリズムを適用することによって難読化されたパラメータを生成することができる。パラメータのタイプがフィンガープリントである場合、ステップ334において、第1のアプリケーションはアカウント証明書に一方向暗号化アルゴリズムを適用することによってフィンガープリント化されたパラメータを生成することができる。次いでステップ336において、第1のアプリケーションはフィンガープリントを記憶することができる。パラメータのタイプがキャッシュである場合、ステップ338において、第1のアプリケーションはアカウント証明書を特定するための証明書トークンを生成することができる。ステップ340において、第1のアプリケーションは証明書トークンをローカルキャッシュに記憶することができる。ステップ342において、第1のアプリケーションはアカウントパラメータを(URIプロトコルまたはファンクションコールを使用して)第2のパラメータに渡すことができる。
【0067】
ステップ344において、第2のアプリケーションは第1のアプリケーションからアカウントパラメータを受信することができる。ステップ346において、第2のアプリケーションはどのタイプのパラメータを使用するかを決定することができる。パラメータタイプが難読化されたものである場合、ステップ348において、第2のアプリケーションはアカウント証明書を、双方向暗号化アルゴリズムを適用することによってアカウントパラメータから復元することができる。パラメータタイプがキャッシュである場合、ステップ352において、第2のアプリケーションはアカウント証明書についての要求を伴うトークンを送信することができる。ステップ354において、キャッシュ(ローカルまたはリモート)はアカウント証明書についての要求を受信することができる。ステップ356において、キャッシュはアカウント証明書を特定することができる。ステップ358において、キャッシュはアカウント証明書を第2のアプリケーションに送信することができる。ステップ360において、第2のアプリケーションはキャッシュからアカウント証明書を受信することができる。パラメータタイプが難読化されたもの、またはキャッシュである場合、ステップ350において、第2のアプリケーションはアカウント証明書を認証のために第2のサーバ(サーバB)に送信することができる。ステップ362において、第2のサーバは第2のアプリケーションからアカウント証明書を受信することができる。次いで第2のサーバはステップ370においてアカウント証明書を認証するように進む。
【0068】
パラメータタイプがフィンガープリントである場合、ステップ354において、第2のアプリケーションはフィンガープリント化された証明書を第2のサーバに送信することができる。ステップ364において、第2のサーバは第2のアプリケーションからフィンガープリント化された証明書を受信することができる。ステップ366において第2のサーバはフィンガープリント記憶装置にアクセスして、第2のアプリケーションから受信した指証明書と比較することができる。ステップ368において、第2のサーバはフィンガープリント化された証明書が記憶装置にあるかどうかを判断することができる。フィンガープリント化された証明書が記憶装置にある場合、第2のサーバはステップ370において認証するように進むことができる。
【0069】
成功した場合、ステップ372において、第2のサーバはアカウント設定を特定することができる。ステップ374において、第2のサーバはアカウント設定を伴う確認を送信することができる。ステップ378において、第2のアプリケーションは第2のサーバから認証確認を受信することができる。ステップ380において、第2のアプリケーションは第1のアプリケーションで認証するために使用されるアカウント証明書に関連付けられるアカウント設定を適用することができる。一方、成功しなかった場合、ステップ376において、第2のサーバは認証に失敗したという指示を送信することができる。ステップ382において、第2のアプリケーションは認証に失敗したという指示を受信することができる。ステップ384において、第2のアプリケーションは実行を続けることができる。
【0070】
次に、
図4を参照すると、パラメータを介してアカウント認証情報を渡すことの方法400の流れ図が描写されている。方法400に関して本明細書で説明される機能性は、
図1で示されるようなシステム100によって、
図2A〜
図2Cで示されるようなシステム200A〜200C、または
図5で示されるようなコンピューティングデバイス、またはそのあらゆる組合せによって、実施することができるか、そうでなければ実行することができる。いくつかの実装形態において、方法400の機能性はクライアントデバイス120、認証サーバ110、およびアプリケーションサーバ115A〜115Nのいずれかの間で分割され得る。簡単に概観すると、認証サーバはクライアントデバイスで実行している第1のアプリケーションを認証するために使用されるアカウント証明書から導出したアカウントパラメータを、リンクに挿入するためにクライアントデバイスに提供することができる(ACT 405)。認証サーバは、アカウントパラメータを第1のアプリケーションから第2のアプリケーションへ渡すことに続いて、クライアントデバイスの第2のアプリケーションから第2のアプリケーションを認証するようにとの要求を受信することができる(ACT 410)。認証サーバは、第1のアプリケーションに提供され、第2のアプリケーションへのリンクを介して渡されたアカウントパラメータを使用して第2のアプリケーションについてクライアントデバイスを認証することができる(ACT 415)。第2のアプリケーションについてのクライアントデバイスの認証に応答して、認証サーバはクライアントデバイスの第2のアプリケーションに認証指示を送信することができる(ACT 420)。
【0071】
認証サーバはクライアントデバイスで実行している第1のアプリケーションを認証するために使用されるアカウント証明書から導出したアカウントパラメータを、リンクに挿入するためにクライアントデバイスに提供することができる(ACT 405)。リンクはクライアントデバイスで実行可能な第2のアプリケーションを参照するアドレスを含むことができる。アカウントパラメータはリンク上の対話に応答して第1のアプリケーションから第2のアプリケーションへ渡され得る。いくつかの実装形態において、認証サーバはクライアントデバイスで実行している第1のアプリケーションを認証するために使用されるアカウント証明書に基づいてアカウントパラメータを生成することができる。一方向または双方向暗号化アルゴリズムを使用してアカウント証明書から導出されるアカウントパラメータ。アカウントパラメータはリンクへ挿入するか、またはリンクに含められてもよい。いくつかの実装形態において、アカウントパラメータは、リンクのリンクパラメータ、またはクライアントデバイスで実行しているプラットフォームアプリケーションによるファンクションコールを介するリンク上の対話に応答して第1のアプリケーションから第2のアプリケーションへ渡され得る。
【0072】
認証サーバは、アカウントパラメータを第1のアプリケーションから第2のアプリケーションへ渡すことに続いて、クライアントデバイスの第2のアプリケーションから第2のアプリケーションを認証するようにとの要求を受信することができる(ACT 410)。認証するようにとの要求はアカウントパラメータを含むことができる。いくつかの実装形態において、認証サーバは、クライアントデバイスから第2のアプリケーションに関連付けられるアプリケーションサーバを介して、認証するようにとの要求を受信することができる。いくつかの実装形態において、認証するようにとの要求はアカウント証明書を含むことができる。アカウント証明書はアカウント識別子、アカウントアクセスコード、およびとりわけ他の暗号化パラメータを含むことができる。
【0073】
認証サーバは、第1のアプリケーションに提供され、第2のアプリケーションへのリンクを介して渡されたアカウントパラメータを使用して第2のアプリケーションについてクライアントデバイスを認証することができる(ACT 415)。いくつかの実装形態において、認証サーバは認証するようにとの要求に含まれるアカウントパラメータに双方向暗号化アルゴリズムを適用することによってアカウント証明書を復元することができる。いくつかの実装形態において、双方向暗号化アルゴリズムを使用して復元されたアカウント証明書が元々のアカウント証明書と一致するかどうか判断することによって、認証サーバは第2のアプリケーションについてクライアントデバイスを認証することができる。いくつかの実装形態において、要求に含まれるアカウントパラメータが一方向暗号化アルゴリズムを使用して別個に導出されたアカウントパラメータに一致すると判断することによって、認証サーバは第2のアプリケーションについてクライアントデバイスを認証することができる。いくつかの実装形態において、認証するようにとの要求に含まれるアカウントパラメータがキャッシュに記憶されているアカウントパラメータに一致すると判断することによって、認証サーバは第2のアプリケーションについてクライアントデバイスを認証することができる。キャッシュは認証サーバに関連付けられるデータベースであってもよい。
【0074】
第2のアプリケーションについてのクライアントデバイスの認証に応答して、認証サーバはクライアントデバイスの第2のアプリケーションに認証指示を送信することができる(ACT 420)。いくつかの実装形態において、認証指示は第2のアプライアンスについてのクライアントデバイスの認証が成功だったか、または失敗だったかどうかの指示を含むことができる。いくつかの実装形態において、認証指示は第2のアプライアンスに適用するためにクライアントデバイスについてのアカウント設定を含むことができる。
【0075】
図5は、いくつかの実装形態による、本明細書で議論されるコンピュータシステムのいずれをも実装するために採用され得る(認証サーバ110およびそのコンポーネント、アプリケーションサーバ115A〜115Bおよびそのコンポーネント、ならびにクライアントデバイス120およびそのコンポーネント、を含む)、例示のコンピュータシステム500の一般的なアーキテクチャを示す。コンピュータシステム500を使用して表示するためにネットワーク105を介して情報を提供することができる。
図5のコンピュータシステム500はメモリ525に通信可能に連結される1つまたは複数のプロセッサ520、1つまたは複数の通信インターフェース505、および1つまたは複数の出力デバイス510(例えば、1つまたは複数のディスプレイユニット)、および1つまたは複数の入力デバイス515を備える。プロセッサ520は認証サーバ110または認証サーバ110の他のコンポーネントに含まれてもよい。プロセッサ520はアプリケーションサーバ115A〜115Bまたはアプリケーションサーバ115A〜115Bの他のコンポーネントに含まれてもよい。プロセッサ520はクライアントデバイス120またはクライアントデバイス120の他のコンポーネントに含まれてもよい。
【0076】
図5のコンピュータシステム500において、メモリ525はあらゆるコンピュータ可読記憶媒体を備えることができ、また個別のシステムについて本明細書で説明した様々な機能性を実装するためのプロセッサ実行可能な命令などのコンピュータ命令、ならびにそれに関連し、それによって生成されるあらゆるデータ、または通信インターフェースもしくは入力デバイス(もしあれば)を介して受信したあらゆるデータを記憶することができる。
図1のシステム100を再度参照すると、認証サーバ110は、1つまたは複数のコンテンツユニット、とりわけ1つまたは複数のコンテンツユニットの予約のインベントリの可用性に関連する情報を記憶するためにメモリ525を含むことができる。メモリ525はデータベース150を含むことができる。
図5で示されるプロセッサ520を使用してメモリ525に記憶される命令を実行することができ、そのようにする際、命令の実行に従って処理および/または生成された様々な情報をメモリから読み取るかまたはメモリに書き込むことも行うことができる。
【0077】
図5で示されるコンピュータシステム500のプロセッサ520はまた、通信可能に連結され得るか、命令の実行に従って様々な情報を送信または受信するために通信インターフェース505を制御するようになされ得る。例えば、通信インターフェース505は有線もしくは無線ネットワーク、バス、または他の通信手段に連結することができ、またしたがってコンピュータシステム500に情報を他のデバイス(例えば、他のコンピュータシステム)に送信、または他のデバイスから受信させることができる。
図1または
図5のシステムに明示的に示していないが、1つまたは複数の通信インターフェースはシステム500のコンポーネント同士の情報の流れを容易にする。いくつかの実装形態において、通信インターフェースは、コンピュータシステム500の少なくともいくつかの態様へのアクセスポータルとして(例えば、様々なハードウェアコンポーネントまたはソフトウェアコンポーネントを介して)ウェブサイトを提供するように構成することができる。通信インターフェース505の例としては、ユーザが認証サーバ110と通信することができる際に介するユーザインターフェース(例えば、ウェブページ)が挙げられる。
【0078】
図5に示されるコンピュータシステム500の出力デバイス510は、例えば、様々な情報が閲覧されるように、そうでなければ命令の実行と併せて認識されるように提供することができる。入力デバイス515は、例えば、ユーザに手動の調整を行う、選択を行う、データを入力する、または様々なやり方のいずれかで命令の実行の間プロセッサと対話する、ことをさせるように提供することができる。本明細書で議論される様々なシステムについて採用され得る一般的なコンピュータシステムのアーキテクチャに関するさらなる情報が、本明細書でさらに提供される。
【0079】
本明細書において説明される主題の実装形態および動作は、本明細書において開示される構造およびその構造的な等価物を含む、デジタル電子回路、または有形な媒体で具現化されるコンピュータソフトウェア、ファームウェア、もしくはハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書において説明される主題の実装形態は1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のため、またはデータ処理装置の動作を制御するために、コンピュータ記憶媒体上にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュール、として実装することができる。プログラム命令は人工的に生成された伝搬信号、例えばデータ処理装置による実行のために適切な受信機装置に送信するために情報をエンコードするために生成された、機械生成の電気的、光学的、または電磁気的な信号、にエンコードすることができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスのメモリアレイもしくはデバイス、またはそれらの1つもしくは複数の組合せであってもよいか、またはそれに含まれてもよい。さらには、コンピュータ記憶媒体が伝搬信号ではない一方で、コンピュータ記憶媒体は人工的に生成された伝搬信号でエンコードされるコンピュータプログラム命令の送信元または送信先を含むことができる。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的なコンポーネントまたは媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)であってもよく、またはそれに含まれてもよい。
【0080】
本明細書で開示される特徴は、スマートテレビジョンモジュール(または接続されたテレビジョンモジュール、ハイブリッドテレビジョンモジュールなど)に実装することができ、より従来的なテレビジョンプログラミングソース(例えば、ケーブル、衛星、無線、または他の信号を介して受信される)とのインターネット接続性を一体化するように構成される処理モジュールを含むことができる。スマートテレビジョンモジュールはテレビジョンセットに物理的に組み込まれてもよく、またはセットトップボックス、ブルーレイ、もしくは他のデジタルメディアプレーヤ、ゲーム機、ホテルテレビジョンシステム、もしくは他のコンパニオンデバイスなどの別個のデバイスを含むことができる。スマートテレビジョンモジュールは視聴者に、ウェブ上、ローカルケーブルTVチャネル上、衛星TVチャネル上、またはローカルハードドライブに記憶された、ビデオ、動画、写真、および他のコンテンツを、探索して見つけさせるように構成することができる。セットトップボックス(STB)またはセットトップユニット(STU)は、テレビジョンセットへのチューナおよび接続、ならびに信号の外部ソースを含み得る情報アプライアンスデバイスを含むことができ、信号を次いでテレビジョンスクリーンまたは他のディスプレイデバイスに表示されるコンテンツに変換している。スマートテレビジョンモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続されたケーブルまたは衛星メディアソース、他のウェブ「チャネル」などの複数の異なるアプリケーションのアイコンを含むホーム画面または最上位の画面を提供するように構成することができる。スマートテレビジョンモジュールはユーザに電子プログラミングガイドを提供するようにさらに構成することができる。スマートテレビジョンモジュールへのコンパニオンアプリケーションは、利用可能なプログラムについてさらなる情報をユーザに提供し、ユーザがスマートテレビジョンモジュールなどを制御できるようにするためにモバイルコンピューティングデバイスで動作可能であってもよい。いくつかの実装形態において、特徴は、ラップトップコンピュータまたは他のパーソナルコンピュータ、スマートフォン、他の携帯電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイスに実装されてもよい。いくつかの実装形態において、本明細書で開示される特徴は、(例えば、別のコンピューティングデバイスまたはネットワーク105との)インターネット接続性を一体化にするように構成される処理モジュールを含むことができるウェアラブルのデバイスまたはコンポーネント(例えば、スマートウォッチ)に実装されてもよい。
【0081】
本明細書で説明される動作は、データ処理装置により、1つまたは複数のコンピュータ可読記憶デバイスに記憶されるデータ、または他のソースから受信されるデータに対して実行される動作として実装され得る。
【0082】
用語「データ処理装置」、「データ処理システム」、「ユーザデバイス」または「コンピューティングデバイス」は、データを処理するための装置、デバイス、および機械のすべての種類を包含してもよく、例としてプログラム可能プロセッサ、コンピュータ、1つもしくは複数のチップのシステムオンチップ(system on a chip or multiple chips)、または前述のものの組合せを含む。装置は特殊目的論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、対象のコンピュータプログラムのための実行環境を作成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームのランタイム環境、仮想マシン、またはそれらの1つあるいは複数の組合せを構成するコードを含んでもよい。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの様々なコンピューティングモデルインフラストラクチャを実現することができる。オーセンティケータ130および認証インターフェース135A〜135Nは1つまたは複数のデータ処理装置、コンピューティングデバイス、またはプロセッサを含むか共有することができる。
【0083】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型あるいはインタプリタ型言語、または宣言型あるいは手続き型言語を含むあらゆる形態のプログラム言語で記述することができ、スタンドアロンプログラムとしてまたはモジュール、コンポーネント、サブルーチン、オブジェクト、あるいはコンピューティング環境での使用に適切な他の単位として、を含むあらゆる形態として展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応することができるが、必ずしもそうである必要はない。プログラムは、他のプログラムまたはデータを保有するファイルの一部(例えば、マークアップ言語文書に記憶された1つまたは複数のスクリプト)、対象のプログラム専用の単一のファイル、または複数のコーディネートされたファイル(例えば、1つもしくは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶することができる。コンピュータプログラムは、一か所に配置されるか、または複数の場所にまたがって分散される1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され、通信ネットワークで相互接続することができる。
【0084】
本明細書で説明される処理および論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサによって実施し、入力データを演算することまたは出力を生成することによってアクションを実施することができる。処理およびロジックの流れはまた、特殊目的論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施され得、また装置も特殊目的論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装されてもよい。
【0085】
コンピュータプログラムの実行のために適切なプロセッサは、例として、汎用および特殊目的のマイクロプロセッサの両方、およびあらゆる種類のデジタルコンピュータのあらゆる1つまたは複数のプロセッサを含む。一般的に、プロセッサは読取り専用メモリまたはランダムアクセスメモリまたは両方から、命令およびデータを受信する。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータはまたデータを記憶するために、例えば、磁気的、磁気光学的ディスク、または光学ディスクなど、1つまたは複数の大容量記憶デバイスを含むか、あるいは1つもしくは複数の大容量記憶デバイスからデータを受信するため、または1つもしくは複数の大容量記憶デバイスにデータを送信するため、またはその両方のために、動作可能に接続される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、例えば携帯電話、携帯情報端末(PDA)、モバイル型の音声もしくは動画プレーヤ、ゲーム機、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(例えばユニバーサルシリアルバス(USB)フラッシュドライブ)などの別のデバイスに埋め込むことができる。コンピュータプログラム命令およびデータを記憶するために適切なデバイスは、例として半導体メモリデバイス、例えばEPROM、EEPROMおよびフラッシュメモリデバイス;磁気ディスク、例えば内部ハードディスクまたは取り外し可能ディスク;磁気光学的ディスク;ならびにCD-ROMおよびDVD-ROMディスクを含む、非揮発性のメモリ、媒体、およびメモリデバイスのすべての形態を含む。プロセッサおよびメモリは、特殊目的論理回路によって補うことができ、または特殊目的論理回路に組み込むことができる。
【0086】
ユーザとの対話を提供するために、本明細書で説明される主題の実装形態は、ユーザに情報を表示するための、例えばCRT(ブラウン管)、プラズマ、またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、キーボード、およびポインティングデバイス、例えばマウスまたはトラックボールを有するコンピュータ上に実装することができ、それによってユーザはコンピュータに入力を行うことができる。他の種類のデバイスを使用して同様にユーザに対話を与えることができる。例えば、ユーザに提供されるフィードバックはあらゆる形態の感覚的なフィードバック、例えば視覚的なフィードバック、聴覚的なフィードバック、または触覚的なフィードバックを含むことができ;ユーザからの入力は、音響、発話または触覚的な入力を含む、あらゆる形態で受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信することおよびそこから文書を受信することによって、ユーザと対話することができ、例えばウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、などである。
【0087】
本明細書において説明される主題の実装形態は、例えばデータサーバとして、バックエンドコンポーネントを含むコンピューティングシステム、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含むコンピューティングシステム、またはフロントエンドコンポーネント、例えば、グラフィカルユーザインターフェース、もしくはそれを通じてユーザが本明細書において説明される主題の実装形態と対話することができるウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントのあらゆる組合せ、に実装することができる。システムのコンポーネントは、デジタルデータ通信のあらゆる形態または媒体、例えば通信ネットワークによって、内部接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、およびピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)が挙げられる。
【0088】
システム500またはシステム100などのコンピューティングシステムはクライアントおよびサーバを含むことができる。例えば、認証サーバ110は1つまたは複数のデータセンタまたはサーバファーム内に、1つまたは複数のサーバを含むことができる。クライアントおよびサーバは一般的に、互いに離れており、典型的には通信ネットワークを通じて対話する。クライアントとサーバの関係は、個別のコンピュータ上で実行しており、互いのクライアント-サーバ関係を有しているコンピュータプログラムのおかげで成立する。いくつかの実装形態において、サーバはデータ(例えば、HTMLページ)をクライアントデバイスに送信する(例えば、クライアントデバイスと対話するユーザにデータを表示する目的のため、およびクライアントデバイスと対話するユーザからユーザ入力を受信する目的のため)。クライアントデバイスにおいて生成されたデータ(例えば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信することができる。
【0089】
本明細書は多くの具体的な実装形態の詳細を含む一方で、これらはあらゆる発明の範囲または特許請求され得る範囲に対する限定と解釈されるべきではなく、本明細書で説明されるシステムおよび方法の特定の実装形態に特異的である特徴の説明と解釈されるべきである。別個の実装形態に関して本明細書で説明される特定の特徴は、単一の実装形態において組合せとして実装されてもよい。逆に、単一の実装形態に関して説明される様々な特徴はまた、複数の実装形態別個において、またはあらゆる適切なサブ組合せにおいて実装することができる。さらに、特徴はある組合せにおいて振る舞うとして上述され得、また初めにそのようなものとして特許請求されさえもするが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合、その組合せから切り出されてもよく、特許請求される組合せはサブ組合せまたはサブ組合せの変形を対象とすることができる。
【0090】
同様に、動作は特定の順序で図面に描かれるが、これは所望の結果を達成するために、そのような動作が示される特定の順序もしくは順次に実施されること、またはすべての例示される動作が実施されること、を要求するものとして理解されるべきではない。いくつかの場合、特許請求の範囲に列挙されるアクションを異なる順で実施することができるが、なお所望の結果を達成することができる。加えて、添付の図面において描写される処理は、所望の結果を達成するために、必ずしも示される特定の順序、または順次を要求しない。
【0091】
ある状況においては、マルチタスクおよび並列処理が有利であり得る。さらに、上述の実装形態における様々なシステムのコンポーネントの分離は、すべての実装形態においてそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは全体的に単一のソフトウェア製品に一体化すること、または複数のソフトウェア製品にパッケージングすることができることが理解されるべきである。オーセンティケータ130および認証インターフェース135A〜135Nは認証サーバ110の一部、単一のモジュール、1つもしくは複数の処理モジュールを有する論理デバイス、1つもしくは複数のサーバ、または探索エンジンの一部であることができる。
【0092】
今はいくつかの例示的な実装形態、および実装形態を説明しているが、前述は例示的であって限定ではなく、例として提示されてきたことは明らかである。特に、本明細書で提示された例の多くは方法の行為またはシステム要素の具体的な組合せを伴うが、それらの行為およびそれらの要素は、同一の目的を達成するために他のやり方で組み合わせることができる。1つの実装形態のみと併せて議論される行為、要素、および特徴は、他の実装形態または実装形態における類似の役割から排除されることを意図されていない。
【0093】
本明細書で使用される言い回しおよび用語は説明の目的のためであって、限定としてみなされるべきではない。「を含む(including)」、「を備える(comprising)」、「を有する(having)」、「を含有する(containing)」、「を伴う(involving)」、「によって特徴付けられる(characterized by)」、「において特徴付けられる(characterized in that)」および本明細書におけるその変形の使用は、その後に列挙される項目、その等価物、追加的な項目、ならびにその後に排他的に列挙される項目から成る代替的な実装形態を包含することを意味している。一実装形態において、本明細書で説明されるシステムおよび方法は1つの、2つ以上のそれぞれの組合せ、または説明される要素、行為、もしくはコンポーネントのすべてから成る。
【0094】
本明細書で単数形で称される実装形態または要素またはシステムおよび方法の行為へのあらゆる参照は、複数のこれらの要素を含む実装形態も含むことができ、また本明細書におけるあらゆる実装形態または要素または行為への複数形のあらゆる参照は単一の要素のみを含む実装形態も含むことができる。単数形または複数形での参照は、単数もしくは複数の構成への、現在開示されているシステムまたは方法、それらのコンポーネント、行為、または要素を限定することを意図されていない。あらゆる情報、行為、または要素に基づいているあらゆる行為または要素への参照は、行為または要素があらゆる情報、行為、または要素に少なくとも一部基づいている実装形態を含むことができる。
【0095】
本明細書で開示されるあらゆる実装形態はあらゆる他の実装形態と組み合わせることができ、「実装形態(an implementation)」、「いくつかの実装形態(some implementations)」、「代替的な実装形態(an alternate implementation)」、「様々な実装形態(various implementation)」、「一実装形態(one implementation)」などへの参照は、必ずしも相互に排他的ではなく、その実装形態と併せて説明される特定の特徴、構造、または性質が少なくとも1つの実装形態に含まれ得ることを示すよう意図されている。本明細書で使用されるような、そのような用語は必ずしもすべて同一の実装形態を参照していない。あらゆる実装形態はあらゆる他の実装形態と包含的に、または排他的に、本明細書で開示される態様および実装形態と一貫性のあるやり方で組み合わせることができる。
【0096】
「または(or)」への参照は、「または(or)」を使用して説明されるあらゆる用語が単一の、2つ以上の、およびすべての説明される用語のいずれかを示すことができるように包括的と解釈されてもよい。
【0097】
図面、詳細な説明、またはあらゆる請求項において技術的な特徴に参照符号が伴う場合、参照符号は図面、詳細な説明、またはあらゆる請求項の理解度を向上させる目的のためだけに含まれている。したがって、参照符号の有無はあらゆる請求項要素の範囲に対していかなる限定の影響も与えない。
【0098】
本明細書で説明されるシステムおよび方法はその性質から逸脱することなく他の具体的な形態で具現化され得る。本明細書で与えられる例はパラメータを介してアカウント認証情報を渡すこと、およびそれに対する対策を講じることに関するが、本明細書で説明されるシステムおよび方法は他の環境に適用されるものも含むことができる。前述の実装形態は、説明されるシステムおよび方法を限定するよりもむしろ例示的である。したがって、本明細書で説明されるシステムおよび方法の範囲は、前述の説明よりもむしろ添付の特許請求の範囲によって示され、また特許請求の範囲の意味および等価性の程度に生ずる変形はそこに包含される。