特許第6018210号(P6018210)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

<>
  • 特許6018210-OAuthフレームワーク 図000112
  • 特許6018210-OAuthフレームワーク 図000113
  • 特許6018210-OAuthフレームワーク 図000114
  • 特許6018210-OAuthフレームワーク 図000115
  • 特許6018210-OAuthフレームワーク 図000116
  • 特許6018210-OAuthフレームワーク 図000117
  • 特許6018210-OAuthフレームワーク 図000118
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6018210
(24)【登録日】2016年10月7日
(45)【発行日】2016年11月2日
(54)【発明の名称】OAuthフレームワーク
(51)【国際特許分類】
   G06F 21/33 20130101AFI20161020BHJP
【FI】
   G06F21/33 350
【請求項の数】15
【全頁数】137
(21)【出願番号】特願2014-533353(P2014-533353)
(86)(22)【出願日】2012年9月28日
(65)【公表番号】特表2015-501021(P2015-501021A)
(43)【公表日】2015年1月8日
(86)【国際出願番号】US2012057754
(87)【国際公開番号】WO2013049461
(87)【国際公開日】20130404
【審査請求日】2015年8月17日
(31)【優先権主張番号】61/541,026
(32)【優先日】2011年9月29日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】スリニバサン,ベンカタラマン・ウッピリ
(72)【発明者】
【氏名】アンガル,ラジーブ
(72)【発明者】
【氏名】ソンディ,アジェイ
(72)【発明者】
【氏名】バート,シバラム
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2011−155545(JP,A)
【文献】 米国特許出願公開第2010/0100952(US,A1)
【文献】 米国特許出願公開第2003/0074367(US,A1)
【文献】 米国特許第7685206(US,B1)
【文献】 脇田 知彦、他,クラウド環境におけるインベントリ証明書を用いた端末制御 Terminal Control on Cloud Environment Using,マルチメディア,分散,協調とモバイル(DICOMO2010)シンポジウム論文集 情報処理学会シンポジ,日本,社団法人情報処理学会,2010年 6月30日,第2010巻,p.1448-1452
【文献】 T. Lodderstedt, et al.,OAuth 2.0 Security Considerations, draft-lodderstedt-oauth-securityconsiderations-02,Open Authentication Protocol Internet-Draft,[オンライン],2011年 4月 7日,P. 1 - 9,[平成28年9月9日検索]、インターネット,URL,<https://tools.ietf.org/pdf/draft-lodderstedt-oauth-securityconsiderations-02.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/33
(57)【特許請求の範囲】
【請求項1】
方法であって、
OAuth承認サーバにおいて、前記OAuth承認サーバとは別個の第1のリソースサーバから、前記第1のリソースサーバが認識するスコープの第1のセットを示すメタデータの第1のセットを受信することと、
前記メタデータの第1のセットを受信するのに応答して、前記OAuth承認サーバにおいて、前記スコープの第1のセット中のスコープと前記第1のリソースサーバが維持するリソースのサブセットとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、第1のアクセストークンと前記スコープの第1のセットからの第1のスコープとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、前記第1のリソースサーバから、前記第1のアクセストークンを有効化する要求を受信することと、
前記第1のアクセストークンを有効化する前記要求を受信するのに応答して、前記OAuth承認サーバが、前記第1のアクセストークンと前記第1のスコープとの間の前記マッピングに基づいて前記第1のアクセストークンを有効化することと、
前記第1のアクセストークンを有効化するのに応答して、前記OAuth承認サーバが、前記第1のリソースサーバに、前記第1のアクセストークンを前記第1のリソースサーバに提示したクライアントアプリケーションが、前記第1のリソースサーバによって維持されかつ前記第1のスコープによって特定されるリソースのセットに対する動作を行なうことを承認されると示すことと
前記OAuth承認サーバにおいて、前記第1のリソースサーバとは別個の第2のリソースサーバから、前記スコープの第1のセットと異なるスコープの第2のセットであって、前記第2のリソースサーバによって認識されるスコープの第2のセットを示すメタデータの第2のセットを受信することと、
前記メタデータの第2のセットを受信するのに応答して、前記OAuth承認サーバにおいて、前記スコープの第2のセットのスコープと前記第2のリソースサーバによって維持されるリソースのサブセットとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、第2のアクセストークンと前記スコープの第2のセットからの第2のスコープとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、前記第2のリソースサーバから、前記第2のアクセストークンを有効化する要求を受信することと、
前記第2のアクセストークンを有効化する前記要求を受信するのに応答して、前記OAuth承認サーバは前記第2のアクセストークンを前記第2のアクセストークンと前記第2のスコープとの間の前記マッピングに基づき有効化することと、
前記第2のアクセストークンを有効化するのに応答して、前記OAuth承認サーバが、前記第2のリソースサーバに、前記第2のアクセストークンを前記第2のリソースサーバに提示したクライアントアプリケーションが、前記第2のリソースサーバによって維持されかつ前記第2のスコープによって特定されるリソースのセットに対する動作を行なうことを承認されると示すことと、を備え、
前記OAuth承認サーバは前記第1のリソースサーバによって維持される前記リソースのセットを管理しない、方法。
【請求項2】
前記OAuth承認サーバにおいて、前記第1のスコープを特定する特定の要求を受信する
ことと、
前記第1のスコープを特定する前記要求を受信するのに応答して、前記OAuth承認サーバが、前記第1のスコープと整合するクライアントアプリケーションアクセスを認める同意を、前記第1のスコープ内に含まれるリソースの所有者に求めることと、
前記所有者から前記同意を受信するのに応答して、前記OAuth承認サーバが、(a)前記第1のアクセストークンを作成することと、(b)前記第1のアクセストークンと前記第1のスコープとの間の前記マッピングを格納することと、(c)前記第1のアクセストークンを前記クライアントアプリケーションに送ることとをさらに備える、請求項1に記載の方法。
【請求項3】
前記メタデータの第1のセットを受信するのに応答して、前記OAuth承認サーバにおいて、前記第1のスコープと、前記第1のリソースサーバによって格納されるリソースの第1のサブセットと、前記第1のスコープにマッピングされたトークンの保持者が前記リソースの第1のサブセット中のリソースに対して行なうことを許される動作の第1のセットとの間のマッピングを格納することをさらに備える、請求項1または2に記載の方法。
【請求項4】
前記第1のアクセストークンを有効化することは、前記OAuth承認サーバが、前記OAuth承認サーバを提供しないカスタマーによって提供されるプログラム的コードを呼出すことを備え、前記プログラム的コードは前記OAuth承認サーバのプロバイダが前記カスタマーに提供するインターフェイスを実現し、前記プログラム的コードは前記第1のアクセストークンを有効化する、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記OAuth承認サーバにおいて、前記第1のスコープを特定する特定の要求を受信することと、
前記第1のスコープを特定する前記要求を受信するのに応答して、前記OAuth承認サーバが、前記第1のスコープと整合するクライアントアプリケーションアクセスを認める同意を、前記第1のスコープ内に含まれるリソースの所有者に求めることと、
前記所有者から前記同意を受信するのに応答して、前記OAuth承認サーバが、前記OAuth承認サーバを提供しないカスタマーによって提供されるプログラム的コードを呼出すこととをさらに備え、前記プログラム的コードは前記OAuth承認サーバのプロバイダが前記カスタマーに提供するインターフェイスを実現し、前記プログラム的コードは前記第1のアクセストークンを作成する、請求項1から4のいずれか1項に記載の方法。
【請求項6】
1つ以上のプロセッサによって実行されると、当該1つ以上のプロセッサに、
OAuth承認サーバにおいて、前記OAuth承認サーバとは別個の第1のリソースサーバから、前記第1のリソースサーバが認識するスコープの第1のセットを示すメタデータの第1のセットを受信することと、
前記メタデータの第1のセットを受信するのに応答して、前記OAuth承認サーバにおいて、前記スコープの第1のセット中のスコープと前記第1のリソースサーバが維持するリソースのサブセットとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、第1のアクセストークンと前記スコープの第1のセットからの第1のスコープとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、前記第1のリソースサーバから、前記第1のアクセストークンを有効化する要求を受信することと、
前記第1のアクセストークンを有効化する前記要求を受信するのに応答して、前記OAuth承認サーバが、前記第1のアクセストークンと前記第1のスコープとの間の前記マッピングに基づいて前記第1のアクセストークンを有効化することと、
前記第1のアクセストークンを有効化するのに応答して、前記OAuth承認サーバが、前記第1のリソースサーバに、前記第1のアクセストークンを前記第1のリソースサーバに提示したクライアントアプリケーションが、前記第1のリソースサーバによって維持されかつ前記第1のスコープによって特定されるリソースのセットに対する動作を行なうことを承認されると示すことと、
前記OAuth承認サーバにおいて、前記第1のリソースサーバとは別個の第2のリソースサーバから、前記スコープの第1のセットと異なるスコープの第2のセットであって、前記第2のリソースサーバによって認識されるスコープの第2のセットを示すメタデータの第2のセットを受信することと、
前記メタデータの第2のセットを受信するのに応答して、前記OAuth承認サーバにおいて、前記スコープの第2のセットのスコープと前記第2のリソースサーバによって維持されるリソースのサブセットとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、第2のアクセストークンと前記スコープの第2のセットからの第2のスコープとの間のマッピングを格納することと、
前記OAuth承認サーバにおいて、前記第2のリソースサーバから、前記第2のアクセストークンを有効化する要求を受信することと、
前記第2のアクセストークンを有効化する前記要求を受信するのに応答して、前記OAuth承認サーバは前記第2のアクセストークンを前記第2のアクセストークンと前記第2のスコープとの間の前記マッピングに基づき有効化することと、
前記第2のアクセストークンを有効化するのに応答して、前記OAuth承認サーバが、前記第2のリソースサーバに、前記第2のアクセストークンを前記第2のリソースサーバに提示したクライアントアプリケーションが、前記第2のリソースサーバによって維持されかつ前記第2のスコープによって特定されるリソースのセットに対する動作を行なうことを承認されると示すことと、を行なわせる命令を備え
前記OAuth承認サーバは前記第1のリソースサーバによって維持される前記リソースのセットを管理しない、コンピュータ読出可能プログラム
【請求項7】
前記命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサにさらに
前記OAuth承認サーバにおいて、前記第1のスコープを特定する特定の要求を受信する
ことと、
前記第1のスコープを特定する前記要求を受信するのに応答して、前記OAuth承認サーバが、前記第1のスコープと整合するクライアントアプリケーションアクセスを認める同意を、前記第1のスコープ内に含まれるリソースの所有者に求めることと、
前記所有者から前記同意を受信するのに応答して、前記OAuth承認サーバが、(a)前記第1のアクセストークンを作成することと、(b)前記第1のアクセストークンと前記第1のスコープとの間の前記マッピングを格納することと、(c)前記第1のアクセストークンを前記クライアントアプリケーションに送ることと、を行なわせる、請求項に記載のコンピュータ読出可能プログラム
【請求項8】
前記命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサにさらに
前記メタデータの第1のセットを受信するのに応答して、前記OAuth承認サーバにおいて、前記第1のスコープと、前記第1のリソースサーバによって格納されるリソースの第1のサブセットと、前記第1のスコープにマッピングされたトークンの保持者が前記リソースの第1のサブセット中のリソースに対して行なうことを許される動作の第1のセットとの間のマッピングを格納することを行なわせる、請求項6または7に記載のコンピュータ読出可能プログラム
【請求項9】
前記第1のアクセストークンを有効化することは、前記OAuth承認サーバが前記OAuth承認サーバを提供しないカスタマーによって提供されるプログラム的コードを呼出すことを備え、前記プログラム的コードは前記OAuth承認サーバのプロバイダが前記カスタマーに提供するインターフェイスを実現し、前記プログラム的コードは前記第1のアクセストークンを有効化する、請求項6から8のいずれか1項に記載のコンピュータ読出可能プログラム
【請求項10】
前記命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサにさらに
前記OAuth承認サーバにおいて、前記第1のスコープを特定する特定の要求を受信することと、
前記第1のスコープを特定する前記要求を受信するのに応答して、前記OAuth承認サーバが、前記第1のスコープと整合するクライアントアプリケーションアクセスを認める同意を、前記第1のスコープ内に含まれるリソースの所有者に求めることと、
前記所有者から前記同意を受信するのに応答して、前記OAuth承認サーバが、前記OAuth承認サーバを提供しないカスタマーによって提供されるプログラム的コードを呼出すこととを行なわせ、前記プログラム的コードは前記OAuth承認サーバのプロバイダが前記カスタマーに提供するインターフェイスを実現し、前記プログラム的コードは前記第1のアクセストークンを作成する、請求項6から9のいずれか1項に記載のコンピュータ読出可能プログラム
【請求項11】
OAuth承認サーバであって、
第1のリソースサーバから、前記第1のリソースサーバが認識するスコープの第1のセットを示すメタデータの第1のセットを受信するように構成される1つ以上のプロセッサと、
前記メタデータの第1のセットを受信するのに応答して、前記スコープの第1のセット中のスコープと前記第1のリソースサーバが維持するリソースのサブセットとの間のマッピングを格納するように構成される1つ以上のプロセッサと、
第1のアクセストークンと前記スコープの第1のセットからの第1のスコープとの間のマッピングを格納するように構成される1つ以上のプロセッサと、
前記第1のリソースサーバから、前記第1のアクセストークンを有効化する要求を受信するように構成される1つ以上のプロセッサと、
前記第1のアクセストークンを有効化する前記要求を受信するのに応答して、前記第1のアクセストークンと前記第1のスコープとの間の前記マッピングに基づいて前記第1のアクセストークンを有効化するように構成される1つ以上のプロセッサと、
前記第1のアクセストークンを有効化するのに応答して、前記第1のリソースサーバに、前記第1のアクセストークンを前記第1のリソースサーバに提示したクライアントアプリケーションが、前記第1のリソースサーバによって維持されかつ前記第1のスコープによって特定されるリソースのセットに対する動作を行なうことを承認されると示すように構成される1つ以上のプロセッサと
前記OAuth承認サーバにおいて、前記第1のリソースサーバとは別個の第2のリソースサーバから、前記スコープの第1のセットと異なるスコープの第2のセットであって、前記第2のリソースサーバによって認識されるスコープの第2のセットを示すメタデータの第2のセットを受信するよう構成される1つ以上のプロセッサと、
前記メタデータの第2のセットを受信するのに応答して、前記スコープの第2のセットのスコープと前記第2のリソースサーバによって維持されるリソースのサブセットとの間のマッピングを格納するよう構成される1つ以上のプロセッサと、
前記OAuth承認サーバにおいて、第2のアクセストークンと前記スコープの第2のセットからの第2のスコープとの間のマッピングを格納するよう構成される1つ以上のプロセッサと、
前記第2のリソースサーバから、前記第2のアクセストークンを有効化する要求を受信するよう構成される1つ以上のプロセッサと、
前記第2のアクセストークンを有効化する前記要求を受信するのに応答して、前記第2のアクセストークンを前記第2のアクセストークンと前記第2のスコープとの間の前記マッピングに基づき有効化するよう構成される1つ以上のプロセッサと、
前記第2のアクセストークンを有効化するのに応答して、前記第2のリソースサーバに、前記第2のアクセストークンを前記第2のリソースサーバに提示したクライアントアプリケーションが、前記第2のリソースサーバによって維持されかつ前記第2のスコープによって特定されるリソースのセットに対する動作を行なうことを承認されると示すよう構成される1つ以上のプロセッサと、を備え
前記OAuth承認サーバは前記第1のリソースサーバによって維持される前記リソースのセットを管理しない、OAuth承認サーバ。
【請求項12】
前記第1のスコープを特定する特定の要求を受信するように構成される1つ以上のプロセッサと、
前記第1のスコープを特定する前記要求を受信するのに応答して、前記第1のスコープと整合するクライアントアプリケーションアクセスを認める同意を、前記第1のスコープ内に含まれるリソースの所有者に求めるように構成される1つ以上のプロセッサと、
前記所有者から前記同意を受信するのに応答して、(a)前記第1のアクセストークンを作成し、(b)前記第1のアクセストークンと前記第1のスコープとの間の前記マッピングを格納し、かつ(c)前記第1のアクセストークンを前記クライアントアプリケーションに送るように構成される1つ以上のプロセッサとをさらに備える、請求項1に記載のOAuth承認サーバ。
【請求項13】
前記メタデータの第1のセットを受信するのに応答して、前記第1のスコープと、前記第1のリソースサーバによって格納されるリソースの第1のサブセットと、前記第1のスコープにマッピングされたトークンの保持者が前記リソースの第1のサブセット中のリソースに対して行なうことを許される動作の第1のセットとの間のマッピングを格納するように構成される1つ以上のプロセッサをさらに備える、請求項11または12に記載のOAuth承認サーバ。
【請求項14】
1つ以上のプロセッサは、前記OAuth承認サーバを提供しないカスタマーによって提供されるプログラム的コードを呼出すことによって、少なくとも部分的に、前記第1のアクセストークンを有効化するように構成され、前記プログラム的コードは前記OAuth承認サーバのプロバイダが前記カスタマーに提供するインターフェイスを実現し、前記プログラム的コードは前記第1のアクセストークンを有効化するように構成される、請求項11から13のいずれか1項に記載のOAuth承認サーバ。
【請求項15】
前記OAuth承認サーバにおいて、前記第1のスコープを特定する特定の要求を受信するように構成される1つ以上のプロセッサと、
前記第1のスコープを特定する前記要求を受信するのに応答して、前記第1のスコープと整合するクライアントアプリケーションアクセスを認める同意を、前記第1のスコープ内に含まれるリソースの所有者に求めるように構成される1つ以上のプロセッサと、
前記所有者から前記同意を受信するのに応答して、前記OAuth承認サーバを提供しないカスタマーによって提供されるプログラム的コードを呼出すように構成される1つ以上のプロセッサとをさらに備え、前記プログラム的コードは前記OAuth承認サーバのプロバイダが前記カスタマーに提供するインターフェイスを実現し、前記プログラム的コードは前記第1のアクセストークンを作成するように構成される、請求項11から14のいずれか1項に記載のOAuth承認サーバ。
【発明の詳細な説明】
【技術分野】
【0001】
優先権主張
本出願は、2011年9月29日に出願され、「リライングパーティおよびOAuthフレームワーク」と題された米国仮特許出願連続番号第61/541,026号に対する米国特許法第119条に基づく優先権を主張する。
【背景技術】
【0002】
背景
アイデンティティ管理システムは、企業または相互ネットワークアイデンティティ管理のために用いることができる情報システムまたは技術の組である。アイデンティティ管理は、コスト、ダウンタイム、および繰返しタスクを減少しつつセキュリティおよび生産性を向上させるという目標を持って、システムおよび企業の内部でのまたはシステムおよび企業の境界を横断して個々のアイデンティティの管理、それらの認証(authentication)、承認(authorization)、役割、および特権付与を説明する。アイデンティティ管理の1つの局面は「シングルサインオン」(SSO)である。アイデンティティ管理の分野で特に有用な1つの基準がOAuthである。
【0003】
SSOは、関連しているが独立した複数のソフトウェアシステムのアクセス制御のプロパティである。このプロパティを用いると、ユーザは一度ログインし、すべてのシステムの各々において再びログインを促されることなく、すべてのシステムへのアクセスを得る。反対に、シングルサインオフは、これによって単一のサインアウト行為が複数のソフトウェアシステムへのアクセスを終了させるプロパティである。異なるアプリケーションおよびリソースは異なる認証メカニズムをサポートするので、シングルサインオンは、初期の認証で用いられるものとは異なる認証情報に内部変換して、これを格納する。SSOはフィッシングの成功を低減させる。なぜなら、ユーザは、考えずにあらゆるところでパスワードを入力するようには訓練されていないからである。SSOは、異なるユーザ名とパスワードとの組合せからのパスワード疲労を低減する。SSOは、同じアイデンティティにパスワードを再入力するのに費やされる時間を低減する。SSOは、パスワードについての情報技術(IT)ヘルプデスクへの通話の数が減ることにより、ITコストを低減する。SSOは、ユーザに再催促するという不便なしに、システムへの/からの入退場/アクセスという全レベルのセキュリティを与える。SSOはコンプライアンス厳守のための集中的な報告も可能にする。SSOは、すべての他のアプリケーションおよびシステムが認証目的のために利用する集中認証サーバを用い、これを、ユーザが自身の認証情報を1回よりも多くせっせと入力しなくてもよいことを確実にする技術と組合せる。
【0004】
OAuthは承認のためのオープン標準である。承認の間接的な効果が認証である。OAuthは、ユーザが、典型的には代わりにユーザ名およびパスワードトークンを供給して、自身の認証情報を渡す必要なく、1つのサイト上に格納されている自身の個人的なリソース(たとえば、写真、ビデオ、連絡先など)を別のサイトと共有できるようにする。各々のトークンは、規定された持続時間の間、特定的なリソースに対して特定的なサイトへのアクセスを認める。これにより、ユーザは、自身のアクセス許可またはその全データ範囲を共有することなく、別のサービスプロバイダが格納する自身の情報への第三者のサイトアクセスを認めることができるようにする。たとえば、トークンは、今から2時間の間、特定的なアルバムからのビデオについて、ビデオ編集サイトへのアクセスを認め得る。
【0005】
たとえば、典型的な筋書きでは、LinkedInのユーザは、当該ユーザの連絡先をYahooからインポートする許可をLinkedInに求められることがある。LinkedInは、たとえば、ユーザの連絡先の各々にLinkedInに参加するよう誘う電子メールメッセージを送るためにこれらの連絡先を入手したいのかもしれない。OAuth以前は、この許可の要求は、ユーザがユーザのYahooユーザアイデンティティおよびパスワードをLinkedInに提供するという要求に係ったかもしれない。この情報は、LinkedInが当該ユーザとしてユーザのYahooアカウントにログインして、次に当該ユーザのYahooアカウントから当該ユーザの連絡先を入手できるように要求された。一般的に述べると、ユーザのYahoo(または任意の他のサイト)のアイデンティティおよびパスワードをLinkedIn(または任意のサイト)に許すのはよい考えではない。なぜなら、これは、LinkedInサイトにYahooサイトのユーザのアカウントへの無制限アクセスを認めるからである。そのような無制限アクセスはほぼ常に、単に連絡先一覧を入手することなどの、LinkedInサイトが実際にその目標を達成するのに必要な分をはるかに超えるアクセスである。
【0006】
もっとよい考えは、Yahooサイトのユーザのアカウントに対して限られた承認をLinkedInサイトに与えることである。限られた承認は、Yahooサイトのユーザのアカウントに対してLinkedInサイトが行なえる動作の特定的なセットを特定し得る。たとえば、典型的な上記の筋書きを参照すると、限られた承認は、LinkedInがユーザの連絡先一覧にアクセスするしかできず、Yahooのユーザのアカウントに対して他の動作を行なえないと特定し得る。OAuthにより、そのような限られた承認が可能になる。OAuthは承認の委任を与える。
【0007】
OAuthがそれによって承認を委任する技術は、類推に相対して理解されてもよい。しばしば、車の所有者が、駐車係が所有者の代わりに車を駐車できるように自身の車の管理を一時的に駐車係に譲る場合、所有者は、一般用途マスターキーを駐車係に与えるのではなく、代わりに、より用途が限定された駐車係用キーを駐車係に与える。駐車係用キーは、車を運転するのに十分なアクセスを駐車係に許すが、所有者が車内に所有するあらゆるものへのアクセスを駐車係に与えるわけではない。同じように、OAuthの使用は、第2のサイトでユーザのアカウントに対して他の動作を行なうことを第1のサイトに許すこともなく−たとえば第2のサイトが格納し得る電子メールメッセージを読むなどの、第2のサイトが格納するユーザの連絡先一覧への第1のサイトのアクセスを認め得る。OAuthは、特定される組の動作を第2のサイトに対して行なうという限られた承認が第1のサイトに与えられるようにして、それ以外は与えられないようにする。
【0008】
別の例として、ユーザは、Snapfishなどの第1のサイトが提供する写真プリントサービスを用いて、第1のサイトとは独立したFlickrなどの第2のサイトが電子的に格納するあるカラー写真をプリントしたいことがある。より具体的には、ユーザは、ユーザの最近のアラスカ訪問からの写真を含むアルバムなどのFlickr上の特定のアルバムに格納されている写真のみをプリントしたいことがある。ユーザは、自身のFlickrアカウントに多数の異なるアルバムを格納していることがあるが、ユーザはアラスカのアルバムからの写真のみをプリントしたいことがある。そのような状況では、ユーザはおそらく、アラスカのアルバムの中に含まれるもの以外の自身のFlickrアルバムのいずれの内容にもSnapfishがアクセスしないのをより好む。上記の筋書きでは、OAuth用語を用いると、Snapfishがクライアントと考えられ、Flickrがリソースサーバ(写真データがリソースである)およびOAuth承認サーバであると考えられる。リソースサーバに格納されるリソース(たとえば写真データ)の所有者として、ユーザはリソース所有者でもある。
【0009】
以上で提示された例を考慮すると、ユーザは、自身のインターネットブラウザアプリケーションをまず用いて、クライアント(たとえばSnapfish)に、リソースサーバ(たとえばFlickr)上のユーザのアラスカのアルバム中の写真をプリントするよう指示し得る。応答して、クライアント(たとえばSnapfish)は、ユーザをリソース承認サーバ(たとえばFlickr)のサイトに転送する。この転送動作は、リソースサーバに対して、クライアントがそれへのアクセスを望むデータの限られたセット(たとえばアラスカのアルバムの内容)を示し得る。リソース承認サーバは、その瞬間にユーザが誰であるかを知らない。というのも、ユーザはリソース承認サーバに対して自身を認証していないからである。したがって、リソース承認サーバは、ユーザが認証を行なうことを要件とする。以上で言及したように、承認の間接的な効果が認証である。(たとえば、リソース承認サーバに関連のユーザのユーザ名およびパスワードを与えることによって)ユーザがリソース承認サーバに対して自身を承認した後、リソース承認サーバは、ユーザのインターネットブラウザに同意ページを送る。同意ページは、リソース承認サーバ(たとえばFlickr)が、限られた特定されたデータのセット(たとえばアラスカのアルバムの内容)をクライアント(たとえばSnapfish)に提供するユーザの許可を有することを確認するようユーザに頼む。ユーザが同意すると仮定して、リソース承認サーバは次に、応答してクライアントに承認コードを送る。この承認コードは、「フロントチャネル」を通して、または換言すると転送を用いてユーザのインターネットブラウザを経由して送られ得る。
【0010】
この筋書きでは、クライアント(たとえばSnapfish)は、承認サーバ(たとえばFlickr)の信用されるパートナーである。クライアントは承認コードまたは「承諾」を受信して、承認コードを格納する。クライアントは、ユーザがその承認コードを能動的に取消すまで、この承認コードを無限に維持する。ユーザは、OAuth承認サーバにログインして、OAuth承認サーバがユーザの代わりにさまざまなクライアントに与えた承諾の一覧を閲覧してもよい。承認コードを受信するのに応答して、クライアント(たとえばSnapfish)は、承認サーバ(たとえばFlickr)への「バックチャネル」通話を行なう。バックチャネル通話は、ユーザのインターネットブラウザに係らない通信である。バックチャネル通話は承認サーバからのアクセストークンを要求する。アクセストークンは、クライアントが承認サーバ上のユーザのアカウントに対して許されているアクセスのスコープを特定する。たとえば、アクセストークンは、クライアントがユーザのアラスカのアルバムの内容にしかアクセスを許されていないことを示し得る。承認サーバは、バックチャネルを介して、要求されたアクセストークンをクライアントに送り返す。クライアントはアクセストークンを格納する。その後、アクセストークンが期限切れになるまでまたはユーザが承諾(すなわち承認コード)を取消すまで、クライアントはアクセストークンをリソースサーバに提示して、アクセストークンによって特定されるリソースにリソースサーバ上でアクセスすることができる。ユーザがアクセストークンに関する承諾を既に取消していた場合は、アクセストークンは、アクセストークンがまだ期限切れになっていなくても、無効となる。
【0011】
アクセストークンに加えて、承認サーバはクライアントに「リフレッシュトークン」を与えることがある。アクセストークンはしばしば特定された寿命を有し、その後では期限切れになってしまうが、リフレッシュトークンは長命のトークンである。クライアントは、関連のアクセストークンとともにリフレッシュトークンを格納し得る。その後、リソースサーバがクライアントの現在のアクセストークンが期限切れであるとする場合は、クライアントはリフレッシュトークンをリソースサーバに提示して、リソースサーバから新しいアクセストークンを入手し得る。
【0012】
有利には、OAuthが用いる方策は、リソースサーバ上のユーザのアカウントについての、クライアントに対するユーザのパスワードの開示を回避する。認証情報のこの開示を回避することにより、クライアントがリソースサーバ上のユーザのアカウントに対して不正行為を行なえないようにする。ユーザが自身のパスワードを供給する唯一の時間は、クライアントのサイトから転送された後のリソースサーバとの直接のユーザの初期認証の間である。
【発明の概要】
【課題を解決するための手段】
【0013】
簡単な概要
本発明の実施形態は、アイデンティティ管理、認証、および承認フレームワークに関する。1つの実施形態では、フレームワークは、エンタープライズのアイデンティティおよびアクセス管理(IAM)インフラストラクチャにおけるインターネットアイデンティティの統合のために設けられる。別の実施形態に従うと、フレームワークはオープン承認のために設けられる。OAuthシステムについては非常に多くの異なる使用事例があるので、単一の方策が常に各々の使用事例に合うわけではない。したがって、発明の実施形態は、OAuthシステムをより柔軟にする。発明の実施形態は、OAuthシステムをそのシステムのエンタープライズ管理者にとってより容易なものにして、管理者自身の用途向けにカスタマイズする。発明の実施形態は、OAuthシステムを、アプリケーションプロバイダおよびリソースプロバイダによってよりカスタマイズしやすいものにする。
【0014】
伝統的に、リソースサーバおよびOAuth承認サーバは同じエンティティであった。発明の実施形態に従うと、OAuth承認サーバの責務からリソースサーバを解放する包括的フレームワークが設けられる。これらの責務は、スコープ管理、承認トークンの発行、リフレッシュトークンの発行、およびアクセストークンの発行を含み得る。このように、包括的OAuth承認サーバはこの包括的フレームワークに従って実現可能である。その結果、各個々のリソースサーバは、それ自身の独自のOAuth承認サーバを実現する必要がない。実際、発明の実施形態に従うと、複数の異なるリソースサーバはすべて同時に同じ包括的OAuth承認サーバの機能を用いることができる。たとえば、発明の実施形態では、単一のOAuth承認サーバは、すべて同時にいくつかの異なるリソースサーバについてスコープを管理することができる。リソースサーバとOAuth承認サーバとの間には多数対1の関係が存在し得る。
【0015】
発明の1つの実施形態では、この複数の異なるリソースサーバと対話できることを達成するため、包括的OAuth承認サーバは、どのトークンがどのリソースサーバに属し、誰が各リソースサーバの信用されるパートナーであるのかなどを示すマッピングデータを維持する。さらに、発明の実施形態では、包括的OAuthフレームワークは、リソースサーバ管理者がフレームワークを容易にカスタマイズして自身のリソースサーバのための特定の使用事例に対応できるように構築される。異なるリソースサーバ管理者は自身の特定的なコンポーネントを包括的OAuthフレームワークに「プラグイン」することができる。このように、発明の1つの実施形態では、各々のリソースサーバは、リソースサーバが使用するかもしれない潜在的なスコープ(すなわちリソースに対する限られた動作)に関して包括的OAuth承認サーバに通知する。
【0016】
以上は、他の特徴および実施形態とともに、以下の明細書、請求項、および添付の図面を参照するとより明らかになるであろう。
【図面の簡単な説明】
【0017】
図1】発明の実施形態に従うOAuthシステムアーキテクチャおよびその論理コンポーネントを図示するブロック図である。
図2】発明の実施形態に従うリソースサーバ環境を図示するブロック図である。
図3】発明の実施形態に従うOAuthクライアント環境を図示するブロック図である。
図4】発明の実施形態に従う、包括的OAuth承認サーバに第1のリソースサーバのメタデータを登録するための技術を図示するフロー図である。
図5】発明の実施形態に従う、包括的OAuth承認サーバに第2のリソースサーバのメタデータを登録するための技術を図示するフロー図である。
図6】本発明の実施形態に従って用いられ得るシステム環境のコンポーネントを図示する簡略ブロック図である。
図7】本発明の実施形態に従って用いられ得るコンピュータシステムの簡略ブロック図である。
【発明を実施するための形態】
【0018】
詳細な説明
以下の説明では、説明の目的のため、発明の実施形態の完全な理解を与えるための具体的な詳細を述べる。しかしながら、発明はこれらの具体的詳細がなくても実践され得ることが明らかであろう。2011年9月29日に出願され、「リライングパーティおよびOAuthフレームワーク」と題された米国仮特許出願連続番号第61/541,026号の全内容がここに引用により援用される。
【0019】
図1は、発明の実施形態に従う、OAuthシステムアーキテクチャ100およびその論理コンポーネントを図示するブロック図である。アーキテクチャ100は、リソース所有者(またはユーザ)102、クライアントアプリケーション104、リソースレジストリ106、およびリソースエコシステム110を含む。リソースエコシステムは、クライアントレジストリ112、トークン−スコープレジストリ114、スコープレジストリ116、ユーザ同意120、およびリソースサーバ122を含む。1つのリソースサーバ122が示されるが、発明の実施形態は複数の別個のリソースサーバを含むことができる。図1の接続からわかるように、クライアントアプリケーション104はリソースレジストリ106と対話する。リソース所有者102は、リソースレジストリ106およびクライアントレジストリ112と対話する。承認サーバ118は、クライアントレジストリ112、トークン−スコープレジストリ114、およびユーザ同意120と対話する。リソースサーバ122は、トークン−スコープレジストリ114と対話する。ユーザ同意120は、スコープレジストリ116と対話する。これらのコンポーネントおよびその機能のさまざまなものを以下にさらに論じる。
【0020】
発明の実施形態は承認の委任に係ることができる。異なるリソース使用事例は異なるスコープ定義を要件とすることがある。異なるリソースは、異なる承認モデルおよびソリューションに依拠することができることがある。異なる特定的ユーザ行為は、異なるリソースサーバが維持するリソースにアクセスするクライアントアプリケーション同意を与えることが要件とされ得る。好ましくは、各々の異なるリソースプロバイダは、別個の独自OAuth承認サーバを設けて当該リソースプロバイダの具体的詳細と統合する必要がないようにすべきである。各々のリソースプロバイダが別個の独自OAuth承認サーバを設けることの不幸な結果は、複数の異なるリソースプロバイダおよび複数の異なるクライアントフォームファクタと統合することを望むエンタープライズが無数の異なるOAuth承認サーバインターフェイスを扱わなければならなくなることであろう。
【0021】
したがって、発明の実施形態では、包括的OAuthフレームワークアーキテクチャが提供される。フレームワークは、メタデータおよびランタイムレジストリを含むOAuthワイヤプロトコルコンポーネント(クライアントおよびサーバ)を含み得る。フレームワークは、特定用途向けソリューションをカスタマイズし、配備するプラグ可能な「コントラクト」のインフラストラクチャを含み得る。
【0022】
発明の1つの実施形態では、リソースサーバ122は、トークン−スコープレジストリ114の中に、リソースサーバ122が認識するスコープの表示を格納する。各々のそのようなスコープは、リソースサーバ122上に格納されるリソースの異なるセットに対して行なわれ得る動作の異なるセットを示すことができる。ある実施形態が複数の異なるまたは別個のリソースサーバを含み得る限り、トークン−スコープレジストリ114は異なるリソースサーバと異なるスコープとの間のマッピングを格納することができる。さらに、発明の1つの実施形態では、各々のスコープは、トークン−スコープレジストリ114内の別個のトークンにマッピングされる。このように、トークン−スコープレジストリ114の参照により、リソースサーバ122は、クライアントアプリケーション104によってリソースサーバ122に提示される特定のトークンにマッピングされる動作のセットおよびリソースのセットを定めることができる。リソースサーバ122は、リソースサーバ122が維持するリソースに対してクライアントアプリケーション104が行なう動作を、特定のトークンにマッピングされる動作のセットが具体的に示す動作に限ることができる。
【0023】
このように、発明の1つの実施形態では、複数のリソースサーバの群のうちの各々の特定のリソースサーバは、当該特定のリソースサーバ上のリソースにアクセスするのに用いることができるトークンにマッピング可能なスコープを示すメタデータの異なるセットをOAuthフレームワークに与える。したがって、スコープはリソースサーバの管理者によってカスタマイズ可能であり、OAuthフレームワークを柔軟にするとともに多数の異なる使用事例に適用可能にする。その結果、多くの異なる種類のリソースサーバはすべて、リソースサーバの各々異なる種類毎の特定的なOAuthフレームワークの作成を必要とせずに、同じ包括的OAuthフレームワークを用いることができる。
【0024】
実施形態では、図1に示される包括的OAuthフレームワークが基本概念構造を提供する。OAuthフレームワークは、既存のアイデンティティ管理製品上に層をなすことができる。OAuthフレームワークでは、コントラクトはこれらの既存の製品との統合点を規定することができる。OAuthフレームワークとコントラクト実現例との組合せは、種々雑多な使用事例および配備オプションを満たすことができる。実施形態に従うと、OAuthフレームワークは、2つの広い「ロール」、すなわちコンシューマー/クライアントロールおよび承認サーバ/リソースサーバロール、を含む。図2を参照して承認サーバ/リソースサーバロールを以下に論じる一方で、図3を参照してコンシューマー/クライアントロールを以下に論じる。
【0025】
図2は、発明の実施形態に従うリソースサーバ環境200を図示するブロック図である。発明の実施形態では、環境200は、リソース所有者(またはユーザ)202、クライアントアプリケーション204、リソースサーバ210、OAuth承認サーバ220、ポリシーサービス240、およびトークンサービス250を含む。リソースサーバ210は、アクセストークン有効化API214およびゲート216を含むリソースサーバアプリケーション212を含む。OAuth承認サーバ220は、トークン−スコープレジストリ222、リソース&スコープレジストリ224、ユーザ同意オーケストレーション226、OPSS−TS(オラクルプラットフォームセキュリティサービス−TS)228、OPSS−AZ(オラクルプラットフォームセキュリティサービス−AZ)230、OAuthコアエンジン232、OAuthプロトコルエンジン234、およびクライアントレジストリ236を含む。実施形態では、リソース所有者202はクライアントアプリケーション204と対話し、ゲート216を通してアクセストークン有効化API214にアクセスする。クライアントアプリケーション204はOAuth承認サーバ220とも対話する。アクセストークン有効化API214は、トークン−スコープレジストリ222およびポリシーサービス240と対話する。OPSS−TSはトークンサービス250と対話する。OPSS−AZはポリシーサービス250と対話する。コンポーネント228−234はまとめて、トークン−スコープレジストリ222およびユーザ同意オーケストレーション226と対話する。ユーザ同意オーケストレーション226はリソース&スコープレジストリ224と対話する。
【0026】
発明の実施形態では、リソース&スコープレジストリ224は、リソース情報、スコープ、ならびにOAuth承認サーバ220を介して公開されるリソースおよびサービスに関連の種々雑多なメタデータを格納する。発明の実施形態では、クライアントレジストリ236は、承認された遠隔のクライアント(たとえばクライアントアプリケーション204)のための信用鍵および秘密を格納する。実施形態では、トークン−スコープレジストリ222は、ユーザ(たとえばリソース所有者202)同意に基づいてクライアント(たとえばクライアントアプリケーション204)に発行されるアクセストークンおよびリフレッシュトークンを格納する。実施形態では、トークン−スコープレジストリ222は、発行されたアクセストークンと関連付けられるAuthZスコープ情報を格納する。
【0027】
発明の実施形態では、リソースサーバ210は、OAuth承認サーバ220にそれ自身のメタデータを登録する。異なるリソースサーバは同じOAuth承認サーバに異なるメタデータを登録することができる。登録プロセスの一部として、このメタデータはOAuth承認サーバ220にインポートされる。メタデータは、リソースサーバ210によって認識されるまたは公開されるさまざまな異なるスコープを示す。各々のスコープはリソースサーバ210が維持するリソースの異なるサブセットを特定する。発明の実施形態では、登録時に、リソースサーバ210が認識する各々のスコープは、リソース&スコープレジストリ224の中で、リソースサーバ210(のみ)にマッピングされる。このように、発明の実施形態では、リソース&スコープレジストリは、各々の登録されたスコープ毎に、そのスコープ内でアクセス可能な対応のリソースサーバのリソースのセットを示す。たとえば、スコープは、特定の写真のみがアクセス可能であること、または写真の特定のフォルダがアクセス可能であること、またはフォルダの特定のセットがアクセス可能であることを示し得る。スコープは、読出、更新、削除、作成などの、特定されたリソースに対して許容できる動作を示すことができる。
【0028】
発明の実施形態では、OAuth承認サーバ220は、クライアントアプリケーション204にアクセストークンを発行する。実施形態では、そのようなアクセストークン毎に、OAuth承認サーバ220は、トークン−スコープレジストリ222の中に、アクセストークンと、当該アクセストークンに割当てられる(リソース&スコープレジストリ224の中に格納されるスコープから選択される)特定のスコープとの間のマッピングを格納する。同じリソースサーバについての異なるアクセストークンには異なるスコープが割当てられ得る。このように、クライアントアプリケーション204がアクセストークンをOAuth承認サーバ220に提示する場合は、OAuth承認サーバ220は、トークン−スコープレジストリ222を参照して、当該アクセストークンにマッピングされるスコープを判断してもよく、次にリソース&スコープレジストリ224を参照して、当該スコープ内でアクセス可能なリソースを判断してもよい。
【0029】
発明の実施形態では、OAuth承認サーバ220がクライアントアプリケーション204にアクセストークンを認めるには、リソース所有者202からのユーザ同意が要件とされる。たとえば、クライアントアプリケーション204がリソースサーバ210からの特定のリソース(または当該リソースを含む特定のスコープ)へのアクセスを要求すれば、リソースサーバ210は要求をOAuth承認サーバ220に転送し得る。OAuth承認サーバ220は、ユーザ同意オーケストレーション226を呼出して、クライアントアプリケーション204に特定のリソース(または特定のスコープ)へのアクセスが認められるべきであることを確認するようにリソース所有者202に頼んでもよい。実施形態では、ユーザ同意オーケストレーション226は、クライアントアプリケーション204がアクセスを求めているスコープをリソース所有者202に示し、当該スコープのアクセスに同意するまたはそれを断る機会をリソース所有者202に与える。より具体的には、OAuth承認サーバ220は、(リソース&スコープレジストリ224中に示されるような)特定のリソースを含む特定のスコープによって特定されるアクセスがクライアントアプリケーション204に認められるべきであることを確認するようにリソース所有者220に頼んでもよい。リソース所有者202から同意を受信するのに応答して、OAuth承認サーバ220は、アクセストークンを生成し、トークン−スコープレジストリ222の中に当該アクセストークンと特定のスコープとの間のマッピングを格納し得る。OAuth承認サーバ220は、アクセストークンをクライアントアプリケーション204に与えることができる。
【0030】
次にクライアントアプリケーション204は、アクセストークンをリソースサーバアプリケーション212に提示することによってリソースサーバ210上の特定のリソースへのアクセスを試みることができる。リソースアプリケーションサーバ212上のエージェントは、クライアントアプリケーション204が特定のリソースにアクセスできるようにする前に、トークンを横取りして、(たとえばアクセストークン有効化API214を介して)OAuth承認サーバ220を用いてトークンを有効にすることができる。クライアントアプリケーション204がアクセスを試みる特定のリソースがトークン−スコープレジストリ222中のアクセストークンにマッピングされるスコープ内にない場合(たとえば、クライアントアプリケーション204が、リソース所有者202が以前に同意したアクセスのスコープ外にあるフォルダにアクセスしようとしている場合)、OAuth承認サーバ220はトークンを有効にせず、リソースサーバ210は、特定のリソースへのアクセスをクライアントアプリケーション204に認めるのを拒む。このように、アクセスのスコープは、リソース所有者202による当該スコープに対する特定的な同意に基づいている。リソース所有者202は、クライアントアプリケーション204が要求する特定的なスコープに対する同意を与えるのを拒む機会を有し、その場合、OAuth承認サーバ220はクライアントアプリケーション204向けのアクセストークンを作成しない。発明の1つの実施形態では、リソースサーバ210が維持するリソースにアクセスする各々のクライアントアプリケーションの要求は、リソース&スコープレジストリ224中の、リソースサーバ210にマッピングされるスコープも特定し、以上で論じたように、リソース所有者202の同意が要求されるのはこの特定されたスコープである。
【0031】
発明の実施形態に従うと、以上の検討と一貫して、クライアントアプリケーション204がリソースサーバ210にアクセストークンを提示したときにアクセス制限の実施が行なわれる。実施は、アクセストークンによってエンコードされるスコープの理解を要件とする。アクセストークンは、スコープの定義につき、OAuth承認サーバ220によって発行される。アクセストークンは、発行されたトークンによってエンコードされるスコープにつき、有効にされる。発明の1つの実施形態では、組合されたポリシーサービス240およびトークンサービス250は、発行されたアクセストークンの状態を維持し、発行されたアクセストークンを承認する。発明の実施形態では、カスタマー(すなわちリソースサーバ210の所有者および/またはオペレータ)はそれ自身のポリシーサービス240およびトークンサービス250を提供することができる。OAuthフレームワークはプログラム的コントラクトまたはプログラム的インターフェイスを提供してもよく、これにより、そのようなカスタマーは、自身のポリシーおよびトークンサービスを、当該カスタマーが規定するスコープに一致する態様でOAuthフレームワークにプラグインすることができる。各々のカスタマーはスコープのそれ自身のセットを公開してもよい。スコープの公開されたセットは、カスタマーのトークンサービスが戻るデータの形式を示し得る。加えて、OAuthフレームワークは、トークン発行の際にポリシーが作成されるのを許すプログラミングコントラクトまたはプログラム的インターフェイスをそのようなカスタマーに提供してもよい。これらのプログラム的コントラクトまたはプログラム的インターフェイスは、カスタマーが自身のカスタムプログラム的コードをOAuthフレームワークにプラグインできるようにする。これらのプログラム的インターフェイスを用いて、カスタマーは、その既存のインフラストラクチャをOAuthシステムに結線することができる。実施形態では、スコープの自身のセットを公開するカスタマーは、そのトークンおよび/またはポリシーサービスが、公開されたスコープと整合するスコープ情報を含むトークンを確実に戻すことを担う。クライアントアプリケーション204がトークンの使用を試みるのに応答して、OAuth承認サーバ220は、カスタマーのポリシーをルックアップし、当該トークンを有効にするアプリケーションプログラミングインターフェイス(API)を呼出すことができる。
【0032】
実施形態では、OAuthフレームワークは、OAuth承認サーバ220とインターフェイスするためにカスタマーのコード(たとえばトークンサービス250およびポリシーサービス240のためのコード)が実現しなければならないインターフェイスを特定する。インターフェイスは、カスタマーが各々のインターフェイスが受信することを予期するパラメータおよび各々のインターフェイスが戻すことを予期する値に気付くように公開され得る。クライアントアプリケーション204がOAuth承認サーバ220に要求を行なう場合、OAuth承認サーバ220は、当該要求に関するAPIに応答通話を行なう。これらの通話は、たとえば、アクセストークンを生成し、それらのアクセストークンをクライアントアプリケーション204に与えるカスタマーコード化コンポーネントへの通話に係り得る。発明の1つの実施形態では、OAuth承認サーバ220は、OPSS−TS228およびOPSS−AZ230の形式の前述のプログラム的コントラクトまたはプログラム的インターフェイスを公開する。トークンサービス250のカスタマーの自身の実現例はOPSS−TS228とインターフェイスすることができる一方で、ポリシーサービス240のカスタマーの自身の実現例はOPSS−AZ230とインターフェイスすることができる。OAuth承認サーバ220は、アクセストークン作成およびアクセストークン有効化のために別個のAPIを呼出してもよい。カスタマーは、カスタムプログラム的コードを実現して各々のタスクを行なってもよい。有効化の間、リソースに対してクライアントアプリケーション204が行なうことを求める行為が、クライアントアプリケーション204が提示するアクセストークンによってエンコードされるポリシーに一致するか否かを判断するように、トークン作成の間に構築されるポリシーにアクセス可能である。
【0033】
加えて、発明の1つの実施形態では、クライアントアプリケーション204がOAuth承認サーバ220からアクセストークンを求める場合に呼出されるユーザ同意オーケストレーション226のカスタマーの自身の実現例をOAuth承認サーバ220にプラグインすることができる。リソース&スコープレジストリ224およびトークン−スコープレジストリ222へのインターフェイスは、カスタマーがユーザ同意オーケストレーション226のその実現例を設計して同意要求を構築する際に用いるようにコンポーネント222および224からデータを入手できるように、カスタマーに提供され得る。
【0034】
発明の実施形態では、リソース&スコープレジストリ224に格納されるマッピングは、各々のスコープ内に含まれるリソースのサブセットだけでなく、リソースのそれらのサブセットに対してクライアントアプリケーションが行なうことが許される動作の排他的サブセットも示す。たとえば、特定のマッピングは、特定のスコープについて、リソースサーバ210上に維持されるリソースの特定されたサブセット(たとえば、ファイル、フォルダ、ディレクトリ、一覧、プロファイル、画像、文書など)に対して作成または削除動作ではなく読出および更新動作を行なうことができると示し得る。このように、発明の1つの実施形態では、以上で論じた同意要求は、スコープと関連付けられるリソースのサブセットだけでなく、当該スコープと関連付けられる動作のサブセットも特定する。その結果、リソース所有者202は、クライアントアプリケーション204が同意−要求−特定されたスコープ内のリソースのサブセットに対して行なう同意を自身が与えている動作の種類を正確に知る。
【0035】
発明の実施形態に従うと、クライアントアプリケーション204は、リソースサーバ210がOAuth承認サーバ220に登録した特定的なスコープのうち1つと均等のリソースアクセスを要求する。このように、発明の1つの実施形態では、クライアントアプリケーション204は、リソースサーバ210について登録される特定的なスコープを意識して設計される。クライアントアプリケーション204はさまざまな異なるリソースサーバが維持するリソースと対話し得るので、さまざまなリソースサーバのベンダーは、自身のリソースサーバがOAuth承認サーバ220に登録するスコープの標準的なセットについて同意し得、これにより、クライアントアプリケーション204および他のクライアントアプリケーションの設計者の設計業務が容易になる。
【0036】
発明の1つの実施形態では、クライアントフレームワークは、クライアントアプリケーション204などのクライアントアプリケーションがさまざまな異なる種類のリソースプロバイダのための「フック」を実現できるように設けられる。たとえば、クライアントアプリケーション204は、Google、Facebook、Yahoo、LinkedInなどのための別個のフックを実現し得る。図3は、発明の実施形態に従うOAuthクライアント環境300を図示するブロック図である。OAuthクライアント環境300は、リソース所有者302、リソースサーバ304、OAuth承認サーバ306、クライアントアプリケーション308、およびOAuthクライアント320を含む。クライアントアプリケーション308はOAuthクライアントAPI310を含む。OAuthクライアント320は、OAuthクライアントエンジン322、リソースレジストリ324、ローカルアプリケーションレジストリ326、およびトークンレジストリ328を含む。リソースサーバ304およびOAuth承認サーバ306は互いと対話する。リソースサーバ304およびOAuthクライアント320は互いと対話する。OAuth承認サーバ306およびOAuthクライアント320は、リソース所有者302を介して(たとえば、リソース所有者302のインターネットブラウザによって達成される転送を通じて)互いと対話する。リソース所有者302はクライアントアプリケーション308とも対話する。クライアントアプリケーション308はOAuthクライアントAPI310を通してOAuthクライアントエンジン322と対話する。OAuthクライアントエンジン322は、リソースレジストリ324、ローカルアプリケーションレジストリ326、およびトークンレジストリ328と対話する。
【0037】
発明の実施形態に従うと、クライアントアプリケーション308が対話し得る異なる種類のリソースサーバのすべてに関するメタデータがリソースレジストリ324内に格納されて、クライアントアプリケーション308がさまざまな異なるリソースサーバと対話できるようにする。リソースレジストリは、たとえば、各々の異なる種類のリソースサーバが認識するスコープの異なるセットを示すことができる。その結果、クライアントアプリケーション308は、リソースサーバ304が認識する特定のスコープに対応するアクセスを要求することができ、この特定のスコープは、OAuth承認サーバ306がクライアントアプリケーション308の代わりにリソース所有者302に送る同意要求の中に特定され得る。リソースプロバイダは、設計者が当該プロバイダのリソースサーバのための適切なサーバ−スコープマッピングをリソースレジストリ308に入れることができるように、それらのOAuth標準−準拠スコープの仕様を公開することができる。実施形態では、クライアントアプリケーション308とは独立してリソースレジストリ308に入れることができるので、クライアントアプリケーション308は新たに発見されたリソースサーバと対話するように改められる必要はない。代わりに、開発者は、クライアントアプリケーション308が対話するリソースレジストリ324の中にそれらのリソースサーバのための新しいマッピングを単に「プラグイン」することができる。
【0038】
リソースプロバイダまたはサーバとして働く複合ウェブサイトは、一体化したアプリケーションではないことがしばしばである。代わりに、複合ウェブサイトはさまざまな異なるアプリケーションを構成することがしばしばである。発明の実施形態では、ローカルアプリケーションレジストリ326は、さまざまな異なるリソースプロバイダと当該リソースプロバイダが提供するまたは公開するアプリケーションのセットとの間のマッピングを格納する。各々のそのようなアプリケーションは、当該アプリケーションのための別個のユニフォームリソースロケータ(URL)へのローカルアプリケーションレジストリ326の中にマッピングされ得る。発明の1つの実施形態では、ローカルアプリケーションレジストリ326は信用キーを格納して、OAuthクライアントロールを行なって遠隔リソースにアクセスする。
【0039】
典型的に、クライアントアプリケーション308は、特定のアクセストークンを、当該特定のアクセストークンが期限切れになる前に複数回用いて、リソースサーバ304が維持するリソースにアクセスすることができる。発明の実施形態では、クライアントアプリケーション308がOAuth承認サーバ306から入手するアクセストークンは、トークンレジストリ328内に格納される。クライアントアプリケーション308が複数の異なるリソースサーバと対話し得る限り、トークンレジストリ328は、アクセストークンと、当該アクセストークンが属する異なるリソースサーバとの間のマッピングを維持することができる。トークンレジストリ328は、さまざまな異なる遠隔リソースサーバ(たとえば、リソースサーバ304)のためのアクセストークンおよびリフレッシュトークンならびにスコープの両方を格納することができる。
【0040】
図4は、発明の実施形態に従う、包括的OAuth承認サーバに第1のリソースサーバのメタデータを登録するための技術400を図示するフロー図である。技術400はあるブロックまたは動作に係るが、代替的な実施形態は図示されるよりも多くのまたはそれよりも少ないまたはそれとは異なる動作に係ってもよい。さらに、代替的な実施形態は、図示されたものとは異なる順序での動作の実行に係ってもよい。ブロック402で、OAuth承認サーバは、第1のリソースサーバから、第1のリソースサーバが認識するスコープの第1のセットを示すメタデータの第1のセットを受信する。ブロック404で、メタデータの第1のセットを受信するのに応答して、OAuth承認サーバは、スコープの第1のセット中のスコープと第1のリソースサーバが維持するリソースのサブセットとの間のマッピングを格納する。1つの実施形態では、メタデータの第1のセットを受信するのに応答して、OAuth承認サーバは、特定のスコープと、第1のリソースサーバが格納するリソースのサブセットと、特定のスコープにマッピングされる特定のトークンの保持者がリソースの第1のサブセット中のリソースに対して行なうことが許される動作のセットとの間のマッピングを格納する。
【0041】
ブロック406で、OAuth承認サーバは、スコープの第1のセットから第1のスコープを特定する特定の要求を受信する。ブロック408で、第1のスコープを特定する要求を受信するのに応答して、OAuth承認サーバは、第1のスコープと整合するクライアントアプリケーションアクセスを認める同意を、第1のスコープ内に含まれるリソースの所有者に求める。ブロック410で、所有者から同意を受信するのに応答して、OAuth承認サーバは、(a)第1のアクセストークンを作成し、(b)第1のアクセストークンと第1のスコープとの間のマッピングを格納し、かつ(c)第1のアクセストークンをクライアントアプリケーションに送る。1つの実施形態では、所有者から同意を受信するのに応答して、OAuth承認サーバは、OAuth承認サーバを提供しないカスタマー(たとえば第1のリソースサーバの所有者)が提供するプログラム的コードを呼出す。プログラム的コードは、OAuth承認サーバのプロバイダがカスタマーに提供するインターフェイスを実現する。プログラム的コードは第1のアクセストークンを作成する。
【0042】
ブロック412で、OAuth承認サーバは、第1のリソースサーバから、第1のアクセストークンを有効化する要求を受信する。ブロック414で、第1のアクセストークンを有効化する要求を受信するのに応答して、OAuth承認サーバは、第1のアクセストークンと第1のスコープとの間のマッピングに基づいて第1のアクセストークンを有効化する。1つの実施形態では、第1のアクセストークンを有効化するために、OAuth承認サーバは、OAuth承認サーバを提供しないカスタマー(たとえ、第1のリソースサーバの所有者)が提供するプログラム的コードを呼出す。このプログラム的コードは、OAuth承認サーバのプロバイダがカスタマーに提供するインターフェイスを実現する。プログラム的コードは第1のアクセス接続トークンを有効化する。
【0043】
ブロック416で、第1のアクセストークンを有効化するのに応答して、OAuth承認サーバは、第1のリソースサーバに、第1のアクセストークンを第1のリソースサーバに提示したクライアントアプリケーションが、第1のリソースサーバによって維持されかつ第1のスコープによって特定されるリソースのセットに対して動作を行なうことを承認されると示す。
【0044】
図5は、発明の実施形態に従う、包括的OAuth承認サーバに第2のリソースサーバのメタデータを登録するための技術を図示するフロー図である。技術500はあるブロックまたは動作に係るが、代替的な実施形態は図示されるよりも多くのまたはより少ないまたはこれとは異なる動作に係ってもよい。さらに、代替的な実施形態は図示されるものとは異なる順序での動作の実行に係ってもよい。ブロック502で、OAuth承認サーバは、(図4で参照する)第1のリソースサーバとは別個の第2のリソースサーバから、第2のリソースサーバが認識するスコープの第2のセットを示すメタデータの第2のセットを受信する。スコープの第2のセットは(図4で参照する)スコープの第1のセットとは異なる。ブロック504で、メタデータの第2のセットを受信するのに応答して、OAuth承認サーバは、スコープの第2のセット中のスコープと第2のリソースサーバが維持するリソースのサブセットとの間のマッピングを格納する。ブロック506で、OAuth承認サーバは、第2のアクセストークンとスコープの第2のセットからの第2のスコープとの間のマッピングを格納する。ブロック508で、OAuth承認サーバは、第2のリソースサーバから、第2のアクセストークンを有効化する要求を受信する。ブロック510で、第2のアクセストークンを有効化する要求を受信するのに応答して、OAuth承認サーバは、第2のアクセストークンと第2のスコープとの間のマッピングに基づいて第2のアクセストークンを有効化する。ブロック512で、第2のアクセストークンを有効化するのに応答して、OAuth承認サーバは、第2のリソースサーバに、第2のアクセストークンを第2のリソースサーバに提示したクライアントアプリケーションが、第2のリソースサーバによって維持されかつ第2のスコープによって特定されるリソースのセットに対して動作を行なうのを承認されると示す。
【0045】
図6は、本発明の実施形態に従って用いられ得るシステム環境600のコンポーネントを図示する簡略ブロック図である。示されるように、システム環境600は、ウェブブラウザ、独自クライアント(たとえばオラクルフォーム)などのクライアントアプリケーションを動作するように構成される1つ以上のクライアントコンピューティングデバイス602、604、606、608を含む。さまざまな実施形態では、クライアントコンピューティングデバイス602,604、606、および608はサーバ612と対話し得る。
【0046】
クライアントコンピューティングデバイス602、604、606、608は、(一例として、マイクロソフトウインドウズ(登録商標)および/もしくはアップルマッキントッシュオペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/もしくはラップトップコンピュータを含む)汎用パーソナルコンピュータ、(マイクロソフトウインドウズ(登録商標)モバイルなどのソフトウェアを実行し、かつインターネット、電子メール、SMS、ブラックベリー(登録商標)または他の通信プロトコル可能化である)携帯電話もしくはPDA、および/または(GNU/Linux(登録商標)オペレーティングシステムの種類を限定なく含む)さまざまな市販のUNIX(登録商標)またはUNIX状オペレーティングシステムの任意のものを実行するワークステーションコンピュータであり得る。代替的に、クライアントコンピューティングデバイス602、604、606、および608は、ネットワーク(たとえば以下に説明するネットワーク610)上で通信することができる、シンクライアントコンピュータ、インターネット可能化ゲームシステム、および/またはパーソナルメッセージングデバイスなどの任意の他の電子デバイスであり得る。4つのクライアントコンピューティングデバイスを有する例示的なシステム環境600が示されるが、任意の数のクライアントコンピューティングデバイスをサポートしてもよい。センサを有するデバイスなどの他のデバイスがサーバ612と対応してもよい。
【0047】
システム環境600はネットワーク610を含み得る。ネットワーク610は、限定されることなくTCP/IP、SNA、IPX、アップルトークなどを含むさまざまな市販のプロトコルのうち任意のものを用いるデータ通信をサポートすることができる、当業者には馴染みのある任意の種類のネットワークであり得る。単に一例として、ネットワーク610は、イーサネット(登録商標)ネットワーク、トークンリングネットワークなどのローカルエリアネットワーク(LAN)、ワイドエリアネットワーク、限定されることなくバーチャルプライベートネットワーク(VPN)を含む仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、IEEE802.11プロトコル群、当該技術分野で公知のブルートゥース(登録商標)プロトコル、および/もしくは任意の他の無線プロトコルのうち任意のものに基づいて動作するネットワーク)、ならびに/またはこれらおよび/もしくは他のネットワークの任意の組合せであり得る。
【0048】
システム環境600は、汎用コンピュータ、(一例として、PCサーバ、UNIXサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)特化されたサーバコンピュータ、サーバファーム、サーバクラスタ、または任意の他の適切な構成および/または組合せであり得る1つ以上のサーバコンピュータ612も含む。さまざまな実施形態では、サーバ612は、以上の開示に記載される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ612は、本発明の実施形態に従ってリライングパーティおよびオープン承認処理を行なうためのサーバに対応し得る。
【0049】
サーバ612は、以上で論じたもののうち任意のものを含むオペレーティングシステムおよび任意の市販のサーバオペレーティングシステムを実行し得る。サーバ612は、HTTPサーバ、FTPサーバ、CGIサーバ、Java(登録商標)サーバ、データベースサーバなどを含むさまざまな付加的なサーバアプリケーションおよび/または中間階層アプリケーションのうち任意のものも実行し得る。例示的なデータベースサーバは、限定されることなく、オラクル、マイクロソフト、Sybase、IBMなどから市販されているものを含む。
【0050】
システム環境600は、1つ以上のデータベース614、616も含み得る。データベース614、616はさまざまな場所に常駐し得る。一例として、データベース614、616のうち1つ以上はサーバ612にローカルの(および/またはその中に常駐する)非一時的記憶媒体上に常駐してもよい。これに代えて、データベース614、616はサーバ612から遠隔であってもよく、ネットワークに基づく接続または専用の接続を介してサーバ612と通信していてもよい。実施形態の1つの組では、データベース614、616は、当業者には馴染みのあるストレージエリアネットワーク(SAN)中に常駐してもよい。同様に、サーバ612に帰する機能を行なうための任意の必要なファイルを適宜サーバ612上にローカルにおよび/または遠隔に格納してもよい。実施形態の1つの組では、データベース614、616は、SQLフォーマットのコマンドに応答してデータを格納、更新、および検索するように適合される、オラクルが提供するデータベースなどのリレーショナルデータベースを含んでもよい。
【0051】
図7は、本発明の実施形態に従って用いられ得るコンピュータシステム700の簡略ブロック図である。たとえば、サーバ602は、システム700などのシステムを用いて実現されてもよい。バス724を介して電気的に結合され得るハードウェア要素を備えるコンピュータシステム700が示される。ハードウェア要素は、1つ以上の中央処理装置(CPU)702、1つ以上の入力装置704(たとえば、マウス、キーボードなど)、および1つ以上の出力装置706(たとえば、ディスプレイ装置、プリンタなど)を含んでもよい。コンピュータシステム700は1つ以上の記憶装置708も含んでもよい。一例として、記憶装置708は、ディスクドライブなどの装置、光学記憶装置、ならびにプログラム可能でフラッシュ更新可能などであり得るランダムアクセスメモリ(RAM)および/または読出専用メモリ(ROM)などの固体状態記憶装置を含んでもよい。
【0052】
コンピュータシステム700は、加えて、コンピュータ読出可能記憶媒体リーダ712、通信サブシステム714(たとえば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、ならびに上述のようなRAMおよびROMデバイスを含み得るワーキングメモリ718を含んでもよい。いくつかの実施形態では、コンピュータシステム700は、デジタル信号プロセッサ(DSP)、専用プロセッサなどを含むことができる処理加速ユニット716も含んでもよい。
【0053】
コンピュータ読出可能記憶媒体リーダ712は、遠隔、ローカル、固定、および/または取外し可能記憶装置プラス一時的におよび/またはより永続的にコンピュータ読出可能情報を内蔵するための記憶媒体を包括的に表わすコンピュータ読出可能記憶媒体710にともに(オプションで記憶装置708と組合せて)さらに接続可能である。通信システム714は、データがネットワーク1610および/またはシステム環境1600に対して上述の任意の他のコンピュータと交換されるのを許し得る。
【0054】
コンピュータシステム700は、(クライアントアプリケーション、ウェブブラウザ、中間階層アプリケーション、RDBMSなどであり得る)アプリケーションプログラムなどのオペレーティングシステム720および/またはその他のコード722を含む、現在ワーキングメモリ718内に位置するものとして示されるソフトウェア要素も備えてもよい。例示的な実施形態では、ワーキングメモリ718は、上述のようなリライングパーティおよびオープン承認関連の処理のために用いられる実行可能なコードおよび関連のデータ構造を含んでもよい。コンピュータシステム700の代替的な実施形態は上述されたものからの数多くの変形を有し得ることを認めるべきである。たとえば、カスタマイズされたハードウェアも用いてもよく、および/または特定の要素は、ハードウェア、(アプレットなどの可搬ソフトウェアを含む)ソフトウェア、またはその両方で実現されてもよい。さらに、ネットワーク入出力装置などの他のコンピューティングデバイスとの接続を用いてもよい。
【0055】
コードまたはコードの部分を内蔵するための記憶媒体およびコンピュータ読出可能媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、データ信号、データ伝送、または所望の情報を記憶するもしくは伝送するのに用いることができ、コンピュータによってアクセス可能な任意の他の媒体を含む、コンピュータ読出可能命令、データ構造、プログラムモジュール、または他のデータなどの、情報の記憶および/または伝送のための任意の方法または技術において実現される、揮発性および不揮発性(非一時的)、取外し可能および取外し不可能媒体などの、しかしこれらに限定されない記憶媒体および通信媒体を含む、公知のまたは技術分野で用いられている任意の適切な媒体を含むことができる。
【0056】
発明の具体的な実施形態を記載してきたが、さまざまな修正例、変更例、代替的な構成、および均等例も発明の範囲内に包含される。本発明の実施形態は、ある具体的なデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作する。さらに、本発明の実施形態が特定の一連のトランザクションおよびステップを用いて説明されたが、当業者には、本発明の範囲が記載された一連のトランザクションおよびステップに限定されないことは明確であるはずである。
【0057】
さらに、本発明の実施形態をハードウェアとソフトウェアとの特定の組合せを用いて説明したが、ハードウェアとソフトウェアとの他の組合せも本発明の範囲内であると認識されるべきである。本発明の実施形態は、ハードウェアのみにおいて、またはソフトウェアのみにおいて、またはその組合せを用いて実現されてもよい。
【0058】
したがって、明細書および図面は制限的な意味というよりはむしろ例示的な意味でみなされるべきである。しかしながら、より広い精神および範囲から逸脱することなく、追加、削減、削除、ならびにさまざまな修正および変更がなされてもよいことが明らかであろう。
【0059】
[付録]
背景
本発明の実施形態は、アイデンティティ管理、認証、および承認フレームワークに関する。
【0060】
簡単な要約
本発明の実施形態は、アイデンティティ管理、認証、および承認フレームワークに関する。1つの埋込では、企業のアイデンティティおよびアクセス管理(IAM)インフラストラクチャにおけるインターネットアイデンティティの統合のためにフレームワークが設けられる。別の実施形態に従うと、フレームワークはオープン承認のために設けられる。フレームワークはリライングパーティの機能性のためにも設けられる。
【0061】
以上は、他の特徴および実施形態とともに、以下の明細書、請求項、および添付の図面を参照するとより明らかになるであろう。
【0062】
図面の簡単な説明
この文書にいくつかの図面を含む。
【0063】
付加的に、図1は、本発明の実施形態に従って用いられ得るシステム環境のコンポーネントを図示する簡略ブロック図である。
【0064】
図2は、本発明の実施形態に従って用いられ得るコンピュータシステムの簡略ブロックである。
【0065】
詳細な説明
以下の説明では、説明の目的のため、発明の実施形態の完全な理解を与えるための具体的な詳細を述べる。しかしながら、発明はこれらの具体的詳細がなくても実践され得ることが明らかであろう。
【0066】
特徴:
(1) 既存の企業アイデンティティおよびアクセス管理(IAM)インフラストラクチャにおけるインターネットアイデンティティの統合のためのリライングパーティプラットフォーム/フレームワーク
ビジネス、特にインターネット対応(internet facing)プロパティ(ウェブサイト、電子商取引アプリ、モバイルアプリなど)を用いるものは、より高い採用とより高い収入との達成に向けて自身のユーザ基盤を拡張しようとしている。「インターネットアイデンティティ」は、Facebook、Google、Yahooなどのような著名サイトで保持されるユーザアカウントである−これらは何千万ものユーザの掘出し物である。同時に、企業は、これらの変化する技術の統合ならびにインターネット対応配備の規模およびセキュリティの局面の両方の観点で、これらのアイデンティティを扱うよう備えていないIAMシステムに対する既存の投資を有する。いくつかの先のソリューションは、企業に対してともに貼られる−カスタム/その場限りの/ピア−ピア(peer-peer)/ぴしゃりと貼られる/高価な−「バンドエイド」である。いくつかの製品はいくつかの統合ソリューションを与えるが、それらは製品に結び付きすぎている。全体的に、先のソリューションは変化するインターネット環境に対処することおよび既存のIAMソリューションへの投資を保全することという課題の両方に取組むには、拡張性、スケーラビリティ、およびセキュリティを欠いている。
【0067】
本発明の実施形態に従うと、フレームワークまたはプラットフォームは以下の特徴を備える。
【0068】
・Google、Yahoo、FaceBook、LinkedIn、Twitterなどの周知のインターネットアイデンティティプロバイダ(IDP)のための内蔵コネクタ。
【0069】
・準拠IDP(OpenID、OAuth(オープン承認)、セキュリティアクセスマークアップ言語(SAML)など)と統合する、標準に基づくインターフェイス。
【0070】
・(オラクル、CA、IBM、その他などの)トップIAMベンダーのための内蔵統合
・特定的な配備の必要性を満たすためにカスタマイズするための抽象ワークフロー/プロセスフローの上に層をなすプラグインポイントを介した拡張性。
【0071】
例示的なワークフロープロセスフロー:
−IDPに対するユーザ認証は適切なレベルでのエンタープライズセッション作成に繋がる。
【0072】
−プログレッシブ(progressive)ユーザ登録
−「ローカル」認証との統合を介したポリシーに基づく認証レベル向上。
【0073】
実施形態は、フレームワークに関する特徴、ワークフロー/プロセスベースのプラグイン、ボーディングおよび認証に関するプログレッシブおよびオンデマンド/アプリケーション駆動ユーザなどを含むがこれらに限定されないいくつかの新規の特徴を提供する。
【0074】
本発明の実施形態は、先の解決策に勝る大きな改良点を提供する。抽象ワークフロー/プロセスモデルは、ビジネスが製品の具体的詳細に対する技術的専門性よりもむしろビジネス使用事例を扱えるようにする。本発明の実施形態を、小規模(たとえば単純なLDAP、JSESSIONIDに基づく)から大規模IAM配備にわたるさまざまなIAMソリューションに関連して用いてもよい。
【0075】
(2) OAuthフレームワーク
ビジネスは、競争力を保ちかつ成長するためには、インターネットを介していくつかのエンティティ(カスタマー、従業員、パートナー、クラウドサービスなど)と対話する必要がある。ソーシャルネットワーキングおよびユーザ中心アイデンティティにおける最近の進歩の結果、会社がともに、OAuthと呼ばれるオープン標準を創出してエンタープライズ間の安全なドメイン間通信を容易にするようになった。広くは、この基準は、1つのドメインから別のドメインへのサービスおよびリソースへの2地点間の安全なアクセスをカバーする。サービス/リソースは一般的に以下のカテゴリに入る。
【0076】
−ユーザが管理するデータ−ユーザのカレンダー、写真、連絡先一覧など
−企業が管理するデータ−CRM SaaSサービス、顧客リスト、ユーザ管理サービス、ユーザ提供データ、SLAなど
これらのサービス/リソースは、社内またはクラウドにホスティングされてもよい。
【0077】
OAuth2.0は、その単純さおよびインターネットスケーラビリティにより、データおよびリソースを広いインターネット上で共有するために、ここ二、三年で大きく人気を獲得した。
【0078】
先の解決策は、典型的には移動体、ウェブブラウザ、ウェブサーバ、スタンドアロンアプリケーションなどのあらゆるクライアントフォームファクタ毎に異なる1つである、個々のリソース/サービス所有者によって提供される「ツールキット」に基づいている。問題は、OAuthが標準ではあるものの、これは「相互運用可能な」仕様ではないことである−そのため、各個々のツールキットは、それ自身の特定的な態様でプロトコルおよび対話を実現する。したがって、異なるクライアントフォームファクタにおいて、複数のパートナーとの統合を望むエンタープライズは、無数のツールキットを扱うという大きな困難を有する。また、よい実現例は、データセキュリティおよびその説明責任を確実にする(たとえば変化するビジネス関係に適合する)には、きめ細かくダイナミックなポリシーを扱える強固な承認モデルを必要とする。
【0079】
いくつかの先の解決策は、既存のエンタープライズIAM配備とはうまく統合しない企業に対してともに貼られる−カスタム/その場限りの/ピア−ピア/ぴしゃりと貼られる/高価な−「バンドエイド」である。全体的に、先の解決策は異なるかつ変化し続けるインターネット環境に対処することおよび既存のIAMソリューションへの投資を保全することという課題の両方に取組むには、拡張性、スケーラビリティ、およびセキュリティを欠いている。
【0080】
本発明の実施形態は、以下の特徴を有するOAuthフレームワークまたはプラットフォームを提供する。
【0081】
・Google Docs、Yahoo、Facebook、LinkedIn、Twitter、Salesforce.com、オラクルOD、オラクルウェブセンターなどの周知のインターネットリソースおよび承認サーバのための内蔵コネクタ
・トップIAMベンダー(オラクル、CA、IBM、その他)のための内蔵統合。
【0082】
・特定的な配備の必要性を満たすためにカスタマイズするための抽象ワークフロー/プロセスフローの上に層をなすプラグインポイントを介した拡張性。
【0083】
1つの実施形態では、ワークフロープロセスは以下のように流れる。
−ユーザ認証はリソース/サービスアクセスのためのトークン発行に繋がる。
【0084】
−遠隔のサービス/リソースへのアプリケーション駆動アクセス。
−パートナーエンティティへのローカルリソース/サービスのポリシーベースの公開。
【0085】
−トークンライフサイクル−ユーザ駆動、管理者駆動、ポリシー駆動。
実施形態は、フレームワーク/プラットフォームに関する特徴、ワークフロー/プロセスベースのプラグイン、オンデマンド/アプリケーション駆動リソースアクセスなどを含むいくつかの新規の特徴を提供する。
【0086】
本発明の実施形態は、先の解決策に勝る大きな改良点を提供する。抽象ワークフロー/プロセスモデルは、ビジネスが製品の具体的詳細に対する技術的専門性よりもむしろビジネス使用事例を扱えるようにする。発明の実施形態を、小規模(たとえば単純なLDAP、JSESSIONIDに基づく)から大規模IAM配備にわたるさまざまなIAMソリューションとともに用いてもよい。
【0087】
さらなる詳細は、以下のセクション/パート(パート1から7)に記載される。以下のさまざまなパートはさまざまな実施形態を記載する。記載は、本質的に制限的であることまたは限定的であることを意図するものではない。
【0088】
【表1】
【0089】
【表2】
【0090】
【表3】
【0091】
【表4】
【0092】
【表5】
【0093】
【表6】
【0094】
【表7】
【0095】
【表8】
【0096】
【表9】
【0097】
【表10】
【0098】
【表11】
【0099】
【表12】
【0100】
【表13】
【0101】
【表14】
【0102】
【表15】
【0103】
【表16】
【0104】
【表17】
【0105】
【表18】
【0106】
【表19】
【0107】
【表20】
【0108】
【表21】
【0109】
【表22】
【0110】
【表23】
【0111】
【表24】
【0112】
【表25】
【0113】
【表26】
【0114】
【表27】
【0115】
【表28】
【0116】
【表29】
【0117】
【表30】
【0118】
【表31】
【0119】
【表32】
【0120】
【表33】
【0121】
【表34】
【0122】
【表35】
【0123】
【表36】
【0124】
【表37】
【0125】
【表38】
【0126】
【表39】
【0127】
【表40】
【0128】
【表41】
【0129】
【表42】
【0130】
【表43】
【0131】
【表44】
【0132】
【表45】
【0133】
【表46】
【0134】
【表47】
【0135】
【表48】
【0136】
【表49】
【0137】
【表50】
【0138】
【表51】
【0139】
【表52】
【0140】
【表53】
【0141】
【表54】
【0142】
【表55】
【0143】
【表56】
【0144】
【表57】
【0145】
【表58】
【0146】
【表59】
【0147】
【表60】
【0148】
【表61】
【0149】
【表62】
【0150】
【表63】
【0151】
【表64】
【0152】
【表65】
【0153】
【表66】
【0154】
【表67】
【0155】
【表68】
【0156】
【表69】
【0157】
【表70】
【0158】
【表71】
【0159】
【表72】
【0160】
【表73】
【0161】
【表74】
【0162】
【表75】
【0163】
【表76】
【0164】
【表77】
【0165】
【表78】
【0166】
【表79】
【0167】
【表80】
【0168】
【表81】
【0169】
【表82】
【0170】
【表83】
【0171】
【表84】
【0172】
【表85】
【0173】
【表86】
【0174】
【表87】
【0175】
【表88】
【0176】
【表89】
【0177】
【表90】
【0178】
【表91】
【0179】
【表92】
【0180】
【表93】
【0181】
【表94】
【0182】
【表95】
【0183】
【表96】
【0184】
【表97】
【0185】
【表98】
【0186】
【表99】
【0187】
【表100】
【0188】
【表101】
【0189】
図1は、本発明の実施形態に従って用いられ得るシステム環境100のコンポーネントを図示する簡略ブロック図である。示されるように、システム環境100は、ウェブブラウザ、独自クライアント(たとえばオラクルフォーム)などのクライアントアプリケーションを動作するように構成される1つ以上のクライアントコンピューティングデバイス102、104、106、108を含む。さまざまな実施形態では、クライアントコンピューティングデバイス102,104、106、および108はサーバ112と対話し得る。
【0190】
クライアントコンピューティングデバイス102、104、106、108は、(一例として、マイクロソフトウインドウズ(登録商標)および/もしくはアップルマッキントッシュオペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/もしくはラップトップコンピュータを含む)汎用パーソナルコンピュータ、(マイクロソフトウインドウズ(登録商標)モバイルなどのソフトウェアを実行し、かつインターネット、電子メール、SMS、ブラックベリー(登録商標)または他の通信プロトコル可能化である)携帯電話もしくはPDA、および/または(GNU/Linux(登録商標)オペレーティングシステムの種類を限定なく含む)さまざまな市販のUNIXまたはUNIX状のオペレーティングシステムの任意のものを実行するワークステーションコンピュータであり得る。代替的に、クライアントコンピューティングデバイス102、104、106、および108は、ネットワーク(たとえば以下に説明するネットワーク110)上で通信することができるシンクライアントコンピュータ、インターネット可能化ゲームシステム、および/またはパーソナルメッセージングデバイスなどの任意の他の電子デバイスであり得る。4つのクライアントコンピューティングデバイスを有する例示的なシステム環境100が示されるが、任意の数のクライアントコンピューティングデバイスをサポートしてもよい。センサを有するデバイスなどの他のデバイスがサーバ112と対応してもよい。
【0191】
システム環境100はネットワーク110を含み得る。ネットワーク110は、限定されることなくTCP/IP、SNA、IPX、アップルトークなどを含むさまざまな市販のプロトコルのうち任意のものを用いるデータ通信をサポートすることができる、当業者には馴染みのある任意の種類のネットワークであり得る。単に一例として、ネットワーク110は、イーサネット(登録商標)ネットワーク、トークンリングネットワークなどのローカルエリアネットワーク(LAN)、ワイドエリアネットワーク、限定されることなくバーチャルプライベートネットワーク(VPN)を含む仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、IEEE802.11プロトコル群、当該技術分野で公知のブルートゥース(登録商標)プロトコル、および/もしくは任意の他の無線プロトコルのうち任意のものに基づいて動作するネットワーク)、ならびに/またはこれらおよび/もしくは他のネットワークの任意の組合せであり得る。
【0192】
システム環境100は、汎用コンピュータ、(一例として、PCサーバ、UNIXサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)特化されたサーバコンピュータ、サーバファーム、サーバクラスタ、または任意の他の適切な構成および/または組合せであり得る1つ以上のサーバコンピュータ112も含む。さまざまな実施形態では、サーバ112は、以上の開示に記載される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、サーバ112は、本発明の実施形態に従ってリライングパーティおよびオープン承認処理を行なうためのサーバに対応し得る。
【0193】
サーバ112は、以上で論じたもののうち任意のものを含むオペレーティングシステムおよび任意の市販のサーバオペレーティングシステムを実行し得る。サーバ112は、HTTPサーバ、FTPサーバ、CGIサーバ、Java(登録商標)サーバ、データベースサーバなどを含むさまざまな付加的なサーバアプリケーションおよび/または中間階層アプリケーションのうち任意のものも実行し得る。例示的なデータベースサーバは、限定されることなく、オラクル、マイクロソフト、Sybase、IBMなどから市販されているものを含む。
【0194】
システム環境100は、1つ以上のデータベース114、116も含み得る。データベース114、116はさまざまな場所に常駐し得る。一例として、データベース114、116のうち1つ以上はサーバ112にローカルの(および/またはその中に常駐する)非一時的記憶媒体上に常駐してもよい。これに代えて、データベース114、116はサーバ112から遠隔であってもよく、ネットワークに基づく接続または専用の接続を介してサーバ112と通信していてもよい。実施形態の1つの組では、データベース114、116は、当業者には馴染みのあるストレージエリアネットワーク(SAN)中に常駐してもよい。同様に、サーバ112に帰する機能を行なうための任意の必要なファイルを適宜サーバ112上にローカルにおよび/または遠隔に格納してもよい。実施形態の1つの組では、データベース114、116は、SQLフォーマットのコマンドに応答して、データを格納、更新、および検索するように適合される、オラクルが提供するデータベースなどのリレーショナルデータベースを含んでもよい。
【0195】
図2は、本発明の実施形態に従って用いられ得るコンピュータシステム200の簡略ブロック図である。たとえば、サーバ102は、システム200などのシステムを用いて実現されてもよい。バス224を介して電気的に結合され得るハードウェア要素を備えるコンピュータシステム200が示される。ハードウェア要素は、1つ以上の中央処理装置(CPU)202、1つ以上の入力装置204(たとえば、マウス、キーボードなど)、および1つ以上の出力装置206(たとえば、ディスプレイ装置、プリンタなど)を含んでもよい。コンピュータシステム200は1つ以上の記憶装置208も含んでもよい。一例として、記憶装置208は、ディスクドライブなどの装置、光学記憶装置、ならびにプログラム可能でフラッシュ更新可能などであり得るランダムアクセスメモリ(RAM)および/または読出専用メモリ(ROM)などの固体状態記憶装置を含んでもよい。
【0196】
コンピュータシステム200は、加えて、コンピュータ読出可能記憶媒体リーダ212、通信サブシステム214(たとえば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、ならびに上述のようなRAMおよびROMデバイスを含み得るワーキングメモリ218を含んでもよい。いくつかの実施形態では、コンピュータシステム200は、デジタル信号プロセッサ(DSP)、専用プロセッサなどを含むことができる処理加速ユニット216も含んでもよい。
【0197】
コンピュータ読出可能記憶媒体リーダ212は、遠隔、ローカル、固定、および/または取外し可能記憶装置プラス一時的におよび/またはより永続的にコンピュータ読出可能情報を内蔵する記憶媒体を包括的に表わすコンピュータ読出可能記憶媒体210にともに(オプションで記憶装置208と組合せて)さらに接続可能である。通信システム214は、データがネットワーク1610および/またはシステム環境1600に対して上述の任意の他のコンピュータと交換されるようにし得る。
【0198】
コンピュータシステム200は、(クライアントアプリケーション、ウェブブラウザ、中間階層アプリケーション、RDBMSなどであり得る)アプリケーションプログラムなどのオペレーティングシステム220および/または他のコード222を含む、現在ワーキングメモリ218内に位置するものとして示されるソフトウェア要素も備えてもよい。例示的な実施形態では、ワーキングメモリ218は、上述のようなリライングパーティおよびオープン承認関連の処理のために用いられる実行可能なコードおよび関連のデータ構造を含んでもよい。コンピュータシステム200の代替的な実施形態は上述されたものからの数多くの変形を有し得ることを認めるべきである。たとえば、カスタマイズされたハードウェアも用いてもよく、および/または特定の要素は、ハードウェア、(アプレットなどの可搬ソフトウェアを含む)ソフトウェア、またはその両方で実現されてもよい。さらに、ネットワーク入出力装置などの他のコンピューティングデバイスとの接続を用いてもよい。
【0199】
コードまたはコードの部分を内蔵するための記憶媒体およびコンピュータ読出可能媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、データ信号、データ伝送、または所望の情報を記憶するもしくは伝送するのに用いることができ、コンピュータによってアクセス可能な任意の他の媒体を含む、コンピュータ読出可能命令、データ構造、プログラムモジュール、または他のデータなどの、情報の記憶および/または伝送のための任意の方法または技術において実現される、揮発性および不揮発性(非一時的)、取外し可能および取外し不可能媒体などの、しかしこれらに限定されない記憶媒体および通信媒体を含む、公知のまたは技術分野で用いられている任意の適切な媒体を含むことができる。
【0200】
発明の具体的な実施形態を記載してきたが、さまざまな修正例、変更例、代替的な構成、および均等例も発明の範囲内に包含される。本発明の実施形態は、ある具体的なデータ処理環境内の動作に制限されず、複数のデータ処理環境内で自由に動作する。さらに、本発明の実施形態が特定の一連のトランザクションおよびステップを用いて説明されたが、当業者には、本発明の範囲が記載された一連のトランザクションおよびステップに限定されないことは明確であるはずである。
【0201】
さらに、本発明の実施形態をハードウェアとソフトウェアとの特定の組合せを用いて説明したが、ハードウェアとソフトウェアとの他の組合せも本発明の範囲内であると認識されるべきである。本発明の実施形態は、ハードウェアのみにおいて、またはソフトウェアのみにおいて、またはその組合せを用いて実現されてもよい。
【0202】
したがって、明細書および図面は制限的な意味というよりはむしろ例示的な意味でみなされるべきである。しかしながら、より広い精神および範囲から逸脱することなく、追加、削減、削除、ならびにさまざまな修正および変更がなされてもよいことが明らかであろう。
【0203】
【表102】
【0204】
【表103】
【0205】
【表104】
【0206】
【表105】
【0207】
【表106】
【0208】
【表107】
【0209】
【表108】
【0210】
【表109】
【0211】
【表110】
図1
図2
図3
図4
図5
図6
図7