(57)【要約】  幾つかの実施形態では、非一時的なプロセッサ可読媒体は、装置の認可クライアントからクライアント認可モジュールに、装置にインストールされた複数のアプリケーションの指示を送信することと、認可クライアントにおいて、指示に応答して、複数のアプリケーショントークンをクライアント認可モジュールから受信することとをプロセッサに実行させるコードを含む。認可クライアントによって受信される複数のアプリケーショントークンからの個別のアプリケーショントークンのそれぞれには、装置にインストールされた複数のアプリケーションからのアプリケーションが一意に関連付けられる。認可クライアントは各アプリケーションにそれに関連付けられた各アプリケーショントークンを提供し、それにより、複数のアプリケーションからの各アプリケーションは、そのアプリケーショントークンを使用して、アプリケーションに関連付けられたアプリケーションサーバに対して認証され得る。
2015528169.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって実行される命令を表すコードを記憶する非一時的なプロセッサ可読媒体であって、前記コードは、前記プロセッサに、
装置の認可クライアントからクライアント認可モジュールに、前記装置にインストールされた複数のアプリケーションの指示を送信することと、
前記認可クライアントにおいて、前記指示に応答して、複数のアプリケーショントークンを前記クライアント認可モジュールから受信することであって、前記複数のアプリケーショントークンからの各アプリケーショントークンには、前記複数のアプリケーションからのアプリケーションが一意に関連付けられる、受信することと、
前記複数のアプリケーションからの各アプリケーションが、それに関連付けられたアプリケーショントークンが前記複数のアプリケーションからのそのアプリケーションに関連付けられたアプリケーションサーバで受信された場合、そのアプリケーションサーバに対して証明されるように、前記複数のアプリケーショントークンからの関連付けられたアプリケーショントークンを前記複数のアプリケーションからの各アプリケーションに提供することと、
を実行させるコードを含む、非一時的なプロセッサ可読媒体。
【請求項２】
前記プロセッサに送信させるコードは、前記プロセッサに、
前記認可クライアントから前記クライアント認可モジュールに、前記装置に関連付けられたユーザのアクセスレベルに関連付けられた識別子を送信することであって、前記複数のアプリケーションには前記アクセスレベルが関連付けられる、送信すること
を実行させるコードを含む、請求項１に記載の非一時的なプロセッサ可読媒体。
【請求項３】
前記プロセッサに、
前記指示を送信する前に、前記装置にインストールされた前記複数のアプリケーションからの各アプリケーションに関連付けられた識別子を特定すること
を実行させるコードを更に含む、請求項１に記載の非一時的なプロセッサ可読媒体。
【請求項４】
前記認可クライアントは、前記装置にインストールされるネイティブアプリケーションである、請求項１に記載の非一時的なプロセッサ可読媒体。
【請求項５】
前記複数のアプリケーションからの第１のアプリケーションは企業アプリケーションであり、前記複数のアプリケーションからの第２のアプリケーションは、ソフトウェアアズアサービス（ＳａａＳ）アプリケーションである、請求項１に記載の非一時的なプロセッサ可読媒体。
【請求項６】
前記複数のアプリケーションは、前記装置にインストールされる第１の複数のアプリケーションであり、前記指示は、前記装置にインストールされる前記第１の複数のアプリケーション及び第２の複数のアプリケーションの指示であり、前記コードは、前記プロセッサに、
前記装置に関連付けられたユーザが、前記第２の複数のアプリケーションからの各アプリケーションを使用する認可を有さないことの指示を受信すること
を実行させるコードを更に含む、請求項１に記載の非一時的なプロセッサ可読媒体。
【請求項７】
ユーザに関連付けられた装置にインストールされる認可クライアントを含む装置であって、前記認可クライアントは、クライアント認可モジュールに、前記装置にインストールされた複数のアプリケーションに関連付けられたアプリケーショントークン要求を送信するように構成され、前記認可クライアントは、前記アプリケーショントークン要求に応答して、（１）前記複数のアプリケーションからの第１の組のアプリケーションに関連付けられた１組のアプリケーショントークンと、（２）前記装置に関連付けられた前記ユーザが、前記第１の組のアプリケーションとは相互に排他的な、前記複数のアプリケーションからの第２の組のアプリケーションからの各アプリケーションを使用する認可を有さないことの指示とを受信するように構成され、前記１組のアプリケーショントークンからの各アプリケーショントークンには、前記第１の組のアプリケーションからのアプリケーションが一意に関連付けられ、
前記認可クライアントは、前記第１の組のアプリケーションからの各アプリケーションに、前記１組のアプリケーショントークンからの関連付けられたアプリケーショントークンを提供するように構成され、それにより、前記第１の組のアプリーションからの各アプリケーションは、関連付けられたアプリケーショントークンがそのアプリケーションに関連付けられたアプリケーションサーバで受信される場合、前記アプリケーションサーバに対して証明される、装置。
【請求項８】
前記認可クライアントは、前記ユーザに関連付けられた識別子を前記クライアント認可モジュールに送信するように構成され、前記認可クライアントは、前記識別子に応答して、ユーザ認可トークンを受信するように構成され、前記認可クライアントは、前記クライアントトークン要求と共に前記ユーザ認可トークンを前記クライアント認可モジュールに提供するように構成される、請求項７に記載の装置。
【請求項９】
前記アプリケーションサーバは、ソフトウェアアズアサービス（ＳａａＳ）ホスト又は企業ホストのうちの少なくとも一方である、請求項７に記載の装置。
【請求項１０】
前記認可クライアントは、前記アプリケーショントークン要求を送信する前に、複数の識別子を受信するように構成され、前記複数の識別子からの各識別子には、前記装置にインストールされた前記複数のアプリケーションからのアプリケーションが一意に関連付けられ、前記アプリケーショントークン要求は、少なくとも部分的に前記複数の識別子に基づく、請求項７に記載の装置。
【請求項１１】
前記１組のアプリケーショントークンからの各トークンはＯＡｕｔｈアクセストークンである、請求項７に記載の装置。
【請求項１２】
クライアント認可モジュールを含む装置であって、前記クライアント認可モジュールは、クライアント装置における認可クライアントから、前記クライアント装置にインストールされた複数のアプリケーションに関連付けられたアプリケーショントークン要求を受信するように構成され、前記クライアント認可モジュールは、前記アプリケーショントークン要求に応答して、複数のトークンを前記認可クライアントに送信するように構成され、それにより、前記認可クライアントは、前記複数のトークンからの一意に関連付けられたトークンと共に、前記複数のアプリケーションからの各アプリケーションを提供し、
前記クライアント認可モジュールは、前記複数のアプリケーションからのアプリケーションに関連付けられたアプリケーションモジュールから、認証要求を受信するように構成され、前記認証要求は、そのアプリケーションに一意に関連付けられた、前記複数のトークンからのトークンを含み、前記クライアント認可モジュールは、前記クライアント認可モジュールが前記トークンを、前記アプリケーションに有効なトークンとして検証したことに応答して、認証信号を前記アプリケーションモジュールに送信するように構成される、装置。
【請求項１３】
前記クライアント認可モジュールは、前記クライアント装置のユーザに関連付けられた識別子を受信するように構成され、前記クライアント認可モジュールは、前記識別子に応答して、前記ユーザのアクセス権に関連付けられたユーザ認可トークンを送信するように構成される、請求項１２に記載の装置。
【請求項１４】
前記クライアント認可モジュール及び前記アプリケーションモジュールは、企業サーバに含まれる、請求項１２に記載の装置。
【請求項１５】
前記クライアント認可モジュールは、第１のホスト装置でホストされ、前記アプリケーションモジュールは、前記第１のホスト装置とは異なる第２のホスト装置でホストされる、請求項１２に記載の装置。
【請求項１６】
プロセッサによって実行される命令を表すコードを記憶する非一時的なプロセッサ可読媒体であって、前記コードは、前記プロセッサに、
装置の認可クライアントにおいて、前記装置に関連付けられたユーザが、前記装置にインストールされたアプリケーションの起動を要求したことの指示をインターセプトすることであって、それにより、前記アプリケーションは前記指示を受信しない、インターセプトすることと、
前記認可クライアントからクライアント認可モジュールに、前記指示に応答して、前記アプリケーションのアプリケーショントークンへの要求を送信することと、
前記認可クライアントにおいて、前記要求に応答して、前記クライアント認可モジュールから前記アプリケーショントークンを受信することと、
前記装置における前記アプリケーションに前記アプリケーションを関連付けることと、
前記アプリケーショントークンを前記アプリケーションに関連付けた後、前記指示を前記アプリケーションに送信することであって、それにより、前記指示に応答して、前記アプリケーショントークンを用いて前記アプリケーションが起動する、送信することと、
を含む、非一時的なプロセッサ可読媒体。
【請求項１７】
前記プロセッサに前記要求を送信させるコードは、前記プロセッサに、
前記認可クライアントから前記クライアント認可モジュールに、前記ユーザのアクセスレベルに関連付けられた識別子を送信すること
を実行させるコードを含み、前記アプリケーションは前記アクセスレベルに承認される、請求項１６に記載の非一時的なプロセッサ可読媒体。
【請求項１８】
前記認可クライアントは、前記装置にインストールされるネイティブアプリケーションである、請求項１６に記載の非一時的なプロセッサ可読媒体。
【請求項１９】
前記プロセッサに関連付けさせるコードは、前記プロセッサに、前記アプリケーションが、前記アプリケーション起動後に前記アプリケーショントークンに基づいて前記アプリケーションに関連付けられたソフトウェアアズアサービス（ＳａａＳ）ホスト又は前記アプリケーションに関連付けられた企業ホストのうちの少なくとも一方に対して認証されるように、前記アプリケーショントークンを前記アプリケーションに関連付けさせるコードを含む、請求項１６に記載の非一時的なプロセッサ可読媒体。
【請求項２０】
前記指示は第１の指示であり、前記プロセッサに関連付けさせるコードは、前記プロセッサに、第１の時間において関連付けさせるコードを含み、前記コードは、前記プロセッサに、
前記認可クライアントにおいて、前記第１の時間後の第２の時間に、前記装置に関連付けられた前記ユーザが前記アプリケーションの起動を要求したことの第２の指示をインターセプトすることと、
前記アプリケーショントークンが前記装置の前記アプリケーションに関連付けられていると判断することと、
前記第２の指示に応答して、前記アプリケーショントークンを有する前記アプリケーションが起動するように、前記第２の指示を前記アプリケーションに送信することと、
を実行させるコードを更に含む、請求項１６に記載の非一時的なプロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１２年７月９日に出願された「Methods and Apparatus for Delegated Authentication Token Retrieval」という名称の米国非仮特許出願第１３／５４４，５６５号の優先権を主張するとともに、その継続出願であり、この非仮特許出願を参照により本明細書に援用する。
【０００２】
本願は、２０１２年７月９日に出願された「Methods and Apparatus For Preprovisioning Authentication Tokens To Mobile Applications」という名称の米国非仮特許出願第１３／５４４，５５３号、現在では米国特許第８，４７３，７４９号に関連し、この非仮特許出願を参照により本明細書に援用する。
【０００３】
背景
本明細書に記載される幾つかの実施形態は概して、装置の単一の認可クライアントモジュールを使用して、認可サーバから、装置にインストールされたアプリケーションのアプリケーショントークンを要求することに関する。本明細書に記載される実施形態の幾つかは、装置の個々のユーザに承認されたアプリケーションの認証及び実行に使用される方法及び装置にも関する。
【背景技術】
【０００４】
ＯＡｕｔｈ（Open Authorization）は、認可のためのオープンスタンダードプロトコルであり、企業の従業員等のユーザが、そのユーザの信用情報（例えば、パスワード）又はそのユーザの完全なデータを共有せずに、所与のロケーション（例えば、所与のウェブサイト）に記憶されたそのユーザに関連付けられた情報への第三者アプリケーションアクセスを認可できるようにする。幾つかの既知のシステムは、ＯＡｕｔｈトークンを使用して、様々な装置（例えば、ラップトップコンピュータ、個人情報端末（ＰＤＡ:personal digital assistant）、標準携帯電話、タブレットパーソナルコンピュータ（ＰＣ）等）のユーザへのアプリケーションを認証する。しかし、そのような既知のシステムは、適切なＯＡｕｔｈ認可サーバからの各アプリケーション要求トークンを個々に有する。これには通常、利用可能な帯域幅の大量の使用及びプロセッサ時間が関わり、一般に、ユーザへの有用性の負担を生じさせる。さらに、従業員が働く企業は、アプリケーションへのアプリケーショントークンの発行に直接関与せず、したがって、アプリケーションへのユーザのアクセスに対する所望レベルのポリシー制御から除外される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、装置にインストールされた複数のアプリケーションを、その装置の特定のユーザに関して単一のステップで認証する方法及び装置が必要とされている。さらに、アプリケーションへのユーザアクセスに対して制御権を有することへの企業の関与を増大させる方法及び装置が必要とされている。
【課題を解決するための手段】
【０００６】
概要
幾つかの実施形態では、非一時的なプロセッサ可読媒体は、装置の認可クライアントからクライアント認可モジュールに、装置にインストールされた複数のアプリケーションの指示を送信することと、認可クライアントにおいて、指示に応答して、複数のアプリケーショントークンをクライアント認可モジュールから受信することとをプロセッサに実行させるコードを含む。認可クライアントによって受信される複数のアプリケーショントークンからの各アプリケーショントークンには、装置にインストールされた複数のアプリケーションからのアプリケーションが一意に関連付けられる。認可クライアントはそれに関連付けられた個別のアプリケーショントークンのそれぞれを提供し、それにより、複数のアプリケーションからの各アプリケーションは、そのアプリケーショントークンを使用して、アプリケーションに関連付けられたアプリケーションサーバに対して認証される。
【図面の簡単な説明】
【０００７】
図面の簡単な説明
【図１】一実施形態による、ネットワークを介して企業サーバ及びアプリケーションサーバに接続された装置を含むアプリケーション認可システムの概略図である。
【図２】一実施形態による、アプリケーション認可システム１００の装置でのユーザ及び承認済みアプリケーションを認証する方法を示すメッセージ流れ図である。
【図３】一実施形態による、装置にインストールされた１組のアプリケーションの個別のアプリケーショントークンを取得する方法を示すフローチャートである。
【図４】別の実施形態による、アプリケーション認可システムの装置でユーザ及びその承認済みアプリケーションを認証する方法を示すメッセージ流れ図である。
【発明を実施するための形態】
【０００８】
詳細な説明
幾つかの実施形態では、非一時的なプロセッサ可読媒体は、装置の認可クライアントからクライアント認可モジュールに、装置にインストールされた複数のアプリケーションの指示を送信することと、認可クライアントにおいて、指示に応答して、複数のアプリケーショントークンをクライアント認可モジュールから受信することとをプロセッサに実行させるコードを含む。認可クライアントによって受信される複数のアプリケーショントークンからの各アプリケーショントークンには、装置にインストールされた複数のアプリケーションからのアプリケーションが一意に関連付けられる。認可クライアントはそれに関連付けられた個別のアプリケーショントークンのそれぞれを提供し、それにより、複数のアプリケーションからの各アプリケーションは、そのアプリケーショントークンを使用して、アプリケーションに関連付けられたアプリケーションサーバに対して認証される。
【０００９】
そのような実施形態では、装置は、デスクトップコンピュータ、ラップトップコンピュータ、個人情報端末（ＰＤＡ）、標準携帯電話、タブレットパーソナルコンピュータ（ＰＣ）等のパーソナル計算装置であることができる。装置はメモリ及びプロセッサを含むことができる。装置にインストールされるアプリケーションは、例えば、会計アプリケーション、販売力アプリケーション、ペイロールアプリケーション等であることができる。他の実施形態では、アプリケーションは、装置で実行されるように構成される任意の他の企業アプリケーション又は第三者アプリケーションであることができる。幾つかの実施形態では、認可クライアントは、装置にインストールされるネイティブアプリケーションであることができる。認可クライアントは、ハードウェア及び／又は装置のメモリに記憶され、且つ／又はプロセッサで実行されるソフトウェアモジュールであることができる。幾つかの実施形態では、認可クライアントは、装置のユーザによる使用が認可されているアプリケーションのリストについて、クライアント認可モジュールに問い合わせるように構成することができる。幾つかの実施形態では、認可クライアントは、クライアント認可モジュールに、装置にインストールされているアプリケーションのリストを送信する（１組の承認済みアプリケーションから）ように構成することができる。認可クライアントは、ネットワークを介して、装置にインストールされている複数のアプリケーションのアプリケーション認可要求を、企業又はクラウドサーバ上のクライアント認可モジュールに送信するように構成することができる。ネットワークは、有線ネットワーク及び／又は無線ネットワークとして実施されるローカルエリアネットワーク（ＬＡＮ:local area network）、広域ネットワーク（ＷＡＮ:wide area network）、仮想ネットワーク、通信ネットワーク等の任意のタイプのネットワークであることができる。認可要求に応答して、認可クライアントは、クライアント認可モジュールから、装置のユーザの全ての認可済みアプリケーションのアプリケーショントークンを受信することができる。なお、幾つかの実施形態では、装置にインストールされている複数のアプリケーションへの単一のアプリケーション認可要求を送信することができ、単一のアプリケーション認可要求から、複数のアプリケーショントークンを生成することができる。幾つかの実施形態では、認可クライアントは、クライアント認可モジュールから、装置のユーザによる使用が認可されていないアプリケーションのリストを含む第２のメッセージを受信するように構成することができる。アプリケーショントークンを受信すると、認可クライアントは、各認可アプリケーションにそれに関連付けられた個別のアプリケーショントークン提供するように構成することができる。これにより、装置の認可済みアプリケーションは、それに関連付けられたアプリケーショントークンを使用して、それに関連付けられたアプリケーションサーバと交信して、アプリケーションサーバからアプリケーションデータを受信することができる。
【００１０】
そのような実施形態では、企業サーバは、ウェブサーバ、アプリケーションサーバ、プロキシサーバ、テルネットサーバ、ファイル転送プロトコル（ＦＴＰ:file transfer protocol）サーバ、メールサーバ、リストサーバ、コラボレーションサーバ等であることができる。企業サーバはメモリ及びプロセッサを含むことができる。企業サーバのメモリは、クライアント認可モジュール、企業認可モジュール、及びアプリケーションモジュールに関連付けられたデータを含むことができる。クライアント認可モジュールは、ハードウェア及び／又は企業サーバのメモリに記憶され、プロセッサで実行されるソフトウェアモジュールであることができる。クライアント認可モジュールは、装置の認可クライアントから、装置にインストールされている複数のアプリケーションに関連付けられたアプリケーショントークン要求を受信するように構成することができる。要求に応答して、クライアント認可モジュールは複数のアプリケーショントークンを送信するように構成することができ、各アプリケーショントークンは、装置のユーザの認可済みアプリケーションに一意に関連付けられている。幾つかの実施形態では、クライアント認可モジュールは、承認済みアプリケーションに関連付けられたアプリケーションモジュールから認証要求を受信するように構成することができる。認証要求は、認可済みアプリケーションに一意に関連付けられたアプリケーショントークンを含むことができる。クライアント認可モジュールはアプリケーショントークンを使用して、アプリケーショントークンの有効性を評価し、且つ／又はアプリケーショントークンの属性を検証することができる。受信したアプリケーショントークンの、アプリケーションの有効なトークンとしての検証に成功すると、クライアント認可モジュールは、認可信号をアプリケーションモジュールに送信するように構成することができる。これにより、アプリケーションモジュールは、装置の認可済みアプリケーションにアプリケーションデータを送信することが可能になる。
【００１１】
幾つかの実施形態では、非一時的なプロセッサ可読媒体は、プロセッサに、装置の認可クライアントにおいて、装置に関連付けられたユーザが、装置にインストールされたアプリケーションの起動を要求したことの指示をインターセプトすることであって、それにより、アプリケーションは指示を受信しない、インターセプトすることを実行させるコードを含む。このコードは、プロセッサに、指示に応答して、装置の認可クライアントからクライアント認可モジュールに、アプリケーションのアプリケーショントークンへの要求を送信させ、要求に応答して、認可クライアントにおいて、クライアント認可モジュールからアプリケーショントークンを受信させる。コードは、装置のプロセッサに、認可クライアントにおいて、アプリケーショントークンを装置のアプリケーションに関連付けさせ、次に、指示をアプリケーションに向けて送信させることができ、それにより、アプリケーションは、指示に応答して、アプリケーショントークンを用いて起動する。
【００１２】
図１は、一実施形態によるアプリケーション認可システム１００の概略図である。アプリケーション認可システム１００は、装置１１０と、ネットワーク１２０と、企業サーバ１３０と、アプリケーションサーバ１５０とを含む。ネットワーク１２０は、有線ネットワーク及び／又は無線ネットワークとして実施される任意のタイプのネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、仮想ネットワーク、通信ネットワーク）であることができる。本明細書で更に詳細に説明するように、幾つかの実施形態では、例えば、装置１１０は、イントラネット、インターネットサービスプロバイダ（ＩＳＰ:Internet Service Provider）及びインターネット、セルラネットワーク（例えば、ネットワーク１２０）等を介して企業サーバ１３０及びアプリケーションサーバ１５０に接続することができる。
【００１３】
装置１１０は、デスクトップコンピュータ、ラップトップコンピュータ、個人情報端末（ＰＤＡ）、標準携帯電話、タブレットパーソナルコンピュータ（ＰＣ）等のパーソナル計算装置であることができる。装置１１０はメモリ１１２及びプロセッサ１１１を含む。幾つかの実施形態では、装置１１０は、ユーザトークンを要求し、企業サーバ１３０からユーザトークンを受信するように構成される。装置１１０は、本明細書に更に詳細に説明するように、ネットワーク１２０を介してアプリケーショントークンを要求し、企業サーバ１３０からアプリケーショントークンを受信し、且つ／又はアプリケーションサーバ１５０及び／又は企業サーバ１３０のアプリケーションモジュールにアクセスするように構成することもできる。
【００１４】
メモリ１１２は、例えば、ランダムアクセスメモリ（ＲＡＭ:random access memory）、メモリバッファ、ハードドライブ、データベース、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ:erasable programmable read-only memory）、電気的に消去可能な読み取り専用メモリ（ＥＥＰＲＯＭ:electrically erasable read-only memory）、読み取り専用メモリ（ＲＯＭ:read-only memory）等であることができる。幾つかの実施形態では、メモリ１１２は命令を記憶し、命令は、プロセッサに、そのようなアプリケーション認可システム１００に関連付けられたモジュール、プロセス、及び／又は機能を実行させる。
【００１５】
プロセッサ１１１は、汎用プロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ:Field Programmable Gate Array）、特定用途向け集積回路（ＡＳＩＣ:Application Specific Integrated Circuit）、デジタル信号プロセッサ（ＤＳＰ:Digital Signal Processor）等であることができる。プロセッサ１１１は、アプリケーション認可プロセス並びに／或いはアプリケーション認可システム１００に関連付けられた他のモジュール、プロセス、及び／又は機能を走らせ、且つ／又は実行するように構成することができる。プロセッサ１１１は、認可クライアント１１３、アプリケーション１１４、及びアプリケーション１１６を含む。
【００１６】
認可クライアント１１３は、装置１１０にインストールされたネイティブアプリケーションであることができる。認可クライアント１１３は、プロセッサ１１１で実行され、且つ／又はメモリ１１２に記憶される、１組のアプリケーション１１４及び１１６のアプリケーション認可情報をクライアント認可モジュール１４０に送信するハードウェア及び／又はソフトウェアモジュール（メモリ１１２に記憶され、プロセッサ１１１で実行される）であることができる。認可クライアント１１３は、本明細書で更に詳細に説明するように、各アプリケーション１１４及び１１６のアプリケーショントークンを受信するように構成することができる。
【００１７】
アプリケーション１１４及び１１６は、認可クライアント１１３からアプリケーショントークンを受信し、プロセッサ１１１に特定の動作を実行させるように構成されるハードウェア及び／又はソフトウェアモジュール（メモリ１１２に記憶され、プロセッサ１１１で実行される）であることができる。例えば、アプリケーション１１４及び１１６に、企業内の特定の機能を関連付けることができる。例えば、アプリケーション１１４及び１１６は、会計アプリケーション、販売力アプリケーション、ペイロールアプリケーション等であることができる。他の実施形態では、アプリケーション１１４及び１１６は、装置１１０で走らせ、且つ／又は実行されるように構成される任意の他の企業又は第三者アプリケーションであることができる。
【００１８】
企業サーバ１３０は、例えば、ウェブサーバ、アプリケーションサーバ、プロキシサーバ、テルネットサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、メールサーバ、リストサーバ、コラボレーションサーバ等であることができる。幾つかの実施形態では、企業サーバ１３０は、ユーザ認証及び／又はアプリケーション認証要求を装置１１０から受信し、そのような要求に応答して、ユーザトークン及びアプリケーショントークンを生成するように構成される。幾つかの実施形態では、企業サーバ１３０は、そのようなアプリケーション認可システム１００に関連付けられたモジュール、プロセス、及び／又は機能を実行することもできる。
【００１９】
企業サーバ１３０は、プロセッサ１３４及びメモリ１３２を含む。メモリ１３２は、例えば、ランダムアクセスメモリ（ＲＡＭ）、メモリバッファ、ハードドライブ、データベース、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的に消去可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、読み取り専用メモリ（ＲＯＭ）等であることができる。幾つかの実施形態では、メモリ１３２は命令を記憶し、命令は、プロセッサに、そのようなアプリケーション認可システム１００に関連付けられたモジュール、プロセス、及び／又は機能を実行させる。
【００２０】
プロセッサ１３４は、汎用プロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）等であることができる。幾つかの実施形態では、プロセッサ１３４は、そのようなアプリケーション認可システム１００に関連付けられたアプリケーションモジュール、プロセス、及び／又は機能を走らせ、且つ／又は実行するように構成することができる。例えば、プロセッサ１３４は、ユーザ要求及びアプリケーション認証要求に関連付けられるモジュール、プロセス、及び／又は機能を走らせ、且つ／又は実行するか、又はユーザ要求及びアプリケーション認証要求に応答してモジュール、プロセス、及び／又は機能を走らせ、且つ／又は実行するように構成することができる。プロセッサ１３４は、クライアント認可モジュール１４０、企業認可モジュール１４２、及びアプリケーションモジュール１４４を含む。
【００２１】
クライアント認可モジュール１４０は、ネットワーク１２０を介して装置１１０からユーザ認証情報及び／又はアプリケーション認証情報を受信するハードウェア及び／又はソフトウェアモジュール（メモリ１３２に記憶され、プロセッサ１３４で実行される）であることができる。幾つかの実施形態では、クライアント認可モジュール１４０は、装置１１０のアプリケーション１１４及び１１６のアプリケーショントークンを生成し、且つ／又は定義するように構成することができる。幾つかの実施形態では、クライアント認可モジュール１４０は、装置１１０に関連付けられたユーザのユーザトークンを生成し、且つ／又は定義するように構成することができる。幾つかの実施形態では、クライアント認可モジュール１４０は、本明細書で更に詳細に説明するように、ユーザトークン及びアプリケーショントークンを認可クライアント１１３に送信することができる。
【００２２】
企業認可モジュール１４２は、ネットワーク１２０を介して認可クライアント１１３から個別のユーザトークンを受信するハードウェア及び／又はソフトウェアモジュール（メモリ１３２に記憶され、プロセッサ１３４で実行される）であることができる。企業認可モジュール１４２は、装置１１０のユーザによる使用に承認されており、その装置１１０にインストール可能な１組のアプリケーション１１４及び１１６を特定するように構成することができる。本明細書で更に詳細に説明するように、幾つかの実施形態では、企業認可モジュール１４２は、承認済みアプリケーション１１４及び／又は１１６のリストを認可クライアント１１３及び／又はクライアント認可モジュール１４０に送信することができる。
【００２３】
アプリケーションモジュール１４４は、ネットワーク１２０を介してアプリケーションデータをアプリケーション１１４及び／又は１１６に提供するように構成されるハードウェア及び／又はソフトウェアモジュール（メモリ１３２に記憶され、プロセッサ１３４で実行される）であることができる。例えば、アプリケーション１１４がペイロールアプリケーションである場合、アプリケーションモジュール１４４によって提供されるアプリケーションデータは、従業員の給料、作業時間、税金及び他の源泉徴収、支払い方法等についてのデータを含むことができる。幾つかの実施形態では、そのようなアプリケーションデータは、アプリケーション１１４及び／又は１１６が、アプリケーション認可システム１００に関連付けられたモジュール、プロセス、及び／又は機能を実行できるようにする。幾つかの実施形態では、本明細書で更に詳細に説明するように、アプリケーションモジュール１４４は、アプリケーションデータをアプリケーション１１４及び／又は１１６に提供する前に、装置１１０からアプリケーショントークンを受信して処理する。
【００２４】
アプリケーションサーバ１５０は、企業サーバ１３０が関連付けられたエンティティ（例えば、会社）とは別個の第三者サーバであることができる。アプリケーションサーバ１５０は、例えば、ウェブサーバ、プロキシサーバ、テルネットサーバ、ファイル転送プロトコル（ＦＴＰ）サーバ、メールサーバ、リストサーバ、コラボレーションサーバ等であることができるソフトウェアアズアサービス（ＳａａＳ:Software as a Service）ホストであることができる。
【００２５】
アプリケーションサーバ１５０は、プロセッサ１５４及びメモリ１５２を含む。メモリ１５２は、例えば、ランダムアクセスメモリ（ＲＡＭ）、メモリバッファ、ハードドライブ、データベース、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的に消去可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、読み取り専用メモリ（ＲＯＭ）等であることができる。幾つかの実施形態では、メモリ１５２は命令を記憶し、命令は、プロセッサ１５４に、アプリケーション認可システム１００内のアプリケーションサーバ１５０に関連付けられたモジュール、プロセス、及び／又は機能を実行させる。
【００２６】
アプリケーションモジュール１５６は、ネットワーク１２０を介してアプリケーションデータをアプリケーション１１４及び１１６に提供するように構成されるハードウェア及び／又はソフトウェアモジュール（メモリ１５２に記憶され、プロセッサ１５４で実行される）であることができる。例えば、アプリケーションデータは、企業の製品の外部市場解析の結果等を含むことができる。アプリケーション１１４及び／又は１１６はこのアプリケーションデータを使用して、例えば、製品の小売価格の設定、製品の予期される収益レベルの計算、製品の利用可能な最良の小売りベンダーのロケーションの特定等を行うことができる。幾つかの実施形態では、アプリケーションモジュール１５６は、アプリケーションデータをアプリケーション１１４及び／又は１１６に提供する前に、装置１１０からアプリケーショントークンを受信して処理することができる。そのようなアプリケーションデータは、アプリケーション１１４及び１１６が、アプリケーション認可システム１００に関連付けられたモジュール、プロセス、及び／又は機能を実行できるようにする。
【００２７】
図２は、一実施形態による、アプリケーション認可システム１００の装置１１０でのユーザ及び承認済みアプリケーション１１４を認証する方法２００を示すメッセージ流れ図である。この実施形態は、認可クライアント１１３が、クライアント認可モジュール１４０から複数のアプリケーショントークンを略同時に受信することを含み、各アプリケーショントークンには、装置１１０のユーザの承認済みアプリケーションが関連付けられる。２１０において、認可クライアント１１３は、ネットワーク１２０を通して、ＯＡｕｔｈ２．０プロトコルを使用してクライアント認可モジュール１４０においてユーザの認証を開始する。認証は、認可クライアント１１３又はモバイルブラウザウィンドウを介して実行することができる。認証は、例えば、ユーザ認証情報（ＵＡＩ:user authentication information）等の識別子の提示を介して実行することができ、識別子は、ユーザログイン、ユーザパスワード、従業員ＩＤ番号、個人識別番号（ＰＩＮ）、生体認証情報（例えば、指紋スキャン、虹彩スキャン等に関連付けられたデータ）、従業員セキュリティ／アクセスレベル、企業部門コード等を含むことができる。
【００２８】
クライアント認可モジュール１４０は、２１２において、ネットワーク１２０を介して認可クライアント１１３又はモバイルブラウザからユーザ認証情報ＵＡＩを受信し、ユーザを認証する。幾つかの実施形態では、クライアント認可モジュール１４０は、ユーザ認証情報ＵＡＩを企業サーバ１３０のメモリ１３２に記憶されたユーザ認証データベース又はルックアップテーブル内の特定のエントリと照合することにより、ユーザを認証することができる。ユーザ認証データベースは、例えば、従業員のリスト並びに対応する雇用ポジション及びセキュリティ／アクセスレベル、社会保障番号、従業員個人識別番号（ＰＩＮ）等を含むことができる。他の実施形態では、ユーザデータベースは、ネットワーク１２０に結合された別の装置（例えば、示されていないサーバ）のメモリに記憶することができる。様々な実施形態では、クライアント認可モジュール１４０は、例えば、セキュアソケットレイヤ（ＳＳＬ:Secure Socket Layer）、セキュアシェル（ＳＳＨ:Secure Shell）、ケルベロス等の任意の適する認証プロトコルを使用して、ユーザを認証することができる。
【００２９】
ユーザの認証に成功すると、クライアント認可モジュール１４０は、装置１１０のユーザのユーザトークン（ＵＴ:user token）を生成し、且つ／又は定義することができる。２１４において、クライアント認可モジュール１４０は、ネットワーク１２０を介してユーザトークンＵＴを認可クライアント１１３に送信することができる。幾つかの実施形態では、例えば、ユーザトークンＵＴは、承認済みユーザに割り当てられているユーザ識別番号の暗号化された形態を含むことができる。他の実施形態では、ユーザトークンＵＴは、例えば、ユーザセキュリティ／アクセスレベル、ユーザ雇用ポジション、装置識別子等の追加の暗号化された、又は暗号化されていないユーザ信用情報を含むことができる。他の実施形態では、ステップ２１０、２１２、及び２１４への代替として、ユーザを認証する任意の他の適する方法を実行することができる。さらに他の実施形態では、ユーザは認証されない。
【００３０】
ユーザトークンＵＴをクライアント認可モジュール１４０から受信することに応答して、認可クライアント１１３は、２１６において、どのアプリケーションが装置１１０にインストールされているかを特定することができる。幾つかの実施形態では、認可クライアント１１３は、特定のユニバーサルリソースロケータ（ＵＲＬ）スキーマが装置１１０によってサポートされているか否かをチェックし、サポートされている場合、どのアプリケーション１１４又は１１６が、装置１１０への登録にそのＵＲＬスキーマを使用したかを特定することができる。他の実施形態では、認可クライアント１１３は、一意のアプリケーション識別子を求めて装置１１０上のアプリケーション１１４又は１１６をポーリングすることができる。さらに他の実施形態では、認可クライアント１１３は、インストールされているアプリケーション１１４及び１１６の一意の識別子のリストを記憶するデータベース及び／又はメモリ１１２の一部にクエリすることができる。装置１１０にインストールされている異なるアプリケーション１１４及び１１６が特定されると、認可クライアント１１３は、インストールされている各アプリケーションに関連付けられた一意の識別子を生成することができる。
【００３１】
認可クライアント１１３は、装置１１０にインストールされたアプリケーション１１４及び１１６の全ての結合アプリケーション認証情報（ＣＡＡＩ:combined application authentication information）を生成し、２１８において、ネットワーク１２０を介して（前に発行されたＵＴを使用して）、結合アプリケーション認証情報ＣＡＡＩを単一のメッセージとしてクライアント認可モジュール１４０に送信することができる。結合アプリケーション認証情報ＣＡＡＩは、特定のどのアプリケーションが装置にインストールされているかをクライアント認可モジュール１４０に報告するために、例えば、装置１１０にインストールされたアプリケーション１１４及び１１６の一意の識別子、各クライアントアプリケーションのユーザ名及びパスワード、ユーザトークン等を含むことができる。幾つかの実施形態では、結合アプリケーション認証情報ＣＡＡＩは、追加の情報、例えば、ユーザ識別番号、ユーザセキュリティ／アクセスレベル、及び／又は装置１１０のユーザの潜在的に認可されているアプリケーションのリストを含むことができる。
【００３２】
幾つかの実施形態では、クライアント認可モジュール１４０は、受信した結合アプリケーション認証情報ＣＡＡＩから、各アプリケーション１１４に関連付けられたアプリケーション識別情報を抽出することができる。クライアント認可モジュール１４０は、アプリケーション識別情報を使用して、抽出されたアプリケーション識別情報に関連付けられたエントリについて、企業サーバ１３０のメモリ１３２に記憶されたアプリケーション認可データベース又はルックアップテーブルをクエリし、どのアプリケーションが、装置１１０の所与のユーザに認可されているかを特定することができる。そのようなエントリが見つかる場合、クライアント認可モジュール１４０は、そのようなエントリの有効性を確認又は拒絶し、企業によってユーザに承認されたアプリケーションのリストを生成することができる。クライアント認可モジュール１４０は、どのアプリケーション１１４及び／又は１１６が、装置１１０のユーザに承認されていないかを特定することもできる。他の実施形態では、アプリケーション認可データベースは、ネットワーク１２０に動作可能に結合された別のサーバ（図１に示されず）のメモリに記憶することができる。様々な実施形態では、クライアント認可モジュール１４０は、例えば、セキュアソケットレイヤ（ＳＳＬ）、セキュアシェル（ＳＳＨ）、ケルベロス等の任意の適する認証プロトコルを使用して、承認済みアプリケーションのリストを認証することができる。
【００３３】
クライアント認可モジュール１４０は、それぞれが、装置１１０にインストールされた個別の承認済みアプリケーション１１４又は１１６のものである複数のアプリケーショントークン（ＡＴ）を生成し、且つ／又は定義することができ、２２０において、ネットワーク１２０を介して複数のアプリケーショントークンＡＴを装置１１０に送信する。例えば、幾つかの実施形態では、複数のアプリケーショントークンＡＴは、暗号化されるか、又は暗号化されない形態のユーザ個人識別番号（ＰＩＮ）、ユーザセキュリティ／アクセスレベル、装置識別番号、クライアント認可モジュール１４０のアドレス、各承認済みアプリケーションに割り当てられるアプリケーション識別番号、関連付けられたアプリケーションモジュール１４４又は１５６のアドレス等を含むことができる。他の実施形態では、複数のアプリケーショントークンＡＴは、アプリケーションのリリース日、ユーザに承認されたアプリケーションの特定の特徴及び／又はリソース、アプリケーショントークンＡＴが有効である期間等の追加の暗号化されるか、又は暗号化されないアプリケーション信用情報を含むことができる。幾つかの実施形態では、複数のアプリケーショントークンＡＴは、例えば、ＯＡｕｔｈ（Open Authorization）トークン、オープンＩＤトークン等であることができる。
【００３４】
他の実施形態では、認可クライアント１１３が直接対話するクライアント認可モジュール１４０は、別の認可モジュール（例えば、特定のアプリケーションモジュールにより密に関連付けられたクライアント認可モジュール）からアプリケーショントークンＡＴを取得することができる。例えば、クライアント認可モジュール１４０は、２１８において、認可クライアント１１３からの結合アプリケーション認証情報ＣＡＡＩの受信に応答して、ＳＡＡＳクライアント認可モジュール（図２に示されない）から１つ又は複数のアプリケーショントークンＡＴを要求する企業クライアント認可モジュール１４０であることができる。ＳＡＡＳクライアント認可モジュールは、アプリケーショントークンをクライアント認可モジュール１４０に送信することができ、２２０において、クライアント認可モジュール１４０は、アプリケーショントークンＡＴを認可クライアント１１３に送信することができる。
【００３５】
認可クライアント１１３は、装置１１０のユーザに承認されたアプリケーション１１４又は１１６のそれぞれに１つずつ、複数のアプリケーショントークンＡＴを、ネットワーク１２０を介して受信する。認可クライアント１１３は、そのアプリケーショントークンＡＴ内の一意のアプリケーション識別番号を、インストールされたアプリケーション１１４又は１１６の一意の識別子のリストを記憶しているデータベースのエントリ及び／又はメモリ１１２の部分と照合することにより、どのアプリケーショントークンＡＴがどのアプリケーション１１４又は１１６に関連付けられているかを識別することができる。２２２において、認可クライアント１１３は、個別の各アプリケーショントークン（ＩＡＴ:individual application token）を、装置１１０の各承認済みアプリケーション１１４又は１１６に送信することができる。例えば、図２に示されるように、２２２において、個別のアプリケーショントークンＩＡＴはアプリケーション１１４に送信される。示されていないが、認可クライアント１１３は、別の個別のアプリケーショントークンＩＡＴをアプリケーション１１６に送信することもできる。
【００３６】
ユーザに承認された各アプリケーション１１４及び１１６は、そのアプリケーション１１４又は１１６に固有の個別のアプリケーショントークンＩＡＴを、認可クライアント１１３から受信する。幾つかの実施形態では、アプリケーション１１４は、受信した個別のアプリケーショントークンＩＡＴからアプリケーションモジュールアドレスを抽出することができ、２２４において、個別のアプリケーショントークンＩＡＴを適切なアプリケーションモジュール１４４又は１５６にネットワーク１２０を介して送信することができる。他の実施形態では、アプリケーション１１４は、アプリケーション１１４に関連付けられた情報を記憶するメモリ１１２の一部から、関連付けられたアプリケーションモジュール１４４又は１５６のアドレス（例えば、ＩＰアドレス）を検索することができる。次に、アプリケーション１１４は、ネットワーク１２０を介して個別のアプリケーショントークンＩＡＴをアプリケーションモジュール１４４又は１５６に送信することができる。幾つかの実施形態では、アプリケーション１１４に関連付けられたアプリケーションモジュール１４４は、企業サーバ１３０にある。他の実施形態では、アプリケーション１１４に関連付けられたアプリケーションモジュール１５６は、装置１１０のアプリケーション１１４及び／又は１１６にアプリケーションデータを提供することが認可され、そのように構成される第三者アプリケーションサーバ１５０にある。幾つかの実施形態では、アプリケーション１１４は、ＩＡＴをアプリケーションモジュール１４４に送信する前に、ユーザがアプリケーション１１４を起動したいことの指示の受信を待つことができる。例えば、アプリケーション１１４は、ユーザがアプリケーション１１４に関連付けられたアイコンを選択したことの指示の受信を待つことができる。
【００３７】
２２４において、アプリケーションモジュール１４４又は１５６は、ネットワーク１２０を介して、装置１１０での使用に承認されたアプリケーション１１４から個別のアプリケーショントークンＩＡＴを受信することができる。幾つかの実施形態では、アプリケーションモジュール１４４又は１５６は、受信した個別のアプリケーショントークンＩＡＴからクライアント認可モジュール１４０のアドレスを抽出することができる。幾つかの実施形態では、アプリケーションモジュール１４４は、企業サーバプロセッサ１３４に配置することができ、２２６において、個別のアプリケーショントークンＩＡＴをクライアント認可モジュール１４０に送信することができる（例えば、プロセッサバスを介して）。他の実施形態では、アプリケーションモジュール１５６は、第三者アプリケーションサーバ１５０に配置することができ、２２６において、ネットワーク１２０を介して個別のアプリケーショントークンＩＡＴをクライアント認可モジュール１４０に送信することができる。
【００３８】
幾つかの実施形態では、２２６において、クライアント認可モジュール１４０は、アプリケーションモジュール１４４及び／又は１５６から個別のアプリケーショントークンＩＡＴを受信することができ、個別のアプリケーショントークンＩＡＴの属性の有効性を評価し、且つ／又は検証することができる。幾つかの実施形態では、クライアント認可モジュール１４０は、個別のアプリケーショントークンＩＡＴに対応するエントリについて、企業サーバ１３０のメモリ１３２に記憶されているデータベース又はルックアップテーブルをクエリすることによってこの検証を実行することができる。他の実施形態では、データベース又はルックアップテーブルは、ネットワーク１２０に動作可能に結合される異なるサーバのメモリに記憶することができる。例えば、クライアント認可モジュール１４０は、ユーザに承認されたアプリケーション１１４又は１１６の個別のアプリケーショントークンＩＡＴが受信されている場合、肯定応答することができる。別の例では、クライアント認可モジュール１４０は、アプリケーション１１４又は１１６の承認済み機能がユーザに対してアクティブ化されている場合、肯定応答することができる。さらに別の例では、クライアント認可モジュール１４０は、個別のアプリケーショントークンＩＡＴのタイムスタンプが有効である場合等、肯定応答することができる。
【００３９】
幾つかの実施形態では、２２８において、クライアント認可モジュール１４０は、肯定応答信号（ＡＳ:acknowledgement signal）を企業サーバ１３０のアプリケーションモジュール１４４に送信することができる。他の実施形態では、２２８において、クライアント認可モジュール１４０は、ネットワーク１２０を介してＡＳを第三者アプリケーションサーバ１５０のアプリケーションモジュール１５６に送信することができる。幾つかの実施形態では、肯定応答信号ＡＳは、アプリケーション属性についてのデータ又は情報を含むことができる。例えば、肯定応答信号ＡＳは、ユーザに承認されたアプリケーション１１４の機能のリスト、ユーザに承認されていないアプリケーション１１４の機能、アプリケーション１１４を装置１１０でセッション毎に実行することができる期間、アプリケーションデータをアプリケーション１１４に送信する許可をアプリケーションモジュール１４４に与えるデータシーケンス等を含むことができる。
【００４０】
幾つかの実施形態では、クライアント認可モジュール１４０から肯定応答信号ＡＳを受信すると、２３０において、アプリケーションモジュール１４４又は１５４は、ネットワーク１２０を介して、装置１１０のアプリケーション１１４の実行中の使用のためにアプリケーションデータ（ＡＤ:application data）をアプリケーション１１４に送信することができる。例えば、アプリケーション１１４が販売アプリケーションである場合、アプリケーションデータＡＤは、製品ユニットの価格の表現、月間販売ユニット数、未決注文で必要とされるユニット数、月間の全ての販売から生み出される収益、月間で得られる利益等を含むことができる。幾つかの実施形態では、アプリケーション１１４は、アプリケーションデータＡＤを使用して、テーブルを埋め、ユーザに表示することができる。別の例では、アプリケーション１１４が人的資産（ＨＲ:human resource）アプリケーションである場合、アプリケーションデータＡＤは、ユーザ従業員番号、ユーザ社会保障番号、従業員ステータスコード、有給休暇（ＰＴＯ:paid time off）の企業コード等を含むことができる。幾つかの実施形態では、アプリケーション１１４は、ユーザがこのデータを使用して、支払いサイクルで企業に請求することができる総労働時間数等を計算できるようにし得る。他の実施形態では、アプリケーションモジュール１１４は、データへの特定の要求がアプリケーション１１４から受信されるまで、アプリケーションデータをアプリケーション１１４に送信するのを待つことができる。例えば、アプリケーション１１４は、ユーザがアプリケーション１１４を起動したいことの指示の受信に応答して、データへの要求をアプリケーションモジュール１４４に送信することができる。
【００４１】
図１及び図２で説明されるアプリケーション認可システム１００の実施形態が、認可クライアント１１３が、装置１１０にインストールされた全てのアプリケーション１１４及び１１６の認証に関連する情報を取得することを含むことに留意されたい。認可クライアント１１３は、各アプリケーション１１４及び１１６についてのアプリケーション認証情報を一緒にまとめて、単一の要求である結合アプリケーション認証情報（ＣＡＡＩ）にし、２１８において、ネットワーク１２０を介して結合アプリケーション認証情報ＣＡＡＩをクライアント認可モジュール１４０に送信することができる。認証に成功すると、クライアント認可モジュール１４０は、各アプリケーション１１４及び１１６のアプリケーショントークンＡＴ４１６を生成し、且つ／又は定義することができる。２２０において、クライアント認可モジュール１４０は、ネットワーク１２０を介して、生成された全てのＡＴを単一の応答で認可クライアント１４０に送信することができる。２２２において、認可クライアント１１３は、個別のアプリケーショントークンＩＡＴのそれぞれ各アプリケーション１１４又は１１６に配信し送信することができる。
【００４２】
他の実施形態では、認可クライアント１１３は、ネットワーク１２０（図２に示されず）を介して、２１４において受信されたユーザトークンＵＴを企業認可モジュール１４２に送信するように構成することができる。幾つかのそのような実施形態では、企業認可モジュール１４２は、ユーザトークンＵＴからユーザ識別番号を抽出して、ユーザ識別番号に関連付けられたエントリについて、企業サーバ１３０のメモリ１３２に記憶されているユーザ認可アプリケーションデータベース又はルックアップテーブルをクエリすることができる。そのようなエントリが有効である場合、企業認可モジュール１４２は、企業によってユーザに承認されているアプリケーションのリストを生成することができる。企業認可モジュール１４２は、ネットワーク１２０を介して、承認済みアプリケーションのリストをデータパッケージ（例えば、ＪＳＯＮパッケージ）で認可クライアント１１３に送信することができる。別の実施形態では、クライアント認可モジュール１４０は、ユーザトークンＵＴを企業サーバ１３０の企業認可モジュール１４２に送信することができる。企業認可モジュール１４２は、上述したようにユーザに承認されたアプリケーションのリストを生成し、ネットワーク１２０を介して、承認されたアプリケーションのリストをデータパッケージ（例えば、ＪＳＯＮパッケージ）で、ユーザトークンＵＴと共に認可クライアント１１３に送信することができる。
【００４３】
幾つかの実施形態では、図２に示されるステップのうちの１つ又は複数は、アプリケーション認可システム１００の実施にとって任意選択的であり得る。例えば、幾つかの実施形態では、アプリケーションモジュール１４４は、個別のアプリケーショントークンＩＡＴの属性の有効性を直接評価し、且つ／又は検証することができる。そのような実施形態では、図２のイベント２２６及び２２８に関連付けられたステップは、アプリケーション認可システム１００を実施する際に回避することができる。幾つかのそのような実施形態では、アプリケーションモジュール１４４は、個別のアプリケーショントークンＩＡＴに対応するエントリについて、企業サーバ１３０のメモリ１３２に記憶されたデータベース又はルックアップテーブルをクエリすることによってこの検証を実行することができる。例えば、アプリケーションモジュール１４４は、ユーザに承認されたアプリケーションの個別のアプリケーショントークンＩＡＴが受信されている場合、肯定応答することができる。別の例では、アプリケーションモジュール１４４は、アプリケーションの承認済み機能がユーザに対してアクティブ化されている場合、肯定応答することができる。さらに別の例では、アプリケーションモジュール１４４は、個別のアプリケーショントークンＩＡＴのタイムスタンプが有効である場合等、肯定応答することができる。個別のアプリケーショントークンＩＡＴの有効性が肯定応答されると、アプリケーションモジュール１４４は、ネットワーク１２０を介して、アプリケーション１１４の実行中の使用のためにアプリケーションデータ２３０を装置１１０のアプリケーション１１４に送信することができる。他の実施形態では、アプリケーションモジュール１４４は、例えば、シグネチャ検証等のアプリケーショントークンを使用してアプリケーションを認証する任意の他の適する方法を使用することができる。したがって、ステップ２２４、２２６、２２８、及び２３０はそれに従って変更することができる。
【００４４】
図３は、別の実施形態による、装置にインストールされた１組のアプリケーションの故個別のアプリケーショントークンを取得する方法３００を示すフローチャートである。方法３００は、３０２において、装置の認可クライアントからクライアント認可モジュールに、装置にインストールされた１組のアプリケーションの指示を送信することを含む。上述したように、幾つかの実施形態では、装置は、デスクトップコンピュータ、ラップトップコンピュータ、個人情報端末（ＰＤＡ）、標準携帯電話、タブレットパーソナルコンピュータ（ＰＣ）等のパーソナル計算装置であることができる。上述したように、認可クライアントは、ハードウェア及び／又は装置のメモリに記憶され、且つ／又は装置のプロセッサで実行されるソフトウェアモジュールであることができる。同様に、クライアント認可モジュールは、ハードウェア及び／又は企業サーバのメモリに記憶され、企業サーバのプロセッサで実行されるソフトウェアモジュールであることができる。
【００４５】
認可クライアントは、３０４において、装置にインストールされた１組のアプリケーションの指示の送信に応答して、クライアント認可モジュールから１組のアプリケーショントークンを受信することができる。１組のアプリケーショントークンからの各アプリケーショントークンには、装置にインストールされた１組のアプリケーションからのクライアントアプリケーションに一意に関連付けられる。上述したように、幾つかの実施形態では、アプリケーショントークンは、ユーザ個人識別番号（ＰＩＮ）、ユーザセキュリティ／アクセスレベル、ユーザに承認されたアプリケーションの特定の特徴及びリソース、アプリケーショントークンが有効な期間の指示、及びアプリケーションを装置で効率的に実行できるようにし得る他の情報を含むことができる。
【００４６】
認可クライアントは、３０６において、１組の承認済みアプリケーションからの各アプリケーションにそれぞれのアプリケーショントークン提供することができる。アプリケーションは、認証のために、アプリケーショントークンを関連付けられたアプリケーションサーバに送信することができる。例えば、認証は、ユーザに対して承認されたアプリケーションのアプリケーショントークンが、アプリケーションからアプリケーションモジュールに送信されたか否かを確認することを含むことができる。別の例では、認証は、ユーザに固有のアプリケーションの承認済み機能がアクティブ化されたか否かを確認することを含むことができる。さらに別の例では、認証は、アプリケーショントークンのタイムスタンプが有効であることを確認することを含むことができる。認証に成功すると、アプリケーションサーバは、装置にインストールされたアプリケーションの実行中の使用のためにアプリケーションデータを送信することができる。
【００４７】
幾つかの実施形態では、アプリケーショントークンは限られた寿命を有することができる。同様に言えば、幾つかの実施形態では、アプリケーショントークンは、所定の時間時間後に期限切れすることができる。そのようなアプリケーションでは、そのアプリケーションが最初にそのアプリケーショントークンを必要とするときに、アプリケーションのアプリケーショントークンを検索することが有利であり得る。これにより、アプリケーショントークンは、アプリケーションが起動し、且つ／又はアプリケーションモジュールを用いて承認する命令を受信するときまでに、まだ期限が切れていないものとして保証される。
【００４８】
図４は、例えば、別の実施形態による、アプリケーション認可システム１００の装置１１０のユーザ及びユーザの承認済みアプリケーション１１４を認証する方法４００を示すメッセージ流れ図である。この実施形態は、認可クライアント１１３が、装置１１０に関連付けられたユーザがアプリケーション１１４の起動を要求したときに生成される信号を、アプリケーション１１４がこの信号を受信する前にインターセプトして、クライアント認可モジュール１４０から個別のアプリケーショントークンを受信することを含む。この実施形態では、ユーザ認証に関わるステップは、図２に関して示され説明されたユーザ認証ステップ（ステップ２１０〜２１４）と同様であることができ、ステップ４１０によって一纏めにされて表される。
【００４９】
幾つかの実施形態では、ユーザの認証に成功すると、４２０において、認可クライアント１１３は、ネットワーク１２０を介して、装置１１０のユーザに承認／認可されたアプリケーション１１４及び１１６のリストへの要求をクライアント認可モジュール１４０に送信することができる。要求は、データパッケージ（例えば、ＪＳＯＮパッケージ）の形態であることができ、例えば、ユーザ識別番号、ユーザセキュリティ／アクセスレベル、ユーザ雇用ポジション、装置識別子ユーザＩＤ、クライアント認可モジュール１４０のアドレス等のユーザ及び／又は装置に関連付けられた暗号化されるか、又は暗号化されていないデータを含むことができる。クライアント認可モジュール１４０は、要求に応答して、ユーザに認可されたアプリケーションのリストを生成し、且つ／又は定義することができる。認可アプリケーションのリストは、各認可アプリケーションの識別子を含むことができる。クライアント認可モジュール１４０は、４２２において、ネットワーク１２０を介して、認可アプリケーションのリストをデータパッケージ例えば、ＪＳＯＮパッケージパッケージ）を認可クライアント１１３に送信することができる。他の実施形態では、認可クライアント１１３は、承認済み／認可アプリケーション１１４及び１１６のリストへの要求をクライアント認可モジュール１４０に送信せず、クライアント認可モジュール１４０は、認可アプリケーションのリストを認可クライアント１１３に送信しない。したがって、幾つかの実施形態では、ステップ４２０及び４２２は任意選択的である。
【００５０】
幾つかの実施形態では、クライアント認可モジュール１４０から認可アプリケーションのリストを受信することに応答して、認可クライアント１１３は、４２４において、どのアプリケーションが装置１１０にインストールされているかを特定することができる。幾つかの実施形態では、認可クライアント１１３は、特定のユニバーサルリソースロケータ（ＵＲＬ）スキーマが装置１１０によってサポートされているか否かをチェックすることができ、サポートされている場合、どのアプリケーション１１４又は１１６がＵＲＬスキーマを使用して、装置１１０に登録したことがあるかを特定することができる。他の実施形態では、認可クライアント１１３は、一意のアプリケーション識別子について、装置１１０のアプリケーション１１４又は１１６をポーリングすることができる。さらに他の実施形態では、認可クライアント１１３は、インストールされたアプリケーション１１４及び１１６の一意の識別子のリストを記憶するデータベース及び／又はメモリ１１２の一部をクエリすることができる。装置１１０にインストールされた異なるアプリケーション１１４及び１１６を特定すると、認可クライアント１１３は、インストールされた各アプリケーションに関連付けられた一意の識別子を生成し、装置１１０にインストールされたアプリケーションのリストを生成することができる。４２６において、認可クライアント１１３は、ネットワーク１２０を介して、装置１１０にインストールされたアプリケーションのリストをデータパッケージ（例えば、ＪＳＯＮパッケージ）でクライアント認可モジュール１４０に送信する。他の実施形態では、認可クライアント１１３は、どのアプリケーションが装置１１０にインストールされているかを特定せず、装置１１０にインストールされたアプリケーションのリストをクライアント認可モジュール１４０に送信しない。したがって、幾つかの実施形態では、ステップ４２４及び４２６は任意選択的である。
【００５１】
幾つかの実施形態では、認可クライアント１１３は、装置１１０に関連付けられたユーザがアプリケーション１１４の起動を要求したときに生成される信号を、アプリケーション１１４がその信号を受信する前にインターセプトすることができる。幾つかの実施形態では、例えば、装置１１０のプロセッサ１１１は、ユーザがアプリケーション１１４の起動を選択したことの指示を受信することができる。そのような選択は、例えば、ユーザが、そのアプリケーションに関連付けられたアイコンを選択することであり得る。起動指示をアプリケーション１１４に直接送信する代わりに、認可クライアント１１３は、起動指示をインターセプトすることができる。本明細書で更に詳細に考察するように、認可クライアント１１３は、アプリケーショントークンが要求され受信されるまで、アプリーション１１４が起動指示を受信しないようにする。
【００５２】
この信号をインターセプトすると、認可クライアント１１３は、４２８において、ネットワーク１２０を介して、アプリケーションの個別のアプリケーショントークンＩＡＴへの要求をクライアント認可モジュール１４０を送信することができる。要求は、データパッケージ（例えば、ＪＳＯＮパッケージ）の形態であることができ、例えば、アプリケーション識別子、装置識別番号、クライアント認可モジュール１４０のアドレス等のアプリケーションに関連付けられた暗号化されるか、又は暗号化されないデータを含むことができる。
【００５３】
クライアント認可モジュール１４０は、装置１１０の要求されたアプリケーション１１４又は１１６の個別のアプリケーショントークンＩＡＴを生成し、且つ／又は定義することができ、４３０において、ネットワーク１２０を介して個別のアプリケーショントークンＩＡＴを認可クライアント１１３へ送信することができる。例えば、幾つかの実施形態では、個別のアプリケーショントークンＩＡＴは、暗号化されるか、又は暗号化されない形態のユーザ個人識別番号（ＰＩＮ）、ユーザセキュリティ／アクセスレベル、装置識別番号、クライアント認可モジュール１４０のアドレス、要求側アプリケーションに割り当てられたアプリケーション識別番号、関連付けられたアプリケーションモジュール１４４又は１５６のアドレス等を含むことができる。他の実施形態では、個別のアプリケーショントークンＩＡＴは、アプリケーションのリリース日、ユーザに承認された、要求されたアプリケーションの特定の特徴及び／又はリソース、個別のアプリケーショントークンＩＡＴが有効である期間等の追加の暗号化されるか、又は暗号化されないアプリケーション信用情報を含むことができる。幾つかの実施形態では、個別のアプリケーショントークンＩＡＴは、例えば、ＯＡｕｔｈ（Open Authorization）トークン、オープンＩＤトークン等であることができる。４３０において、クライアント認可モジュール１４０は、ネットワーク１２０を介して個別のアプリケーショントークンＩＡＴを認可クライアント１１３に送信する。
【００５４】
他の実施形態では、認可クライアント１１３が直接対話するクライアント認可モジュール１４０は、別のクライアント認可モジュール（例えば、アプリケーションモジュール１４４により密に関連付けられたクライアント認可モジュール）から個別のアプリケーショントークンＩＡＴを取得することができる。例えば、クライアント認可モジュール１４０は、４２８において、認可クライアント１１３からアプリケーションの個別のアプリケーショントークンへの要求の受信に応答して、ＳＡＡＳクライアント認可モジュール（図３に示されない）から個別のアプリケーショントークンＩＡＴを要求する企業クライアント認可モジュール１４０であることができる。ＳＡＡＳクライアント認可モジュールは、４３０において、アプリケーショントークンをクライアント認可モジュール１４０に送信することができ、クライアント認可モジュール１４０は、個別のアプリケーショントークンＩＡＴを認可クライアント１１３に送信することができる。
【００５５】
認可クライアント１１３は、ネットワーク１２０を介して装置１１０の要求されたアプリケーション１１４の個別のアプリケーショントークン（ＩＡＴ）を受信する。認可クライアント１１３は、受信した個別のアプリケーショントークンＩＡＴにどのアプリケーション１１４が関連付けられているかを、その個別のアプリケーショントークンＩＡＴ内の一意のアプリケーション識別番号を、インストールされたアプリケーション１１４又は１１６の一意の識別子のリストを記憶したデータベース及び／又はメモリ１１２の一部内のエントリと照合することによって識別することができる。４３２において、認可クライアント１１３は、個別のアプリケーショントークンＩＡＴを装置１１０の要求されたアプリケーション１１４に送信する。さらに、４３３において、認可クライアント１１３は、起動インジケータ４３３を装置１１０のアプリケーション１１４に送信する。同様に言えば、認可クライアント１１３は、認可クライアント１１３によって前にインターセプトされた起動インジケータをアプリケーション１１４に送信する。起動インジケータは、アプリケーション１１４に起動及び／又は実行の開始を命令することができる。
【００５６】
要求されたアプリケーション１１４は、そのアプリケーション１１４に固有の個別のアプリケーショントークンＩＡＴ及び起動インジケータを認可クライアント１１３から受信する。幾つかの実施形態では、アプリケーション１１４は、受信した個別のアプリケーショントークンＩＡＴ及び／又は起動インジケータからアプリケーションモジュールアドレスを抽出し、４３４において、ネットワーク１２０を介して個別のアプリケーショントークンＩＡＴを適切なアプリケーションモジュール１４４又は１５６に送信することができる。他の実施形態では、アプリケーション１１４は、アプリケーション１１４に関連付けられた情報を記憶するメモリ１１２の一部から、関連付けられたアプリケーションモジュール１４４又は１５６のアドレス（例えば、ＩＰアドレス）を検索することができる。次に、アプリケーション１１４は、４３４において、起動インジケータに基づく起動に応答して、ネットワーク１２０を介して個別のアプリケーショントークンＩＡＴを適切なアプリケーションモジュール１４４又は１５６に送信することができる。幾つかの実施形態では、アプリケーション１１４に関連付けられたアプリケーションモジュール１４４は、企業サーバ１３０にある。他の実施形態では、アプリケーション１１４に関連付けられたアプリケーションモジュール１５６は、装置１１０のアプリケーション１１４及び／又は１１６にアプリケーションデータを提供することが認可され、そのように構成される第三者アプリケーションサーバ１５０にある。個別のアプリケーショントークンＩＡＴを認証し、アプリケーションデータＡＤをアプリケーション１１４に送信することに関わるステップは、図２の実施形態で説明されたステップ（ステップ２２６〜２３０）と同様であることができ、ステップ４４０によって一纏めにされて表される。幾つかの実施形態では、肯定応答信号ＡＳについて、アプリケーションモジュール１４４にクライアント認可モジュール１４０を呼び出させる図２のステップ２２６〜２２８に対する代替として、アプリケーションモジュール１４４は、例えば、アプリケーションモジュール１４４でのシグネチャ検証により、個別のアプリケーショントークンＩＡＴを直接及び／又はローカルに検証することができる。他の実施形態では、アプリケーションモジュールは、任意の他の適する検証方法を使用して個別のアプリケーショントークンＩＡＴを検証することができる。
【００５７】
本明細書に記載される幾つかの実施形態は、様々なコンピュータ実施動作を実行する命令又はコンピュータコードを有する非一時的なコンピュータ可読媒体（非一時的なプロセッサ可読媒体と呼ぶこともできる）を有するコンピュータ記憶製品に関する。コンピュータ可読媒体（又はプロセッサ可読媒体）は、それ自体一時的な伝搬信号（例えば、空間又はケーブル等の伝送媒体で情報を搬送する伝搬電磁波）を含まないという意味で非一時的である。媒体及びコンピュータコード（コードと呼ぶこともできる）は、特定の１つ又は複数の目的に向けて設計し構築し得る。非一時的なコンピュータ可読媒体の例としては、限定ではなく、ハードディスク、フロッピー（登録商標）ディスク、及び磁気テープ等の磁気記憶媒体、コンパクトディスク／デジタルビデオディスク（ＣＤ／ＤＶＤ）、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、及びホログラフィック装置等の光学記憶媒体、光ディスク等の磁気光学記憶媒体、搬送波信号処理モジュール、並びに特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、読み取り専用メモリ（ＲＯＭ）、及びランダムアクセスメモリ（ＲＡＭ）デバイス等のプログラムコードを記憶し実行するように特に設計されるハードウェア装置が挙げられる。
【００５８】
コンピュータコードの例としては、限定ではなく、マイクロコード又はマイクロ命令、コパイラによって生成されるような機械命令、ウェブサービスの生成に使用されるコード、及びインタプリタを使用してコンピュータによって実行される高水準命令を含むファイルが挙げられる。例えば、実施形態は、命令プログラミング言語（例えば、C、Fortran等）、機能プログラミング言語（Haskell、Erlang等）、論理プログラミング言語（例えば、Prolog）、オブジェクト指向プログラミング言語（例えば、Java、C++等）、又は他の適するプログラミング言語及び／又は開発ツール。コンピュータコードの追加の例としては、限定ではなく、制御信号、暗号化コード、及び圧縮コードが挙げられる。
【００５９】
様々な実施形態について上述したが、単なる例として提示されており、限定ではないことを理解されたい。上述された方法が、特手の順序で生じる特定のイベントを示す場合、特定のイベントの順序は変更し得る。さらに、特定のイベントは、可能な場合に並列プロセスで同時に実行してもよく、また同様に、上述したように順次実行してもよい。
【図１】
2015528169.tif 000003
【図２】
2015528169.tif 000004
【図３】
2015528169.tif 000005
【図４】
2015528169.tif 000006
【国際調査報告】
2015528169.tif 000007
2015528169.tif 000008
2015528169.tif 000009