(57)【特許請求の範囲】
【請求項１】
認証サーバ装置が、クライアント装置から該クライアント装置を利用するユーザの正当性を認証することを要求する認証要求を取得した場合、該クライアント装置との間の暗号化通信プロトコルによる暗号化通信セッションの有効性と、前記認証要求に対応する電子証明書を認証したことを示す認証情報の有無または有効性とに応じて、前記暗号化通信プロトコル以外の通信プロトコルを用いて、前記認証サーバ装置と前記クライアント装置との間で通信することにより、該クライアント装置から前記電子証明書を取得し、
前記認証サーバ装置が、取得した前記電子証明書に基づいて前記クライアント装置の認証を行う
ことを特徴とする認証制御方法。
【請求項２】
前記電子証明書の取得において、
前記暗号化通信セッションが有効で、かつ前記認証情報が無いまたは無効である場合、前記暗号化通信プロトコル以外の通信プロトコルを用いて、前記認証サーバ装置と前記クライアント装置との間で通信することにより、該クライアント装置から前記電子証明書を取得し、
前記暗号化通信セッションが無効である場合、前記暗号化通信プロトコルを用いて、該クライアント装置との間で前記暗号化通信セッションを確立して有効にする
処理を実行させる請求項１に記載の認証制御方法。
【請求項３】
前記認証制御方法は、さらに、
前記クライアント装置にて動作するエージェントプログラムが、前記暗号化通信プロトコル以外の通信プロトコルを用いた前記認証サーバ装置からの通信において、前記証明書の提示要求を検知した場合、該クライアント装置に設定されたプログラムであって通信ネットワーク上で公開された情報を閲覧する閲覧プログラムと前記エージェントプログラムとの間で前記暗号化通信プロトコルを用いて通信することにより、該閲覧プログラムから前記電子証明書を取得し、
前記クライアント装置にて動作するエージェントプログラムが、前記暗号化通信プロトコル以外の前記通信プロトコルを用いて、前記認証サーバ装置に前記電子証明書を送信する
ことを特徴とする請求項１または２に記載の認証制御方法。
【請求項４】
クライアント装置と通信ネットワークを介して接続された認証サーバ装置に含まれるコンピュータに、
クライアント装置から該クライアント装置を利用するユーザの正当性を認証することを要求する認証要求を取得し、
前記認証要求を取得した場合、該クライアント装置との間の暗号化通信プロトコルによる暗号化通信セッションの有効性と、前記認証要求に対応する電子証明書を認証したことを示す認証情報の有無または有効性とに応じて、前記暗号化通信プロトコル以外の通信プロトコルを用いて、前記認証サーバ装置と前記クライアント装置との間で通信することにより、該クライアント装置から前記電子証明書を取得し、
取得した前記電子証明書に基づいて前記クライアント装置の認証を行う
処理を実行させる認証プログラム。
【請求項５】
前記電子証明書の取得において、
前記暗号化通信セッションが有効で、かつ前記認証情報が無いまたは無効である場合、前記暗号化通信プロトコル以外の通信プロトコルを用いて、前記認証サーバ装置と前記クライアント装置との間で通信することにより、該クライアント装置から前記電子証明書を取得し、
前記暗号化通信セッションが無効である場合、前記暗号化通信プロトコルを用いて、該クライアント装置との間で前記暗号化通信セッションを確立して有効にする
処理を実行させる請求項４に記載の認証プログラム。
【請求項６】
エージェントプログラムが動作するクライアント装置に含まれるコンピュータに、
暗号化通信プロトコル以外の通信プロトコルを用いた認証サーバ装置からの通信において、電子証明書の提示要求を検知し、
前記提示要求を検知した場合、該クライアント装置に設定されたプログラムであって通信ネットワーク上で公開された情報を閲覧する閲覧プログラムと前記エージェントプログラムとの間で前記暗号化通信プロトコルを用いて通信することにより、該閲覧プログラムから前記電子証明書を取得し、
前記暗号化通信プロトコル以外の前記通信プロトコルを用いて、前記認証サーバ装置に前記電子証明書を送信する
処理を実行させるエージェントプログラム。
【請求項７】
クライアント装置と通信ネットワークを介して接続された認証サーバ装置であって、
前記クライアント装置から該クライアント装置を利用するユーザの正当性を認証することを要求する認証要求を取得する認証要求取得部と、
前記認証要求を取得した場合、該クライアント装置との間の暗号化通信プロトコルによる暗号化通信セッションの有効性と、前記認証要求に対応する電子証明書を認証したことを示す認証情報の有無または有効性とに応じて、前記暗号化通信プロトコル以外の通信プロトコルを用いて、前記認証サーバ装置と前記クライアント装置との間で通信することにより、該クライアント装置から前記電子証明書を取得する電子証明書取得部と、
取得した前記電子証明書に基づいて前記クライアント装置の認証を行う認証部と
を備えることを特徴とする認証サーバ装置。
【請求項８】
前記電子証明書取得部は、
前記暗号化通信セッションが有効で、かつ前記認証情報が無いまたは無効である場合、前記暗号化通信プロトコル以外の通信プロトコルを用いて、前記認証サーバ装置と前記クライアント装置との間で通信することにより、該クライアント装置から前記電子証明書を取得し、
前記暗号化通信セッションが無効である場合、前記暗号化通信プロトコルを用いて、該クライアント装置との間で前記暗号化通信セッションを確立して有効にする
ことを特徴とする請求項７に記載の認証サーバ装置。
【請求項９】
認証サーバ装置と通信ネットワークを介して接続された、エージェントプログラムが動作するクライアント装置であって、
暗号化通信プロトコル以外の通信プロトコルを用いた認証サーバ装置からの通信において、電子証明書の提示要求を検知する検知部と、
前記提示要求を検知した場合、該クライアント装置に設定されたプログラムであって前記通信ネットワーク上で公開された情報を閲覧する閲覧プログラムと前記エージェントプログラムとの間で前記暗号化通信プロトコルを用いて通信することにより、該閲覧プログラムから前記電子証明書を取得する取得部と、
前記暗号化通信プロトコル以外の前記通信プロトコルを用いて、前記認証サーバ装置に前記電子証明書を送信する送信部と、
を備えることを特徴とするクライアント装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、認証制御方法、認証プログラム、エージェントプログラム、サーバ装置、及びクライアント装置に関する。
【背景技術】
【０００２】
Ｗｅｂブラウザがインストールされた情報処理端末（クライアント）は、Ｗｅｂブラウザを介して、ネットワーク上にあるＷｅｂサイトを閲覧することができる。閲覧の際にＷｅｂサーバがクライアントに認証を求めるように設定されている場合がある。Ｗｅｂサーバがクライアント（Ｗｅｂブラウザ）を認証する方法として、クライアント証明書を用いる方法がある。クライアント証明書とはクライアントを利用しているユーザの正当性を証明するための公開鍵を用いた電子証明書であり、クライアント−サーバ間の通信においてクライアント側が提示するものである。以下では、クライアント証明書を、単に「証明書」と称する。
【０００３】
クライアント−サーバ間の通信の一例として、ＳＳＬを利用してＨＴＴＰ通信を行うＷｅｂサーバに対してクライアントがアクセスした際、ＳＳＬのプロトコルに従い、以下のようにクライアントの証明書認証が行われる。ここで、ＳＳＬはSecure Sockets Layerの略称であり、ＨＴＴＰはHypertext Transfer Protocolの略称である。
【０００４】
（i）クライアント（Ｗｅｂブラウザ）が、Ｗｅｂサーバへアクセスする。
（ii）Ｗｅｂサーバが、クライアントに対して証明書の提示を要求する。
（iii）クライアントは、認証に使用する証明書をＷｅｂサーバへ送信する。
（iv）Ｗｅｂサーバは、受信した証明書を検証し、認証可否を判断する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１０８５２６号公報
【特許文献２】特開２００８−２６９２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クライアントから送信された証明書を検証してクライアントの認証に成功した場合、Ｗｅｂサーバは、そのクライアントとの間のＳＳＬのセションが有効な間は、そのクライアントからのリクエストに対しては、認証を行わない。すなわち、ＳＳＬのセションが有効な間は、認証情報の管理は、Ｗｅｂサーバで行われていない。
【０００７】
このようなクライアントの認証、及び認証情報の管理をＷｅｂサーバ（以降、“認証サーバ”と称する）で行うシステムの一例として、シングル・サインオンシステムで用いられる認証サーバがある。この場合、認証サーバは、ＳＳＬ通信の延長でクライアントの証明書を取得し、証明書の内容を検証して認証可否を判断する。
【０００８】
ところが、認証サーバでは、そのクライアントの証明書の認証に成功したという情報（認証情報）が、ＳＳＬ通信のセッション（トランスポート層）と、認証サーバ（アプリケーション層）で管理される認証情報とで、二重に管理される。
【０００９】
その結果、認証サーバで管理される認証情報が無効な場合、本来は、クライアントから再度クライアント証明書を取得する必要があるが、ＳＳＬでも認証情報が管理されているため、ＳＳＬから自動で提供されることになる。
【００１０】
また、認証サーバで管理される認証情報が有効であってもＳＳＬ通信のセッションが無効な場合、ＳＳＬ通信のセッションの再構築が自動で行われ、その再構築の中で、本来必要のない証明書の提示要求がクライアントに対して行われる。
【００１１】
本発明の一側面では、クライアント認証において、クライアント証明書を一元管理する技術を提供する。
【課題を解決するための手段】
【００１２】
本発明の一側面に係る認証制御方法において、認証サーバ装置が、クライアント装置から該クライアント装置を利用するユーザの正当性を認証することを要求する認証要求を取得する。この場合、認証サーバ装置が、クライアント装置との間の暗号化通信プロトコルによる暗号化通信セッションの有効性と、認証要求に対応する電子証明書を認証したことを示す認証情報の有無または有効性とに応じて、次の処理を行う。すなわち、認証サーバ装置が、暗号化通信プロトコル以外の通信プロトコルを用いて、認証サーバ装置とクライアント装置との間で通信することにより、クライアント装置から電子証明書を取得する。認証サーバ装置が、取得した前記電子証明書に基づいてクライアント装置の認証を行う。
【発明の効果】
【００１３】
本発明の一側面によれば、クライアント認証において、クライアント証明書を一元管理することができる。
【図面の簡単な説明】
【００１４】
【図１】初回認証時でのフローを示す。
【図２】ＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。
【図３】ＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が無効な状態でのフローを示す。
【図４】ＳＳＬセションが無効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。
【図５】本実施形態における認証制御システムの一例を示す。
【図６】本実施形態におけるシステム構成図を示す。
【図７】本実施形態におけるエージェント動作管理テーブルの一例を示す。
【図８】本実施形態における初回認証時でのフローを示す。
【図９】本実施形態におけるＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。
【図１０】本実施形態におけるＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が無効な状態でのフローを示す。
【図１１】本実施形態におけるＳＳＬセションが無効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。
【図１２】本実施形態におけるエージェントの動作フローを示す。
【図１３】本実施形態における認証サーバ（認証プログラム）の動作フローを示す。
【図１４】本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。
【発明を実施するための形態】
【００１５】
証明書を用いたクライアントの認証に成功した場合、Ｗｅｂサーバは、ＳＳＬのセションが有効な間のリクエストに対しては、認証を行わない。すなわち、認証情報の管理は、Ｗｅｂサーバ自身で行っていない。
【００１６】
このようなクライアントの認証、及び認証情報の管理をＷｅｂサーバ（以降、“認証サーバ”と称する）で行うシステムの一例として、シングル・サインオンシステムで用いられる認証サーバがある。このとき、ＳＳＬ通信の延長で、認証サーバはクライアントの証明書を取得し、証明書の内容を検証して認証可否を判断する。
【００１７】
ところが、クライアントが証明書認証に成功したという情報が、ＳＳＬ通信のセションと、認証サーバが管理している認証情報とを用いて、二重に管理されてしまう。これについて、図１〜図４を用いて説明する。
【００１８】
図１は、初回認証時でのフローを示す。初期状態では、Ｗｅｂブラウザ２が業務サーバＡ（３ａ）へアクセスすることに対して、認証サーバ４による認証が行われていないとする。なお、図１〜図４において、実線は、アプリケーション層の通信を示す。破線は、ＳＳＬ層の通信を示す。また、図１〜図４の説明において、ＳＳＬ層の通信については、「ＳＳＬ層の通信プロトコルを用いて、」という文言を用いて説明し、その文言がない通信は、アプリケーション層の通信を示すものとする。
【００１９】
クライアント１側では、Ｗｅｂブラウザ２は、業務サーバＡ（３ａ）へアクセス要求をする（Ｓ１）。ここでは、まだクライアント１は認証サーバ４による業務サーバＡ（３ａ）に対する認証がされていないので、このアクセス要求は、業務サーバＡ（３ａ）に対するクライアント１の認証情報を含まない。
【００２０】
認証サーバ４による認証が行われていないため、業務サーバＡ（３ａ）は、認証サーバ４へ認証要求を送信するために、Ｗｅｂブラウザ２にアクセス先を認証サーバ４へ変更するようにリダイレクト要求する（Ｓ２）。Ｗｅｂブラウザ２は、リダイレクト要求に応じて、ＳＳＬ層の通信プロトコルを用いて、認証サーバ４へ認証要求する（Ｓ３）。
【００２１】
認証サーバ４は、その認証要求に応じて、ＳＳＬ層の通信プロトコルを用いて、電子証明書（以下、「証明書」と証する）の提示を要求する（Ｓ４）。クライアント１側では、ユーザが１以上の証明書からいずれかの証明書を選択する。すると、Ｗｅｂブラウザ２は、ＳＳＬ層の通信プロトコルを用いて、その選択された証明書を認証サーバ４に送信する（Ｓ５）。
【００２２】
認証サーバ４は、ＳＳＬ層の通信プロトコルを用いて、認証サーバ４とＷｅｂブラウザ２との間のＳＳＬセションを確立する（Ｓ６）。このとき、認証サーバ４は、その証明書を受信すると、ＳＳＬセションが有効な間、その証明書の情報を保持する。
【００２３】
Ｗｅｂブラウザ２は、認証サーバ４へ再び認証要求する（Ｓ７）。認証サーバ４は、Ｓ５の際（Ｓ５）で取得した証明書の内容を検証し、認証結果を示す認証情報を認証情報ＤＢ５に登録する（Ｓ８）。
【００２４】
認証に成功したため、認証サーバ４は、業務サーバＡ（３ａ）へ認証情報を送信するために、Ｗｅｂブラウザ２にアクセス先を業務サーバＡ（３ａ）へ変更するようにリダイレクト要求する（Ｓ９）。
【００２５】
Ｗｅｂブラウザ２は、リダイレクト要求に応じて、業務サーバＡ（３ａ）へアクセス要求する（Ｓ１０）。このときのアクセス要求には、業務サーバＡ（３ａ）に対するクライアント１の認証情報も含まれる。
【００２６】
業務サーバＡ（３ａ）は、受信したアクセス要求に業務サーバＡ（３ａ）に対する認証情報が含まれているため、認証サーバ４による認証がされていると判断する。すると、業務サーバＡ（３ａ）は、Ｗｅｂブラウザ２上に表示させる、アクセス要求に対応するコンテンツ情報を送信する（Ｓ１１）。すると、Ｗｅｂブラウザ２上にその送信されたコンテンツが表示される。
【００２７】
図２は、ＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。図２では、既に、Ｗｅｂブラウザ２と認証サーバ４との間のＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が有効な状態であるとする。
【００２８】
Ｗｅｂブラウザ２は、業務サーバＢ（３ｂ）へアクセス要求をする（Ｓ２１）。ここでは、まだクライアント１は認証サーバ４による業務サーバＢ（３ｂ）に対する認証がされていないので、このアクセス要求は、業務サーバＢ（３ｂ）に対する認証情報を含まないとする。
【００２９】
すると、業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対する認証情報が含まれていないため、認証サーバ４による認証がされていないと判断する。そこで、業務サーバＢ（３ｂ）は、認証サーバ４へ認証要求を送信するために、Ｗｅｂブラウザ２にアクセス先を認証サーバへ変更するようにリダイレクト要求する（Ｓ２２）。
【００３０】
Ｗｅｂブラウザ２は、リダイレクト要求に応じて、認証サーバ４へ認証要求する（Ｓ２３）。このとき、Ｗｅｂブラウザ２と認証サーバ４との間のＳＳＬセションが有効なため、ＳＳＬ通信のために必要なやり取り、すなわち、サーバ証明書に基づくＳＳＬサーバ認証のための処理は発生しない。
【００３１】
認証サーバ４は、既に保持している認証情報の有効性を確認し、有効であれば、認証結果を示す認証情報を認証情報ＤＢ５へ登録する（Ｓ２４）。この例では、クライアント１は認証済みのため、認証サーバ４は、業務サーバＢ（３ｂ）へ認証情報を送信するために、Ｗｅｂブラウザ２にアクセス先を業務サーバＢ（３ｂ）へ変更するようにリダイレクト要求する（Ｓ２５）。
【００３２】
Ｗｅｂブラウザ２は、リダイレクト要求に応じて、業務サーバＢ（３ｂ）へ認証要求する（Ｓ２６）。なお、このときのアクセス要求には、業務サーバＢ（３ｂ）に対するクライアント１の認証情報も含まれる。
【００３３】
業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対する認証情報が含まれているため、認証サーバ４による認証がされていると判断する。すると、業務サーバＢ（３ｂ）は、Ｗｅｂブラウザ２上に表示させる、アクセス要求に対応するコンテンツ情報を送信する（Ｓ２７）。すると、Ｗｅｂブラウザ２上にその送信されたコンテンツが表示される。
【００３４】
図３は、ＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が無効な状態でのフローを示す。図３では、既に、Ｗｅｂブラウザ２と認証サーバ４との間のＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が無効な状態であるとする。
【００３５】
Ｗｅｂブラウザ２は、業務サーバＢ（３ｂ）へアクセス要求をする（Ｓ３１）。ここでは、まだクライアント１は認証サーバ４による業務サーバＢ（３ｂ）に対する認証がされていないので、このアクセス要求は、業務サーバＢ（３ｂ）に対する認証情報を含まないとする。
【００３６】
すると、業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対するクライアント１の認証情報が含まれていないため、認証サーバ４による認証がされていないと判断する。そこで、業務サーバＢ（３ｂ）は、認証サーバ４へ認証要求を送信するために、Ｗｅｂブラウザ２にアクセス先を認証サーバへ変更するようにリダイレクト要求する（Ｓ３２）。
【００３７】
Ｗｅｂブラウザ２は、リダイレクト要求に応じて、認証サーバ４へ認証要求する（Ｓ３３）。このとき、Ｗｅｂブラウザ２と認証サーバ４との間のＳＳＬセションが有効なため、ＳＳＬ通信のために必要なやり取り、すなわち、サーバ証明書に基づくＳＳＬサーバ認証のための処理は発生しない。
【００３８】
認証サーバ４は、既に保持している認証情報の有効性を確認する（Ｓ３４）。アプリケーション層において既に保持している認証情報は無効であるが、セッション層ではＳＳＬセションの確立時から証明書を保持している。認証サーバ４は、セッション層で保持している保持している証明書の内容を検証し、認証結果を示す認証情報を認証情報ＤＢ５に再登録する（Ｓ３５）。
【００３９】
認証サーバ４は、認証に成功したため、業務サーバＢ（３ｂ）へ認証情報を送信するために、Ｗｅｂブラウザ２にアクセス先を業務サーバＢ（３ｂ）へ変更するようにリダイレクト要求する（Ｓ３６）。
【００４０】
Ｗｅｂブラウザ２は、リダイレクト要求に応じて、業務サーバＢ（３ｂ）へアクセス要求する（Ｓ３７）。このときのアクセス要求には、業務サーバＢ（３ｂ）に対するクライアント１の認証情報も含まれる。
【００４１】
業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対する認証情報が含まれているため、認証サーバ４による認証がされていると判断する。すると、業務サーバＢ（３ｂ）は、Ｗｅｂブラウザ２上に表示させる、アクセス要求に対応するコンテンツ情報を送信する（Ｓ３８）。すると、Ｗｅｂブラウザ２上にその送信されたコンテンツが表示される。
【００４２】
図３において、ＳＳＬセションの作成時に証明書が要求されるため、認証サーバ４は、Ｓ３５のタイミングでは証明書を要求できない。したがって、認証サーバ４で管理している認証情報に応じた、証明書要求の制御ができない。
【００４３】
図４は、ＳＳＬセションが無効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。図４では、既に、Ｗｅｂブラウザ２と認証サーバ４との間のＳＳＬセションが無効で、かつ認証サーバが管理している認証情報が有効な状態であるとする。
【００４４】
Ｗｅｂブラウザ２は、業務サーバＢ（３ｂ）へアクセス要求をする（Ｓ４１）。ここでは、まだクライアント１は認証サーバ４による業務サーバＢ（３ｂ）に対する認証がされていないので、このアクセス要求は、業務サーバＢ（３ｂ）に対するクライアント１の認証情報を含まないとする。
【００４５】
すると、業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対するクライアント１の認証情報が含まれていないため、認証サーバ４による認証がされていないと判断する。そこで、業務サーバＢ（３ｂ）は、認証サーバ４へ認証要求を送信するために、Ｗｅｂブラウザ２にアクセス先を認証サーバへ変更するようにリダイレクト要求する（Ｓ４２）。
【００４６】
Ｗｅｂブラウザ２は、リダイレクト要求に応じて、ＳＳＬ層の通信プロトコルを用いて、認証サーバ４へ認証要求する（Ｓ４３）。認証サーバ４は、ＳＳＬ層の通信プロトコルを用いて、その認証要求に応じて、証明書の提示を要求する（Ｓ４４）。クライアント１側では、ユーザが１以上の証明書からいずれかの証明書を選択する。すると、Ｗｅｂブラウザ２は、ＳＳＬ層の通信プロトコルを用いて、その選択された証明書を認証サーバ４に送信する（Ｓ４５）。
【００４７】
認証サーバ４は、ＳＳＬ層の通信プロトコルを用いて、認証サーバ４とＷｅｂブラウザ２との間のＳＳＬセションを確立する（Ｓ４６）。このとき、認証サーバ４は、その証明書を受信すると、ＳＳＬセションが有効な間、その証明書の情報を保持する。
【００４８】
Ｗｅｂブラウザ２は、認証サーバ４へ再び認証要求する（Ｓ４７）。認証サーバ４は、認証情報の有効性を確認し、有効であれば、認証結果を示す認証情報を認証情報ＤＢ５に登録する（Ｓ４８）。
【００４９】
認証に成功したため、認証サーバ４は、業務サーバＢ（３ｂ）へ認証情報を送信するために、Ｗｅｂブラウザ２にアクセス先を業務サーバＢ（３ｂ）へ変更するようにリダイレクト要求する（Ｓ４９）。
【００５０】
Ｗｅｂブラウザ２は、リダイレクト要求に応じて、業務サーバＢ（３ｂ）へアクセス要求する（Ｓ５０）。なお、このときのアクセス要求には、業務サーバＢ（３ｂ）に対するクライアント１の認証情報も含まれる。
【００５１】
業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対するクライアント１の認証情報が含まれているため、認証サーバ４による認証がされていると判断する。すると、業務サーバＢ（３ｂ）は、Ｗｅｂブラウザ２上に表示させる、アクセス要求に対応するコンテンツ情報を送信する（Ｓ５１）。すると、Ｗｅｂブラウザ２上にその送信されたコンテンツが表示される。
【００５２】
図４において、ＳＳＬセションが無効なため、ＳＳＬセションの作成に必要な処理（Ｓ４３〜Ｓ４６）が発生する。ところが、認証情報は有効なため、Ｓ４４の証明書の要求は本来不要である。また、Ｓ４５にて証明書を再取得しても、その再取得した証明書は、Ｓ４８の認証にて使用されない。したがって、認証サーバ４で管理している認証情報に応じた、証明書要求の制御ができない。
【００５３】
上述したように、以下のような状態になった場合、問題が発生する。
【００５４】
（１）ＳＳＬのセションは有効、かつ認証サーバが管理している認証情報は無効な場合（図３）、次の問題が生じる。すなわち、ＳＳＬのセションが有効なため、初回認証時に認証サーバ４に送信されてＳＳＬセッション層で保持している証明書の情報が自動的に認証サーバ４のアプリケーション層へ通知される。アプリケーション層において、認証サーバ４は、クライアント１に対して認証を行いたいが、証明書がＳＳＬセッション層から通知されるため、認証に成功してしまう。
【００５５】
（２）ＳＳＬセションは無効、かつ認証サーバ４が管理している認証情報は有効な場合（図４）、次の問題が生じる。すなわち、ＳＳＬのセションが無効なため、認証サーバ４からクライアント１に対して証明書の提示が要求される。しかしながら、認証サーバ４の保持する認証情報は有効なため、本来、証明書の提示の要求は不要である。
【００５６】
これらの問題に対して、ＳＳＬセションと認証サーバの認証情報を合わせる案が考えられるが、コネクションの上限があるため、現実的に実現することはできない。
【００５７】
このように、クライアントが証明書認証に成功したという証明書情報を、ＳＳＬセッション層と認証サーバ（アプリケーション層）とで二重に管理を行っている。
【００５８】
そこで、証明書情報の一元管理が考えられるが、以下の理由により実現されていない。
【００５９】
（ａ）ＳＳＬ層で一元管理できない理由
シングルサインオン（ＳＳＯ）では、認証サーバで認証した情報を業務サーバ（他サーバ）へ通知する必要がある。しかしながら、ＳＳＬ通信ではクライアント−サーバ間でお互いを認証することはできるが、認証に成功した情報を他サーバへ通知する仕組みが無い。すなわち、ＳＳＬ通信では、クライアントがアクセスしたサーバとの間の認証に限られる。一方、認証情報を通知する仕組みは、ＳＳＬより上位層（例：ＨＴＴＰ）で行う必要がある。
【００６０】
（ｂ）ＨＴＴＰ層で一元管理できない理由
・ＳＳＯにおける、よりセキュアな認証として証明書による認証を行う。証明書の通知については、ＳＳＬで標準化されており、Ｗｅｂブラウザ（クライアント）もこの仕様に従っている。したがって、Ｗｅｂブラウザをクライアントとする場合、他の方法（プロトコル）では証明書を取得することができない。よって、証明書はＳＳＬで通知する必要がある。
【００６１】
そこで、本実施形態では、クライアントにエージェントを組み込み、エージェント経由で認証サーバにアクセスすることで、エージェント−認証サーバ間で証明書の制御を行う。これにより、ＳＳＬ層では証明書の管理を行わず、ＨＴＴＰ層での証明書の一元管理を実現する。
【００６２】
また、エージェントを経由することで以下の処理を実現できるようになり、ＨＴＴＰ層で一元管理できなかった課題を解決できる。すなわち、エージェント−認証サーバ間は独自のプロトコルで通信をやり取りできる（ＳＳＬ以外のプロトコルで証明書のやり取りが可能）。また、Ｗｅｂブラウザ-エージェント間はＳＳＬによる通信を行うことで、Ｗｅｂブラウザ側に影響を与えず、認証サーバ側の要求に従った証明書の取得が可能になる。
【００６３】
図５は、本実施形態における認証制御システムの一例を示す。認証制御システム１０は、クライアント装置１１、認証サーバ装置１５を含む。
【００６４】
クライアント装置１１と通信ネットワーク（以下、「ネットワーク」と称する）１９を介して接続された認証サーバ装置１５は、認証要求取得部１６、電子証明書取得部１７と、認証部１８を含む。
【００６５】
認証要求取得部１６は、クライアント装置１１からクライアント装置１１を利用するユーザの正当性を認証することを要求する認証要求を取得する。認証要求取得部１６の一例としては、後述する認証プログラム３４によるＳ１６１の処理が挙げられる。
【００６６】
電子証明書取得部７は、認証要求を取得した場合、クライアント装置１１との間の暗号化通信プロトコルによる暗号化通信セッションの有効性と、認証要求に対応する電子証明書を認証したことを示す認証情報の有無または有効性とに応じて、次の処理を行う。すなわち、電子証明書取得部１７は、暗号化通信プロトコル以外の通信プロトコルを用いて、認証サーバ装置５とクライアント装置１１との間で通信することにより、クライアント装置１１から電子証明書を取得する。電子証明書取得部１７の一例としては、後述する認証プログラム３４によるＳ１６２〜Ｓ１６６の処理が挙げられる。
【００６７】
認証部１８は、取得した電子証明書に基づいてクライアント装置１１の認証を行う。認証部１８の一例としては、後述する認証プログラム３４によるＳ１６７の処理が挙げられる。
【００６８】
このように構成することにより、クライアント認証において、クライアント証明書を一元管理することができる。
【００６９】
また、電子証明書取得部１７は、暗号化通信セッションが有効で、かつ認証情報が無いまたは無効である場合、暗号化通信プロトコル以外の通信プロトコルを用いて、認証サーバ装置１５とクライアント装置１１との間で通信する。これにより、電子証明書取得部７は、クライアント装置１１から電子証明書を取得する。また、電子証明書取得部１７は、暗号化通信セッションが無効である場合、暗号化通信プロトコルを用いて、クライアント装置１１との間で暗号化通信セッションを確立して有効にする。
【００７０】
このように構成することにより、暗号化通信セッションの有効性に応じて発生する認証情報の二重管理による弊害を解消することができる。
【００７１】
認証サーバ装置１５と通信ネットワーク１９を介して接続された、エージェントプログラムが動作するクライアント装置１１は、検知部１２、取得部１３、送信部１４を含む。
【００７２】
検知部１２は、暗号化通信プロトコル以外の通信プロトコルを用いた認証サーバ装置１５からの通信において、電子証明書の提示要求を検知する。検知部１２の一例として、後述するエージェント２４によるＳ１５２の処理が挙げられる。
【００７３】
取得部１３は、提示要求を検知した場合、クライアント装置１１に設定されたプログラムであって通信ネットワーク上で公開された情報を閲覧する閲覧プログラムとエージェントプログラムとの間で暗号化通信プロトコルを用いて通信する。これにより、取得部１３は、閲覧プログラムから電子証明書を取得する。取得部３の一例として、後述するエージェント２４によるＳ１５３〜Ｓ１５４の処理が挙げられる。
【００７４】
送信部１４は、暗号化通信プロトコル以外の通信プロトコルを用いて、認証サーバ装置５に電子証明書を送信する。送信部１４の一例として、後述するエージェント２４によるＳ１５５の処理が挙げられる。
【００７５】
このように構成することにより、Ｗｅｂブラウザについては改修を行うことなく、クライアント装置（エージェント）−認証サーバ間で、ＳＳＬ通信を行わずに、電子証明書の授受を行うことができる。
【００７６】
図６は、本実施形態におけるシステム構成図を示す。クライアント２１、認証サーバ３１、業務サーバ３がネットワーク４１を介して接続されている。ここで業務サーバ３は、業務サーバＡ（３ａ）、業務サーバＢ（３ｂ）等の総称である。ネットワーク４１は、インターネット、ローカルエリアネットワーク（ＬＡＮ）等の通信網である。
【００７７】
クライアント２１は、中央演算装置（ＣＰＵ）、メモリ、ハードディスクドライブ等の記憶装置、通信インターフェース（ＮＩＣ）等のハードウェア２２を含む。クライアント２１の記憶装置には、オペレーティングシステム（ＯＳ）２３と、アプリケーション等がインストールされている。アプリケーションは、エージェントプログラム（以下、「エージェント」と称する）２４、Ｗｅｂブラウザ２５等を含む。
【００７８】
ＯＳ２３は、ＮＩＣを介してネットワーク４１より通信情報を取得する。通信情報がＷｅｂブラウザ２５宛ての場合、ＯＳ２３は、エージェント２４を介して、Ｗｅｂブラウザにその通信情報を送信する。ＯＳ２３は、エージェント２４を介してＷｅｂブラウザ２４から取得した外部サーバ宛の通信情報を、ＮＩＣを介してネットワーク４１に送信する。
【００７９】
Ｗｅｂブラウザ２５は、エージェント２４を経由して、外部のサーバ（業務サーバ３、認証サーバ３１）との通信を行う。
【００８０】
エージェント２４は、Ｗｅｂブラウザ２５と外部サーバとの間の通信を監視し、通信情報の所定の項目に所定のキーワードを含む場合、そのキーワードに対応する動作を、Ｗｅｂブラウザ２５または外部サーバに対して行う。エージェント２４は、要求または応答に含まれる動作要求に応じた動作をするためのエージェント動作管理テーブル２４ａを保持する。
【００８１】
クライアント２１のＣＰＵは、記憶装置からＯＳ２３を読み出して実行させつつ、記憶装置からアプリケージョン（本実施形態では、エージェント２４、Ｗｅｂブラウザ２５）を読み出してＯＳ２３上で実行させる。
【００８２】
認証サーバ３１は、ＣＰＵ、メモリ、ハードディスクドライブ等の記憶装置、ＮＩＣ等のハードウェア３２を含む。認証サーバ３１の記憶装置には、オペレーティングシステム（ＯＳ）３３と、アプリケーション等がインストールされている。アプリケーションは、認証プログラム３４等を含む。
【００８３】
また、認証サーバ３１の記憶装置には、不図示の認証情報ＤＢ３５が格納されている。認証情報ＤＢ３５は、クライアントから送信されたクライアント証明書の検証の結果、クライアントの認証に成功したことを示す認証情報と、その認証情報が有効か否かを示すフラグ情報を含む。フラグ情報には、所定の条件（例えば、認証情報ＤＢ３５への認証情報の登録から所定期間内）において認証情報が「有効」であることを示す情報が設定され、その条件を満たさなくなると認証情報が「無効」であることを示す情報が設定される。
【００８４】
ＯＳ３３は、ＮＩＣを介してネットワーク４１より通信情報を取得する。通信情報が認証プログラム３４宛ての場合、ＯＳ３３は、認証プログラム３４にその通信情報を送信する。ＯＳ２３は、認証プログラム３４から取得したクライアント２１宛の通信情報をＮＩＣを介してネットワーク４１に送信する。
【００８５】
認証サーバ３１のＣＰＵは、記憶装置からＯＳ３３を読み出して実行させつつ、記憶装置からアプリケージョン（本実施形態では、認証プログラム３４）を読み出してＯＳ３３上で実行させる。
【００８６】
図７は、本実施形態におけるエージェント動作管理テーブルの一例を示す。エージェント２４は、エージェント動作管理テーブル２４ａの登録内容に基づいて、要求または応答等の通信情報に含まれる動作要求に応じた動作を行う。なお、エージェント動作管理テーブル２４ａには、証明書認証以外の動作も定義することができる。
【００８７】
エージェント動作管理テーブル２４ａは、「通信情報に含まれる動作要求（キーワード）」２４ａ−１、「エージェントの動作」２４ａ−２のデータ項目を含む。「エージェントの動作」２４ａ−２は、ブラウザ側に対するエージェント２４の動作内容を示す「ブラウザへ」２４ａ−２１と、サーバ側に対するエージェント２４の動作内容を示す「サーバへ」２４ａ−２２を含む。
【００８８】
例えば、通信情報に含まれる動作要求（キーワード）が「CertAuth」であるとする。この場合、エージェント２４は、「CertAuth」を検索キーとして、エージェント動作管理テーブル２４ａの上位から、「通信情報に含まれる動作要求（キーワード）」２４ａ−１の登録内容がキーと一致するレコードを検索する。検索キーと一致するレコードが存在する場合、エージェント２４は、エージェント動作管理テーブル２４ａの登録内容に基づいて、Ｗｅｂブラウザ２５に対して証明書を要求し、認証サーバ３１に対して証明書を通知する。
【００８９】
検索キーと一致するレコードが存在しない場合、エージェント２４は、エージェント動作管理テーブル２４ａの登録内容に基づいて、Ｗｅｂブラウザ２５及び認証サーバ３１のいずれに対しても何もしない。
【００９０】
図８は、本実施形態における初回認証時でのフローを示す。ここでは、Ｗｅｂブラウザ２５が業務サーバＡ（３ａ）へアクセスすることに対して、認証サーバ３１による認証が行われていないとする。なお、図８〜図１１において、実線は、アプリケーション層の通信を示す。破線は、ＳＳＬ層の通信を示す。また、図８〜図１１の説明において、ＳＳＬ層の通信については、「ＳＳＬ層の通信プロトコルを用いて、」という文言を用いて説明し、その文言がない通信は、アプリケーション層の通信を示すものとする。
【００９１】
クライアント２１側では、Ｗｅｂブラウザ２５は、エージェント２４を介して、業務サーバＡ（３ａ）に対してアクセス要求をする（Ｓ６１、Ｓ６２）。ここでは、まだクライアント２１は認証サーバ３１による業務サーバＡ（３ａ）に対する認証がされていないので、このアクセス要求は、業務サーバＡ（３ａ）に対するクライアント２１の認証情報を含まない。
【００９２】
認証サーバ３１による認証が行われていないため、業務サーバＡ（３ａ）は、認証サーバ３１へ認証要求を送信するために、Ｗｅｂブラウザ２５にアクセス先を認証サーバ３１へ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ６３、Ｓ６４）。Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、ＳＳＬ層の通信プロトコルを用いて、エージェント２４を介して認証サーバ３１へ認証要求する（Ｓ６５、Ｓ６６）。
【００９３】
認証サーバ３１は、ＳＳＬ層の通信プロトコルを用いて、エージェント２４を介して、Ｗｅｂブラウザ２５とＳＳＬセッション確立に必要な通信のやり取りを行う（Ｓ６７、Ｓ６８）。ここで、エージェント２４とＷｅｂブラウザ２５との間のＳＳＬセッション確立に必要な通信のやり取りとは、サーバの正当性を証明するサーバ証明書を用いたＳＳＬサーバ認証のための手順を示す。これにより、ＳＳＬセッション確立が確立し、ＳＳＬセッションが有効となる。このとき、図１（Ｓ４，Ｓ５）と異なり、図８では、認証サーバ３１によるクライアント証明書の要求及びクライアントからのクライアント証明書の送信は行わない。
【００９４】
Ｗｅｂブラウザ２５は、エージェント２４を介して、認証サーバ３１へ再び認証要求する（Ｓ６９、Ｓ７０）。
【００９５】
なお、Ｓ６１〜Ｓ６９に示すように、認証サーバ３１からの要求がない場合、エージェント２４は特に何もせず、そのまま要求または応答を転送する。
【００９６】
認証サーバ３１は、クライアント２１の証明書を保持していないので、Ｗｅｂブラウザ２５に対して、証明書の提示を要求する（Ｓ７１）。
【００９７】
エージェント２４は、認証サーバ３１からＷｅｂブラウザ２５への要求を検知すると、図７で説明したように、エージェント動作管理テーブル２４ａを用いて、その要求の内容を解析する。
【００９８】
解析の結果、要求の内容が証明書の要求である場合、エージェント２４は、Ｗｅｂブラウザ２５に対して、ＳＳＬ層の通信プロトコルを用いて、証明書の選択画面を表示するよう指示（証明書提示要求）する（Ｓ７２）。
【００９９】
クライアント２１側では、ユーザが１以上の証明書からいずれかの証明書を選択する。すると、Ｗｅｂブラウザ２５は、ＳＳＬ層の通信プロトコルを用いて、その選択された証明書を認証サーバ３１に向けて送信する（Ｓ７３）。
【０１００】
エージェント２４は、Ｗｅｂブラウザ２５から認証サーバ３１に向けて送信された証明書を受信すると、その証明書を応答情報に付加する。エージェント２４は、その証明書を付加した応答情報を認証サーバ３１へ送信する（Ｓ７４）。
【０１０１】
認証サーバ３１は、その証明書を付加した応答情報を受信すると、その証明書の内容を検証する。認証サーバ３１は、検証の結果、認証に成功したとする。認証サーバ３１は、認証が成功である旨の認証結果を示す認証情報とフラグ情報（認証情報は有効）を認証情報ＤＢ３５に登録する（Ｓ７５）。
【０１０２】
認証に成功したため、認証サーバ３１は、業務サーバＡ（３ａ）へ認証情報を送信するために、Ｗｅｂブラウザ２５にアクセス先を業務サーバＡ（３ａ）へ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ７６、Ｓ７７）。
【０１０３】
Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、エージェント２４を介して、業務サーバＡ（３ａ）へアクセス要求する（Ｓ７８，Ｓ７９）。このときのアクセス要求には、業務サーバＡ（３ａ）に対するクライアント２１の認証情報も含まれる。
【０１０４】
業務サーバＡ（３ａ）は、受信したアクセス要求に業務サーバＡ（３ａ）に対する認証情報が含まれているため、認証サーバ３１による認証がされていると判断する。すると、業務サーバＡ（３ａ）は、エージェント２４を介して、Ｗｅｂブラウザ２５上に表示させる、アクセス要求に対応するコンテンツ情報を送信する（Ｓ８０、Ｓ８１）。すると、Ｗｅｂブラウザ２５上にその送信されたコンテンツが表示される。
【０１０５】
図９は、本実施形態におけるＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。図２では、既に、Ｗｅｂブラウザ２５と認証サーバ３１との間のＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が有効な状態であるとする。
【０１０６】
Ｗｅｂブラウザ２５は、エージェント２４を介して、業務サーバＢ（３ｂ）へアクセス要求をする（Ｓ９１、Ｓ９２）。ここでは、まだクライアント２１は認証サーバ３１による業務サーバＢ（３ｂ）に対する認証がされていないので、このアクセス要求は、業務サーバＢ（３ｂ）に対する認証情報を含まないとする。
【０１０７】
すると、業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対する認証情報が含まれていないため、認証サーバ３１による認証がされていないと判断する。そこで、業務サーバＢ（３ｂ）は、認証サーバ３１へ認証要求を送信するために、Ｗｅｂブラウザ２５にアクセス先を認証サーバへ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ９３、Ｓ９４）。
【０１０８】
Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、エージェント２４を介して、認証サーバ３１へ認証要求する（Ｓ９５、Ｓ９６）。このとき、Ｗｅｂブラウザ２５と認証サーバ３１との間のＳＳＬセションが有効なため、ＳＳＬ通信のために必要なやり取り、すなわち、図８のＳ６７〜Ｓ６８で説明したＳＳＬサーバ認証のための処理は発生しない。
【０１０９】
認証サーバ３１は、認証要求を取得すると、既に認証情報ＤＢ３５に保持しているクライアントの認証情報の有効性を確認する（Ｓ９７）。上述したように、この例では、認証情報は有効であるので、認証情報ＤＢ３５に登録されたその認証情報のフラグ情報は、有効状態となっている。また、この例では、クライアントに対応する認証情報が有効な場合には、認証サーバ３１は、Ｗｅｂブラウザ２５に対して、証明書の提示を要求しない。
【０１１０】
この例では、クライアント２１は認証済みのため、認証サーバ３１は、業務サーバＢ（３ｂ）へ認証情報を送信するために、Ｗｅｂブラウザ２５にアクセス先を業務サーバＢ（３ｂ）へ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ９８、Ｓ９９）。
【０１１１】
Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、エージェント２４を介して、業務サーバＢ（３ｂ）へアクセス要求する（Ｓ１００、Ｓ１０１）。なお、このときのアクセス要求には、業務サーバＢ（３ｂ）に対するクライアント２１の認証情報も含まれる。
【０１１２】
業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対する認証情報が含まれているため、認証サーバ３１による認証がされていると判断する。すると、業務サーバＢ（３ｂ）は、エージェント２４を介して、Ｗｅｂブラウザ２５上に表示させる、アクセス要求に対応するコンテンツ情報を送信する（Ｓ１０２、Ｓ１０３）。すると、Ｗｅｂブラウザ２５上にその送信されたコンテンツが表示される。
【０１１３】
図１０は、本実施形態におけるＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が無効な状態でのフローを示す。図１０では、既に、Ｗｅｂブラウザ２５と認証サーバ３１との間のＳＳＬセションが有効で、かつ認証サーバが管理している認証情報が無効な状態であるとする。
【０１１４】
Ｗｅｂブラウザ２５は、エージェント２４を介して、業務サーバＢ（３ｂ）へアクセス要求をする（Ｓ１１１、Ｓ１１２）。ここでは、まだクライアント２１は認証サーバ３１による業務サーバＢ（３ｂ）に対する認証がされていないので、このアクセス要求は、業務サーバＢ（３ｂ）に対する認証情報を含まないとする。
【０１１５】
すると、業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対するクライアント２１の認証情報が含まれていないため、認証サーバ３１による認証がされていないと判断する。そこで、業務サーバＢ（３ｂ）は、認証サーバ３１へ認証要求を送信するために、Ｗｅｂブラウザ２５にアクセス先を認証サーバへ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ１１３、Ｓ１１４）。
【０１１６】
Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、エージェント２４を介して、認証サーバ３１へ認証要求する（Ｓ１１５、Ｓ１１６）。このとき、Ｗｅｂブラウザ２５と認証サーバ３１との間のＳＳＬセションが有効なため、ＳＳＬ通信のために必要なやり取り、すなわち、図８のＳ６７〜Ｓ６８で説明したＳＳＬサーバ認証のための処理は発生しない。
【０１１７】
認証サーバ３１は、認証要求を取得すると、認証情報ＤＢ３５に既に保持している認証情報の有効性を確認する（Ｓ１１７）。この例では、認証情報は無効であるので、認証情報ＤＢ３５に登録されたその認証情報のフラグ情報は、無効状態となっている。
【０１１８】
証情報ＤＢ３５に既に保持している認証情報が無効である場合、認証サーバ３１は、Ｗｅｂブラウザ２５に対して証明書の提示を要求する（Ｓ１１８）。
【０１１９】
エージェント２４は、認証サーバ３１からＷｅｂブラウザ２５への要求を検知すると、図７で説明したように、エージェント動作管理テーブル２４ａを用いて、その要求の内容を解析する。
【０１２０】
解析の結果、要求の内容が証明書の要求である場合、エージェント２４は、Ｗｅｂブラウザ２５に対して、証明書の選択画面を表示するよう指示（証明書提示要求）する（ＳＳＬ相当の通信）（Ｓ１１９）。
【０１２１】
クライアント２１側では、ユーザが１以上の証明書からいずれかの証明書を選択する。すると、Ｗｅｂブラウザ２５は、その選択された証明書を認証サーバ３１に向けて送信する（Ｓ１２０）。
【０１２２】
エージェント２４は、Ｗｅｂブラウザ２５から取得した証明書を応答情報に付加する。エージェント２４は、その証明書を付加した応答情報を認証サーバ３１へ送信する（Ｓ１２１）。
【０１２３】
認証サーバ３１は、その証明書を付加した応答情報を受信すると、その証明書の内容を検証する。認証サーバ３１は、検証の結果、認証に成功したとする。認証サーバ３１は、認証が成功である旨の認証結果を示す認証情報を認証情報ＤＢ３５に登録する（Ｓ１２２）。これにより、認証サーバ３１で管理している認証情報に応じて、証明書要求の制御が可能となる。
【０１２４】
認証サーバ３１は、認証に成功したため、業務サーバＢ（３ｂ）へ認証情報を送信するために、Ｗｅｂブラウザ２５にアクセス先を業務サーバＢ（３ｂ）へ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ１２３、Ｓ１２４）。
【０１２５】
Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、エージェント２４を介して、業務サーバＢ（３ｂ）へアクセス要求する（Ｓ１２５、Ｓ１２６）。このときのアクセス要求には、業務サーバＢ（３ｂ）に対するクライアント２１の認証情報も含まれる。
【０１２６】
業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対する認証情報が含まれているため、認証サーバ３１による認証がされていると判断する。すると、業務サーバＢ（３ｂ）は、エージェント２４を介して、Ｗｅｂブラウザ２５上にアクセス要求に対応するコンテンツ情報を送信する（Ｓ１２７，Ｓ１２８）。すると、Ｗｅｂブラウザ２５上にその送信されたコンテンツが表示される。
【０１２７】
図１１は、本実施形態におけるＳＳＬセションが無効で、かつ認証サーバが管理している認証情報が有効な状態でのフローを示す。図１１では、既に、Ｗｅｂブラウザ２５と認証サーバ３１との間のＳＳＬセションが無効で、かつ認証サーバが管理している認証情報が有効な状態であるとする。
【０１２８】
Ｗｅｂブラウザ２５は、エージェント２４を介して、業務サーバＢ（３ｂ）へアクセス要求をする（Ｓ１３１、Ｓ１３２）。ここでは、まだクライアント２１は認証サーバ３１による業務サーバＢ（３ｂ）に対する認証がされていないので、このアクセス要求は、業務サーバＢ（３ｂ）に対するクライアント２１の認証情報を含まないとする。
【０１２９】
すると、業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対するクライアント２１の認証情報が含まれていないため、認証サーバ３１による認証がされていないと判断する。そこで、業務サーバＢ（３ｂ）は、認証サーバ３１へ認証要求を送信するために、Ｗｅｂブラウザ２５にアクセス先を認証サーバへ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ１３３、Ｓ１３４）。
【０１３０】
ＳＳＬセションが無効であるため、Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、エージェント２４を介して、ＳＳＬ層の通信プロトコルを用いて、認証サーバ３１へ認証要求する。
【０１３１】
すると、Ｗｅｂブラウザ２５と認証サーバ３１とは、エージェント２４を介して、ＳＳＬ通信を確立するために必要な通信のやり取りを行う（Ｓ１３７、Ｓ１３８）。ここで、エージェント２４とＷｅｂブラウザ２５との間のＳＳＬセッション確立に必要な通信のやり取りとは、サーバの正当性を証明するサーバ証明書を用いたＳＳＬサーバ認証のための手順を示す。これにより、ＳＳＬセッション確立が確立し、ＳＳＬセッションが有効になる。なお、Ｓ１３７及びＳ１３８では、認証サーバ３１によるクライアント証明書の要求及びクライアントからのクライアント証明書の送信は行わない。
【０１３２】
ＳＳＬセッションが有効になると、Ｗｅｂブラウザ２５は、エージェント２４を介して、認証サーバ３１へ再び認証要求する（Ｓ１３９、Ｓ１４０）。
【０１３３】
認証サーバ３１は、認証要求を取得すると、既に認証情報ＤＢ３５に保持しているクライアントに対応する認証情報の有効性を確認する（Ｓ１４１）。この例では、認証情報は有効であるので、認証情報ＤＢ３５に登録されたその認証情報のフラグ情報は、有効状態となっている。また、この例では、認証情報が有効な場合には、認証サーバ３１は、Ｗｅｂブラウザ２５に対して、証明書の提示を要求しない。
【０１３４】
認証に成功したため、認証サーバ３１は、業務サーバＢ（３ｂ）へ認証情報を送信するために、Ｗｅｂブラウザ２にアクセス先を業務サーバＢ（３ｂ）へ変更するように、エージェント２４を介して、リダイレクト要求する（Ｓ１４２、Ｓ１４３）。
【０１３５】
Ｗｅｂブラウザ２５は、リダイレクト要求に応じて、エージェント２４を介して、業務サーバＢ（３ｂ）へアクセス要求する（Ｓ１４４、Ｓ１４５）。このときのアクセス要求には、業務サーバＢ（３ｂ）に対するクライアント２１の認証情報も含まれる。
【０１３６】
業務サーバＢ（３ｂ）は、受信したアクセス要求に業務サーバＢ（３ｂ）に対するクライアント２１の認証情報が含まれているため、認証サーバ３１による認証がされていると判断する。すると、業務サーバＢ（３ｂ）は、エージェント２４を介して、Ｗｅｂブラウザ２５上に表示させる、アクセス要求に対応するコンテンツ情報を送信する（Ｓ１４６、Ｓ１４７）。すると、Ｗｅｂブラウザ２５上にその送信されたコンテンツが表示される。
【０１３７】
図１２は、本実施形態におけるエージェントの動作フローを示す。エージェント２４は、アプリケーション層の通信プロトコルに基づく通信情報を受信する（Ｓ１５１）。
【０１３８】
エージェント２４は、受信した通信情報が認証サーバ３１からの証明書提示要求か否かを判定する（Ｓ１５２）。受信した通信情報が認証サーバ３１からの証明書提示要求でない場合（Ｓ１５２で「ＮＯ」）、エージェント２４は、受信した通信情報を宛先に転送する（Ｓ１５６）。
【０１３９】
受信した通信情報が認証サーバ３１からの証明書提示要求である場合（Ｓ１５２で「ＹＥＳ」）、エージェント２４は、Ｗｅｂブラウザ２５に対して、ＳＳＬの通信プロトコルを用いて、証明書の提示を要求する証明書提示要求を送信する（Ｓ１５３）。
【０１４０】
エージェント２４は、Ｗｅｂブラウザから、証明書提示要求に対応する、ＳＳＬの通信プロトコルを用いて、証明書を受信する（Ｓ１５４）。
【０１４１】
エージェント２４は、アプリケーション層の通信プロトコルを用いて、証明書を認証サーバ３１へ送信する（Ｓ１５５）。
【０１４２】
図１３は、本実施形態における認証サーバ（認証プログラム）の動作フローを示す。認証サーバ３１は、認証要求を受信した場合（Ｓ１６１）、認証要求の送信元との間のＳＳＬセッションが有効か否かを判定する（Ｓ１６２）。認証要求の送信元との間のＳＳＬセッションが無効である場合（Ｓ１６２で「ＮＯ」）、認証サーバ３１は、その送信元の間でＳＳＬセッションを確立（有効）する処理を行う（Ｓ１６３）。
【０１４３】
ＳＳＬセッションの確立後、再度、認証要求を受信し、認証要求の送信元との間のＳＳＬセッションが有効である場合（Ｓ１６２で「ＹＥＳ」）、認証サーバ３１は、認証情報ＤＢ３５に認証要求のあったクライアント２１の認証情報を有し、かつその認証情報が有効であるか否かを判定する（Ｓ１６４）。
【０１４４】
認証情報ＤＢ３５に認証要求のあったクライアント２１の認証情報を有しないか、または有する認証情報が無効である場合（Ｓ１６４で「ＮＯ」）、認証サーバ３１は、次の処理を行う。すなわち、認証サーバ３１は、クライアント２１に対して、アプリケーション層の通信プロトコルを用いて証明書提示要求を送信する（Ｓ１６５）。
【０１４５】
認証サーバ３１は、送信した証明書提示要求に対応する、アプリケーション層の通信プロトコルを用いた通信情報（証明書を含む）を受信する（Ｓ１６６）。
【０１４６】
認証サーバ３１は、受信した証明書の内容を検証し、検証の結果、認証に成功すれば、認証情報を認証情報ＤＢ３５に登録する（Ｓ１６７）。
【０１４７】
認証情報ＤＢ５に認証要求のあったクライアント２１の認証情報を有し、かつその認証情報が有効である場合（Ｓ１６４で「ＹＥＳ」）、認証サーバ３１は、次の処理を行う。すなわち、認証サーバ３１は、認証要求のあったクライアント２１に対して、アクセス先を業務サーバに変更するように要求する宛先変更要求を送信する（リダイレクト要求）（Ｓ１６８）。
【０１４８】
図１４は、本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。コンピュータ５０は、クライアント装置１１（クライアント２１）または認証サーバ装置１５（認証サーバ３１）として機能する。コンピュータ５０は、ＣＰＵ５２、ＲＯＭ５３、ＲＡＭ５６、通信Ｉ／Ｆ５４、記憶装置５７、出力Ｉ／Ｆ５１、入力Ｉ／Ｆ５５、読取装置５８、バス５９、出力装置６１、入力装置６２によって構成されている。
【０１４９】
ここで、ＣＰＵは、中央演算装置を示す。ＲＯＭは、リードオンリメモリを示す。ＲＡＭは、ランダムアクセスメモリを示す。Ｉ／Ｆは、インタフェースを示す。バス５９には、ＣＰＵ５２、ＲＯＭ５３、ＲＡＭ５６、通信Ｉ／Ｆ５４、記憶装置５７、出力Ｉ／Ｆ５１、入力Ｉ／Ｆ５５、及び読取装置５８が接続されている。読取装置５８は、可搬型記録媒体を読み出す装置である。出力装置６１は、出力Ｉ／Ｆ５１に接続されている。入力装置６２は、入力Ｉ／Ｆ５５に接続されている。
【０１５０】
記憶装置５７としては、ハードディスク、フラッシュメモリカードなど様々な形式の記憶装置を使用することができる。コンピュータ５０がクライアント装置１である場合には、記憶装置５７またはＲＯＭ５３には、ＣＰＵ５２を検知部１２、取得部１３、送信部１４として機能させる本実施形態に係るプログラムが格納されている。コンピュータが認証サーバ装置１５である場合には、記憶装置５７またはＲＯＭ５３には、認証要求取得部１６、電子証明書取得部１７、認証部１８として機能させる本実施形態に係るプログラムが格納されている。また、コンピュータ５０がクライアント２１である場合には、記憶装置５７には、エージェント動作管理テーブル２４ａ等が格納されている。コンピュータ５０が認証サーバ３１である場合には、記憶装置５７には、認証情報ＤＢ３５等が格納されている。
【０１５１】
ＣＰＵ５２は、記憶装置５７またはＲＯＭ５３から本実施形態に係るプログラムを読み出し、当該プログラムを実行する。
【０１５２】
通信Ｉ／Ｆ５４は、ネットワークと接続して他の装置と通信するためのポート等のインタフェースである。
【０１５３】
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク６０、および通信Ｉ／Ｆ５４を介して、例えば記憶装置５７に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読取装置５８にセットされて、ＣＰＵ５２によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカード、ＵＳＢメモリ装置、半導体メモリカードなど様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読取装置５８によって読み取られる。
【０１５４】
入力装置６２には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネルなどを用いることが可能である。また、出力装置６１には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。
【０１５５】
ネットワーク６０は、インターネット、ＬＡＮ、ＷＡＮ、専用線、有線、無線等の通信網であってよい。
【０１５６】
本実施形態によれば、クライアントが証明書認証に成功したかどうかの情報を、ＳＳＬセッションを利用せずに、認証サーバ（アプリケーション層）で管理できるようになる。
【０１５７】
その結果、ＳＳＬセションが有効、かつ認証サーバが管理している認証情報が無効な場合にＳＳＬセッション確立時に保持していた証明書を流用せずに、クライアントから再取得するので、セキュリティが向上する。
【０１５８】
ＳＳＬセションが無効、かつ認証サーバ４が管理している認証情報が有効な場合、本来しなくてもよかった手順をしないで済むので、利便性が向上する。
【０１５９】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１６０】
１０    認証制御システム
１１    クライアント装置
１２    検知部
１３    取得部
１４    送信部
１５    認証サーバ装置
１６    証要求取得部
１７    電子証明書取得部
１８    認証部
１９    ネットワーク
２１    クライアント
２２    ハードウェア
２３      ＯＳ
２４    エージェント
２４ａ  エージェント動作管理テーブル
２５    Ｗｅｂブラウザ
３１    認証サーバ
３２    ハードウェア
３３    ＯＳ
３４    認証プログラム
３５    認証情報ＤＢ
４１    ネットワーク
【図１】
0006551176.tif 000002
【図２】
0006551176.tif 000003
【図３】
0006551176.tif 000004
【図４】
0006551176.tif 000005
【図５】
0006551176.tif 000006
【図６】
0006551176.tif 000007
【図７】
0006551176.tif 000008
【図８】
0006551176.tif 000009
【図９】
0006551176.tif 000010
【図１０】
0006551176.tif 000011
【図１１】
0006551176.tif 000012
【図１２】
0006551176.tif 000013
【図１３】
0006551176.tif 000014
【図１４】
0006551176.tif 000015