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

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

▶ ドキュメント ストレージ システムズ, インコーポレイテッドの特許一覧

特許6875482レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム
<>
  • 特許6875482-レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム 図000002
  • 特許6875482-レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム 図000003
  • 特許6875482-レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム 図000004
  • 特許6875482-レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム 図000005
  • 特許6875482-レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム 図000006
  • 特許6875482-レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム 図000007
  • 特許6875482-レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6875482
(24)【登録日】2021年4月26日
(45)【発行日】2021年5月26日
(54)【発明の名称】レガシー統合のためのコンピュータ読み取り可能な記憶媒体ならびにそれを使用するための方法およびシステム
(51)【国際特許分類】
   G06F 21/41 20130101AFI20210517BHJP
【FI】
   G06F21/41
【請求項の数】15
【全頁数】21
(21)【出願番号】特願2019-185051(P2019-185051)
(22)【出願日】2019年10月8日
(62)【分割の表示】特願2017-534606(P2017-534606)の分割
【原出願日】2015年12月17日
(65)【公開番号】特開2019-220238(P2019-220238A)
(43)【公開日】2019年12月26日
【審査請求日】2019年10月8日
(31)【優先権主張番号】14/580,604
(32)【優先日】2014年12月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】517219166
【氏名又は名称】ドキュメント ストレージ システムズ, インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ラルフ カティーブ
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 特開平08−235114(JP,A)
【文献】 米国特許出願公開第2014/0082715(US,A1)
【文献】 特開2013−114283(JP,A)
【文献】 特開2011−003100(JP,A)
【文献】 特表2005−521279(JP,A)
【文献】 米国特許出願公開第2007/0234408(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/41
(57)【特許請求の範囲】
【請求項1】
企業サーバと、ユーザデバイスと、前記企業サーバまたは前記ユーザデバイスのうちの1つ以上に実装されたプロキシとを含むコンピュータネットワーキング環境であって、前記企業サーバは、前記プロキシに通信可能に結合されており、前記企業サーバは、メモリに結合された少なくとも1つの処理ユニットを含み、前記メモリは、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスまたは前記企業サーバ上で動作するプロキシからレガシーアプリケーションのユーザと関連付けられた証明書のセットを受信することであって、前記プロキシは、前記レガシーアプリケーションとレガシーサーバとの間の中間体として構成される、ことと、
前記証明書のセットを前記ユーザと関連付けられたエージェントの第1の証明書のセットと相互参照して、前記証明書のセットが有効であるかどうかを決定することと、
前記証明書のセットが有効である場合、前記ユーザデバイスと関連付けられたトークンを生成することと、
記プロキシからの前記エージェントの第2の証明書のセットの要求に応答して、ならびに、要求側ユーザデバイスを認識すること、および、有効トークンが前記ユーザデバイスに対して存在することを認識することにさらに応答して、前記第2の証明書のセットを前記プロキシに提供することと
を前記少なくとも1つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、コンピュータネットワーキング環境
【請求項2】
前記エージェントの前記第2の証明書のセットは、前記レガシーサーバによって提供されるサービスと関連付けられている、請求項1に記載のコンピュータネットワーキング環境
【請求項3】
前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスのブラウザをウェブベースのインターフェースにダイレクトすることであって、前記ウェブベースのインターフェースは、前記第1の証明書のセットを受信するように構成されている、こと
を前記少なくとも1つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項1に記載のコンピュータネットワーキング環境
【請求項4】
前記ウェブベースのインターフェースは、前記ユーザデバイスのタイプに基づく、請求項3に記載のコンピュータネットワーキング環境
【請求項5】
前記第1の証明書のセットは、前記企業サーバと関連付けられる、請求項1に記載のコンピュータネットワーキング環境
【請求項6】
前記命令であって、実行されると、前記証明書のセットを前記ユーザと関連付けられたエージェントの第1の証明書のセットと相互参照することにより、前記証明書のセットが有効であるかどうかを決定することを前記少なくとも1つの処理ユニットに行わせる命令は、
命令であって、実行されると、
API呼出をディレクトリ統合APIまたはレガシー認証統合APIのうちの少なくとも1つに提供することを前記少なくとも1つの処理ユニットに行わせる命令を含む、請求項1に記載のコンピュータネットワーキング環境
【請求項7】
記プロキシに提供される前記第2の証明書のセットは、前記レガシーアプリケーションの代わりに前記レガシーサーバに提供するための証明書を含む、請求項1に記載のコンピュータネットワーキング環境
【請求項8】
前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスと前記レガシーサーバとの間のプロキシ接続を確立すること
を前記少なくとも1つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項1に記載のコンピュータネットワーキング環境
【請求項9】
企業サーバと、ユーザデバイスと、前記企業サーバまたは前記ユーザデバイスのうちの1つ以上に実装されたプロキシとを含むコンピュータネットワーキング環境であって、前記企業サーバは、前記プロキシに通信可能に結合されており、前記企業サーバは、メモリに結合された少なくとも1つの処理ユニットを含み、前記企業サーバの前記メモリは、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスまたは前記企業サーバ上で動作するプロキシからレガシーアプリケーションのユーザと関連付けられた証明書を受信することであって、前記プロキシは、前記レガシーアプリケーションとレガシーサーバとの間の中間体として構成される、ことと、
前記証明書が有効であるかどうかを決定することと、
前記証明書が有効である場合、前記ユーザデバイスと関連付けられたトークンを提供することと、
前記トークンが有効である期間の間、要求側ユーザデバイスを認識すること、および、前記トークンが前記ユーザデバイスに対して存在することを認識することに応答して、要求に応じて、前記ユーザと関連付けられたエージェントの証明書のセットを前記ユーザデバイスに提供することであって、前記エージェントの前記証明書のセットは、前記レガシーサーバによって提供されるサービスと関連付けられている、ことと、
前記証明書のセットを、前記レガシーサーバに提供することと
前記企業サーバの前記少なくとも1つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、コンピュータネットワーキング環境
【請求項10】
前記企業サーバの前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記証明書が有効でない場合、前記証明書が有効でないことを示す応答を提供すること
前記企業サーバの前記少なくとも1つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項9に記載のコンピュータネットワーキング環境
【請求項11】
前記命令であって、実行されると、前記証明書が有効であるかどうかを決定することを前記企業サーバの前記少なくとも1つの処理ユニットに行わせる命令は、
命令であって、実行されると、
前記証明書が前記ユーザと関連付けられた前記エージェント内に記憶される証明書に対応するかどうかを決定すること
前記企業サーバの前記少なくとも1つの処理ユニットに行わせる命令を含む、請求項9に記載のコンピュータネットワーキング環境
【請求項12】
前記命令であって、実行されると、ユーザと関連付けられた証明書のセットを前記ユーザデバイスから受信することを前記企業サーバの前記少なくとも1つの処理ユニットに行わせる命令は、
命令であって、実行されると、
ウェブブラウザを前記証明書を受信するように構成されたウェブベースのインターフェースにダイレクトすること
前記企業サーバの前記少なくとも1つの処理ユニットに行わせる命令を含む、請求項9に記載のコンピュータネットワーキング環境
【請求項13】
前記命令であって、実行されると、前記トークンが有効である期間の間、要求に応じて、証明書を前記ユーザデバイスに提供することを前記企業サーバの前記少なくとも1つの処理ユニットに行わせる命令は、
命令であって、実行されると、
前記ユーザと関連付けられた第1の証明書のセットをプロキシに提供することと、
前記ユーザと関連付けられた第2の証明書のセットをウェブアプリケーションに提供することと
前記企業サーバの前記少なくとも1つの処理ユニットに行わせる命令を含む、請求項9に記載のコンピュータネットワーキング環境
【請求項14】
前記企業サーバの前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記トークンが提供された後のある期間の後に前記トークンを除去すること
前記企業サーバの前記少なくとも1つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項9に記載のコンピュータネットワーキング環境
【請求項15】
前記企業サーバの前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスと前記レガシーサーバとの間のプロキシ接続を確立すること
前記企業サーバの前記少なくとも1つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項9に記載のコンピュータネットワーキング環境
【発明の詳細な説明】
【技術分野】
【0001】
(技術分野)
本開示の実施形態は、概して、レガシーシステムに関し、より具体的には、統合的レガシーコンテキスト管理に関する。
【背景技術】
【0002】
(背景)
現代の企業システムは、企業に関する種々の特徴およびサービスにわたって比較的にシームレスなユーザ体験を提供するための種々のセキュリティ、通信、および認証機構の統合において大きな進歩を果たした。しかしながら、そのような改良にもかかわらず、企業システムの近代化は、限定された拡張性を有するレガシーシステムの統合をまだ十分に対処していない。レガシーシステムが、典型的には、企業システムと適切に統合しないため、多くの組織が、別個のレガシーシステムおよび企業システムを維持することを強いられている。
【発明の概要】
【課題を解決するための手段】
【0003】
(概要)
特定の実装は、メモリに結合された処理ユニットを有するコンピュータハードウェアシステムを含んでもよく、メモリは、コンピュータ実行可能な命令でエンコードされ、命令は、実行されると、ユーザと関連付けられた証明書のセットをユーザデバイスから受信することと、証明書のセットをユーザと関連付けられたエージェントの第1の証明書のセットと相互参照することにより、証明書のセットが有効であるかどうかを決定することと、証明書のセットが有効である場合、ユーザデバイスからの第2の証明書のセットの要求に応答して、エージェントの第2の証明書のセットをユーザデバイスに提供することとを処理ユニットに行わせる。特定の実装では、メモリはコンピュータ実行可能な命令でさらにエンコードされてもよく、命令は、実行されると、他の動作の中でもとりわけ、ユーザデバイスのブラウザをウェブベースのインターフェースにダイレクトすることであって、ウェブベースのインターフェースは、証明書のセットを受信するように構成される、こと、および/または、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを処理ユニットに行わせる。特定の実装では、エージェントの第2の証明書のセットは、レガシーサーバによって提供されるサービスと関連付けられてもよい。ウェブベースのインターフェースは、ユーザデバイスのタイプに基づいてもよい。証明書のセットは、企業サーバと関連付けられてもよい。実行されると、証明書のセットをユーザと関連付けられたエージェントの第1の証明書のセットと相互参照することにより、証明書のセットが有効であるかどうかを決定することを少なくとも1つの処理ユニットに、行わせる命令は、実行されると、API呼出をディレクトリ統合APIまたはレガシー認証統合APIのうちの少なくとも1つに提供することを少なくとも1つの処理ユニットに行わせる命令を含んでもよい。実行されると、エージェントの第2の証明書のセットをユーザデバイスに提供することを少なくとも1つの処理ユニットに行わせる命令は、実行されると、第2の証明書のセットをユーザデバイス上で実行中のプロキシに提供することを少なくとも1つの処理ユニットに行わせる命令を含んでもよい。メモリは、コンピュータ実行可能な命令でエンコードされてもよく、命令は、実行されると、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを少なくとも1つの処理ユニットに行わせる。
【0004】
特定の実装は、メモリに結合された少なくとも1つの処理ユニットを備えるコンピュータハードウェアシステムを含んでもよく、メモリは、コンピュータ実行可能な命令でエンコードされ、命令は、実行されると、ユーザと関連付けられたエージェントの第1の証明書のセットの受信に応答して、第1のユーザデバイスを認証することであって、第1の証明書のセットは、レガシーサーバと関連付けられている、ことと、コンテキスト情報を第1のデバイスから受信することであって、コンテキスト情報は、第1のユーザデバイスがサービスにアクセスした様式を示す、ことと、ユーザと関連付けられたエージェントの第2の証明書のセットの受信に応答して、第2のユーザデバイスを認証することと、第2のデバイスがサービスにアクセスしたことに応答して、コンテキスト情報を第2のデバイスに提供することとを少なくとも1つの処理ユニットに行わせる。他の命令は、他の動作の中でもとりわけ、コンテキスト情報をエージェントと関連付けること、コンテキスト情報を第1のデバイス上で実行中のプロキシから受信すること、および/またはユーザデバイスとレガシーデバイスとの間を接続するプロキシを確立することを処理ユニットに行わせる。エージェントの第1の証明書のセットは、第1のデバイス上で実行中のプロキシから受信されてもよく、エージェントの第2の証明書のセットは、第2のデバイス上で実行中のウェブアプリケーションから受信されてもよい。メモリは、コンピュータ実行可能な命令でエンコードされてもよく、命令は、実行されると、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを少なくとも1つの処理ユニットに行わせる。
【0005】
特定の実装は、メモリに結合された少なくとも1つの処理ユニットを備えるコンピュータハードウェアシステムを含んでもよく、メモリは、コンピュータ実行可能な命令でエンコードされ、命令は、実行されると、ユーザと関連付けられた証明書をユーザデバイスから受信することと、証明書が有効であるかどうかを決定することと、証明書が有効である場合、ユーザデバイスと関連付けられたトークンを提供することと、トークンが有効である期間の間、要求に応じて、証明書のセットをユーザデバイスに提供することとを少なくとも1つの処理ユニットに行わせる。他の命令は、他の動作の中でもとりわけ、証明書が有効ではない場合、証明書が有効ではないことを示す応答を提供すること、証明書がユーザと関連付けられたエージェント内に記憶される証明書に対応するかどうかを決定すること、ウェブブラウザを証明書を受信するように構成されたウェブベースのインターフェースにダイレクトすること、ユーザと関連付けられた第1の証明書のセットをプロキシに提供すること、ユーザと関連付けられた第2の証明書のセットをウェブアプリケーションに提供すること、トークンが提供された後のある期間の後にトークンを除去すること、および/または、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを処理ユニットに行わせる。
本明細書は、例えば、以下の項目も提供する。
(項目1)
メモリに結合された少なくとも1つの処理ユニットを備えるコンピュータハードウェアシステムであって、前記メモリは、コンピュータ実行可能な命令でエンコードされ、前記命令は、実行されると、
ユーザと関連付けられた証明書のセットをユーザデバイスから受信することと、
前記証明書のセットを前記ユーザと関連付けられたエージェントの第1の証明書のセットと相互参照することにより、前記証明書のセットが有効であるかどうかを決定することと、
前記証明書のセットが有効である場合、前記ユーザデバイスからの第2の証明書のセットの要求に応答して、前記エージェントの前記第2の証明書のセットを前記ユーザデバイスに提供することと
を前記少なくとも1つの処理ユニットに行わせる、システム。
(項目2)
前記エージェントの前記第2の証明書のセットは、レガシーサーバによって提供されるサービスと関連付けられる、項目1に記載のシステム。
(項目3)
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスのブラウザをウェブベースのインターフェースにダイレクトすることであって、前記ウェブベースのインターフェースは、前記証明書のセットを受信するように構成されている、こと
を前記少なくとも1つの処理ユニットに行わせる、項目1に記載のシステム。
(項目4)
前記ウェブベースのインターフェースは、前記ユーザデバイスのタイプに基づく、項目3に記載のシステム。
(項目5)
前記証明書のセットは、企業サーバと関連付けられる、項目1に記載のシステム。
(項目6)
実行されると、前記証明書のセットを前記ユーザと関連付けられたエージェントの第1の証明書のセットと相互参照することにより、前記証明書のセットが有効であるかどうかを決定することを前記少なくとも1つの処理ユニットに行わせる前記命令は、
実行されると、API呼出をディレクトリ統合APIまたはレガシー認証統合APIのうちの少なくとも1つに提供することを前記少なくとも1つの処理ユニットに行わせる命令を含む、項目1に記載のシステム。
(項目7)
実行されると、前記エージェントの第2の証明書のセットを前記ユーザデバイスに提供さすることを前記少なくとも1つの処理ユニットに行わせる前記命令は、
実行されると、前記第2の証明書のセットを前記ユーザデバイス上で実行中のプロキシに提供することを前記少なくとも1つの処理ユニットに行わせる命令を含む、項目1に記載のシステム。
(項目8)
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスと前記レガシーデバイスとの間のプロキシ接続を確立すること
を前記少なくとも1つの処理ユニットに行わせる、項目1に記載のシステム。
(項目9)
メモリに結合された少なくとも1つの処理ユニットを備えるコンピュータハードウェアシステムであって、前記メモリは、コンピュータ実行可能な命令でエンコードされ、前記命令は、実行されると、
ユーザと関連付けられたエージェントの第1の証明書のセットの受信に応答して、第1のユーザデバイスを認証することであって、前記第1の証明書のセットは、レガシーサーバと関連付けられている、ことと、
コンテキスト情報を前記第1のデバイスから受信することであって、前記コンテキスト情報は、前記第1のユーザデバイスがサービスにアクセスした様式を示す、ことと、
前記ユーザと関連付けられた前記エージェントの第2の証明書のセットの受信に応答して、第2のユーザデバイスを認証することと、
前記第2のデバイスが前記サービスにアクセスしたことに応答して、前記コンテキスト情報を前記第2のデバイスに提供することと
を前記少なくとも1つの処理ユニットに行わせる、システム。
(項目10)
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記コンテキスト情報を前記エージェントと関連付けること
を前記少なくとも1つの処理ユニットに行わせる、項目9に記載のシステム。
(項目11)
実行されると、コンテキスト情報を前記第1のデバイスから受信することを前記少なくとも1つの処理ユニットに行わせる前記命令は、
実行されると、コンテキスト情報を前記第1のデバイス上で実行中のプロキシから受信することを前記少なくとも1つの処理ユニットに行わせる命令を含む、項目9に記載のシステム。
(項目12)
前記エージェントの前記第1の証明書のセットは、前記第1のデバイス上で実行中のプロキシから受信され、前記エージェントの前記第2の証明書のセットは、前記第2のデバイス上で実行中のウェブアプリケーションから受信される、項目9に記載のシステム。
(項目13)
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスと前記レガシーデバイスとの間のプロキシ接続を確立すること
を前記少なくとも1つの処理ユニットに行わせる、項目9に記載のシステム。
(項目14)
メモリに結合された少なくとも1つの処理ユニットを備えるコンピュータハードウェアシステムであって、前記メモリは、コンピュータ実行可能な命令でエンコードされ、前記命令は、実行されると、
ユーザと関連付けられた証明書をユーザデバイスから受信することと、
前記証明書が有効であるかどうかを決定することと、
前記証明書が有効である場合、前記ユーザデバイスと関連付けられたトークンを提供することと、
前記トークンが有効である期間の間、要求に応じて、証明書のセットを前記ユーザデバイスに提供することと
を前記少なくとも1つの処理ユニットに行わせる、コンピュータハードウェアシステム。
(項目15)
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記証明書が有効ではない場合、前記証明書が有効ではないことを示す応答を提供すること
を前記少なくとも1つの処理ユニットに行わせる、項目14に記載のシステム。
(項目16)
実行されると、前記証明書が有効であるかどうかを決定することを前記少なくとも1つの処理ユニットに行わせる前記命令は、
実行されると、前記証明書が前記ユーザと関連付けられたエージェント内に記憶される証明書に対応するかどうかを決定することを前記少なくとも1つの処理ユニットに行わせる命令を含む、項目14に記載のシステム。
(項目17)
実行されると、ユーザと関連付けられた証明書のセットをユーザデバイスから受信することを前記少なくとも1つの処理ユニットに行わせる前記命令は、
実行されると、ウェブブラウザを前記証明書を受信するように構成されたウェブベースのインターフェースにダイレクトすることを前記少なくとも1つの処理ユニットに行わせる命令を含む、項目14に記載のシステム。
(項目18)
実行されると、前記トークンが有効である期間の間、要求に応じて、証明書を前記ユーザデバイスに提供することを前記少なくとも1つの処理ユニットに行わせる前記命令は、
実行されると、
前記ユーザと関連付けられた第1の証明書のセットをプロキシに提供することと、
前記ユーザと関連付けられた第2の証明書のセットをウェブアプリケーションに提供することと
を前記少なくとも1つの処理ユニットに行わせる命令を含む、項目14に記載のシステム。
(項目19)
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記トークンが提供された後のある期間の後に前記トークンを除去すること
を前記少なくとも1つの処理ユニットに行わせる、項目14に記載のシステム。
(項目20)
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスと前記レガシーデバイスとの間のプロキシ接続を確立すること
を前記少なくとも1つの処理ユニットに行わせる、項目14に記載のシステム。
【図面の簡単な説明】
【0006】
図1図1は、本開示のある実施形態による、コンピュータネットワーキング環境の概略図である。
図2図2は、本開示のある実施形態による、コンピュータネットワーキング環境の概略図である。
図3図3は、本開示のある実施形態による、認証管理エンジンの概略ブロック図である。
図4図4は、本開示のある実施形態による、ウェブアプリケーションのシングルサインオン認証を実装するための方法のフローチャートである。
図5図5は、本開示のある実施形態による、レガシーアプリケーションのシングルサインオン認証を実装するための方法のフローチャートである。
図6図6は、本開示のある実施形態による、証明書を企業サーバに提供するための方法のフローチャートである。
図7図7は、本開示のある実施形態による、コンテキスト情報を管理するための方法のフローチャートである。
【発明を実施するための形態】
【0007】
(詳細な説明)
統合的レガシーコンテキスト管理のためのシステムおよび方法が、本明細書に開示される。特定の詳細が、本開示の実施形態の十分な理解を提供するために以下に記載される。しかしながら、本開示の実施形態は、これらの特定の詳細を伴わずに実施されてもよい。また、特定の実施形態は、一例として提供され、限定的として解釈されるべきではない。他の場合において、周知の回路、制御信号、タイミングプロトコル、およびソフトウェア動作は、本発明を不必要に曖昧にすることを回避するために詳細に示されていない。
【0008】
開示される実施形態は、概して、認証に関する。要するに、認証は、デバイスのユーザの識別を検証することと、それに応答して、ユーザアクセスをアプリケーションまたはデータベース等の1つまたは複数のサービスに与えることとを含む。認証は、いくつかの認証タイプを使用して行われてもよい。第1の、最も一般的なタイプの認証は、ユーザによって既知の情報を使用して認証することを対象とする。これは、ユーザ名、パスワード、および/またはアクセスコード等の証明書を使用して認証することを含んでもよい。第2のタイプの認証は、クレジットカード、デビットカード、またはスマートカード等の所有物を使用して認証することを対象とする。第3のタイプの認証は、場所またはバイオメトリック特性(例えば、指紋)等の特性を使用して認証することを対象とする。いくつかの事例では、認証は、複数要素認証を使用して実装されてもよい。多くのシステムでは、複数要素認証は、3つの提示された認証タイプのうちの少なくとも2つの充足を要求する。
【0009】
ある実施形態はさらに、シングルサインオン(SSO)認証に関し得る。SSO認証は、ユーザの認証に応答して、ユーザが1つまたは複数のサーバ(例えば、企業サービス、レガシーサーバ)によって提供される複数のアプリケーションまたはサービスへのアクセスを提供され得る機構を含む。典型的には、個別のアプリケーション(またはサービス)の各々に対する許可レベルが、ユーザの識別に基づいて、個々に決定されてもよく、殆どの場合、ユーザは、SSOサーバに有効ユーザ証明書(例えば、有効ユーザ名、パスワード、バイオメトリック、および/または他の証明書の任意の組み合わせ)を提供した後、SSO認証されてもよい。いったん認証されると、ユーザは、ユーザが各アプリケーションに個々に認証された場合と同様に、アプリケーションにアクセスし得る。いくつかの事例では、SSOサーバは、1つまたは複数の証明書のセットと引き換えに利用され得るトークンを提供(例えば、生成)してもよい。証明書は、続いて、認証のために使用されてもよい。他の場合において、SSOサーバは、例えば、ユーザに割り当てられ、かつ、各個別のアプリケーションに具体的に対応する証明書を使用して、ユーザの代わりに、1つまたは複数のアプリケーションと認証を行ってもよい。したがって、SSOサーバとのSSO認証が完了すると、ユーザは、いずれの追加の証明書も提供することなく、前述のアプリケーションのいずれかにアクセスし得る。SSO認証の使用は、ユーザが、多数のパスワードを思い出すまたは記憶する必要性を低減させ、アカウント管理を単純化することによって企業レベルにおける効率を改善し、かつ/または、例えば、フィッシングを通じた証明書の不正流用を低減させることによって、ユーザ証明書の保護を増加させ得る。ユーザは、SSO認証を使用することにより、企業レベルでだけではなく、遠隔サーバおよび/または第三者サーバ上でも同様に提供されるアプリケーションにアクセスし得る。
【0010】
図1を参照すると、ユーザデバイス102は、ウェブアプリケーション106を使用して、ネットワーク110を経由して企業サーバ120と通信してもよい、かつ/または、レガシーアプリケーション107を使用して、ネットワーク110を経由してレガシーサーバ150と通信してもよい。企業サーバ120およびレガシーサーバ150はそれぞれ、例えば、事業プロセス、情報フロー、および/またはデータ記憶を対象とするサービスを提供するために使用され得る、1つまたは複数のアプリケーションをホストするサーバであってもよい。故に、ウェブアプリケーション106は、企業サーバ120によって提供されるサービスにアクセスするために使用されてもよく、レガシーアプリケーション107は、レガシーサーバ150によって提供されるサービスにアクセスするために使用されてもよい。本明細書では、単一の企業サーバ120および単一のレガシーサーバ150を参照するが、説明される実施例は、任意の数のサービスを提供する、1つまたは複数の他の企業サーバ120および/または1つまたは複数の他のレガシーサーバ150を含んでもよいことを理解されたい。
【0011】
いくつかの実施例では、ウェブアプリケーション106は、企業サーバ120によって提供されるサービスおよびレガシーサーバ150によって提供されるサービスの両方にアクセスするために使用されてもよい。要するに、ウェブアプリケーション106は、トークンおよびアクセスキー等の1つまたは複数の認証機構を使用して、企業サーバ120と認証を行ってもよく、ユーザ名およびパスワードログイン等のより制限された数の認証機構のうちの1つまたは複数のものを使用して、レガシーサーバ150と認証を行ってもよい。レガシーサーバ150によって採用される認証機構の数および/またはタイプが制限されることがあるため、レガシーサーバ150のアプリケーションは、企業サーバ120のアプリケーションと適切に統合しないことがある。その結果、ウェブアプリケーション106は、企業サーバ120およびレガシーサーバ150のそれぞれと別個に認証を行うことが要求され得る。
【0012】
別個の認証の必要性を避けるために、企業サーバ120は、ウェブアプリケーション106が、企業サーバ120と認証を行い、レガシーサーバ150によって提供されるサービスにアクセスすることを可能にする機構を採用してもよい。しかしながら、このように認証を提供することは、依然として、ウェブアプリケーション106が、サーバ120、150毎に別個の認証機構を使用して、企業サーバ120と認証を行うことを要求し得、さらに、同一ユーザが各場合で認証されたことを企業サーバ120が決定し得るように、提供される証明書の各セットが相互に関連付けられることを要求し得る。
【0013】
証明書が相互に関連付けられることを確実にするために、ユーザに対する証明書は、典型的には、ユーザデバイス102上にキャッシュされるか、企業サーバ120上にキャッシュされるか、またはレガシーサーバ150へのアクセスが要求される度に、企業サーバ120によって要求されるかしなければならない。要するに、これらのアプローチはそれぞれ、1つまたは複数のトレードオフを含み得る。例えば、証明書をユーザデバイス102上にキャッシュすることは、いったんユーザデバイス102が企業環境から移動すると、証明書がユーザデバイス102によって暴露され得るため、セキュリティリスクをもたらし得る。一方、証明書を企業サーバ120上にキャッシュすることは、複製証明書を複数の認証機構のそれぞれにわたってキャッシュする結果となり得る(例えば、企業サーバ120に対して1つの複製およびレガシーサーバ150毎に1つの複製)。最後に、ユーザがレガシーサーバ150へのアクセスを要求する度に証明書を要求することは、煩雑なユーザ体験の結果となり得る。
【0014】
図2は、コンピュータネットワーキング環境100の実施形態の概略図である。複数のユーザデバイス102はそれぞれ、モデム、ルータ、ゲートウェイ、サーバ、シンクライアント、ラップトップ、デスクトップ、コンピュータ、タブレット、メディアデバイス、スマートフォン、テレビ、ファブレット、携帯電話、もしくは他のモバイルデバイス、または、モデム、ルータ、ゲートウェイ、サーバ、シンクライアント、ラップトップ、デスクトップ、コンピュータ、タブレット、メディアデバイス、スマートフォン、テレビ、ファブレット、携帯電話、もしくは他のモバイルデバイスの任意の組み合わせまたは部分的組み合わせを含むが、それらに限定されない、コンピュータデバイスを備えてもよい。複数のユーザデバイス102はそれぞれ、ユーザデバイス102の1つまたは複数の処理ユニットと併せて動作することにより、ウェブアプリケーション106、レガシーアプリケーション107、および/またはプロキシ108の実行を可能にする機能性を提供し得る実行可能な命令でエンコードされたメモリを含んでもよい。ウェブアプリケーション106は、1つまたは複数のウェブベースのプログラミング言語に従って動作し、企業サーバ120によってホストされる1つまたは複数のサービス(例えば、ウェブベースのサービス)にアクセスするように構成され得る、ブラウザ等のアプリケーションであってもよい。ある実装では、ブラウザは、ユーザが、ウェブページ等のネットワーク化されたリソースまたはローカルのリソースと相互作用することを可能にするように構成されるソフトウェアであってもよい。いくつかの実施例では、ウェブアプリケーション106はさらに、レガシーサーバ150によって提供される1つまたは複数のサービスにアクセスするために使用されてもよい。レガシーアプリケーション107は、レガシーサーバ150によって提供される1つまたは複数のサービスとのインターフェースをなし得る、実行可能なプログラム等のアプリケーションであってもよい。プロキシ108は、レガシーアプリケーション107とレガシーサーバ150との間の中間体として作用するように構成されてもよい。プロキシ108は、レガシーアプリケーション107が、企業サーバ120と認証を行うことを可能にしてもよく、さらに、統合的レガシーコンテキスト管理を提供してもよい。しかしながら、説明されるように、プロキシ108は、全実施形態において、ユーザデバイス102上に位置する必要はない。ユーザデバイス102上に位置することに加え、またはユーザデバイス102上に位置する代わりに、プロキシ108は、企業サーバ120等の別のネットワーク化されたデバイス上で動作してもよい。
【0015】
実施例は、単一のレガシーアプリケーション107およびレガシーサーバ150を参照して本明細書に説明されるが、プロキシ108は、コンピュータネットワーキング環境100内で動作する、任意の数のレガシーアプリケーション107と任意の数のレガシーサーバ150との間の中間体として作用してもよい。さらに、ユーザデバイス102aは、ウェブアプリケーション106と、レガシーアプリケーション107と、プロキシ108とを含むように示されるが、ユーザデバイス102はそれぞれ、任意の数のウェブアプリケーション106、レガシーアプリケーション107、および/またはプロキシ108を含んでもよいことを理解されたい。一例として、ユーザデバイス102は、3つのウェブアプリケーション106を含むが、プロキシ108を含まなくてもよい一方、別のユーザデバイス102は、2つのレガシーアプリケーション107と、プロキシ108とを含んでもよい。
【0016】
ユーザデバイス102はそれぞれ、ネットワーク110を経由して、企業サーバ120およびレガシーサーバ150を含むがこれらに限定されない、任意の数のデバイスと通信するように構成されてもよい。ネットワーク110は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、セルラーネットワーク、および/またはインターネット等の1つまたは複数のネットワークを備えてもよい。ネットワーク110に、ネットワーク110から、およびネットワーク110内で提供される通信は、有線および/または無線であり得、さらに、当技術分野において現在公知もしくは将来的に公知となる、任意のネットワーキングデバイスによって提供されてもよい。ネットワーク110を経由して通信するデバイスは、TCP/IPおよびUDPプロトコルを含む、任意の通信プロトコルを用いて通信してもよい。さらに、ユーザデバイス102は、HTTP、HTTPS、SSL、またはそれらから派生した任意のプロトコル等の公知のプロトコルを使用して、通信するように構成されてもよい。
【0017】
企業サーバ120は、1つまたは複数の処理ユニット121と、コンピュータ読み取り可能な媒体123とを含んでもよい。本明細書では、用語「コンピュータ読み取り可能な媒体」は、いくつかの実施形態では、単一のコンピュータ読み取り可能な媒体を指すために使用され、他の実施形態では、処理ユニット121等の1つまたは複数の処理ユニットと通信する複数のコンピュータ読み取り可能な媒体を指すために使用される。コンピュータ読み取り可能な媒体123はまた、ストレージ128を含んでもよい。認証管理エンジン124のための実行可能な命令は、ユーザデバイス102の1人または複数のユーザの認証を管理するための命令を含んでもよく、そのさらなる実施例は、以下に提供される。認証管理エンジン124のための実行可能な命令は、同一のコンピュータ読み取り可能な媒体123上に示されるが、いくつかの実施形態では、一部または全ての命令のセットは、複数のコンピュータ読み取り可能な媒体上に提供されてもよく、同一媒体上に存在しなくてもよい。故に、コンピュータ読み取り可能な媒体123は、本明細書で使用される場合、1つまたは複数のコンピュータ読み取り可能な媒体123および/またはストレージ128を含む。コンピュータ読み取り可能な媒体123および/またはストレージ128は、外部もしくは内部に取り付けられたハードディスクドライブ、ソリッドステートストレージ(NANDフラッシュまたはNORフラッシュメディア等)、階層ストレージソリューション、ストレージエリアネットワーク、ネットワークアタッチドストレージ、および/または光ストレージを含むが、それらに限定されない、一過性または非一過性である、任意の形態のコンピュータ読み取り可能なストレージもしくはコンピュータ読み取り可能なメモリを含んでもよい。説明されるように、コンピュータ読み取り可能な媒体123上に記憶された命令は、1つまたは複数の処理ユニット121もしくは他の処理ユニット上で実行されてもよい。認証管理エンジン124のための実行可能な命令は、本明細書では、「認証管理エンジン」と称され得、この場合、認証管理エンジンは、処理ユニット121および/または他の処理ユニットのうちの1つまたは複数のものによって実行される、認証管理エンジン124のための実行可能な命令を指す。
【0018】
ストレージ128は、認証管理エンジン124の実行の間、処理ユニット121のうちの1つまたは複数のものによって利用され得るデータを含んでもよい。一例として、ストレージ128は、ユーザ証明書(例えば、ユーザ名、パスワード)、認証キー、暗号化/復号化アルゴリズム、および/または認証ルール等の認証情報を含んでもよい。いくつかの実施例では、認証情報は、1つまたは複数の個別のエージェントとして、ユーザ毎に記憶されてもよい。エージェントは、コンピュータネットワーキング環境100において動作する、またはコンピュータネットワーキング環境100上に記憶されるエンティティであってもよい。例えば、エージェントは、ユーザデバイス102上のコンピュータ読み取り可能なメモリまたは企業サーバ128のストレージ内に記憶され、処理ユニット上で実行されるプログラムのような、ユーザの代わりに作用するプログラムであってもよい。エージェントは、企業サーバ120および任意の数のレガシーサーバ150のためのユーザの下層証明書を含む個別のデータセットであってもよい、または個別のデータセットを含んでもよい。各エージェントは、SSO認証が本明細書に説明される実施例に従って提供され得るように、ユーザの証明書の各セットを相互に関連付けてもよい。ストレージ128はさらに、コンテキスト情報を含んでもよい。コンテキスト情報は、企業サーバ120および/またはレガシーサーバ150によって提供されるサービスの使用を記述する情報であってもよい。いくつかの事例では、コンテキスト情報は、サービスの個々の使用が任意の数のユーザデバイス102にわたって追跡および/または再開され得るように、ユーザ毎に記憶されてもよい。実施例として、コンテキスト情報は、ユーザが、第1のユーザデバイス102を使用して、レガシーサーバ150のサービスにアクセスし、続いて、後に、第2のユーザデバイス102を使用して、サービスの使用を再開することを可能にするために使用されてもよい。企業サーバ120のストレージ128または別のモジュールは、プロキシ108の実行を可能にする機能性を提供する実行可能な命令でエンコードされたメモリを含んでもよい。(例えば、1つまたは複数の処理ユニット121上での)プロキシ108の実行は、企業サーバ120が、少なくとも部分的に、プロキシサーバとして動作することを可能にしてもよい。しかしながら、プロキシ108は、企業サーバ120上にインストールされる必要も、企業サーバ120上で起動される必要もない。例えば、プロキシ108は、他の場所で記憶、インストール、または起動されてもよい。
【0019】
プロキシ108を使用して、企業サーバ120をプロキシサーバとして動作させることは、企業サーバ120が、レガシーサーバ150と呼出側アプリケーション(例えば、レガシーアプリケーション107)との間の要求をインターセプトおよびルーティングする、汎用インターセプトデバイスとなることを可能にし得る。本配列は、ユーザデバイス102上の占有面積の縮小を可能にし得る。いくつかの実施形態では、企業サーバ120をプロキシサーバとして動作させることは、プロキシ108のより容易なアップグレードを可能にし、新しいアプリケーションおよびレガシーアプリケーションのために提供される統合サービスのレベルを拡張させ得る。プロキシ108を企業サーバ120上で動作させることはまた、企業サーバ120が、ライブバックアップに対するホットフェイルオーバ、および、レガシーアプリケーション自体が徐々に存在しなくなるにつれて要求を新しいサービスプロバイダに選択的に再ルーティングするための統合抽象化等の付加的機能を行うことを可能にし得る。プロキシサーバとして動作する企業サーバ120のいくつかの実施形態では、呼出側アプリケーション(例えば、レガシーアプリケーション107)は、新しいTCP/IPアドレスにリダイレクトされ、集中化プロキシと通信するために、さらに何かを要求しなくてもよい。しかしながら、そのような構成でも、ユーザデバイス102は、依然として、デバイスまたはアプリケーション特有の理由から、必要に応じて、ローカルプロキシを有してもよい。
【0020】
レガシーサーバ150によって提供される各サービスは、ユーザデバイス102によってアクセスされ得る、アプリケーション、データベース、および/または任意の他のサービスであってもよい。いくつかの実施形態では、例えば、1つまたは複数のレガシーサーバ150は、1つまたは複数の要求に応答して、データをデータベースからユーザデバイス102にストリーミング、伝送、または別様に提供するように構成されてもよい。レガシーサーバ150はそれぞれ、ネットワーク110を経由して、企業サーバ120および/または1つまたは複数のユーザデバイス102と通信してもよく、TCP/IP、UDP、HTTP、HTTPS、SSL、それらから派生した任意のプロトコル、または、TCP/IP、UDP、HTTP、HTTPS、SSL、それらから派生した任意のプロトコルの任意の組み合わせもしくは部分的組み合わせを含む、当技術分野において公知の任意のプロトコルを使用して、通信してもよい。他の場合において、レガシーサーバ150は、当技術分野において現在公知または将来的に公知となる他の通信方法論を使用して、企業サーバ120と通信してもよい。
【0021】
図3は、本発明のある実施形態による、認証管理エンジン300の概略ブロック図である。認証管理エンジン300は、図2の企業サーバ120の認証管理エンジン124を実装するために使用されてもよい。認証管理エンジン300は、エージェント認証および証明書ブロック302と、認証統合ブロック310と、ユーザインターフェースブロック320とを含んでもよい。認証統合ブロック310は、1つまたは複数のディレクトリサービス統合API312を含んでもよく、1つまたは複数のレガシー認証統合API314を含んでもよい。ある実装では、ディレクトリサービスは、データを編成するためのデータベースまたは他の手段であってもよい。ディレクトリサービスの実施例は、MicrosoftTM Active DirectoryTM、NovelTM Directory Services、X.500プロトコルに従ってアクセス可能なディレクトリ、およびLightweight Directory Access Protocol(LDAP)に従ってアクセス可能なディレクトリを含むが、これらに限定されない。ある実装では、ディレクトリサービス統合API312は、ディレクトリサービスと相互作用する、またはディレクトリサービスとのインターフェースをなすように構成されたAPIであってもよい。
【0022】
エージェント認証および証明書ブロック302は、認証管理エンジン300と通信するユーザデバイス102に認証サービスを提供するように構成されてもよい。概して、エージェント認証および証明書ブロック302は、説明される実施例に従って、ユーザデバイス102の認証ならびにユーザデバイス102によって提供される証明書の要求を管理してもよい。
【0023】
一例として、さらに詳細に説明されるように、エージェント認証および証明書ブロック302は、ユーザデバイス102が企業サーバ120またはレガシーサーバ150にアクセスし得るように、ユーザデバイス102から、証明書の要求を受信してもよい。ユーザがまだ認証されていない場合、エージェント認証および証明書ブロック302は、要求を拒否する、および/または、ユーザデバイス102のユーザに、証明書が提供され得る前に認証が要求されることを示してもよい。
【0024】
少なくとも一実施例では、証明書の要求が図1のウェブアプリケーション106等のウェブアプリケーションによって提供される場合、エージェント認証および証明書ブロック302は、ウェブアプリケーションをユーザ認証インターフェース320にダイレクトしてもよい。ユーザ認証インターフェース320は、証明書を要求側ユーザデバイス102から受信するように構成されるウェブベースのインターフェースであってもよい。一例として、ユーザ認証インターフェース320は、ユーザ名、パスワード、および/または認証キーのための1つまたは複数のフィールドを含んでもよい。ユーザ認証インターフェース320は、証明書をエージェント認証および証明書ブロック302に提供してもよい。別の実施例では、エージェント認証および証明書ブロック302は、レガシーアプリケーション107の代わりに提供される、ユーザデバイス102のプロキシ108から証明書を受信してもよい。
【0025】
ユーザ認証インターフェース320および/またはプロキシ108から受信された証明書は、認証統合ブロック310内に含まれるAPIへのアプリケーションプログラミングインターフェース(API)呼出に基づいて、エージェント認証および証明書ブロック302によって検証されてもよい。エージェント認証および証明書ブロック302は、受信された証明書を適切なAPIに提供してもよく、それに応答して、APIは、ユーザが認証されるように、証明書が有効であるかどうかを決定してもよい。すなわち、受信された証明書が、企業サーバ120と関連付けられる場合、エージェント認証および証明書ブロック302は、API呼出および証明書をディレクトリサービス統合API312に提供してもよい。受信された証明書が、特定のレガシーサーバ150と関連付けられる場合、エージェント認証および証明書ブロック302は、API呼出および証明書を対応するレガシー認証統合API314に提供してもよい。
【0026】
具体的には、ディレクトリサービス統合API312は、企業サーバ120へのアクセスを要求するユーザを認証する役割を果たし得る。一例として、ディレクトリサービス統合API312は、ディレクトリサービス認証機構とのインターフェースをなすことにより、ドメインレベルで企業サーバ120とのユーザの認証を行ってもよい。レガシー認証統合API314はそれぞれ、個別のレガシー認証機構とのインターフェースをなすことにより、特定のレガシーサーバ150とのユーザの認証を行ってもよい。認証機構はそれぞれ、API呼出において受信された証明書をストレージ128内に記憶されたユーザ認証データ(例えば、ユーザと関連付けられたエージェント)と相互参照することによって、ユーザを認証するように構成されてもよい。概して、相互参照は、エージェントまたはユーザを正当に識別可能な任意の機能(例えば、ルックアップ、参照、または相互参照)を含んでもよい。相互参照は、エージェントまたはユーザのための証明書のセットをロック解除するために使用されてもよい。例えば、API呼出において受信された証明書が、パスワード証明書である場合、相互参照は、パスワード証明書を記憶された認証データと比較することと、合致するかどうかを示すこととを含んでもよい。相互参照は、記憶された値の直接比較であってもよいが、そうである必要はない。ある実装では、証明書自体を直接記憶、比較、または相互参照する代わりに、証明書のハッシュまたは他の表現が、記憶、比較、および/または相互参照されてもよい。
【0027】
API呼出が、ユーザが認証されたことのインジケーションを返す場合、エージェント認証および証明書ブロック302は、ユーザのエージェントと関連付けられたトークンを提供してもよい。トークンが有効のままである限り、ユーザは、その後、トークンを利用して、ユーザと関連付けられたエージェントとともに含まれる任意の証明書のセットを要求してもよい。ユーザは、次いで、受信された証明書を使用して、1つまたは複数のレガシーサーバ150と認証を行ってもよい。
【0028】
図4は、本開示のある実施形態による、ウェブアプリケーションのシングルサインオン認証を実装するための方法400のフローチャートである。方法400は、図2の企業サーバ120を使用して実装されてもよく、特に、企業サーバ120の認証管理エンジンを使用して実装されてもよい。
【0029】
ステップ405において、認証管理エンジンは、証明書の要求をユーザデバイス102のウェブアプリケーション106から受信してもよい。要求は、例えば、レガシーサーバ150とのウェブアプリケーション106の認証を行うための証明書を要求してもよい。要求に応答して、ステップ410において、認証管理エンジンは、ウェブアプリケーション106にユーザ認証のためのユーザインターフェースを提供してもよい。一例として、認証管理エンジンは、ユーザ証明書をユーザデバイス102から受信するように構成される1つまたは複数のフィールドを含む、ウェブベースのインターフェースにウェブアプリケーション106をダイレクト(またはリダイレクト)してもよい。説明されるように、このように受信されたユーザ証明書は、ユーザ名、パスワード、認証キー、アクセスコード、またはそれらの組み合わせを含んでもよい。いくつかの実施例では、ユーザインターフェースの態様および/またはユーザインターフェースによって受信された証明書のタイプは、ステップ405において要求を提供するために使用されるユーザデバイス102のタイプに基づいてもよい。一例として、デスクトップおよびラップトップコンピュータは、ユーザ名およびパスワードを提供するように要求されてもよい一方、モバイルデバイスは、加えて、または代替として、アクセスコードを提供するように要求されてもよい。いったん企業サーバ120が証明書を受信すると、企業サーバ120は、証明書が有効であるかどうかを決定してもよい。証明書が有効である場合、ユーザは、認証される。証明書が有効でない場合、企業サーバ120は、例えば、証明書が無効であることを示すウェブベースのインターフェースにウェブアプリケーション106をリダイレクトすることによって、証明書が無効であることを示してもよい。
【0030】
いったんユーザが認証されると、ステップ415において、認証管理エンジンは、ユーザデバイスと関連付けられたトークン102を提供(例えば、生成)してもよい。トークンは、ユーザが個別のアクセス毎に証明書を手動で提供することを要求することなく、ユーザデバイス102が企業サーバ120および/または1つまたは複数の他のレガシーサーバ150にアクセスし得るように、SSO認証を提供するために、ユーザデバイス102によって利用されてもよい。
【0031】
一例として、いったんトークンがステップ415において生成されると、ウェブアプリケーション106は、認証管理エンジンから証明書を要求することによって、レガシーサーバ150によって提供されるサービスにアクセスしてもよい。認証管理エンジンは、要求側ユーザデバイス102、および、有効トークンがユーザデバイス102のユーザに対して存在することを認識し得る。有効トークンは、例えば、ユーザの最新の認証からまだ期限が切れていないトークンであってもよい。認証管理エンジンは、ユーザに対してアクセスされるべきサービスと関連付けられた証明書を読み出し、証明書をユーザデバイス102に提供してもよい。次いで、ユーザデバイス102は、アクセスのために、要求される証明書をレガシーサーバ150に提供してもよい。ユーザが、ユーザがアクセスすることを承認されていないサービスに対する証明書を要求する(例えば、ユーザがサービスに対する証明書のセットを有していない)場合、認証管理エンジンは、要求を拒否してもよい。このように、認証管理エンジンは、要求に応じて、証明書をユーザデバイス102に選択的に提供してもよい。概して、いったんユーザデバイス102が本明細書に説明されるように認証されると、任意の数のウェブアプリケーション106が、同一トークンを利用して、企業サーバ120および/またはレガシーサーバ150にアクセスしてもよい。
【0032】
いくつかの実施例では、認証管理エンジンは、ステップ410において、ユーザと関連付けられた任意の有効証明書の受信に応答して、ユーザデバイス102を認証してもよい。すなわち、ユーザデバイス102は、ユーザのエージェント内に含まれる任意の証明書のセットを使用して、SSO認証されてもよい。故に、ユーザは、任意の数のレガシー証明書のセットを使用して、企業サーバ120と認証を行ってもよい。他の実施例では、認証管理エンジンは、ユーザが企業サーバ120と具体的に関連付けられた証明書のセットを使用して認証することを要求してもよい。これは、例えば、ユーザがレガシーサーバ150によって提供される認証機構より厳格かつ/または信頼性のある認証機構を使用して認証することを確実にし得る。
【0033】
図5は、本開示のある実施形態による、レガシーアプリケーションのシングルサインオン認証を実装するための方法500のフローチャートである。方法500は、図2の企業サーバ120を使用して実装されてもよく、特に、企業サーバ120の認証管理エンジンを使用して実装されてもよい。
【0034】
ステップ505において、認証管理エンジンは、証明書をユーザデバイス102から受信してもよい。証明書は、例えば、レガシーアプリケーション107によって提供され、特定のレガシーサーバ150と関連付けられてもよい。前述のように、ユーザデバイス102のレガシーアプリケーション107は、レガシーサーバ150とのみ認証を行い、企業サーバ120とは認証を行わないように構成されてもよい。
【0035】
図6を参照すると、いくつかの実施形態では(例えば、プロキシ108がユーザデバイス102上で実行される実施形態)、レガシーアプリケーション107からレガシーサーバ150に提供されるように意図される証明書は、ステップ605において、プロキシ108によってインターセプトされ、ステップ610において、企業サーバ120に提供(例えば、リダイレクト)されてもよい。他の実施形態では(例えば、プロキシ108が企業サーバ120上で実行される実施形態)、呼出側アプリケーション(例えば、レガシーアプリケーション107)は、プロキシ108を介して企業サーバ120に通信をすでにダイレクトしている場合があり、必ずしも、ステップ610を行う必要はない。
【0036】
その場所にかかわらず、プロキシ108は、概して、1つまたは複数の呼出側アプリケーション(例えば、レガシーアプリケーション107)とレガシーサーバ150との間の中間体(例えば、「中間者」)として作用してもよい。プロキシ108は、レガシーアプリケーション107とそれぞれのレガシーサーバ150との間の一部または全ての通信を透過的に監視し、レガシーサーバ150に提供されることが意図される証明書の識別に応答して、プロキシ108は、代わりに、証明書を企業サーバ120の認証管理エンジンに提供してもよい。
【0037】
一例示的実施形態では、プロキシ108は、呼出側アプリケーション(例えば、レガシーアプリケーション107)から通信を受信し、通信を読み取り、通信のコンテンツに基づいて、決定を行ってもよい。いくつかの事例では、通信は、実質的に不変のままレガシーサーバ150に単に転送されてもよい。他の場合において、レガシーサーバ150に送信される通信は、受信された通信のコンテンツに基づいて、新しいまたは修正される通信であってもよい。さらに他の事例では、通信は、レガシーサーバ150に送信されなくてもよい。代わりに、例えば、企業サーバ120は、レガシーサーバ150と同様に通信に応答してもよい、または、全く応答しなくてもよい。この受信−読取−決定モデルは、例えば、企業サーバ120が、レガシーサーバ150に利用可能ではない場合がある拡張された機能性を提供することを可能にするために使用されてもよい。
【0038】
図5に戻って参照すると、認証管理エンジンは、証明書が有効であるかどうかを決定してもよく、証明書が有効である場合、ステップ510において、認証管理エンジンは、ユーザデバイス102と関連付けられたトークンを提供してもよい。説明されるように、トークンは、必要に応じて、任意の数のレガシーサーバ150との認証のための証明書を要求するために利用されてもよい。
【0039】
いくつかの実施例では、認証管理エンジンによって提供されるトークンは、プロキシ108によって利用されてもよい。そうすることによって、プロキシ108は、他のレガシーサーバ150にアクセスするとき、ユーザが追加の証明書を手動で提供することを要求することなく、任意の数のレガシーアプリケーション107をレガシーサーバ150と認証してもよい。一例として、レガシーサーバ150へのアクセスを取得するためにレガシーアプリケーション107がレガシーサーバ150と認証を行わなければならないことの決定に応答して、プロキシ108は、適切な証明書を認証管理エンジンから要求してもよい。説明されるように、認証管理エンジンは、要求側ユーザデバイス102、および、有効トークンがユーザデバイス102のユーザに対して存在することを認識し、要求される証明書をプロキシ108に提供してもよい。プロキシ108は、次いで、レガシーアプリケーション107の代わりに、証明書をレガシーサーバ150に提供し、それによって、レガシーアプリケーション107を認証してもよい。プロキシ108は、任意の数のレガシーアプリケーション107に対してトークンを利用してもよい。いくつかの実施例では、レガシーアプリケーション107は、プロキシ108に「気付かない」かのように動作してもよい。すなわち、プロキシ108は、レガシーアプリケーション107が、レガシーアプリケーション107へのいずれの修正も、および/またはレガシーサーバ150の認証機構も伴わずに、レガシーサーバ150と認証され得るように、レガシーアプリケーション107をレガシーサーバ150と透過的に認証してもよい。
【0040】
方法400および500は両方とも、トークンを用いてSSO認証をユーザデバイス102に提供するように本明細書に説明された。方法400は、ウェブアプリケーション106のSSO認証を実装することを対象とし、方法500は、レガシーアプリケーション107のSSO認証を実装することを対象とするが、いずれの事例において提供されるトークンも、ユーザデバイス102の任意のアプリケーションによって利用されてもよいことを理解されたい。例えば、ウェブアプリケーション106の認証(図4)に応答して、認証管理エンジンによって提供されるトークンは、その後に、レガシーアプリケーション107の認証のための証明書を要求するために、プロキシ108によって利用されてもよい。逆に、レガシーアプリケーション107の認証(図5)に応答して、認証管理エンジンによって提供されるトークンは、その後に、ウェブアプリケーション106の認証中に証明書を要求するために、ウェブアプリケーション106によって利用されてもよい。
【0041】
図7は、本開示のある実施形態による、コンテキスト情報を管理するための方法700のフローチャートである。方法700は、図2の企業サーバ120を使用して実装されてもよく、特に、企業サーバ120の認証管理エンジンを使用して実装されてもよい。
【0042】
ステップ705において、認証管理エンジンは、第1のユーザデバイス102のユーザと関連付けられたコンテキスト情報を受信してもよい。コンテキスト情報は、例えば、ユーザデバイス102のユーザが企業サーバ120またはレガシーサーバ150のサービスにアクセスした様式を示してもよい。実施例として、ウェブアプリケーション106は、レガシーサーバ150上のサービスにアクセスするために使用されてもよく、動作中にウェブアプリケーション106によってアクセスされたデータを示すコンテキスト情報を企業サーバ120に提供してもよい。別の実施例として、レガシーアプリケーション107は、レガシーサーバ150上のサービスにアクセスするために使用されてもよく、プロキシ108は、動作中にレガシーアプリケーション107によってアクセスされたデータを示すコンテキスト情報を企業サーバ120に提供する、またはコンテキスト情報を企業サーバ120において受信してもよい。したがって、プロキシ108は、レガシーアプリケーション108の代わりに、統合的レガシーコンテキスト管理を提供してもよい。いくつかの実施例では、コンテキスト情報は、企業サーバ120において周期的に受信されてもよく、かつ/またはサービスのアクセスが終了したときに提供されてもよい。ウェブアプリケーション106および/またはレガシーアプリケーション107によってアクセスされるデータは、例えば、医療提供者データベース内の特定の患者と関連付けられたデータであってもよく、かつ/または特定の医療手技または方針と関連付けられたデータであってもよい。企業サーバ120は、コンテキスト情報が、全ての証明書のセットを介して、ユーザと関連付けられ、ユーザに利用可能であるように、コンテキスト情報をユーザのエージェントと関連付けてもよい。
【0043】
そのようなコンテキストシステムは、ユーザおよび企業アプリケーションの両方に特有である、企業特有のコンテキストを提供するように構成されてもよい。例えば、プロキシ108が企業サーバ120上で動作しているとき、企業サーバ120は、レガシーサーバ150の認証要件または他のデータをインターセプトまたはルーティングする集中化プロキシサービスを提供するように構成されてもよい。企業サーバ120は、その集中化プロキシサービスを使用することにより、同一ユーザまたは証明書のセットに対して、異なるデバイスにわたって一貫したコンテキストを提供してもよい。例えば、ユーザは、3つの異なるレガシーアプリケーションサーバ上の3つの異なるレガシーアプリケーションと通信してもよい。プロキシサービスが、企業サーバ120上で集中化されると、企業サーバ120は、認証を行い、異なるデバイスにわたって同一ユーザであることを検出可能である。いったんユーザが検出されると、企業サーバ120は、次いで、ユーザが通常と異なるデバイスからレガシーサーバ150にアクセスしている場合でも、正しいコンテキストを提供し得る。本構成は、企業サーバ120の集中化プロキシサービスを利用することにより、ユーザのデバイスの全てにわたってユーザを検出し、レガシーアプリケーション統合は、高度な機能性を提供する必要がある。
【0044】
企業サーバ120はまた、ユーザおよびデバイスの両方に特有であるデバイス特有のコンテキストを提供するように構成されることが可能であってもよい。本構成は、企業サーバ120が、ユーザ要求の特定の特性に基づいて、特定のレガシーサーバ150へのアクセスをユーザに自動的に与える結果となり得る。例えば、企業サーバ120は、ユーザが、前の通信と同一の時間ベースの認証コンテキスト内で合理的に動作している(例えば、ユーザは、要求されるパスワードプロンプト間においてユーザデバイス102からログアウトしていない)ことを把握し、特定のレガシーサーバ150へのアクセスを自動的に提供してもよい。このタイプのコンテキストは、ユーザの証明書が、1つのアプリケーションにおいて特定の機能を行うために必要とされ、かつ、同一デバイス上で非関連機能を行うために非関連アプリケーションにおいても必要とされる状況において有用であり得る。
【0045】
ステップ710において、企業サーバ120は、第1のユーザデバイス102のユーザと関連付けられたコンテキスト情報を提供してもよい。コンテキスト情報は、例えば、以前にアクセスされたサービスへの第1のユーザデバイス102または第2のユーザデバイス102のいずれかによるアクセスに応答して、提供されてもよい。いずれの場合も、コンテキスト情報は、ユーザが前のステップを繰り返す必要がないように、ユーザが少なくとも部分的に動作を再開するために使用されてもよい。例えば、ステップ710において、サービスに2回目にアクセスしたことに応じて、ユーザは、ステップ705においてアクセスされた患者と関連付けられた情報が提示されてもよい。
【0046】
方法500、600、および700は、特定のステップを含むように説明されたが、いくつかの事例では、追加のステップが、方法500、600、および700に含まれてもよく、かつ/または方法500、600、および700の1つまたは複数の説明されるステップは、修正または省略されてもよいことを理解されたい。例えば、図4を参照すると、いくつかの事例では、ステップ405は、ユーザデバイス102が、証明書が認証インターフェースにダイレクトされることを要求する必要がないため、省略されてもよい。ユーザデバイス102は、例えば、具体的には、証明書の要求に応答してリダイレクトされる代わりに、認証管理エンジンからインターフェース自体を要求してもよい。
【0047】
本明細書では、ユーザデバイス102と、企業サーバ120と、レガシーサーバ150との間で交換される証明書およびコンテキスト情報に関して参照される。説明される実施例に従って行われるデータの交換は、同期キー暗号化、非同期キー暗号化、および/またはハッシュベースの暗号化を含むがこれらに限定されない、当技術分野において公知の任意の暗号化を使用して行われてもよいことを理解されたい。
【0048】
先述の内容から、本発明の具体的実施形態が例証の目的で本明細書に説明されているが、本発明の精神および範囲から逸脱することなく、種々の修正が行われ得ることが理解されるであろう。したがって、本発明は、添付の特許請求の範囲による場合を除いて制限されない。
図1
図2
図3
図4
図5
図6
図7