(57)【要約】【課題】レガシー統合のためのコンピュータ読み取り可能記憶媒体とそれを使用する方法およびシステムの提供。【解決手段】統合的レガシーコンテキスト管理のためのシステムおよび方法が、開示される。例示的コンピュータハードウェアシステムは、メモリに結合された少なくとも１つの処理ユニットを含んでもよく、メモリは、コンピュータ実行可能な命令でエンコードされてもよく、命令は、実行されると、ユーザと関連付けられた証明書のセットをユーザデバイスから受信することと、証明書のセットをユーザと関連付けられたエージェントの第１の証明書のセットと相互参照することにより、証明書のセットが有効であるかどうかを決定することと、証明書のセットが有効である場合、ユーザデバイスからの第２の証明書のセットの要求に応答して、エージェントの第２の証明書のセットをユーザデバイスに提供することとを少なくとも１つの処理ユニットに行わせる。【選択図】図３
2019220238.tif 000002
【特許請求の範囲】
【請求項１】
メモリに結合された少なくとも１つの処理ユニットを含むコンピュータハードウェアシステムであって、前記メモリは、
コンピュータ実行可能な命令であって、実行されると、
レガシーアプリケーションとレガシーサーバとの間の中間体としてユーザデバイス上で動作するプロキシからユーザと関連付けられた証明書のセットを受信することであって、前記証明書は、前記レガシーアプリケーションの代わりに提供される、ことと、
前記証明書のセットを前記ユーザと関連付けられたエージェントの第１の証明書のセットと相互参照して、前記証明書のセットが有効であるかどうかを決定することと、
前記証明書のセットが有効である場合、前記ユーザデバイスと関連付けられたトークンを生成することと、
前記ユーザデバイスの前記プロキシからの前記エージェントの第２の証明書のセットの要求に応答して、ならびに、要求側ユーザデバイスを認識すること、および、有効トークンが前記ユーザデバイスに対して存在することを認識することにさらに応答して、前記第２の証明書のセットを前記ユーザデバイスの前記プロキシに提供することと
を前記少なくとも１つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、システム。
【請求項２】
前記エージェントの前記第２の証明書のセットは、レガシーサーバによって提供されるサービスと関連付けられている、請求項１に記載のシステム。
【請求項３】
前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスのブラウザをウェブベースのインターフェースにダイレクトすることであって、前記ウェブベースのインターフェースは、前記第１の証明書のセットを受信するように構成されている、こと
を前記少なくとも１つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項１に記載のシステム。
【請求項４】
前記ウェブベースのインターフェースは、前記ユーザデバイスのタイプに基づく、請求項３に記載のシステム。
【請求項５】
前記第１の証明書のセットは、企業サーバと関連付けられる、請求項１に記載のシステム。
【請求項６】
前記命令であって、実行されると、前記証明書のセットを前記ユーザと関連付けられたエージェントの第１の証明書のセットと相互参照することにより、前記証明書のセットが有効であるかどうかを決定することを前記少なくとも１つの処理ユニットに行わせる命令は、
命令であって、実行されると、
ＡＰＩ呼出をディレクトリ統合ＡＰＩまたはレガシー認証統合ＡＰＩのうちの少なくとも１つに提供することを前記少なくとも１つの処理ユニットに行わせる命令を含む、請求項１に記載のシステム。
【請求項７】
前記ユーザデバイスの前記プロキシに提供される前記第２の証明書のセットは、前記レガシーアプリケーションの代わりに前記レガシーサーバに提供するための証明書を含む、請求項１に記載のシステム。
【請求項８】
前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスと前記レガシーデバイスとの間のプロキシ接続を確立すること
を前記少なくとも１つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項１に記載のシステム。
【請求項９】
メモリに結合された少なくとも１つの処理ユニットを含むコンピュータハードウェアシステムであって、前記メモリは、
コンピュータ実行可能な命令であって、実行されると、
レガシーアプリケーションとレガシーサーバとの間の中間体としてユーザデバイス上で動作するプロキシからユーザと関連付けられた証明書を受信することであって、前記証明書は、前記レガシーアプリケーションの代わりに提供される、ことと、
前記証明書が有効であるかどうかを決定することと、
前記証明書が有効である場合、前記ユーザデバイスと関連付けられたトークンを提供することと、
前記トークンが有効である期間の間、要求側ユーザデバイスを認識すること、および、前記トークンが前記ユーザデバイスに対して存在することを認識することに応答して、要求に応じて、前記ユーザと関連付けられたエージェントの証明書のセットを前記ユーザデバイスに提供することであって、前記エージェントの前記証明書のセットは、レガシーサーバによって提供されるサービスと関連付けられている、ことと、
前記証明書のセットを、前記レガシーサーバに提供することと
を前記少なくとも１つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、システム。
【請求項１０】
前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記証明書が有効でない場合、前記証明書が有効でないことを示す応答を提供すること
を前記少なくとも１つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項９に記載のシステム。
【請求項１１】
前記命令であって、実行されると、前記証明書が有効であるかどうかを決定することを前記少なくとも１つの処理ユニットに行わせる命令は、
命令であって、実行されると、
前記証明書が前記ユーザと関連付けられた前記エージェント内に記憶される証明書に対応するかどうかを決定すること
を前記少なくとも１つの処理ユニットに行わせる命令を含む、請求項９に記載のシステム。
【請求項１２】
前記命令であって、実行されると、ユーザと関連付けられた証明書のセットをユーザデバイスから受信することを前記少なくとも１つの処理ユニットに行わせる命令は、
命令であって、実行されると、
ウェブブラウザを前記証明書を受信するように構成されたウェブベースのインターフェースにダイレクトすること
を前記少なくとも１つの処理ユニットに行わせる命令を含む、請求項９に記載のシステム。
【請求項１３】
前記命令であって、実行されると、前記トークンが有効である期間の間、要求に応じて、証明書を前記ユーザデバイスに提供することを前記少なくとも１つの処理ユニットに行わせる命令は、
命令であって、実行されると、
前記ユーザと関連付けられた第１の証明書のセットをプロキシに提供することと、
前記ユーザと関連付けられた第２の証明書のセットをウェブアプリケーションに提供することと
を前記少なくとも１つの処理ユニットに行わせる命令を含む、請求項９に記載のシステム。
【請求項１４】
前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記トークンが提供された後のある期間の後に前記トークンを除去すること
を前記少なくとも１つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項９に記載のシステム。
【請求項１５】
前記メモリは、さらに、
コンピュータ実行可能な命令であって、実行されると、
前記ユーザデバイスと前記レガシーサーバとの間のプロキシ接続を確立すること
を前記少なくとも１つの処理ユニットに行わせるコンピュータ実行可能な命令でエンコードされている、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本開示の実施形態は、概して、レガシーシステムに関し、より具体的には、統合的レガシーコンテキスト管理に関する。
【背景技術】
【０００２】
（背景）
現代の企業システムは、企業に関する種々の特徴およびサービスにわたって比較的にシームレスなユーザ体験を提供するための種々のセキュリティ、通信、および認証機構の統合において大きな進歩を果たした。しかしながら、そのような改良にもかかわらず、企業システムの近代化は、限定された拡張性を有するレガシーシステムの統合をまだ十分に対処していない。レガシーシステムが、典型的には、企業システムと適切に統合しないため、多くの組織が、別個のレガシーシステムおよび企業システムを維持することを強いられている。
【発明の概要】
【課題を解決するための手段】
【０００３】
（概要）
特定の実装は、メモリに結合された処理ユニットを有するコンピュータハードウェアシステムを含んでもよく、メモリは、コンピュータ実行可能な命令でエンコードされ、命令は、実行されると、ユーザと関連付けられた証明書のセットをユーザデバイスから受信することと、証明書のセットをユーザと関連付けられたエージェントの第１の証明書のセットと相互参照することにより、証明書のセットが有効であるかどうかを決定することと、証明書のセットが有効である場合、ユーザデバイスからの第２の証明書のセットの要求に応答して、エージェントの第２の証明書のセットをユーザデバイスに提供することとを処理ユニットに行わせる。特定の実装では、メモリはコンピュータ実行可能な命令でさらにエンコードされてもよく、命令は、実行されると、他の動作の中でもとりわけ、ユーザデバイスのブラウザをウェブベースのインターフェースにダイレクトすることであって、ウェブベースのインターフェースは、証明書のセットを受信するように構成される、こと、および／または、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを処理ユニットに行わせる。特定の実装では、エージェントの第２の証明書のセットは、レガシーサーバによって提供されるサービスと関連付けられてもよい。ウェブベースのインターフェースは、ユーザデバイスのタイプに基づいてもよい。証明書のセットは、企業サーバと関連付けられてもよい。実行されると、証明書のセットをユーザと関連付けられたエージェントの第１の証明書のセットと相互参照することにより、証明書のセットが有効であるかどうかを決定することを少なくとも１つの処理ユニットに、行わせる命令は、実行されると、ＡＰＩ呼出をディレクトリ統合ＡＰＩまたはレガシー認証統合ＡＰＩのうちの少なくとも１つに提供することを少なくとも１つの処理ユニットに行わせる命令を含んでもよい。実行されると、エージェントの第２の証明書のセットをユーザデバイスに提供することを少なくとも１つの処理ユニットに行わせる命令は、実行されると、第２の証明書のセットをユーザデバイス上で実行中のプロキシに提供することを少なくとも１つの処理ユニットに行わせる命令を含んでもよい。メモリは、コンピュータ実行可能な命令でエンコードされてもよく、命令は、実行されると、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを少なくとも１つの処理ユニットに行わせる。
【０００４】
特定の実装は、メモリに結合された少なくとも１つの処理ユニットを備えるコンピュータハードウェアシステムを含んでもよく、メモリは、コンピュータ実行可能な命令でエンコードされ、命令は、実行されると、ユーザと関連付けられたエージェントの第１の証明書のセットの受信に応答して、第１のユーザデバイスを認証することであって、第１の証明書のセットは、レガシーサーバと関連付けられている、ことと、コンテキスト情報を第１のデバイスから受信することであって、コンテキスト情報は、第１のユーザデバイスがサービスにアクセスした様式を示す、ことと、ユーザと関連付けられたエージェントの第２の証明書のセットの受信に応答して、第２のユーザデバイスを認証することと、第２のデバイスがサービスにアクセスしたことに応答して、コンテキスト情報を第２のデバイスに提供することとを少なくとも１つの処理ユニットに行わせる。他の命令は、他の動作の中でもとりわけ、コンテキスト情報をエージェントと関連付けること、コンテキスト情報を第１のデバイス上で実行中のプロキシから受信すること、および／またはユーザデバイスとレガシーデバイスとの間を接続するプロキシを確立することを処理ユニットに行わせる。エージェントの第１の証明書のセットは、第１のデバイス上で実行中のプロキシから受信されてもよく、エージェントの第２の証明書のセットは、第２のデバイス上で実行中のウェブアプリケーションから受信されてもよい。メモリは、コンピュータ実行可能な命令でエンコードされてもよく、命令は、実行されると、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを少なくとも１つの処理ユニットに行わせる。
【０００５】
特定の実装は、メモリに結合された少なくとも１つの処理ユニットを備えるコンピュータハードウェアシステムを含んでもよく、メモリは、コンピュータ実行可能な命令でエンコードされ、命令は、実行されると、ユーザと関連付けられた証明書をユーザデバイスから受信することと、証明書が有効であるかどうかを決定することと、証明書が有効である場合、ユーザデバイスと関連付けられたトークンを提供することと、トークンが有効である期間の間、要求に応じて、証明書のセットをユーザデバイスに提供することとを少なくとも１つの処理ユニットに行わせる。他の命令は、他の動作の中でもとりわけ、証明書が有効ではない場合、証明書が有効ではないことを示す応答を提供すること、証明書がユーザと関連付けられたエージェント内に記憶される証明書に対応するかどうかを決定すること、ウェブブラウザを証明書を受信するように構成されたウェブベースのインターフェースにダイレクトすること、ユーザと関連付けられた第１の証明書のセットをプロキシに提供すること、ユーザと関連付けられた第２の証明書のセットをウェブアプリケーションに提供すること、トークンが提供された後のある期間の後にトークンを除去すること、および／または、ユーザデバイスとレガシーデバイスとの間のプロキシ接続を確立することを処理ユニットに行わせる。
本明細書は、例えば、以下の項目も提供する。
（項目１）
メモリに結合された少なくとも１つの処理ユニットを備えるコンピュータハードウェアシステムであって、前記メモリは、コンピュータ実行可能な命令でエンコードされ、前記命令は、実行されると、
ユーザと関連付けられた証明書のセットをユーザデバイスから受信することと、
前記証明書のセットを前記ユーザと関連付けられたエージェントの第１の証明書のセットと相互参照することにより、前記証明書のセットが有効であるかどうかを決定することと、
前記証明書のセットが有効である場合、前記ユーザデバイスからの第２の証明書のセットの要求に応答して、前記エージェントの前記第２の証明書のセットを前記ユーザデバイスに提供することと
を前記少なくとも１つの処理ユニットに行わせる、システム。
（項目２）
前記エージェントの前記第２の証明書のセットは、レガシーサーバによって提供されるサービスと関連付けられる、項目１に記載のシステム。
（項目３）
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスのブラウザをウェブベースのインターフェースにダイレクトすることであって、前記ウェブベースのインターフェースは、前記証明書のセットを受信するように構成されている、こと
を前記少なくとも１つの処理ユニットに行わせる、項目１に記載のシステム。
（項目４）
前記ウェブベースのインターフェースは、前記ユーザデバイスのタイプに基づく、項目３に記載のシステム。
（項目５）
前記証明書のセットは、企業サーバと関連付けられる、項目１に記載のシステム。
（項目６）
実行されると、前記証明書のセットを前記ユーザと関連付けられたエージェントの第１の証明書のセットと相互参照することにより、前記証明書のセットが有効であるかどうかを決定することを前記少なくとも１つの処理ユニットに行わせる前記命令は、
実行されると、ＡＰＩ呼出をディレクトリ統合ＡＰＩまたはレガシー認証統合ＡＰＩのうちの少なくとも１つに提供することを前記少なくとも１つの処理ユニットに行わせる命令を含む、項目１に記載のシステム。
（項目７）
実行されると、前記エージェントの第２の証明書のセットを前記ユーザデバイスに提供さすることを前記少なくとも１つの処理ユニットに行わせる前記命令は、
実行されると、前記第２の証明書のセットを前記ユーザデバイス上で実行中のプロキシに提供することを前記少なくとも１つの処理ユニットに行わせる命令を含む、項目１に記載のシステム。
（項目８）
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスと前記レガシーデバイスとの間のプロキシ接続を確立すること
を前記少なくとも１つの処理ユニットに行わせる、項目１に記載のシステム。
（項目９）
メモリに結合された少なくとも１つの処理ユニットを備えるコンピュータハードウェアシステムであって、前記メモリは、コンピュータ実行可能な命令でエンコードされ、前記命令は、実行されると、
ユーザと関連付けられたエージェントの第１の証明書のセットの受信に応答して、第１のユーザデバイスを認証することであって、前記第１の証明書のセットは、レガシーサーバと関連付けられている、ことと、
コンテキスト情報を前記第１のデバイスから受信することであって、前記コンテキスト情報は、前記第１のユーザデバイスがサービスにアクセスした様式を示す、ことと、
前記ユーザと関連付けられた前記エージェントの第２の証明書のセットの受信に応答して、第２のユーザデバイスを認証することと、
前記第２のデバイスが前記サービスにアクセスしたことに応答して、前記コンテキスト情報を前記第２のデバイスに提供することと
を前記少なくとも１つの処理ユニットに行わせる、システム。
（項目１０）
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記コンテキスト情報を前記エージェントと関連付けること
を前記少なくとも１つの処理ユニットに行わせる、項目９に記載のシステム。
（項目１１）
実行されると、コンテキスト情報を前記第１のデバイスから受信することを前記少なくとも１つの処理ユニットに行わせる前記命令は、
実行されると、コンテキスト情報を前記第１のデバイス上で実行中のプロキシから受信することを前記少なくとも１つの処理ユニットに行わせる命令を含む、項目９に記載のシステム。
（項目１２）
前記エージェントの前記第１の証明書のセットは、前記第１のデバイス上で実行中のプロキシから受信され、前記エージェントの前記第２の証明書のセットは、前記第２のデバイス上で実行中のウェブアプリケーションから受信される、項目９に記載のシステム。
（項目１３）
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスと前記レガシーデバイスとの間のプロキシ接続を確立すること
を前記少なくとも１つの処理ユニットに行わせる、項目９に記載のシステム。
（項目１４）
メモリに結合された少なくとも１つの処理ユニットを備えるコンピュータハードウェアシステムであって、前記メモリは、コンピュータ実行可能な命令でエンコードされ、前記命令は、実行されると、
ユーザと関連付けられた証明書をユーザデバイスから受信することと、
前記証明書が有効であるかどうかを決定することと、
前記証明書が有効である場合、前記ユーザデバイスと関連付けられたトークンを提供することと、
前記トークンが有効である期間の間、要求に応じて、証明書のセットを前記ユーザデバイスに提供することと
を前記少なくとも１つの処理ユニットに行わせる、コンピュータハードウェアシステム。
（項目１５）
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記証明書が有効ではない場合、前記証明書が有効ではないことを示す応答を提供すること
を前記少なくとも１つの処理ユニットに行わせる、項目１４に記載のシステム。
（項目１６）
実行されると、前記証明書が有効であるかどうかを決定することを前記少なくとも１つの処理ユニットに行わせる前記命令は、
実行されると、前記証明書が前記ユーザと関連付けられたエージェント内に記憶される証明書に対応するかどうかを決定することを前記少なくとも１つの処理ユニットに行わせる命令を含む、項目１４に記載のシステム。
（項目１７）
実行されると、ユーザと関連付けられた証明書のセットをユーザデバイスから受信することを前記少なくとも１つの処理ユニットに行わせる前記命令は、
実行されると、ウェブブラウザを前記証明書を受信するように構成されたウェブベースのインターフェースにダイレクトすることを前記少なくとも１つの処理ユニットに行わせる命令を含む、項目１４に記載のシステム。
（項目１８）
実行されると、前記トークンが有効である期間の間、要求に応じて、証明書を前記ユーザデバイスに提供することを前記少なくとも１つの処理ユニットに行わせる前記命令は、
実行されると、
前記ユーザと関連付けられた第１の証明書のセットをプロキシに提供することと、
前記ユーザと関連付けられた第２の証明書のセットをウェブアプリケーションに提供することと
を前記少なくとも１つの処理ユニットに行わせる命令を含む、項目１４に記載のシステム。
（項目１９）
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記トークンが提供された後のある期間の後に前記トークンを除去すること
を前記少なくとも１つの処理ユニットに行わせる、項目１４に記載のシステム。
（項目２０）
前記メモリはコンピュータ実行可能な命令でさらにエンコードされ、前記命令は、実行されると、
前記ユーザデバイスと前記レガシーデバイスとの間のプロキシ接続を確立すること
を前記少なくとも１つの処理ユニットに行わせる、項目１４に記載のシステム。
【図面の簡単な説明】
【０００６】
【図１】図１は、本開示のある実施形態による、コンピュータネットワーキング環境の概略図である。
【図２】図２は、本開示のある実施形態による、コンピュータネットワーキング環境の概略図である。
【図３】図３は、本開示のある実施形態による、認証管理エンジンの概略ブロック図である。
【図４】図４は、本開示のある実施形態による、ウェブアプリケーションのシングルサインオン認証を実装するための方法のフローチャートである。
【図５】図５は、本開示のある実施形態による、レガシーアプリケーションのシングルサインオン認証を実装するための方法のフローチャートである。
【図６】図６は、本開示のある実施形態による、証明書を企業サーバに提供するための方法のフローチャートである。
【図７】図７は、本開示のある実施形態による、コンテキスト情報を管理するための方法のフローチャートである。
【発明を実施するための形態】
【０００７】
（詳細な説明）
統合的レガシーコンテキスト管理のためのシステムおよび方法が、本明細書に開示される。特定の詳細が、本開示の実施形態の十分な理解を提供するために以下に記載される。しかしながら、本開示の実施形態は、これらの特定の詳細を伴わずに実施されてもよい。また、特定の実施形態は、一例として提供され、限定的として解釈されるべきではない。他の場合において、周知の回路、制御信号、タイミングプロトコル、およびソフトウェア動作は、本発明を不必要に曖昧にすることを回避するために詳細に示されていない。
【０００８】
開示される実施形態は、概して、認証に関する。要するに、認証は、デバイスのユーザの識別を検証することと、それに応答して、ユーザアクセスをアプリケーションまたはデータベース等の１つまたは複数のサービスに与えることとを含む。認証は、いくつかの認証タイプを使用して行われてもよい。第１の、最も一般的なタイプの認証は、ユーザによって既知の情報を使用して認証することを対象とする。これは、ユーザ名、パスワード、および／またはアクセスコード等の証明書を使用して認証することを含んでもよい。第２のタイプの認証は、クレジットカード、デビットカード、またはスマートカード等の所有物を使用して認証することを対象とする。第３のタイプの認証は、場所またはバイオメトリック特性（例えば、指紋）等の特性を使用して認証することを対象とする。いくつかの事例では、認証は、複数要素認証を使用して実装されてもよい。多くのシステムでは、複数要素認証は、３つの提示された認証タイプのうちの少なくとも２つの充足を要求する。
【０００９】
ある実施形態はさらに、シングルサインオン（ＳＳＯ）認証に関し得る。ＳＳＯ認証は、ユーザの認証に応答して、ユーザが１つまたは複数のサーバ（例えば、企業サービス、レガシーサーバ）によって提供される複数のアプリケーションまたはサービスへのアクセスを提供され得る機構を含む。典型的には、個別のアプリケーション（またはサービス）の各々に対する許可レベルが、ユーザの識別に基づいて、個々に決定されてもよく、殆どの場合、ユーザは、ＳＳＯサーバに有効ユーザ証明書（例えば、有効ユーザ名、パスワード、バイオメトリック、および／または他の証明書の任意の組み合わせ）を提供した後、ＳＳＯ認証されてもよい。いったん認証されると、ユーザは、ユーザが各アプリケーションに個々に認証された場合と同様に、アプリケーションにアクセスし得る。いくつかの事例では、ＳＳＯサーバは、１つまたは複数の証明書のセットと引き換えに利用され得るトークンを提供（例えば、生成）してもよい。証明書は、続いて、認証のために使用されてもよい。他の場合において、ＳＳＯサーバは、例えば、ユーザに割り当てられ、かつ、各個別のアプリケーションに具体的に対応する証明書を使用して、ユーザの代わりに、１つまたは複数のアプリケーションと認証を行ってもよい。したがって、ＳＳＯサーバとのＳＳＯ認証が完了すると、ユーザは、いずれの追加の証明書も提供することなく、前述のアプリケーションのいずれかにアクセスし得る。ＳＳＯ認証の使用は、ユーザが、多数のパスワードを思い出すまたは記憶する必要性を低減させ、アカウント管理を単純化することによって企業レベルにおける効率を改善し、かつ／または、例えば、フィッシングを通じた証明書の不正流用を低減させることによって、ユーザ証明書の保護を増加させ得る。ユーザは、ＳＳＯ認証を使用することにより、企業レベルでだけではなく、遠隔サーバおよび／または第三者サーバ上でも同様に提供されるアプリケーションにアクセスし得る。
【００１０】
図１を参照すると、ユーザデバイス１０２は、ウェブアプリケーション１０６を使用して、ネットワーク１１０を経由して企業サーバ１２０と通信してもよい、かつ／または、レガシーアプリケーション１０７を使用して、ネットワーク１１０を経由してレガシーサーバ１５０と通信してもよい。企業サーバ１２０およびレガシーサーバ１５０はそれぞれ、例えば、事業プロセス、情報フロー、および／またはデータ記憶を対象とするサービスを提供するために使用され得る、１つまたは複数のアプリケーションをホストするサーバであってもよい。故に、ウェブアプリケーション１０６は、企業サーバ１２０によって提供されるサービスにアクセスするために使用されてもよく、レガシーアプリケーション１０７は、レガシーサーバ１５０によって提供されるサービスにアクセスするために使用されてもよい。本明細書では、単一の企業サーバ１２０および単一のレガシーサーバ１５０を参照するが、説明される実施例は、任意の数のサービスを提供する、１つまたは複数の他の企業サーバ１２０および／または１つまたは複数の他のレガシーサーバ１５０を含んでもよいことを理解されたい。
【００１１】
いくつかの実施例では、ウェブアプリケーション１０６は、企業サーバ１２０によって提供されるサービスおよびレガシーサーバ１５０によって提供されるサービスの両方にアクセスするために使用されてもよい。要するに、ウェブアプリケーション１０６は、トークンおよびアクセスキー等の１つまたは複数の認証機構を使用して、企業サーバ１２０と認証を行ってもよく、ユーザ名およびパスワードログイン等のより制限された数の認証機構のうちの１つまたは複数のものを使用して、レガシーサーバ１５０と認証を行ってもよい。レガシーサーバ１５０によって採用される認証機構の数および／またはタイプが制限されることがあるため、レガシーサーバ１５０のアプリケーションは、企業サーバ１２０のアプリケーションと適切に統合しないことがある。その結果、ウェブアプリケーション１０６は、企業サーバ１２０およびレガシーサーバ１５０のそれぞれと別個に認証を行うことが要求され得る。
【００１２】
別個の認証の必要性を避けるために、企業サーバ１２０は、ウェブアプリケーション１０６が、企業サーバ１２０と認証を行い、レガシーサーバ１５０によって提供されるサービスにアクセスすることを可能にする機構を採用してもよい。しかしながら、このように認証を提供することは、依然として、ウェブアプリケーション１０６が、サーバ１２０、１５０毎に別個の認証機構を使用して、企業サーバ１２０と認証を行うことを要求し得、さらに、同一ユーザが各場合で認証されたことを企業サーバ１２０が決定し得るように、提供される証明書の各セットが相互に関連付けられることを要求し得る。
【００１３】
証明書が相互に関連付けられることを確実にするために、ユーザに対する証明書は、典型的には、ユーザデバイス１０２上にキャッシュされるか、企業サーバ１２０上にキャッシュされるか、またはレガシーサーバ１５０へのアクセスが要求される度に、企業サーバ１２０によって要求されるかしなければならない。要するに、これらのアプローチはそれぞれ、１つまたは複数のトレードオフを含み得る。例えば、証明書をユーザデバイス１０２上にキャッシュすることは、いったんユーザデバイス１０２が企業環境から移動すると、証明書がユーザデバイス１０２によって暴露され得るため、セキュリティリスクをもたらし得る。一方、証明書を企業サーバ１２０上にキャッシュすることは、複製証明書を複数の認証機構のそれぞれにわたってキャッシュする結果となり得る（例えば、企業サーバ１２０に対して１つの複製およびレガシーサーバ１５０毎に１つの複製）。最後に、ユーザがレガシーサーバ１５０へのアクセスを要求する度に証明書を要求することは、煩雑なユーザ体験の結果となり得る。
【００１４】
図２は、コンピュータネットワーキング環境１００の実施形態の概略図である。複数のユーザデバイス１０２はそれぞれ、モデム、ルータ、ゲートウェイ、サーバ、シンクライアント、ラップトップ、デスクトップ、コンピュータ、タブレット、メディアデバイス、スマートフォン、テレビ、ファブレット、携帯電話、もしくは他のモバイルデバイス、または、モデム、ルータ、ゲートウェイ、サーバ、シンクライアント、ラップトップ、デスクトップ、コンピュータ、タブレット、メディアデバイス、スマートフォン、テレビ、ファブレット、携帯電話、もしくは他のモバイルデバイスの任意の組み合わせまたは部分的組み合わせを含むが、それらに限定されない、コンピュータデバイスを備えてもよい。複数のユーザデバイス１０２はそれぞれ、ユーザデバイス１０２の１つまたは複数の処理ユニットと併せて動作することにより、ウェブアプリケーション１０６、レガシーアプリケーション１０７、および／またはプロキシ１０８の実行を可能にする機能性を提供し得る実行可能な命令でエンコードされたメモリを含んでもよい。ウェブアプリケーション１０６は、１つまたは複数のウェブベースのプログラミング言語に従って動作し、企業サーバ１２０によってホストされる１つまたは複数のサービス（例えば、ウェブベースのサービス）にアクセスするように構成され得る、ブラウザ等のアプリケーションであってもよい。ある実装では、ブラウザは、ユーザが、ウェブページ等のネットワーク化されたリソースまたはローカルのリソースと相互作用することを可能にするように構成されるソフトウェアであってもよい。いくつかの実施例では、ウェブアプリケーション１０６はさらに、レガシーサーバ１５０によって提供される１つまたは複数のサービスにアクセスするために使用されてもよい。レガシーアプリケーション１０７は、レガシーサーバ１５０によって提供される１つまたは複数のサービスとのインターフェースをなし得る、実行可能なプログラム等のアプリケーションであってもよい。プロキシ１０８は、レガシーアプリケーション１０７とレガシーサーバ１５０との間の中間体として作用するように構成されてもよい。プロキシ１０８は、レガシーアプリケーション１０７が、企業サーバ１２０と認証を行うことを可能にしてもよく、さらに、統合的レガシーコンテキスト管理を提供してもよい。しかしながら、説明されるように、プロキシ１０８は、全実施形態において、ユーザデバイス１０２上に位置する必要はない。ユーザデバイス１０２上に位置することに加え、またはユーザデバイス１０２上に位置する代わりに、プロキシ１０８は、企業サーバ１２０等の別のネットワーク化されたデバイス上で動作してもよい。
【００１５】
実施例は、単一のレガシーアプリケーション１０７およびレガシーサーバ１５０を参照して本明細書に説明されるが、プロキシ１０８は、コンピュータネットワーキング環境１００内で動作する、任意の数のレガシーアプリケーション１０７と任意の数のレガシーサーバ１５０との間の中間体として作用してもよい。さらに、ユーザデバイス１０２ａは、ウェブアプリケーション１０６と、レガシーアプリケーション１０７と、プロキシ１０８とを含むように示されるが、ユーザデバイス１０２はそれぞれ、任意の数のウェブアプリケーション１０６、レガシーアプリケーション１０７、および／またはプロキシ１０８を含んでもよいことを理解されたい。一例として、ユーザデバイス１０２は、３つのウェブアプリケーション１０６を含むが、プロキシ１０８を含まなくてもよい一方、別のユーザデバイス１０２は、２つのレガシーアプリケーション１０７と、プロキシ１０８とを含んでもよい。
【００１６】
ユーザデバイス１０２はそれぞれ、ネットワーク１１０を経由して、企業サーバ１２０およびレガシーサーバ１５０を含むがこれらに限定されない、任意の数のデバイスと通信するように構成されてもよい。ネットワーク１１０は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、セルラーネットワーク、および／またはインターネット等の１つまたは複数のネットワークを備えてもよい。ネットワーク１１０に、ネットワーク１１０から、およびネットワーク１１０内で提供される通信は、有線および／または無線であり得、さらに、当技術分野において現在公知もしくは将来的に公知となる、任意のネットワーキングデバイスによって提供されてもよい。ネットワーク１１０を経由して通信するデバイスは、ＴＣＰ／ＩＰおよびＵＤＰプロトコルを含む、任意の通信プロトコルを用いて通信してもよい。さらに、ユーザデバイス１０２は、ＨＴＴＰ、ＨＴＴＰＳ、ＳＳＬ、またはそれらから派生した任意のプロトコル等の公知のプロトコルを使用して、通信するように構成されてもよい。
【００１７】
企業サーバ１２０は、１つまたは複数の処理ユニット１２１と、コンピュータ読み取り可能な媒体１２３とを含んでもよい。本明細書では、用語「コンピュータ読み取り可能な媒体」は、いくつかの実施形態では、単一のコンピュータ読み取り可能な媒体を指すために使用され、他の実施形態では、処理ユニット１２１等の１つまたは複数の処理ユニットと通信する複数のコンピュータ読み取り可能な媒体を指すために使用される。コンピュータ読み取り可能な媒体１２３はまた、ストレージ１２８を含んでもよい。認証管理エンジン１２４のための実行可能な命令は、ユーザデバイス１０２の１人または複数のユーザの認証を管理するための命令を含んでもよく、そのさらなる実施例は、以下に提供される。認証管理エンジン１２４のための実行可能な命令は、同一のコンピュータ読み取り可能な媒体１２３上に示されるが、いくつかの実施形態では、一部または全ての命令のセットは、複数のコンピュータ読み取り可能な媒体上に提供されてもよく、同一媒体上に存在しなくてもよい。故に、コンピュータ読み取り可能な媒体１２３は、本明細書で使用される場合、１つまたは複数のコンピュータ読み取り可能な媒体１２３および／またはストレージ１２８を含む。コンピュータ読み取り可能な媒体１２３および／またはストレージ１２８は、外部もしくは内部に取り付けられたハードディスクドライブ、ソリッドステートストレージ（ＮＡＮＤフラッシュまたはＮＯＲフラッシュメディア等）、階層ストレージソリューション、ストレージエリアネットワーク、ネットワークアタッチドストレージ、および／または光ストレージを含むが、それらに限定されない、一過性または非一過性である、任意の形態のコンピュータ読み取り可能なストレージもしくはコンピュータ読み取り可能なメモリを含んでもよい。説明されるように、コンピュータ読み取り可能な媒体１２３上に記憶された命令は、１つまたは複数の処理ユニット１２１もしくは他の処理ユニット上で実行されてもよい。認証管理エンジン１２４のための実行可能な命令は、本明細書では、「認証管理エンジン」と称され得、この場合、認証管理エンジンは、処理ユニット１２１および／または他の処理ユニットのうちの１つまたは複数のものによって実行される、認証管理エンジン１２４のための実行可能な命令を指す。
【００１８】
ストレージ１２８は、認証管理エンジン１２４の実行の間、処理ユニット１２１のうちの１つまたは複数のものによって利用され得るデータを含んでもよい。一例として、ストレージ１２８は、ユーザ証明書（例えば、ユーザ名、パスワード）、認証キー、暗号化／復号化アルゴリズム、および／または認証ルール等の認証情報を含んでもよい。いくつかの実施例では、認証情報は、１つまたは複数の個別のエージェントとして、ユーザ毎に記憶されてもよい。エージェントは、コンピュータネットワーキング環境１００において動作する、またはコンピュータネットワーキング環境１００上に記憶されるエンティティであってもよい。例えば、エージェントは、ユーザデバイス１０２上のコンピュータ読み取り可能なメモリまたは企業サーバ１２８のストレージ内に記憶され、処理ユニット上で実行されるプログラムのような、ユーザの代わりに作用するプログラムであってもよい。エージェントは、企業サーバ１２０および任意の数のレガシーサーバ１５０のためのユーザの下層証明書を含む個別のデータセットであってもよい、または個別のデータセットを含んでもよい。各エージェントは、ＳＳＯ認証が本明細書に説明される実施例に従って提供され得るように、ユーザの証明書の各セットを相互に関連付けてもよい。ストレージ１２８はさらに、コンテキスト情報を含んでもよい。コンテキスト情報は、企業サーバ１２０および／またはレガシーサーバ１５０によって提供されるサービスの使用を記述する情報であってもよい。いくつかの事例では、コンテキスト情報は、サービスの個々の使用が任意の数のユーザデバイス１０２にわたって追跡および／または再開され得るように、ユーザ毎に記憶されてもよい。実施例として、コンテキスト情報は、ユーザが、第１のユーザデバイス１０２を使用して、レガシーサーバ１５０のサービスにアクセスし、続いて、後に、第２のユーザデバイス１０２を使用して、サービスの使用を再開することを可能にするために使用されてもよい。企業サーバ１２０のストレージ１２８または別のモジュールは、プロキシ１０８の実行を可能にする機能性を提供する実行可能な命令でエンコードされたメモリを含んでもよい。（例えば、１つまたは複数の処理ユニット１２１上での）プロキシ１０８の実行は、企業サーバ１２０が、少なくとも部分的に、プロキシサーバとして動作することを可能にしてもよい。しかしながら、プロキシ１０８は、企業サーバ１２０上にインストールされる必要も、企業サーバ１２０上で起動される必要もない。例えば、プロキシ１０８は、他の場所で記憶、インストール、または起動されてもよい。
【００１９】
プロキシ１０８を使用して、企業サーバ１２０をプロキシサーバとして動作させることは、企業サーバ１２０が、レガシーサーバ１５０と呼出側アプリケーション（例えば、レガシーアプリケーション１０７）との間の要求をインターセプトおよびルーティングする、汎用インターセプトデバイスとなることを可能にし得る。本配列は、ユーザデバイス１０２上の占有面積の縮小を可能にし得る。いくつかの実施形態では、企業サーバ１２０をプロキシサーバとして動作させることは、プロキシ１０８のより容易なアップグレードを可能にし、新しいアプリケーションおよびレガシーアプリケーションのために提供される統合サービスのレベルを拡張させ得る。プロキシ１０８を企業サーバ１２０上で動作させることはまた、企業サーバ１２０が、ライブバックアップに対するホットフェイルオーバ、および、レガシーアプリケーション自体が徐々に存在しなくなるにつれて要求を新しいサービスプロバイダに選択的に再ルーティングするための統合抽象化等の付加的機能を行うことを可能にし得る。プロキシサーバとして動作する企業サーバ１２０のいくつかの実施形態では、呼出側アプリケーション（例えば、レガシーアプリケーション１０７）は、新しいＴＣＰ／ＩＰアドレスにリダイレクトされ、集中化プロキシと通信するために、さらに何かを要求しなくてもよい。しかしながら、そのような構成でも、ユーザデバイス１０２は、依然として、デバイスまたはアプリケーション特有の理由から、必要に応じて、ローカルプロキシを有してもよい。
【００２０】
レガシーサーバ１５０によって提供される各サービスは、ユーザデバイス１０２によってアクセスされ得る、アプリケーション、データベース、および／または任意の他のサービスであってもよい。いくつかの実施形態では、例えば、１つまたは複数のレガシーサーバ１５０は、１つまたは複数の要求に応答して、データをデータベースからユーザデバイス１０２にストリーミング、伝送、または別様に提供するように構成されてもよい。レガシーサーバ１５０はそれぞれ、ネットワーク１１０を経由して、企業サーバ１２０および／または１つまたは複数のユーザデバイス１０２と通信してもよく、ＴＣＰ／ＩＰ、ＵＤＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＳＳＬ、それらから派生した任意のプロトコル、または、ＴＣＰ／ＩＰ、ＵＤＰ、ＨＴＴＰ、ＨＴＴＰＳ、ＳＳＬ、それらから派生した任意のプロトコルの任意の組み合わせもしくは部分的組み合わせを含む、当技術分野において公知の任意のプロトコルを使用して、通信してもよい。他の場合において、レガシーサーバ１５０は、当技術分野において現在公知または将来的に公知となる他の通信方法論を使用して、企業サーバ１２０と通信してもよい。
【００２１】
図３は、本発明のある実施形態による、認証管理エンジン３００の概略ブロック図である。認証管理エンジン３００は、図２の企業サーバ１２０の認証管理エンジン１２４を実装するために使用されてもよい。認証管理エンジン３００は、エージェント認証および証明書ブロック３０２と、認証統合ブロック３１０と、ユーザインターフェースブロック３２０とを含んでもよい。認証統合ブロック３１０は、１つまたは複数のディレクトリサービス統合ＡＰＩ３１２を含んでもよく、１つまたは複数のレガシー認証統合ＡＰＩ３１４を含んでもよい。ある実装では、ディレクトリサービスは、データを編成するためのデータベースまたは他の手段であってもよい。ディレクトリサービスの実施例は、ＭｉｃｒｏｓｏｆｔＴＭ  Ａｃｔｉｖｅ  ＤｉｒｅｃｔｏｒｙＴＭ、ＮｏｖｅｌＴＭ  Ｄｉｒｅｃｔｏｒｙ  Ｓｅｒｖｉｃｅｓ、Ｘ．５００プロトコルに従ってアクセス可能なディレクトリ、およびＬｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＬＤＡＰ）に従ってアクセス可能なディレクトリを含むが、これらに限定されない。ある実装では、ディレクトリサービス統合ＡＰＩ３１２は、ディレクトリサービスと相互作用する、またはディレクトリサービスとのインターフェースをなすように構成されたＡＰＩであってもよい。
【００２２】
エージェント認証および証明書ブロック３０２は、認証管理エンジン３００と通信するユーザデバイス１０２に認証サービスを提供するように構成されてもよい。概して、エージェント認証および証明書ブロック３０２は、説明される実施例に従って、ユーザデバイス１０２の認証ならびにユーザデバイス１０２によって提供される証明書の要求を管理してもよい。
【００２３】
一例として、さらに詳細に説明されるように、エージェント認証および証明書ブロック３０２は、ユーザデバイス１０２が企業サーバ１２０またはレガシーサーバ１５０にアクセスし得るように、ユーザデバイス１０２から、証明書の要求を受信してもよい。ユーザがまだ認証されていない場合、エージェント認証および証明書ブロック３０２は、要求を拒否する、および／または、ユーザデバイス１０２のユーザに、証明書が提供され得る前に認証が要求されることを示してもよい。
【００２４】
少なくとも一実施例では、証明書の要求が図１のウェブアプリケーション１０６等のウェブアプリケーションによって提供される場合、エージェント認証および証明書ブロック３０２は、ウェブアプリケーションをユーザ認証インターフェース３２０にダイレクトしてもよい。ユーザ認証インターフェース３２０は、証明書を要求側ユーザデバイス１０２から受信するように構成されるウェブベースのインターフェースであってもよい。一例として、ユーザ認証インターフェース３２０は、ユーザ名、パスワード、および／または認証キーのための１つまたは複数のフィールドを含んでもよい。ユーザ認証インターフェース３２０は、証明書をエージェント認証および証明書ブロック３０２に提供してもよい。別の実施例では、エージェント認証および証明書ブロック３０２は、レガシーアプリケーション１０７の代わりに提供される、ユーザデバイス１０２のプロキシ１０８から証明書を受信してもよい。
【００２５】
ユーザ認証インターフェース３２０および／またはプロキシ１０８から受信された証明書は、認証統合ブロック３１０内に含まれるＡＰＩへのアプリケーションプログラミングインターフェース（ＡＰＩ）呼出に基づいて、エージェント認証および証明書ブロック３０２によって検証されてもよい。エージェント認証および証明書ブロック３０２は、受信された証明書を適切なＡＰＩに提供してもよく、それに応答して、ＡＰＩは、ユーザが認証されるように、証明書が有効であるかどうかを決定してもよい。すなわち、受信された証明書が、企業サーバ１２０と関連付けられる場合、エージェント認証および証明書ブロック３０２は、ＡＰＩ呼出および証明書をディレクトリサービス統合ＡＰＩ３１２に提供してもよい。受信された証明書が、特定のレガシーサーバ１５０と関連付けられる場合、エージェント認証および証明書ブロック３０２は、ＡＰＩ呼出および証明書を対応するレガシー認証統合ＡＰＩ３１４に提供してもよい。
【００２６】
具体的には、ディレクトリサービス統合ＡＰＩ３１２は、企業サーバ１２０へのアクセスを要求するユーザを認証する役割を果たし得る。一例として、ディレクトリサービス統合ＡＰＩ３１２は、ディレクトリサービス認証機構とのインターフェースをなすことにより、ドメインレベルで企業サーバ１２０とのユーザの認証を行ってもよい。レガシー認証統合ＡＰＩ３１４はそれぞれ、個別のレガシー認証機構とのインターフェースをなすことにより、特定のレガシーサーバ１５０とのユーザの認証を行ってもよい。認証機構はそれぞれ、ＡＰＩ呼出において受信された証明書をストレージ１２８内に記憶されたユーザ認証データ（例えば、ユーザと関連付けられたエージェント）と相互参照することによって、ユーザを認証するように構成されてもよい。概して、相互参照は、エージェントまたはユーザを正当に識別可能な任意の機能（例えば、ルックアップ、参照、または相互参照）を含んでもよい。相互参照は、エージェントまたはユーザのための証明書のセットをロック解除するために使用されてもよい。例えば、ＡＰＩ呼出において受信された証明書が、パスワード証明書である場合、相互参照は、パスワード証明書を記憶された認証データと比較することと、合致するかどうかを示すこととを含んでもよい。相互参照は、記憶された値の直接比較であってもよいが、そうである必要はない。ある実装では、証明書自体を直接記憶、比較、または相互参照する代わりに、証明書のハッシュまたは他の表現が、記憶、比較、および／または相互参照されてもよい。
【００２７】
ＡＰＩ呼出が、ユーザが認証されたことのインジケーションを返す場合、エージェント認証および証明書ブロック３０２は、ユーザのエージェントと関連付けられたトークンを提供してもよい。トークンが有効のままである限り、ユーザは、その後、トークンを利用して、ユーザと関連付けられたエージェントとともに含まれる任意の証明書のセットを要求してもよい。ユーザは、次いで、受信された証明書を使用して、１つまたは複数のレガシーサーバ１５０と認証を行ってもよい。
【００２８】
図４は、本開示のある実施形態による、ウェブアプリケーションのシングルサインオン認証を実装するための方法４００のフローチャートである。方法４００は、図２の企業サーバ１２０を使用して実装されてもよく、特に、企業サーバ１２０の認証管理エンジンを使用して実装されてもよい。
【００２９】
ステップ４０５において、認証管理エンジンは、証明書の要求をユーザデバイス１０２のウェブアプリケーション１０６から受信してもよい。要求は、例えば、レガシーサーバ１５０とのウェブアプリケーション１０６の認証を行うための証明書を要求してもよい。要求に応答して、ステップ４１０において、認証管理エンジンは、ウェブアプリケーション１０６にユーザ認証のためのユーザインターフェースを提供してもよい。一例として、認証管理エンジンは、ユーザ証明書をユーザデバイス１０２から受信するように構成される１つまたは複数のフィールドを含む、ウェブベースのインターフェースにウェブアプリケーション１０６をダイレクト（またはリダイレクト）してもよい。説明されるように、このように受信されたユーザ証明書は、ユーザ名、パスワード、認証キー、アクセスコード、またはそれらの組み合わせを含んでもよい。いくつかの実施例では、ユーザインターフェースの態様および／またはユーザインターフェースによって受信された証明書のタイプは、ステップ４０５において要求を提供するために使用されるユーザデバイス１０２のタイプに基づいてもよい。一例として、デスクトップおよびラップトップコンピュータは、ユーザ名およびパスワードを提供するように要求されてもよい一方、モバイルデバイスは、加えて、または代替として、アクセスコードを提供するように要求されてもよい。いったん企業サーバ１２０が証明書を受信すると、企業サーバ１２０は、証明書が有効であるかどうかを決定してもよい。証明書が有効である場合、ユーザは、認証される。証明書が有効でない場合、企業サーバ１２０は、例えば、証明書が無効であることを示すウェブベースのインターフェースにウェブアプリケーション１０６をリダイレクトすることによって、証明書が無効であることを示してもよい。
【００３０】
いったんユーザが認証されると、ステップ４１５において、認証管理エンジンは、ユーザデバイスと関連付けられたトークン１０２を提供（例えば、生成）してもよい。トークンは、ユーザが個別のアクセス毎に証明書を手動で提供することを要求することなく、ユーザデバイス１０２が企業サーバ１２０および／または１つまたは複数の他のレガシーサーバ１５０にアクセスし得るように、ＳＳＯ認証を提供するために、ユーザデバイス１０２によって利用されてもよい。
【００３１】
一例として、いったんトークンがステップ４１５において生成されると、ウェブアプリケーション１０６は、認証管理エンジンから証明書を要求することによって、レガシーサーバ１５０によって提供されるサービスにアクセスしてもよい。認証管理エンジンは、要求側ユーザデバイス１０２、および、有効トークンがユーザデバイス１０２のユーザに対して存在することを認識し得る。有効トークンは、例えば、ユーザの最新の認証からまだ期限が切れていないトークンであってもよい。認証管理エンジンは、ユーザに対してアクセスされるべきサービスと関連付けられた証明書を読み出し、証明書をユーザデバイス１０２に提供してもよい。次いで、ユーザデバイス１０２は、アクセスのために、要求される証明書をレガシーサーバ１５０に提供してもよい。ユーザが、ユーザがアクセスすることを承認されていないサービスに対する証明書を要求する（例えば、ユーザがサービスに対する証明書のセットを有していない）場合、認証管理エンジンは、要求を拒否してもよい。このように、認証管理エンジンは、要求に応じて、証明書をユーザデバイス１０２に選択的に提供してもよい。概して、いったんユーザデバイス１０２が本明細書に説明されるように認証されると、任意の数のウェブアプリケーション１０６が、同一トークンを利用して、企業サーバ１２０および／またはレガシーサーバ１５０にアクセスしてもよい。
【００３２】
いくつかの実施例では、認証管理エンジンは、ステップ４１０において、ユーザと関連付けられた任意の有効証明書の受信に応答して、ユーザデバイス１０２を認証してもよい。すなわち、ユーザデバイス１０２は、ユーザのエージェント内に含まれる任意の証明書のセットを使用して、ＳＳＯ認証されてもよい。故に、ユーザは、任意の数のレガシー証明書のセットを使用して、企業サーバ１２０と認証を行ってもよい。他の実施例では、認証管理エンジンは、ユーザが企業サーバ１２０と具体的に関連付けられた証明書のセットを使用して認証することを要求してもよい。これは、例えば、ユーザがレガシーサーバ１５０によって提供される認証機構より厳格かつ／または信頼性のある認証機構を使用して認証することを確実にし得る。
【００３３】
図５は、本開示のある実施形態による、レガシーアプリケーションのシングルサインオン認証を実装するための方法５００のフローチャートである。方法５００は、図２の企業サーバ１２０を使用して実装されてもよく、特に、企業サーバ１２０の認証管理エンジンを使用して実装されてもよい。
【００３４】
ステップ５０５において、認証管理エンジンは、証明書をユーザデバイス１０２から受信してもよい。証明書は、例えば、レガシーアプリケーション１０７によって提供され、特定のレガシーサーバ１５０と関連付けられてもよい。前述のように、ユーザデバイス１０２のレガシーアプリケーション１０７は、レガシーサーバ１５０とのみ認証を行い、企業サーバ１２０とは認証を行わないように構成されてもよい。
【００３５】
図６を参照すると、いくつかの実施形態では（例えば、プロキシ１０８がユーザデバイス１０２上で実行される実施形態）、レガシーアプリケーション１０７からレガシーサーバ１５０に提供されるように意図される証明書は、ステップ６０５において、プロキシ１０８によってインターセプトされ、ステップ６１０において、企業サーバ１２０に提供（例えば、リダイレクト）されてもよい。他の実施形態では（例えば、プロキシ１０８が企業サーバ１２０上で実行される実施形態）、呼出側アプリケーション（例えば、レガシーアプリケーション１０７）は、プロキシ１０８を介して企業サーバ１２０に通信をすでにダイレクトしている場合があり、必ずしも、ステップ６１０を行う必要はない。
【００３６】
その場所にかかわらず、プロキシ１０８は、概して、１つまたは複数の呼出側アプリケーション（例えば、レガシーアプリケーション１０７）とレガシーサーバ１５０との間の中間体（例えば、「中間者」）として作用してもよい。プロキシ１０８は、レガシーアプリケーション１０７とそれぞれのレガシーサーバ１５０との間の一部または全ての通信を透過的に監視し、レガシーサーバ１５０に提供されることが意図される証明書の識別に応答して、プロキシ１０８は、代わりに、証明書を企業サーバ１２０の認証管理エンジンに提供してもよい。
【００３７】
一例示的実施形態では、プロキシ１０８は、呼出側アプリケーション（例えば、レガシーアプリケーション１０７）から通信を受信し、通信を読み取り、通信のコンテンツに基づいて、決定を行ってもよい。いくつかの事例では、通信は、実質的に不変のままレガシーサーバ１５０に単に転送されてもよい。他の場合において、レガシーサーバ１５０に送信される通信は、受信された通信のコンテンツに基づいて、新しいまたは修正される通信であってもよい。さらに他の事例では、通信は、レガシーサーバ１５０に送信されなくてもよい。代わりに、例えば、企業サーバ１２０は、レガシーサーバ１５０と同様に通信に応答してもよい、または、全く応答しなくてもよい。この受信−読取−決定モデルは、例えば、企業サーバ１２０が、レガシーサーバ１５０に利用可能ではない場合がある拡張された機能性を提供することを可能にするために使用されてもよい。
【００３８】
図５に戻って参照すると、認証管理エンジンは、証明書が有効であるかどうかを決定してもよく、証明書が有効である場合、ステップ５１０において、認証管理エンジンは、ユーザデバイス１０２と関連付けられたトークンを提供してもよい。説明されるように、トークンは、必要に応じて、任意の数のレガシーサーバ１５０との認証のための証明書を要求するために利用されてもよい。
【００３９】
いくつかの実施例では、認証管理エンジンによって提供されるトークンは、プロキシ１０８によって利用されてもよい。そうすることによって、プロキシ１０８は、他のレガシーサーバ１５０にアクセスするとき、ユーザが追加の証明書を手動で提供することを要求することなく、任意の数のレガシーアプリケーション１０７をレガシーサーバ１５０と認証してもよい。一例として、レガシーサーバ１５０へのアクセスを取得するためにレガシーアプリケーション１０７がレガシーサーバ１５０と認証を行わなければならないことの決定に応答して、プロキシ１０８は、適切な証明書を認証管理エンジンから要求してもよい。説明されるように、認証管理エンジンは、要求側ユーザデバイス１０２、および、有効トークンがユーザデバイス１０２のユーザに対して存在することを認識し、要求される証明書をプロキシ１０８に提供してもよい。プロキシ１０８は、次いで、レガシーアプリケーション１０７の代わりに、証明書をレガシーサーバ１５０に提供し、それによって、レガシーアプリケーション１０７を認証してもよい。プロキシ１０８は、任意の数のレガシーアプリケーション１０７に対してトークンを利用してもよい。いくつかの実施例では、レガシーアプリケーション１０７は、プロキシ１０８に「気付かない」かのように動作してもよい。すなわち、プロキシ１０８は、レガシーアプリケーション１０７が、レガシーアプリケーション１０７へのいずれの修正も、および／またはレガシーサーバ１５０の認証機構も伴わずに、レガシーサーバ１５０と認証され得るように、レガシーアプリケーション１０７をレガシーサーバ１５０と透過的に認証してもよい。
【００４０】
方法４００および５００は両方とも、トークンを用いてＳＳＯ認証をユーザデバイス１０２に提供するように本明細書に説明された。方法４００は、ウェブアプリケーション１０６のＳＳＯ認証を実装することを対象とし、方法５００は、レガシーアプリケーション１０７のＳＳＯ認証を実装することを対象とするが、いずれの事例において提供されるトークンも、ユーザデバイス１０２の任意のアプリケーションによって利用されてもよいことを理解されたい。例えば、ウェブアプリケーション１０６の認証（図４）に応答して、認証管理エンジンによって提供されるトークンは、その後に、レガシーアプリケーション１０７の認証のための証明書を要求するために、プロキシ１０８によって利用されてもよい。逆に、レガシーアプリケーション１０７の認証（図５）に応答して、認証管理エンジンによって提供されるトークンは、その後に、ウェブアプリケーション１０６の認証中に証明書を要求するために、ウェブアプリケーション１０６によって利用されてもよい。
【００４１】
図７は、本開示のある実施形態による、コンテキスト情報を管理するための方法７００のフローチャートである。方法７００は、図２の企業サーバ１２０を使用して実装されてもよく、特に、企業サーバ１２０の認証管理エンジンを使用して実装されてもよい。
【００４２】
ステップ７０５において、認証管理エンジンは、第１のユーザデバイス１０２のユーザと関連付けられたコンテキスト情報を受信してもよい。コンテキスト情報は、例えば、ユーザデバイス１０２のユーザが企業サーバ１２０またはレガシーサーバ１５０のサービスにアクセスした様式を示してもよい。実施例として、ウェブアプリケーション１０６は、レガシーサーバ１５０上のサービスにアクセスするために使用されてもよく、動作中にウェブアプリケーション１０６によってアクセスされたデータを示すコンテキスト情報を企業サーバ１２０に提供してもよい。別の実施例として、レガシーアプリケーション１０７は、レガシーサーバ１５０上のサービスにアクセスするために使用されてもよく、プロキシ１０８は、動作中にレガシーアプリケーション１０７によってアクセスされたデータを示すコンテキスト情報を企業サーバ１２０に提供する、またはコンテキスト情報を企業サーバ１２０において受信してもよい。したがって、プロキシ１０８は、レガシーアプリケーション１０８の代わりに、統合的レガシーコンテキスト管理を提供してもよい。いくつかの実施例では、コンテキスト情報は、企業サーバ１２０において周期的に受信されてもよく、かつ／またはサービスのアクセスが終了したときに提供されてもよい。ウェブアプリケーション１０６および／またはレガシーアプリケーション１０７によってアクセスされるデータは、例えば、医療提供者データベース内の特定の患者と関連付けられたデータであってもよく、かつ／または特定の医療手技または方針と関連付けられたデータであってもよい。企業サーバ１２０は、コンテキスト情報が、全ての証明書のセットを介して、ユーザと関連付けられ、ユーザに利用可能であるように、コンテキスト情報をユーザのエージェントと関連付けてもよい。
【００４３】
そのようなコンテキストシステムは、ユーザおよび企業アプリケーションの両方に特有である、企業特有のコンテキストを提供するように構成されてもよい。例えば、プロキシ１０８が企業サーバ１２０上で動作しているとき、企業サーバ１２０は、レガシーサーバ１５０の認証要件または他のデータをインターセプトまたはルーティングする集中化プロキシサービスを提供するように構成されてもよい。企業サーバ１２０は、その集中化プロキシサービスを使用することにより、同一ユーザまたは証明書のセットに対して、異なるデバイスにわたって一貫したコンテキストを提供してもよい。例えば、ユーザは、３つの異なるレガシーアプリケーションサーバ上の３つの異なるレガシーアプリケーションと通信してもよい。プロキシサービスが、企業サーバ１２０上で集中化されると、企業サーバ１２０は、認証を行い、異なるデバイスにわたって同一ユーザであることを検出可能である。いったんユーザが検出されると、企業サーバ１２０は、次いで、ユーザが通常と異なるデバイスからレガシーサーバ１５０にアクセスしている場合でも、正しいコンテキストを提供し得る。本構成は、企業サーバ１２０の集中化プロキシサービスを利用することにより、ユーザのデバイスの全てにわたってユーザを検出し、レガシーアプリケーション統合は、高度な機能性を提供する必要がある。
【００４４】
企業サーバ１２０はまた、ユーザおよびデバイスの両方に特有であるデバイス特有のコンテキストを提供するように構成されることが可能であってもよい。本構成は、企業サーバ１２０が、ユーザ要求の特定の特性に基づいて、特定のレガシーサーバ１５０へのアクセスをユーザに自動的に与える結果となり得る。例えば、企業サーバ１２０は、ユーザが、前の通信と同一の時間ベースの認証コンテキスト内で合理的に動作している（例えば、ユーザは、要求されるパスワードプロンプト間においてユーザデバイス１０２からログアウトしていない）ことを把握し、特定のレガシーサーバ１５０へのアクセスを自動的に提供してもよい。このタイプのコンテキストは、ユーザの証明書が、１つのアプリケーションにおいて特定の機能を行うために必要とされ、かつ、同一デバイス上で非関連機能を行うために非関連アプリケーションにおいても必要とされる状況において有用であり得る。
【００４５】
ステップ７１０において、企業サーバ１２０は、第１のユーザデバイス１０２のユーザと関連付けられたコンテキスト情報を提供してもよい。コンテキスト情報は、例えば、以前にアクセスされたサービスへの第１のユーザデバイス１０２または第２のユーザデバイス１０２のいずれかによるアクセスに応答して、提供されてもよい。いずれの場合も、コンテキスト情報は、ユーザが前のステップを繰り返す必要がないように、ユーザが少なくとも部分的に動作を再開するために使用されてもよい。例えば、ステップ７１０において、サービスに２回目にアクセスしたことに応じて、ユーザは、ステップ７０５においてアクセスされた患者と関連付けられた情報が提示されてもよい。
【００４６】
方法５００、６００、および７００は、特定のステップを含むように説明されたが、いくつかの事例では、追加のステップが、方法５００、６００、および７００に含まれてもよく、かつ／または方法５００、６００、および７００の１つまたは複数の説明されるステップは、修正または省略されてもよいことを理解されたい。例えば、図４を参照すると、いくつかの事例では、ステップ４０５は、ユーザデバイス１０２が、証明書が認証インターフェースにダイレクトされることを要求する必要がないため、省略されてもよい。ユーザデバイス１０２は、例えば、具体的には、証明書の要求に応答してリダイレクトされる代わりに、認証管理エンジンからインターフェース自体を要求してもよい。
【００４７】
本明細書では、ユーザデバイス１０２と、企業サーバ１２０と、レガシーサーバ１５０との間で交換される証明書およびコンテキスト情報に関して参照される。説明される実施例に従って行われるデータの交換は、同期キー暗号化、非同期キー暗号化、および／またはハッシュベースの暗号化を含むがこれらに限定されない、当技術分野において公知の任意の暗号化を使用して行われてもよいことを理解されたい。
【００４８】
先述の内容から、本発明の具体的実施形態が例証の目的で本明細書に説明されているが、本発明の精神および範囲から逸脱することなく、種々の修正が行われ得ることが理解されるであろう。したがって、本発明は、添付の特許請求の範囲による場合を除いて制限されない。
【図１】
2019220238.tif 000003
【図２】
2019220238.tif 000004
【図３】
2019220238.tif 000005
【図４】
2019220238.tif 000006
【図５】
2019220238.tif 000007
【図６】
2019220238.tif 000008
【図７】
2019220238.tif 000009