(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096033
(43)【公開日】2024-07-11
(54)【発明の名称】OpenIDオフローディングプロキシ
(51)【国際特許分類】
G06F 21/33 20130101AFI20240704BHJP
G06F 21/62 20130101ALI20240704BHJP
【FI】
G06F21/33
G06F21/62 318
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023217936
(22)【出願日】2023-12-25
(31)【優先権主張番号】18/148,786
(32)【優先日】2022-12-30
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.Blu-ray
3.HDMI
(71)【出願人】
【識別番号】519448326
【氏名又は名称】コニカ ミノルタ ビジネス ソリューションズ ユー.エス.エー., インコーポレイテッド
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】スラパラジュ, ラウル
(57)【要約】 (修正有)
【課題】保護されたリソースにアクセスするための方法、非一時的コンピュータ可読媒体、およびコンピュータシステムを提供する。
【解決手段】方法は、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションからの要求を受け取ることと、プロセッサにより、OpenID非対応アプリケーションを認証することと、プロセッサにより、OpenID非対応アプリケーションの認証時にOpenIDリライングパーティとのOpenID接続を確立することと、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることとを含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
保護されたリソースにアクセスする方法であって、
プロセッサにより、保護されたリソースへのアクセスを求めるOpenID非対応アプリケーションからの要求を受け取ることと、
前記プロセッサにより、前記OpenID非対応アプリケーションを認証することと、
前記プロセッサにより、前記OpenID非対応アプリケーションの認証時に、OpenIDリライングパーティとのOpenID接続を確立することと、
前記プロセッサにより、前記保護されたリソースへのアクセスのための、OpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることと
を含む方法。
【請求項2】
前記プロセッサにより、前記OpenID非対応アプリケーションに関連付けられるユーザを、認証することと、
前記プロセッサにより、前記OpenID非対応アプリケーションに関連付けられる前記ユーザの前記認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立することと
をさらに備える、請求項1に記載の方法。
【請求項3】
前記プロセッサにより、アプリケーションプログラミングインターフェース(API)コールによって、HTTPSハンドシェイクを通して、アプリケーションOpenIDライフサイクルを通じて、前記OpenID非対応アプリケーションに関連付けられるユーザを支援すること
をさらに備える、請求項1に記載の方法。
【請求項4】
前記プロセッサにより認証することをさらに備え、前記アプリケーションOpenIDライフサイクルが、公開鍵インフラストラクチャ(PKI)認証を含む、請求項1に記載の方法。
【請求項5】
前記プロセッサにより、前記OpenIDプロバイダに向かうフローを開始するために、前記OpenID非対応アプリケーションの認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立すること
をさらに備える、請求項1に記載の方法。
【請求項6】
前記プロセッサにより、前記保護されたリソースへのアクセスを求める、前記OpenID非対応アプリケーションからの要求で、前記OpenID非対応アプリケーションからの着信HTTPS接続を終了させることと、
前記プロセッサにより、前記OpenID非対応アプリケーションのための前記保護されたリソースにアクセスするために、前記OpenID非対応アプリケーションからの着信HTTPS接続の詳細を、前記OpenIDリライングパーティとの新たな接続にマッピングすることと
をさらに備える、請求項1に記載の方法。
【請求項7】
前記プロセッサにより、前記保護されたリソースへのアクセスのための、前記OpenID非対応アプリケーションに対する通信を仲介すること
をさらに備える、請求項6に記載の方法。
【請求項8】
前記プロセッサにより、前記保護されたリソースへのアクセスのための、前記OpenID非対応アプリケーションに対する前記アクセストークンのみを仲介すること
をさらに備える、請求項6に記載の方法。
【請求項9】
前記アクセストークンが、JSON(JavaScriptオブジェクト表記法)ウェブトークン、署名済みJSONウェブトークン、または暗号化されたJSONウェブトークンとしてフォーマットされる、請求項1に記載の方法。
【請求項10】
前記プロセッサにより、プロファイリングの目的で有限状態機械によって、複数のOpenID非対応アプリケーションの状態を維持すること
をさらに備える、請求項1に記載の方法。
【請求項11】
前記OpenID非対応アプリケーションが、前記OpenID非対応アプリケーションの認証のためのOpenIDプロトコルを含まない、請求項1に記載の方法。
【請求項12】
前記OpenID非対応アプリケーションが、前記OpenID非対応アプリケーションのユーザの認証のための前記OpenIDプロトコルを含まない、請求項11に記載の方法。
【請求項13】
前記プロセッサにより、公開鍵インフラストラクチャベース(PKIベース)の認証によって、前記OpenID非対応アプリケーションに関連付けられるユーザを認証すること
をさらに備える、請求項1に記載の方法。
【請求項14】
前記保護されたリソースは、セキュアソフトウェアアプリケーションである、請求項1に記載の方法。
【請求項15】
保護されたリソースにアクセスするためのコンピュータプログラム製品であって、
その中に実施するプログラム命令を有する非一時的なコンピュータ可読ストレージ媒体を備え、前記プログラム命令はコンピュータによって実行可能であって、前記コンピュータに、
保護されたリソースへのアクセスを求めるOpenID非対応アプリケーションからの要求を受け取ることと、
前記OpenID非対応アプリケーションを認証することと、
前記OpenID非対応アプリケーションの認証時に、OpenIDリライングパーティとのOpenID接続を確立することと、
前記保護されたリソースへのアクセスのための、OpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることと、
を備えるプロセスを実行させる、コンピュータプログラム製品。
【請求項16】
前記OpenID非対応アプリケーションに関連付けられるユーザを認証することと、
前記OpenID非対応アプリケーションに関連付けられる前記ユーザの前記認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立することと
をさらに備える、請求項15に記載のコンピュータプログラム製品。
【請求項17】
アプリケーションプログラミングインターフェース(API)コールによって、HTTPSハンドシェイクを通してアプリケーションOpenIDライフサイクルを通じて、前記OpenID非対応アプリケーションに関連付けられるユーザを支援すること
をさらに備える、請求項15に記載のコンピュータプログラム製品。
【請求項18】
認証することをさらに備え、前記アプリケーションOpenIDライフサイクルが、公開鍵インフラストラクチャ(PKI)認証を含む、請求項15に記載のコンピュータプログラム製品。
【請求項19】
メモリと、
プロセッサとを備えるコンピュータシステムであって、前記プロセッサは、
保護されたリソースへのアクセスのためのOpenID非対応アプリケーションからの要求を受け取り、
前記OpenID非対応アプリケーションを認証し、
前記OpenID非対応アプリケーションの認証時にOpenIDリライングパーティとのOpenID接続を確立し、
前記保護されたリソースへのアクセスのための前記OpenID非対応アプリケーションに対するOpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取る
ように構成される、コンピュータシステム。
【請求項20】
前記プロセッサが、
前記OpenID非対応アプリケーションに関連付けられるユーザを認証し、
前記OpenID非対応アプリケーションに関連付けられる前記ユーザの前記認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立する
ようにさらに構成される、請求項19に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、OpenIDオフローディングプロキシに関し、より詳細には、OpenID非対応アプリケーションと通信するOpenIDオフローディングプロキシによりOpenIDリライングパーティとのOpenID接続を確立することによって、OpenID非対応アプリケーションから保護されたリソースにアクセスするための方法およびシステムに関する。
【背景技術】
【0002】
OpenIDは、ソフトウェアアプリケーション、ユーザ、アイデンティティプロバイダ、およびOpenIDアクセプタ(またはリライングパーティ)が関わる様々な異なるやり方で生じる通信のためのフレームワークをもたらす技術標準である。OpenIDフレームワークは、アプリケーションプログラミングインターフェース(API)アクセス制御のための様々な異なるトークンを標準化する。OpenIDのAPIベースのセキュリティ部分はOAuth 2.0から引き継がれる。
【0003】
APIセキュリティは、アプリケーションにとって決定的に重要な構成要素であるが、それはまた、各アプリケーションに追加の設計、および実装の複雑さをもたらす。従って、OpenID統合の伝統的、および古典的なやり方は、今日開発されているアプリケーションに対して理想的なものとは考えられ得ない。たとえば、関わるプロトコルおよびOpenIDフロー要件に関わらず、各アプリケーションは、OpenID対応である必要があり、すなわち、各アプリケーションは、OpenIDプロトコルを満たすために必要なネットワーク動作を行うソフトウェアコード(またはコード)を有する必要がある。
【0004】
複雑なソフトウェアシステムは、OpenIDベースのAPIセキュリティ機構を用いてデータを安全に交換する、多種多様な分散型アプリケーションを備える。アプリケーションプログラミングインターフェースアクセス許可トークンは、アプリケーションに要求することによって取得され、アクセスを許可するサービス/アプリケーションは、同じシステム内の別のアプリケーションであり得、異なるベンダによるサードパーティアプリケーションであり得る。セキュアAPIアクセスを有する従来のOpenID方式は、各アプリケーションが、OpenID対応であることを必要とする。各アプリケーションは、OpenIDプロトコルを満たすために必要なネットワーク動作を行う、ソフトウェアコード(またはコード)の部分を有する必要があるので、この要件は、開発コストを追加し、また市場へのアプリケーションのリリースを遅らせ得る。
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の問題を考慮して、独自の集中化されたOpenIDオフローダをもたらす解決策を有することが望ましく、これは、アプリケーションからOpenID意味論の負担を軽減し、特に、特定の設計および実装の負担(そうでなければ必要になる)の抽象性をなくすOpenIDオフローディングプロキシであり得、アプリケーションは、OpenID対応である必要はない(すなわち、アプリケーションはOpenID非対応である)。さらに、解決策は、APIコールを通した認証を支援するように実装され得る、OpenIDオフローディングプロキシによるHTTPハンドシェイクをもたらすことが望ましくなり得る。
【課題を解決するための手段】
【0006】
一態様によれば、保護されたリソースにアクセスする方法が開示され、方法は、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションからの要求を受け取ることと、プロセッサにより、OpenID非対応アプリケーションを認証することと、プロセッサにより、OpenID非対応アプリケーションの認証時にOpenIDリライングパーティとのOpenID接続を確立することと、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることとを含む。
【0007】
別の態様によれば、保護されたリソースにアクセスするためのコンピュータプログラム製品であって、その中に実施するプログラム命令を有する非一時的なコンピュータ可読ストレージ媒体を備え、前記プログラム命令はコンピュータによって実行可能であって、前記コンピュータに、保護されたリソースへのアクセスを求めるOpenID非対応アプリケーションからの要求を受け取ることと、前記OpenID非対応アプリケーションを認証することと、前記OpenID非対応アプリケーションの認証時に、OpenIDリライングパーティとのOpenID接続を確立することと、前記保護されたリソースへのアクセスのための、OpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることと、を備えるプロセスを実行させる。
【0008】
さらなる態様によれば、コンピュータシステムは、メモリと、プロセッサとを備え、プロセッサは、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションからの要求を受け取り、OpenID非対応アプリケーションを認証し、OpenID非対応アプリケーションの認証時にOpenIDリライングパーティとのOpenID接続を確立し、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取るように構成される。
【0009】
添付の図面は、本発明のさらなる理解をもたらすために含まれ、本明細書に組み込まれ、その一部を構成する。図面は、本発明の実施形態を示し、全体的な説明と共に本発明の原理を説明するために役立つ。
【図面の簡単な説明】
【0010】
【
図1】
図1は、現在のOpenIDベースのエコシステムの図である。
【
図2】
図2は、例示的実施形態によるOpenIDオフローディングプロキシによるOpenIDエコシステムの図である。
【
図3】
図3は、例示的実施形態によるオフローディングプロキシの図である。
【
図4】
図4は、一実施形態による保護されたリソースにアクセスする方法400のフローチャートである。
【
図5】
図5は、コンピュータシステムの一実施形態についての例示的ハードウェアアーキテクチャの図である。
【発明を実施するための形態】
【0011】
次に、本発明の現在好ましい実施形態が詳細に参照され、その例が添付の図面に示される。可能な場合はどこでも、同一または類似の部分を参照するために、図面でおよび説明では同一の参照番号が使用される。
【0012】
図1は、現在のOpenIDベースのエコシステム100の図である。
図1に示されるように、現在のOpenIDベースのエコシステム100は、1つまたは複数の保護されたリソース110と、オンプレミスシステム120とを含み得る。1つまたは複数の保護されたリソース110は、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113、OpenIDリライングパーティ(RP)114、OpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)116、および1つまたは複数のOpenID対応クライアントアプリケーション122、124を通じてアクセスされるように構成され得る。1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113(またはエンドユーザ)は、たとえば、OpenIDリライングパーティ(RP)114と対話する、ソフトウェア開発キット(SDK)/アプリケーションプログラミングインターフェース(API)であり得る。1つまたは複数の保護されたリソース110はまた、OpenIDリライングパーティ114を有する1つまたは複数のクラウドサーバ115上にホストされ得る。代替として、1つまたは複数の保護されたリソース110、OpenIDリライングパーティ114、およびOpenIDプロバイダ116は、1つまたは複数のクラウドサーバ115、117上にホストされ得る。
【0013】
1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113は、それに対する識別情報が要求されているエンティティである。たとえば、OAuth 2.0では、これはリソース所有者と呼ばれ得る。OpenIDリライングパーティ114は、OAuth 2.0をサポートし、ユーザ(またはエンドユーザ)130、およびそのユーザ130についての要求情報または資格を認証するためにOpenIDプロバイダ116に依存するクライアントアプリケーションである。OpenIDプロバイダ116は、たとえば、サービスとしてユーザ認証と、ユーザ同意と、トークン発行とを提供するOAuth 2.0許可サーバであり得る。OpenIDプロバイダ116は、ユーザ130が認証されることを確実にすることを助け、ユーザ130および認証イベントについての情報または資格を、OpenIDリライングパーティ114にもたらす。
【0014】
OpenIDプロバイダ116は、OpenIDリライングパーティ114に、ODICトークンまたは識別情報トークンを通して、ユーザ130についての情報を提供し得る。識別情報を確かめる、またはアクセス許可をもたらすために異なるタイプのトークンが、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113と、OpenIDリライングパーティ(RP)114と、OpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)116と、1つまたは複数のOpenID対応クライアントアプリケーション122、124との間で交換され得る。トークンは、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113と、OpenIDリライングパーティ(RP)114と、OpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)116と、1つまたは複数のOpenID対応クライアントアプリケーション122、124との間のトランザクションの間にユーザの識別情報を確立する。
【0015】
トークンタイプは、識別子(ID)トークンおよびアクセストークンのうちの1つまたは複数を含み得る。IDトークンはIDカードまたはパスポートと同様であり得、ユーザ130についての多くの必要な属性または資格を含む。IDトークンは、比較的高レベルのセキュリティに対するJSONウェブ署名を用いてデジタル的に署名された、JSON(JavaScriptオブジェクト表記法)ウェブトークン(JWT)であり得る。アクセストークンは、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113に関連付けられるリソースサーバから、エンドユーザ所有リソースを取得するようにOpenIDリライングパーティ114に許可を与える。アクセストークンは、エンドポイント、たとえば、「UserInfoエンドポイント」から、ユーザ130の情報または資格をフェッチすることによって検証される不透明トークンであり得る。UserInfoエンドポイントは、同意された資格、またはログインされたエンドユーザについてのアサーションを、クライアントアプリケーションがそこで取り出すことができるConnect2idサーバのOAuth 2.0保護されたリソースである。資格は、JSONオブジェクト内にパッケージされることができ、サブメンバは、サブジェクトまたはユーザ(エンドユーザ)識別子を表し得る。
【0016】
図1に示されるように、ユーザ130は、1つまたは複数のOpenID対応クライアントアプリケーション122、124を通じて、OpenIDリライングパーティ(RP)114(104)を通じて、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて、保護されたリソース110を要求し得る。OpenIDリライングパーティ114は、checkid_immediateモード(104)と、checkid_setupモード(102)とを含み得る1つまたは複数のモード(105)を通じて、OpenIDプロバイダ116と通信し得る。checkid_immediateモード(104)では、OpenIDリライングパーティ(RP)114は、すべての通信が、1つまたは複数のOpenID対応クライアントアプリケーション122、124に明示的に通知せずに、1つまたは複数のOpenID対応クライアントアプリケーション122、124に対するユーザエージェントを通して中継されるように、OpenIDプロバイダ116が、1つまたは複数のOpenID対応クライアントアプリケーション122、124と対話しないように要求する。checkid_setup(102)では、1つまたは複数のOpenID対応クライアントアプリケーション122、124は、OpenIDリライングパーティ(RP)114にアクセスするように、1つまたは複数のOpenID対応クライアントアプリケーション122、124によって用いられる同じユーザエージェントを通じて、OpenIDプロバイダ116と通信する。OpenIDリライングパーティ(RP)114、およびOpenIDプロバイダ116は、任意選択で、OpenIDリライングパーティ(RP)114が次いで記憶する関連ハンドルによって参照される共有秘密を確立し得る。checkid_setupモードを用いる場合では、OpenIDリライングパーティ(RP)114は、1つまたは複数のOpenID対応クライアントアプリケーション122、124が、OpenIDプロバイダ116により直接認証できるように、1つまたは複数のOpenID対応クライアントアプリケーション122、124のユーザエージェントをOpenIDプロバイダ116にリダイレクトする。認証の方法は様々となり得るが、通常は、OpenIDプロバイダ116は、パスワードまたは何らかの暗号トークンに対して1つまたは複数のOpenID対応クライアントアプリケーション122、124を促し、OpenIDプロバイダ116は、1つまたは複数のOpenID対応クライアントアプリケーション122、124が、必要な識別情報詳細を受け取るためにOpenIDリライングパーティ(RP)116を信頼するかどうかを尋ねる。
【0017】
1つまたは複数のOpenID対応クライアントアプリケーション122、124が、OpenIDリライングパーティ(RP)114を信頼するとの、OpenIDプロバイダの要求を断った場合は、1つまたは複数のOpenID対応クライアントアプリケーション122、124のユーザエージェントは、認証が拒絶されたことを示すメッセージを用いて、OpenIDリライングパーティ114に戻るようにリダイレクトされ、代わりにリライングパーティは、1つまたは複数のOpenID対応クライアントアプリケーション122、124を認証するのを拒否する。
【0018】
1つまたは複数のOpenID対応クライアントアプリケーション122、124が、OpenIDリライングパーティ(RP)114を信頼するようにとの、OpenIDプロバイダ116の要求を受け入れた場合は、1つまたは複数のOpenID対応クライアントアプリケーション122、124のユーザエージェントは、エンドユーザの証明書と共にOpenIDリライングパーティ(RP)114に戻るようにリダイレクトされる。次いでOpenIDリライングパーティ114は、証明書が実際にOpenIDプロバイダ116から来たことを確認しなければならない。OpenIDリライングパーティ(RP)114およびOpenIDプロバイダ116が、以前に共有秘密を確立していた場合は、OpenIDリライングパーティ(RP)114は、それの共有秘密のコピーを、1つまたは複数のOpenID対応クライアントアプリケーション122、124の証明書と共に、受け取られたものと比較することによって、OpenIDプロバイダ116の識別情報を検証し得る。OpenIDリライングパーティ(RP)114は、それがセッションの間の共有秘密を記憶するので、「ステートフル」であると呼ばれる。対照的に、「ステートレス」または「処理能力なし」のリライングパーティは、データが実際にOpenIDプロバイダ116から来たことを確実にするために、再度バックグラウンド要求(check_authentication)を行わなければならない。
【0019】
OpenIDが確かめられた後、認証は成功したと考えられ、およびOpenID対応クライアントアプリケーション122、124は、所与のOpenIDによって指定された識別情報のもとで、OpenIDリライングパーティ(RP)114にログインされたと考えられる。次いでOpenIDリライングパーティ(RP)114は通常、OpenID対応クライアントアプリケーション122、124の他のセッション情報と共に、OpenID対応クライアントアプリケーション122、124のOpenIDを記憶する。
【0020】
図1に示されるように、OpenIDプロバイダ116は、1つまたは複数のOpenID対応クライアントアプリケーション122、124を通じてユーザ130を認証し、ユーザ130の認証のために要求された情報を識別する資格、または資格のセットが満たされ得、ユーザ130のために、OIDCトークンが、1つまたは複数のOpenID対応クライアントアプリケーション122、124に発行され得る。
【0021】
OIDCトークンがOpenIDプロバイダ116によって発行された後、1つまたは複数のOpenID対応クライアントアプリケーション122、124は、OIDCトークンをOpenIDリライングパーティ(RP)114に提出する。OpenIDリライングパーティ(RP)114は、OpenIDトークンを検証し、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて1つまたは複数の保護されたリソースにアクセスすることを、1つまたは複数のOpenID対応クライアントアプリケーション122、124を通じてユーザ130に許可する。
【0022】
次いで、1つまたは複数のOpenID対応クライアントアプリケーション122、124は、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて、たとえば、ソフトウェア開発キット(SDK)/アプリケーションプログラミングインターフェース(API)を通じて、1つまたは複数の保護されたリソース110に安全にアクセスする(106)ことができる。
【0023】
図2は、例示的実施形態によるOpenIDオフローディングプロキシ210によるOpenIDエコシステム200の図である。
図2に示されるように、OpenIDベースのエコシステム200は、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じてアクセス可能な1つまたは複数の保護されたリソース110を含み得る。OpenIDベースのエコシステム200はまた、OpenIDリライングパーティ(RP)114と、OpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)、たとえば、役割ベースのアクセス制御(RBAC)216を有するOpenIDプロバイダと、OpenIDオフローディングプロキシ210と、1つまたは複数のOpenID非対応クライアントアプリケーション220、222とを含み得る。1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113は、たとえば、OpenIDリライングパーティ(RP)114と対話するソフトウェア開発キット(SDK)/アプリケーションプログラミングインターフェース(API)を含み得る。1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じてアクセス可能な1つまたは複数の保護されたリソース110と、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113とはまた、OpenIDリライングパーティ114を有する1つまたは複数のクラウドサーバ115、117、および役割ベースのアクセス制御(RBAC)226を有するOpenIDプロバイダ上にホストされ得る。一実施形態によれば、RBAC216を有するOpenIDプロバイダは、たとえば、許可されたユーザ130へのアクセスを制限するように構成され得、これは、たとえば、強制アクセス制御(MAC)または任意アクセス制御(DAC)プロトコルを通じて実装され得る。
【0024】
OpenIDオフローディングプロキシ210と、1つまたは複数のOpenID非対応クライアントアプリケーション220、222とは、オンプレミスとすることができ、すなわち、ソフトウェアを用いるユーザ130または組織の敷地の1つまたは複数のコンピュータ221、223にインストールされ、それらの上で稼働するオンプレミスソフトウェアを用いる。代替として、1つまたは複数のOpenID非対応クライアントアプリケーション220、222は、エッジコンピューティングシステム、またはサーバファームまたはクラウド225などのクラウドコンピュータシステム遠隔施設においてインストールされ稼働するソフトウェアであり得る。
【0025】
一実施形態によれば、1つまたは複数のOpenID非対応クライアントアプリケーション220、222は、初期ハンドシェイクおよびOpenIDオフローディングプロキシ210によるアプリケーションOpenIDライフサイクル(有限状態機械)の通過を必要とし得る。OpenIDオフローディングプロキシ210と、1つまたは複数のOpenID非対応クライアントアプリケーション220、222とは、たとえばPKIベースのアプリケーション認証方法を通じて互いに通信し得る。たとえば、PKIベースのアプリケーション認証方法は、1つのポイントから別のポイントに送られるデータを検証するために証書を用い得る。OpenIDオフローディングプロキシ210および1つまたは複数のOpenID非対応クライアントアプリケーション220、222のそれぞれは、公開鍵と秘密鍵とを有する。PKI証書ベースの認証のもとで公開鍵は共有され、データを送信し、データを解読することによって、ユーザ130と、対応する1つまたは複数のOpenID非対応クライアントアプリケーション220、222との識別情報を検証するために用いられる。
【0026】
一実施形態によれば、1つまたは複数のOpenID非対応クライアントアプリケーション220、222は、たとえば標準のセキュアハイパーテキスト転送プロトコル(HTTPS)手段を用いて接続することによって、OpenIDオフローディングプロキシ210と対話し得る。OpenIDオフローディングプロキシ210は、1つまたは複数のOpenID非対応クライアントアプリケーション220、222のそれぞれからの着信HTTPS接続を終了させ、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて保護されたリソース110にアクセスするために、詳細をOpenIDリライングパーティ(RP)114との新たな接続上にマッピングする(仲介および適合)。
【0027】
図2に示されるように、OpenIDオフローディングプロキシ210は、1つまたは複数のOpenID非対応クライアントアプリケーション220、222の代わりに、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて保護されたリソース110を要求し得る(204)。一実施形態によれば、各1つまたは複数のOpenID非対応クライアントアプリケーション220、222の認証フェーズにおいて、OpenIDオフローディングプロキシ210は、OpenIDリライングパーティ(RP)114とのOpenID接続を確立し、RBAC216を有するOpenIDプロバイダに向かうフローを開始する。OpenIDプロバイダ216は、1つまたは複数のOpenID非対応クライアントアプリケーション220、222を通じて、ユーザ130を認証(202)し、ユーザ130の認証のために要求された情報を識別する資格、または資格のセットが満たされ得、ユーザ130および1つまたは複数のOpenID非対応クライアントアプリケーション220、222のために、OpenIDオフローディングプロキシ210に、OIDCトークンが発行され得る。
【0028】
OIDCトークンがRBAC216を有するOpenIDプロバイダによって発行された後、OpenIDオフローディングプロキシ220は、OIDCトークンを、OpenIDリライングパーティ(RP)114に提出する(204)ことによって、OpenIDリライングパーティ(RP)114とのOpenID接続を確立し得る。OpenIDリライングパーティ(RP)114は、OpenIDトークンを検証し、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて1つまたは複数の保護されたリソース110にアクセスする(206)ことを、1つまたは複数のOpenID非対応クライアントアプリケーション220、222を通じてユーザ130に許可する。
【0029】
一実施形態によれば、1つまたは複数のOpenID非対応アプリケーション220、222は、コンピュータシステムまたはクライアントデバイス221上にホストされ得る。コンピュータシステムまたはクライアントデバイス221は、たとえば多機能周辺機器または多機能プリンタ(MFP)、コンピュータシステム、パーソナルコンピュータ、モバイルデバイス、スマートフォン、スマートタブレット、またはスマートウォッチであり得る。さらに、オーセンティケータ240は、たとえば1つまたは複数のOpenID非対応アプリケーション220、222上で、ユーザ130の認証のために用いられ得る生体認証バンドであり得る。コンピュータシステムまたはクライアントデバイス221は、代替として、たとえば医用デバイスまたは医用装置であり得、これらは、たとえば診断および/または治療目的で使用され得る。医用デバイスまたは医用装置の例には、医用撮像デバイスが含まれ得、医用撮像デバイスは、たとえば放射線画像、血管造影画像、超音波画像、および/または断層画像を取得し得る。
【0030】
一実施形態によれば、1つまたは複数のOpenID非対応アプリケーション220、222は、セキュアソフトウェアアプリケーションであり得る保護されたリソース110にアクセスするためのものであり得る。たとえば1つまたは複数のOpenID非対応アプリケーション220、222は、多機能周辺機器または多機能プリンタ(MFP)に関連付けられる印刷サービスを管理するセキュアソフトウェアアプリケーションにアクセスするアプリケーションであり得る。印刷サービスは、たとえばユーザ認証と、監視およびレポーティングと、ユーザおよびコスト管理と、コスト会計および予算管理と、プリンタキュー管理と、ワークフロー管理のうちの1つまたは複数を含み得る。たとえばユーザ認証は、ユーザ130の識別情報の制御を含み得、識別情報の制御は、印刷ジョブが解放および/または印刷される前にユーザ130がデバイスで認証されていることを保証することを助け得る。監視およびレポート機能は、定期的なレポーティング、スケジューリングされたレポーティング、およびオンデマンドレポーティングを通じて、管理者が使用をリアルタイムに追跡および監視することを可能にし得る。ユーザおよびコスト管理機能は、コストセンタにユーザを割り当てること、または文書を印刷する前に関連するコストセンタ、課金またはプロジェクトコードをユーザが選択することを可能にすることによってコストを管理およびチャージバックするのを助け得る。さらに、ユーザおよびコスト管理機能は、印刷規則またはポリシーを作成するために使用され得、印刷規則またはポリシーは、異なるユーザ役割が異なるデバイスおよび特徴にアクセスするのを可能にすることによって、より厳重なコスト管理を保証するのを助け得る。たとえば、ユーザおよびコスト管理機能は、たとえば個人および/またはグループに対して両面印刷および/またはカラー印刷を制御し得る。さらに、コスト会計および予算管理は、コスト制御および柔軟性を実現し、コスト制御および柔軟性は、ユーザのアカウントを補充するためのオプションと共に、管理者が印刷予算をユーザに割り当てることを可能にする印刷管理ソリューションとして使用され得る。たとえば、大学などの環境では、たとえばこれにより、必要に応じて学生が追加し得る無料印刷割当て量を管理者が学生に与えることが可能となる。さらに、印刷キュー管理は、たとえばオフィス内のオフィス印刷キューに加えて、個々の製品の管理のために使用され得る。
【0031】
一実施形態によれば、OpenIDベースのエコシステム200は、1つまたは複数の保護されたリソース110と、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113と、OpenIDリライングパーティ(RP)114と、役割ベースのアクセス制御(RBAC)216を有するOpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)と、OpenIDオフローディングプロキシ210と、1つまたは複数のOpenID非対応クライアントアプリケーション220、222とを含み得、これらは、1つまたは複数の通信ネットワーク230を通じて接続され得る。通信ネットワーク230は、たとえば、ワイヤードまたはワイヤレスの従来型ネットワークを含み得、スター構成、トークンリング構成、または他の既知の構成などの任意の数の構成を有し得る。通信ネットワーク230は、1つまたは複数のローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)(たとえば、インターネット)、仮想プライベートネットワーク(「VPN」)、ピアツーピアネットワーク、近距離場ネットワーク(たとえば、Bluetooth(登録商標))、セルラネットワーク(たとえば、3G、4G、5G、他の世代)、および/または複数のコンピューティングノードがそれを介して通信し得る任意の他の相互接続されたデータ経路を含み得る。
【0032】
一実施形態によれば、ユーザ130は、認証のためにオーセンティケータ240を、1つまたは複数のOpenID非対応アプリケーション220、222に提示し得る。オーセンティケータ240は、たとえば生体識別子であり得、生体識別子は、人間の特徴に関するメトリックを含む個人をラベル付けして記述し、または識別するために使用される特有の測定可能な特徴である。たとえば生体識別子は、限定はしないが、指紋、手のひら静脈、顔認識、DNA(すなわちデオキシリボ核酸)、掌紋、掌形、虹彩認識、網膜、および/または臭気/芳香を含む個人の生理学的特徴を含み得る。
【0033】
図3は、例示的実施形態による、OpenIDオフローディングプロキシ210の図である。
図3に示されるように、OpenIDオフローディングプロキシ210は、OpenIDで保護されたリソース310と通信し、OpenIDで保護されたリソース310は、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113と、OpenID非対応アプリケーション320とを通じてアクセス可能なサービスおよびアプリケーションを含み得る。OpenID非対応アプリケーション320は、
図2に示されるように、1つまたは複数のOpenID非対応クライアントアプリケーション220、222を含み得る。一実施形態によれば、OpenID非対応アプリケーション320は、OpenIDプロトコルを満たすために必要なネットワーク動作を行うコードを含まない。OpenIDオフローディングプロキシ210は、アプリケーションライフサイクルマネージャ330と、OpenIDトークンデータベース(DB)332と、HTTPSサーバおよびクライアント334と、証書発行サービス336と、アプリケーション認証証書データベース(DB)338とを含み得る。
【0034】
一実施形態によれば、アプリケーションライフサイクルマネージャ330は、たとえば、エッジコンピューティングシステムへのアプリケーションのインストールを支援すること、エッジコンピューティングシステムのリソースを供給および/または指定すること、および仮想マシンのライフサイクルを管理(たとえば、開始、停止、リセット)することを行うために、HTTPSサーバおよびクライアント334と通信し得る。
【0035】
OpenIDトークンデータベース332は、本明細書で開示されるように、RBACを有するOpenIDプロバイダ116から受け取られたトークンを記憶し、管理するためのデータベースであることが好ましい。HTTPSサーバおよびクライアント334は、たとえば、HTTPS接続を通じてOpenID非対応アプリケーション320と通信し、またOpenID接続を通じてOpenIDで保護されたリソース310と通信する。証書発行サービス336は、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113と、本明細書で開示されるように1つまたは複数のOpenID非対応クライアントアプリケーション220、222を含み得るOpenID非対応アプリケーション320とのために、OpenIDプロトコルに従った証書の発行を管理するように構成される。さらに、OpenIDオフローディングプロキシ210は、たとえば、RBAC216を有するOpenIDプロバイダによって発行された証書を認証するように構成されたアプリケーション認証証書データベース338を含み得る。
【0036】
一実施形態によれば、OpenIDオフローディングプロキシ210は、OpenIDによってサポートされる1つまたは複数のフロー変形体をサポートするように構成され得、従ってOpenIDオフローディングプロキシ210は、OpenID標準に完全に準拠し得る。たとえばOpenIDオフローディングプロキシは、許可コードフロー、暗黙的フロー、またはハイブリッドフローをサポートするように構成され得る。
【0037】
さらに、OpenIDオフローディングプロキシは、完全プロキシモードと、OpenID専用プロキシモードとを含む1つまたは複数の動作モードをサポートするように構成され得る。たとえば完全プロキシモードでは、各アプリケーションからのあらゆるパケットは、OpenID通信だけでなく、OpenIDオフローディングプロキシ210を通過する。従って、OpenID接続が確立された後、1つまたは複数のアプリケーションプログラミングインターフェース(API)111、112、113と、アクセス可能なサービスおよび/またはアプリケーションを含む対応する保護されたリソース110も、プロキシ処理を受ける。たとえば、OpenIDオフローディングプロキシ210は、1つまたは複数のOpenID非対応クライアントアプリケーション220、222への1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じた、サービスおよび/またはアプリケーションを含む保護されたリソース110からのすべての通信を全部仲介し得る。完全プロキシモードでは、1つまたは複数のOpenID対応クライアントアプリケーション122、124は、たとえば、OpenIDプロバイダ216によって発行されるOpenIDトークンを記憶する必要がない。従って、1つまたは複数のOpenID非対応クライアントアプリケーション220、222は、比較的トランスペアレントなやり方で1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて保護されたリソース110にアクセスし得、OpenIDオフローディングプロキシ210は、通信の仲介によって課される負担を管理し得る。
【0038】
代替として、一実施形態では、OpenIDオフローディングプロキシ210は、OpenIDオフローディングプロキシ210が、要求するOpenID非対応アプリケーション220、222に対してOpenIDアクセストークンを取得している間に、仲介するだけのOpenID専用プロキシモードを含み得る。トークンがOpenIDオフローディングプロキシ210によって取得された後、OpenIDオフローディングプロキシ210は、要求するOpenID非対応アプリケーション220、222にアクセストークンを供給し、要求するOpenID非対応アプリケーション220、222は、要求するOpenID非対応アプリケーション220、220が1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113との通信の間に、HTTPヘッダ内にアクセストークンを配置できるようにアクセストークンを記憶する。OpenID専用プロキシモードでは、OpenIDオフローディングプロキシ210はアクセストークンの記憶を維持しないので、OpenIDトークンDB332は用いられない。さらに、OpenIDオフローディングプロキシ210による処理のための別のトリガは、OpenID非対応アプリケーション220、222が、たとえば、満了したアクセストークンをリフレッシュするように要求するときであり得る。
【0039】
一実施形態によれば、OpenIDオフローディングプロキシ210は、たとえば、JSON(JavaScriptオブジェクト表記法)ウェブトークン(JWT)、署名済みJWT、および暗号化されたJWTを含むアクセストークンのフォーマットの観点からのOpenID標準に従う。
【0040】
一実施形態によれば、OpenIDオフローディングプロキシ210はまた、プロファイリングの目的でアプリケーション優先権をサポートし得る。たとえば、OpenIDオフローディングプロキシ210が、エコシステム200内で複数のベンダによって開発された複数のOpenID非対応アプリケーション220、222をサポートする場合、アプリケーション優先権が必要となり得る。たとえば、アプリケーションライフサイクルマネージャ330は、有限状態機械によって複数のOpenID非対応アプリケーション220、222のそれぞれの状態を維持することができ、2つ以上のOpenID非対応アプリケーション220、222が同じ名前を有する場合、プロファイリングは、OpenIDオフローディングプロキシ210が、2つ以上のOpenID非対応アプリケーション220、222、および対応するリソースアプリケーションプログラミングインターフェース(API)111、112、113のうちの、いずれを呼び出し、受け入れるかを決定するのを助けるようになる。
【0041】
図4は、一実施形態による保護されたリソースにアクセスする方法400のフローチャートである。方法は、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションからの要求を受け取ること(410)と、プロセッサにより、OpenID非対応アプリケーションを認証すること(420)と、プロセッサにより、OpenID非対応アプリケーションの認証時にOpenIDリライングパーティとのOpenID接続を確立すること(430)と、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることとを含む。
【0042】
一実施形態によれば、方法は、プロセッサにより、OpenID非対応アプリケーションに関連付けられるユーザを認証することと、プロセッサにより、OpenID非対応アプリケーションに関連付けられるユーザの認証時にOpenIDリライングパーティとのOpenID接続を確立することとを含む。方法は、プロセッサにより、アプリケーションプログラミングインターフェース(API)コールによってHTTPSハンドシェイクを通してアプリケーションOpenIDライフサイクルを通じて、OpenID非対応アプリケーションに関連付けられるユーザを支援することをさらに含む。
【0043】
一実施形態によれば、方法は、プロセッサにより認証することを含み、アプリケーションOpenIDライフサイクルが、公開鍵インフラストラクチャ(PKI)認証を含む。
【0044】
一実施形態によれば、方法は、プロセッサにより、OpenIDプロバイダに向かうフローを開始するためのOpenID非対応アプリケーションの認証時にOpenIDリライングパーティとのOpenID接続を確立することをさらに含む。一実施形態によれば、方法は、プロセッサにより、保護されたリソースへのアクセスを求めるOpenID非対応アプリケーションからの要求で、OpenID非対応アプリケーションからの着信HTTPS接続を終了させることと、プロセッサにより、OpenID非対応アプリケーションのための保護されたリソースにアクセスするためにOpenID非対応アプリケーションからの着信HTTPS接続の詳細を、OpenIDリライングパーティとの新たな接続にマッピングすることとを含む。さらに、方法は、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションに対する通信を仲介することを含み得る。方法はまた、プロセッサにより、保護されたリソースへのアクセスのためのOpenID非対応アプリケーションに対するアクセストークンのみを仲介することをさらに含み得る。
【0045】
一実施形態によれば、アクセストークンは、JSON(JavaScriptオブジェクト表記法)ウェブトークン、署名済みJSONウェブトークン、または暗号化されたJSONウェブトークンとしてフォーマットされ得る。
【0046】
一実施形態によれば、方法は、プロセッサにより、プロファイリングの目的で有限状態機械によって複数のOpenID非対応アプリケーションの状態を維持することをさらに含む。
【0047】
一実施形態によれば、OpenID非対応アプリケーションは、OpenID非対応アプリケーションの認証のためのOpenIDプロトコルを含まない。さらに、OpenID非対応アプリケーションは、OpenID非対応アプリケーションのユーザの認証のためのOpenIDプロトコルを含まない。
【0048】
一実施形態によれば、方法は、プロセッサにより、公開鍵インフラストラクチャベース(PKIベース)の認証によって、OpenID非対応アプリケーションに関連付けられるユーザを認証することをさらに含む。
【0049】
一実施形態によれば、保護されたリソースはセキュアソフトウェアアプリケーションである。セキュアソフトウェアアプリケーションは、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じてアプリケーションにアクセスするために、ユーザまたはエンドユーザの認証を要求するソフトウェアアプリケーションである。たとえば、セキュアソフトウェアアプリケーションは、多機能周辺機器または多機能プリンタ(MFP)に関連付けられる印刷サービスを管理するアプリケーション、個人または団体の収入、支出費用、および資産を処理および管理する財務管理ソフトウェアアプリケーション、または診療記録、予約、料金請求、および診療所または健康管理システム内の他の関連する診療業務を管理する医用ソフトウェアアプリケーションであり得る。
【0050】
図5は、本開示の実施形態、またはその部分がハードウェア上で実行されるコンピュータ可読コードとして実装され得る、代表的コンピュータシステム500を示す。たとえば、本明細書で開示される方法およびシステムに関連する1つまたは複数のコンピュータシステム、サーバ、またはクライアントデバイス115、117、121、221、223、225は、全体的または部分的に、ハードウェア、ハードウェア上で実行されるソフトウェア、ファームウェア、命令が記憶された非一時的コンピュータ可読媒体、またはそれらの組合せを使用する、コンピュータシステム500によって実装され得、1つまたは複数のコンピュータシステムあるいは他の処理システムで実装され得る。ハードウェア、ハードウェア上で実行されるソフトウェア、またはそれらの任意の組合せは、現在説明される方法およびシステムの方法およびステップを実装するために使用されるモジュールおよび構成要素を実施し得る。
【0051】
プログラム可能論理が使用される場合、そのような論理は、専用コンピュータまたは専用デバイス(たとえば、プログラム可能論理アレイ、特定用途向け集積回路など)となるように実行可能ソフトウェアコードによって構成された市販の処理プラットフォーム上で実行し得る。開示される主題の実施形態が、マルチコアマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、分散機能と共にリンクまたはクラスタ化されたコンピュータ、ならびにほぼ任意のデバイス内に仮想的に組み込まれ得るパーベイシブまたはミニチュアコンピュータを含む、様々なコンピュータシステム構成で実施され得ることを当業者なら理解されよう。たとえば、少なくとも1つのプロセッサデバイスおよびメモリが、前述の実施形態を実装するために使用され得る。
【0052】
本明細書で論じられるプロセッサユニットまたはデバイスは、単一のプロセッサ、複数のプロセッサ、またはそれらの組合せであり得る。プロセッサデバイスは1つまたは複数のプロセッサ「コア」を有し得る。本明細書で論じられる「コンピュータプログラム媒体」、「非一時的コンピュータ可読媒体」、および「コンピュータ使用可能媒体」という用語は、取外し可能記憶ユニット518、取外し可能記憶ユニット522、ハードディスクドライブ512内に設置されたハードディスクなどの有形媒体を一般に指すために使用される。
【0053】
本開示の様々な実施形態が、この代表的コンピュータシステム500の観点から説明される。この説明を読んだ後、他のコンピュータシステムおよび/またはコンピュータアーキテクチャを使用して本開示をどのように実装するかが当業者には明らかとなるであろう。動作が順次プロセスとして説明されることがあるが、動作の一部は、実際には並列に、同時に、かつ/または分散環境で実施され得、プログラムコードが、単一プロセッサまたはマルチプロセッサマシンによるアクセスのためにローカルまたはリモートに記憶される。さらに、いくつかの実施形態では、開示される主題の趣旨から逸脱することなく、動作の順序が再構成され得る。
【0054】
プロセッサデバイス(またはプロセッサ)504は、本明細書で論じられる機能を実施するように具体的に構成されたプロセッサデバイスであり得る。プロセッサデバイス504は、バス、メッセージキュー、ネットワーク、マルチコアメッセージパッシング方式などの通信インフラストラクチャ506に接続され得る。ネットワークは、本明細書で開示される機能を実施するのに適した任意のネットワークであり得、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、ワイヤレスネットワーク(たとえば、「Wi-Fi」)、モバイル通信ネットワーク、サテライトネットワーク、インターネット、光ファイバ、同軸ケーブル、赤外線、無線周波数(「RF」)、またはそれらの任意の組合せを含み得る。他の適切なネットワークタイプおよび構成が、当業者には明らかとなるであろう。コンピュータシステム500はまた、メインメモリ508(たとえば、ランダムアクセスメモリ、読み取り専用メモリなど)をも含み得、2次メモリ510をも含み得る。2次メモリ510は、ハードディスクドライブ512と、フロッピィディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリなどの取外し可能記憶ドライブ514とを含み得る。
【0055】
取外し可能記憶ドライブ514は、周知の方式で取外し可能記憶ユニット518から読み取り、かつ/または取外し可能記憶ユニット518に書き込み得る。取外し可能記憶ユニット518は、取外し可能記憶ドライブ514によって読み取られ、書き込まれ得る取外し可能記憶媒体を含み得る。たとえば、取外し可能記憶ドライブ514がフロッピィディスクドライブまたはユニバーサルシリアルバスポートである場合、取外し可能記憶ユニット518は、それぞれフロッピィディスクまたはポータブルフラッシュドライブであり得る。一実施形態では、取外し可能記憶ユニット518は非一時的コンピュータ可読記録媒体であり得る。
【0056】
いくつかの実施形態では、2次メモリ510は、コンピュータプログラムまたは他の命令をコンピュータシステム500内にロードすることを可能にする代替手段、たとえば取外し可能記憶ユニット522およびインターフェース520を含み得る。そのような手段の例には、(たとえば、ビデオゲームシステムで見られるような)プログラムカートリッジおよびカートリッジインターフェース、取外し可能メモリチップ(たとえば、EEPROM、PROMなど)および関連するソケット、ならびに当業者には明らかとなるであろうが、他の取外し可能記憶ユニット522およびインターフェース520が含まれ得る。
【0057】
コンピュータシステム500(たとえば、メインメモリ508および/または2次メモリ510)内に記憶されるデータは、光ストレージ(たとえば、コンパクトディスク、デジタルバーサタイルディスク、Blu-rayディスクなど)や磁気ストレージ(たとえば、ハードディスクドライブ)などの任意のタイプの適切なコンピュータ可読媒体上に記憶され得る。データは、リレーショナルデータベース、構造化照会言語(SQL)データベース、分散データベース、オブジェクトデータベースなどの任意のタイプの適切なデータベース構成で構成され得る。適切な構成およびストレージタイプは当業者には明らかとなるであろう。
【0058】
コンピュータシステム500はまた、通信インターフェース524をも含み得る。通信インターフェース524は、コンピュータシステム500と外部デバイスとの間でソフトウェアおよびデータを転送することを可能にするように構成され得る。例示的通信インターフェース524には、モデム、ネットワークインターフェース(たとえば、イーサネットカード)、通信ポート、PCMCIAスロットおよびカードなどが含まれ得る。通信インターフェース524を介して転送されるソフトウェアおよびデータは、信号の形であり得、当業者には明らかとなるであろうが、信号は、電子信号、電磁信号、光信号、または他の信号であり得る。信号は、通信経路526を介して移動し得、通信経路526は、信号を搬送するように構成され得、ワイヤ、ケーブル、光ファイバ、電話線、セルラフォンリンク、無線周波数リンクなどを使用して実装され得る。
【0059】
コンピュータシステム500は、さらにディスプレイインターフェース502を含み得る。ディスプレイインターフェース502は、コンピュータシステム500と外部ディスプレイ530との間でデータを転送できるように構成してもよい。例示的なディスプレイインターフェース502には、高精細マルチメディアインターフェース(HDMI)、デジタルビジュアルインターフェース(DVI)、ビデオグラフィックスアレイ(VGA)などが含まれ得る。ディスプレイ530は、ブラウン管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、静電容量式タッチディスプレイ、薄膜トランジスタ(TFT)ディスプレイなど、コンピュータシステム500のディスプレイインターフェース502を介して伝送されるデータを表示するのに適した任意のタイプのディスプレイであってよい。コンピュータプログラム媒体およびコンピュータ使用可能媒体は、メインメモリ508やセカンダリメモリ510などのメモリを指す場合があり、これらはメモリ半導体(DRAMなど)であり得る。これらのコンピュータプログラムプロダクトは、コンピュータシステム500にソフトウェアを提供するための手段であり得る。コンピュータプログラム(例えば、コンピュータ制御ロジック)は、メインメモリ508および/またはセカンダリメモリ510に記憶してもよい。コンピュータプログラムは、通信インターフェース524を介して受信することもできる。そのようなコンピュータプログラムが実行されると、コンピュータシステム500は、本書で説明されるように、現在の方法を実行できるようになり得る。特に、コンピュータプログラムが実行されると、プロセッサデバイス504は、本書で説明する
図1から4で示される方法を実行できるようになり得る。従って、そのようなコンピュータプログラムは、コンピュータシステム500の制御装置を表す。本開示がハードウェア上で実行されるソフトウェアを使用して実施される場合、ソフトウェアはコンピュータプログラムプロダクトに格納され、リムーバブル記憶ドライブ514、インターフェース520、およびハードディスクドライブ512、または通信インターフェース524を使用してコンピュータシステム500にロードされる。
【0060】
プロセッサデバイス504は、コンピュータシステム500の機能を実行するように構成された1つまたは複数のモジュールまたはエンジンから構成してもよい。各モジュールまたはエンジンは、ハードウェアを使用して実行することができ、場合によっては、メインメモリ508またはセカンダリメモリ510に記憶されたプログラムコードおよび/またはプログラムに対応するなど、ハードウェア上で実行されるソフトウェアを利用することもできる。このような場合、プログラムコードは、コンピュータシステム500のハードウェアによって実行される前に、プロセッサデバイス504によって(例えば、コンパイルモジュールまたはエンジンによって)コンパイルされてもよい。例えば、プログラムコードは、プロセッサデバイス504および/またはコンピュータシステム500の追加ハードウェアコンポーネントによって実行されるように、アセンブリ言語やマシンコードなどの下位レベルの言語に翻訳されたプログラミング言語で書かれたソースコードであり得る。コンパイルのプロセスには、字句解析、前処理、構文解析、意味解析、構文指示翻訳、コード生成、コード最適化、および本明細書に開示されている機能を実行するためにコンピュータシステム500を制御するのに適した低レベル言語へのプログラムコードの翻訳に適したその他の技術の使用が含まれ得る。コンピュータシステム500が、上記で説明した機能を実行するために特別にプログラムされたコンピュータシステム500となることは、関連する技術の当業者には明らかであろう。
【0061】
例示的実施形態によれば、開示されたような方法およびプロセスは、非一時的コンピュータ可読媒体上に実装され得る。非一時的コンピュータ可読媒体は、磁気記録媒体、光磁気記録媒体、または将来に開発されるであろう任意の他の記録媒体であり得、そのすべては、全く同じように本発明に適用可能と考えられ得る。1次および2次複製製品を含むこのような媒体の複製などは、間違いなく上記の媒体と等価と考えられる。さらに、本発明の実施形態がソフトウェアおよびハードウェアの組合せである場合でも、それは本発明の概念から全く外れない。本開示は、本開示のソフトウェア部分が予め記録媒体上に書き込まれるように実装され得、動作時の必要に応じて読み出されるようになる。
【0062】
本明細書で用いられる、単数形で記載され、「a」または「an」の語が先行する要素またはステップは、明示的にそのような除外が記載されない限り、複数の要素またはステップを除外しないものと理解されるべきである。さらに本開示の「例示の実施形態」または「一実施形態」と呼ぶものは、記載された特徴をやはり組み込んだ追加の例の存在を除外すると解釈されることを意図するものではない。
【0063】
本文書の終わりでの特許請求項は、「するための手段」または「するためのステップ」の文言が請求項において明示的に記載されるなど、従来のミーンズプラスファンクションの文言が明示的に記載されない限り、米国特許法(35 U.S.C.)第112条(f)のもとで解釈されるものではない。
【0064】
当業者には、本発明の範囲または思想から逸脱せずに、本発明の構成に、様々な修正および変形がなされ得ることが明らかになるであろう。上記に鑑みて、本発明の修正および変形が、添付の「特許請求の範囲」およびそれらの等価なものの範囲に包含されるならば、本発明はそれらを含むものである。
【手続補正書】
【提出日】2024-04-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
保護されたリソースにアクセスする方法であって、
プロセッサにより、保護されたリソースへのアクセスを求めるOpenID非対応アプリケーションからの要求を受け取ることと、
前記プロセッサにより、前記OpenID非対応アプリケーションを認証することと、
前記プロセッサにより、前記OpenID非対応アプリケーションの認証時に、OpenIDリライングパーティとのOpenID接続を確立することと、
前記プロセッサにより、前記保護されたリソースへのアクセスのための、OpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることと
を含む方法。
【請求項2】
前記プロセッサにより、前記OpenID非対応アプリケーションに関連付けられるユーザを、認証することと、
前記プロセッサにより、前記OpenID非対応アプリケーションに関連付けられる前記ユーザの前記認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立することと
をさらに備える、請求項1に記載の方法。
【請求項3】
前記プロセッサにより、アプリケーションプログラミングインターフェース(API)コールによって、HTTPSハンドシェイクを通して、アプリケーションOpenIDライフサイクルを通じて、前記OpenID非対応アプリケーションに関連付けられるユーザを支援すること
をさらに備える、請求項1又は2に記載の方法。
【請求項4】
前記アプリケーションOpenIDライフサイクルが、公開鍵インフラストラクチャ(PKI)認証を含む、請求項3に記載の方法。
【請求項5】
前記プロセッサにより、前記OpenIDプロバイダに向かうフローを開始するために、前記OpenID非対応アプリケーションの認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立すること
をさらに備える、請求項1又は2に記載の方法。
【請求項6】
前記プロセッサにより、前記保護されたリソースへのアクセスを求める、前記OpenID非対応アプリケーションからの要求で、前記OpenID非対応アプリケーションからの着信HTTPS接続を終了させることと、
前記プロセッサにより、前記OpenID非対応アプリケーションのための前記保護されたリソースにアクセスするために、前記OpenID非対応アプリケーションからの着信HTTPS接続の詳細を、前記OpenIDリライングパーティとの新たな接続にマッピングすることと
をさらに備える、請求項1又は2に記載の方法。
【請求項7】
前記プロセッサにより、前記保護されたリソースへのアクセスのための、前記OpenID非対応アプリケーションに対する通信を仲介すること
をさらに備える、請求項6に記載の方法。
【請求項8】
前記プロセッサにより、前記保護されたリソースへのアクセスのための、前記OpenID非対応アプリケーションに対する前記アクセストークンのみを仲介すること
をさらに備える、請求項6に記載の方法。
【請求項9】
前記アクセストークンが、JSON(JavaScriptオブジェクト表記法)ウェブトークン、署名済みJSONウェブトークン、または暗号化されたJSONウェブトークンとしてフォーマットされる、請求項1又は2に記載の方法。
【請求項10】
前記プロセッサにより、プロファイリングの目的で有限状態機械によって、複数のOpenID非対応アプリケーションの状態を維持すること
をさらに備える、請求項1又は2に記載の方法。
【請求項11】
前記OpenID非対応アプリケーションが、前記OpenID非対応アプリケーションの認証のためのOpenIDプロトコルを含まない、請求項1又は2に記載の方法。
【請求項12】
前記OpenID非対応アプリケーションが、前記OpenID非対応アプリケーションのユーザの認証のための前記OpenIDプロトコルを含まない、請求項11に記載の方法。
【請求項13】
前記プロセッサにより、公開鍵インフラストラクチャベース(PKIベース)の認証によって、前記OpenID非対応アプリケーションに関連付けられるユーザを認証すること
をさらに備える、請求項1又は2に記載の方法。
【請求項14】
前記保護されたリソースは、セキュアソフトウェアアプリケーションである、請求項1又は2に記載の方法。
【請求項15】
保護されたリソースにアクセスするためのコンピュータプログラムであって、
その中に実施するプログラム命令を有する非一時的なコンピュータ可読ストレージ媒体を備え、前記プログラム命令はコンピュータによって実行可能であって、前記コンピュータに、
保護されたリソースへのアクセスを求めるOpenID非対応アプリケーションからの要求を受け取ることと、
前記OpenID非対応アプリケーションを認証することと、
前記OpenID非対応アプリケーションの認証時に、OpenIDリライングパーティとのOpenID接続を確立することと、
前記保護されたリソースへのアクセスのための、OpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることと、
を備えるプロセスを実行させる、コンピュータプログラム。
【請求項16】
前記OpenID非対応アプリケーションに関連付けられるユーザを認証することと、
前記OpenID非対応アプリケーションに関連付けられる前記ユーザの前記認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立することと
をさらに備える、請求項15に記載のコンピュータプログラム。
【請求項17】
アプリケーションプログラミングインターフェース(API)コールによって、HTTPSハンドシェイクを通してアプリケーションOpenIDライフサイクルを通じて、前記OpenID非対応アプリケーションに関連付けられるユーザを支援すること
をさらに備える、請求項15又は16に記載のコンピュータプログラム。
【請求項18】
前記アプリケーションOpenIDライフサイクルが、公開鍵インフラストラクチャ(PKI)認証を含む、請求項17に記載のコンピュータプログラム。
【請求項19】
メモリと、
プロセッサとを備えるコンピュータシステムであって、前記プロセッサは、
保護されたリソースへのアクセスのためのOpenID非対応アプリケーションからの要求を受け取り、
前記OpenID非対応アプリケーションを認証し、
前記OpenID非対応アプリケーションの認証時にOpenIDリライングパーティとのOpenID接続を確立し、
前記保護されたリソースへのアクセスのための前記OpenID非対応アプリケーションに対するOpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取る
ように構成される、コンピュータシステム。
【請求項20】
前記プロセッサが、
前記OpenID非対応アプリケーションに関連付けられるユーザを認証し、
前記OpenID非対応アプリケーションに関連付けられる前記ユーザの前記認証時に、前記OpenIDリライングパーティとの前記OpenID接続を確立する
ようにさらに構成される、請求項19に記載のコンピュータシステム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
別の態様によれば、保護されたリソースにアクセスするためのコンピュータプログラムであって、その中に実施するプログラム命令を有する非一時的なコンピュータ可読ストレージ媒体を備え、前記プログラム命令はコンピュータによって実行可能であって、前記コンピュータに、保護されたリソースへのアクセスを求めるOpenID非対応アプリケーションからの要求を受け取ることと、前記OpenID非対応アプリケーションを認証することと、前記OpenID非対応アプリケーションの認証時に、OpenIDリライングパーティとのOpenID接続を確立することと、前記保護されたリソースへのアクセスのための、OpenID非対応アプリケーションに対する、OpenIDアイデンティティプロバイダによって発行されたアクセストークンを受け取ることと、を備えるプロセスを実行させる。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0014
【補正方法】変更
【補正の内容】
【0014】
OpenIDプロバイダ116は、OpenIDリライングパーティ114に、OIDCトークンまたは識別情報トークンを通して、ユーザ130についての情報を提供し得る。識別情報を確かめる、またはアクセス許可をもたらすために異なるタイプのトークンが、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113と、OpenIDリライングパーティ(RP)114と、OpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)116と、1つまたは複数のOpenID対応クライアントアプリケーション122、124との間で交換され得る。トークンは、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113と、OpenIDリライングパーティ(RP)114と、OpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)116と、1つまたは複数のOpenID対応クライアントアプリケーション122、124との間のトランザクションの間にユーザの識別情報を確立する。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正の内容】
【0016】
図1に示されるように、ユーザ130は、1つまたは複数のOpenID対応クライアントアプリケーション122、124を通じて、OpenIDリライングパーティ(RP)114(104)を通じて、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じて、保護されたリソース110を要求し得る。OpenIDリライングパーティ114は、checkid_immediateモード(104)と、checkid_setupモード(102)とを含み得る1つまたは複数のモード(105)を通じて、OpenIDプロバイダ116と通信し得る。checkid_immediateモード(104)では、OpenIDリライングパーティ(RP)114は、すべての通信が、1つまたは複数のOpenID対応クライアントアプリケーション122、124に明示的に通知せずに、1つまたは複数のOpenID対応クライアントアプリケーション122、124に対するユーザエージェントを通して中継されるように、OpenIDプロバイダ116が、1つまたは複数のOpenID対応クライアントアプリケーション122、124と対話しないように要求する。checkid_setup(102)では、1つまたは複数のOpenID対応クライアントアプリケーション122、124は、OpenIDリライングパーティ(RP)114にアクセスするように、1つまたは複数のOpenID対応クライアントアプリケーション122、124によって用いられる同じユーザエージェントを通じて、OpenIDプロバイダ116と通信する。OpenIDリライングパーティ(RP)114、およびOpenIDプロバイダ116は、任意選択で、OpenIDリライングパーティ(RP)114が次いで記憶する関連ハンドルによって参照される共有秘密を確立し得る。checkid_setupモードを用いる場合では、OpenIDリライングパーティ(RP)114は、1つまたは複数のOpenID対応クライアントアプリケーション122、124が、OpenIDプロバイダ116により直接認証できるように、1つまたは複数のOpenID対応クライアントアプリケーション122、124のユーザエージェントをOpenIDプロバイダ116にリダイレクトする。認証の方法は様々となり得るが、通常は、OpenIDプロバイダ116は、パスワードまたは何らかの暗号トークンに対して1つまたは複数のOpenID対応クライアントアプリケーション122、124を促し、OpenIDプロバイダ116は、1つまたは複数のOpenID対応クライアントアプリケーション122、124が、必要な識別情報詳細を受け取るためにOpenIDリライングパーティ(RP)
114を信頼するかどうかを尋ねる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正の内容】
【0023】
図2は、例示的実施形態によるOpenIDオフローディングプロキシ210によるOpenIDエコシステム200の図である。
図2に示されるように、OpenIDベースのエコシステム200は、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じてアクセス可能な1つまたは複数の保護されたリソース110を含み得る。OpenIDベースのエコシステム200はまた、OpenIDリライングパーティ(RP)114と、OpenIDプロバイダ(またはOpenIDアイデンティティプロバイダ)、たとえば、役割ベースのアクセス制御(RBAC)216を有するOpenIDプロバイダと、OpenIDオフローディングプロキシ210と、1つまたは複数のOpenID非対応クライアントアプリケーション220、222とを含み得る。1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113は、たとえば、OpenIDリライングパーティ(RP)114と対話するソフトウェア開発キット(SDK)/アプリケーションプログラミングインターフェース(API)を含み得る。1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113を通じてアクセス可能な1つまたは複数の保護されたリソース110と、1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113とはまた、OpenIDリライングパーティ114を有する1つまたは複数のクラウドサーバ115、117、および役割ベースのアクセス制御(RBAC)
216を有するOpenIDプロバイダ上にホストされ得る。一実施形態によれば、RBAC216を有するOpenIDプロバイダは、たとえば、許可されたユーザ130へのアクセスを制限するように構成され得、これは、たとえば、強制アクセス制御(MAC)または任意アクセス制御(DAC)プロトコルを通じて実装され得る。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正の内容】
【0038】
代替として、一実施形態では、OpenIDオフローディングプロキシ210は、OpenIDオフローディングプロキシ210が、要求するOpenID非対応アプリケーション220、222に対してOpenIDアクセストークンを取得している間に、仲介するだけのOpenID専用プロキシモードを含み得る。トークンがOpenIDオフローディングプロキシ210によって取得された後、OpenIDオフローディングプロキシ210は、要求するOpenID非対応アプリケーション220、222にアクセストークンを供給し、要求するOpenID非対応アプリケーション220、222は、要求するOpenID非対応アプリケーション220、222が1つまたは複数のリソースアプリケーションプログラミングインターフェース(API)111、112、113との通信の間に、HTTPヘッダ内にアクセストークンを配置できるようにアクセストークンを記憶する。OpenID専用プロキシモードでは、OpenIDオフローディングプロキシ210はアクセストークンの記憶を維持しないので、OpenIDトークンDB332は用いられない。さらに、OpenIDオフローディングプロキシ210による処理のための別のトリガは、OpenID非対応アプリケーション220、222が、たとえば、満了したアクセストークンをリフレッシュするように要求するときであり得る。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0043
【補正方法】変更
【補正の内容】
【0043】
一実施形態によれば、方法は、アプリケーションOpenIDライフサイクルが、公開鍵インフラストラクチャ(PKI)認証を含む。
【外国語明細書】