(57)【特許請求の範囲】
【請求項１】
クライアント装置と２以上のサーバ装置との間に設けられた情報処理装置を制御する処理をコンピュータに実行させるアクセス制御プログラムにおいて、
前記コンピュータに、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを前記情報処理装置に開放させるための開放要求を受信する受信手順、
前記受信手順により受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成する生成手順、
前記生成手順により生成された前記データ転送用情報を、前記情報処理装置に送信する送信手順、
を実行させることを特徴とするアクセス制御プログラム。
【請求項２】
前記データ転送用情報には、前記第１サーバ装置の次にアクセスされる前記２以上のサーバ装置の１つである第２サーバ装置のポート番号を含むことを特徴とする請求項１記載のアクセス制御プログラム。
【請求項３】
前記生成手順では、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記第２サーバ装置のポート番号を決定することを特徴とする請求項２記載のアクセス制御プログラム。
【請求項４】
前記生成手順では、前記開放要求を送信した前記第１サーバ装置を識別する情報に加え、前記開放要求に含まれる一連の処理を識別する情報に基づいて、前記第２サーバ装置のポート番号を決定することを特徴とする請求項２または３記載のアクセス制御プログラム。
【請求項５】
前記コンピュータに、さらに、
前記開放されているポートの遮断要求を受信する遮断要求受信手順、
前記遮断要求に含まれる、前記遮断要求を送信する前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号に基づいて、前記開放されているポートを特定し、特定したポートを遮断させるポート遮断用情報を生成するポート遮断用情報生成手順、
前記ポート遮断用情報生成手順により生成された前記ポート遮断用情報を、前記情報処理装置に送信する送信手順、
を実行させることを特徴とする請求項２から４のいずれかに記載のアクセス制御プログラム。
【請求項６】
クライアント装置と２以上のサーバ装置との間に設けられた情報処理装置を制御する処理をコンピュータに実行させるアクセス制御方法において、
前記コンピュータが、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを前記情報処理装置に開放させるための開放要求を受信し、
受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成し、
生成された前記データ転送用情報を、前記情報処理装置に送信する、
ことを特徴とするアクセス制御方法。
【請求項７】
クライアント装置と２以上のサーバ装置間のアクセス制御を情報処理装置に実行させるアクセス制御装置において、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを前記情報処理装置に開放させるための開放要求を、受信する受信部と、
前記受信部により受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成する生成部と、
前記生成部により生成された前記データ転送用情報を、前記情報処理装置に送信する送信部と、
を有することを特徴とするアクセス制御装置。
【請求項８】
クライアント装置と２以上のサーバ装置間のアクセス制御をコンピュータに実行させるアクセス制御プログラムにおいて、
前記コンピュータに、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを開放するための開放要求を、受信する受信手順、
前記受信手順により受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成する生成手順、
を実行させることを特徴とするアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアクセス制御プログラム、アクセス制御方法およびアクセス制御装置に関する。
【背景技術】
【０００２】
ユーザが、ユーザが管理しているデータ等が格納されているサーバに対するアクセス権を、他の（第三者の）アプリケーションにユーザＩＤやユーザパスワードを教えなくても委譲する技術が知られている。
【０００３】
アプリケーションにアクセス権を委譲する際に使用するプロトコルの１つとしてＯＡｕｔｈが知られている。
ＯＡｕｔｈでは、アプリケーションの接続確認にトークンを使用する。ここでトークンは、サーバがアプリケーションのアクセス権を確認するために利用する一意のキー（ランダムに生成された文字列）である。
【０００４】
このアクセス権の委譲処理の一例を簡単に説明する。
まず、第三者のアプリケーションが、トークンを発行するトークンサーバより取得したリクエストトークンをユーザに渡す。
【０００５】
ユーザは、そのリクエストトークンに対してアクセス権を与えることを、サービスを提供するサーバに伝える。これにより、第三者のアプリケーションは、サービスを提供するサーバにアクセスできるようになる。
【０００６】
さらなる安全のため、第三者のアプリケーションは、トークンサーバにリクエストトークンからアクセストークンへの交換要求を出した後、交換されたアクセストークンを用いてサーバにアクセスする場合もある。
【０００７】
ところで、悪意を持ったアプリケーションから、攻撃対象のネットワークデバイスやサーバに負荷をかけ、サービスを提供できなくする、いわゆるＤｏＳ（Denial of Service）攻撃が知られている。
【０００８】
なお、ＤｏＳ攻撃としては特に限定されないが、例えば、ＳＹＮ  Ｆｌｏｏｄｉｎｇ攻撃等のＦｌｏｏｄ攻撃や、リロード攻撃等が挙げられる。
例えば、ＳＹＮ  Ｆｌｏｏｄｉｎｇ攻撃は、攻撃対象とのＴＣＰコネクションの確立の途中で保留する処理を大量に実施し、攻撃対象のメモリ等を消費して新たなコネクションの確立を妨害する攻撃である。
【０００９】
また、リロード攻撃は、正常なリクエストを攻撃対象に大量に送信し、攻撃対象の負荷を上げる攻撃である。
前述したＯＡｕｔｈの場合、ユーザが、リクエストトークンの発行をトークンサーバに要求する際や、サービスを提供するサーバにサービスの提供を要求する際にアクセスするサーバのアドレス（ＩＰアドレス、ポート番号、ＩＰアドレスとポート番号の組み合わせ等）が固定で公開されている場合がある。このため、このアドレスのポートがＤｏＳ攻撃を受ける可能性がある。
【００１０】
ＤｏＳ攻撃を避ける方法として、サーバの前段にファイアウォールを配置することで、各サーバの待ち受けアドレスを動的に変更する方法等が知られている。
例えば、アクセスを許可しているポート番号のアクセス状況を監視して攻撃があるかを判定し、攻撃があったと判定した場合、アクセスを許可しているポート番号を切り替え、切り替えたポート番号をクライアントおよびサーバに通知する方法が知られている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００４−１９２０４４号公報
【非特許文献】
【００１２】
【非特許文献１】Mark Atwood、他１６名、“OAuth Core 1.0”、［online］、平成１９年１２月４日、OAuth Core Workgroup、［平成２１年１０月１３日検索］、インターネット〈URL:http://oauth.net/core/1.0〉
【発明の概要】
【発明が解決しようとする課題】
【００１３】
サーバは一般に、クライアントからデータを受け取る当該サーバの受信ポート番号を書き換える機能を有している。しかしながら、サーバ側にこの機能を設置すると、ポート番号の書き換えに伴うサーバの処理コスト（ＴＣＰソケットのオープン、クローズ等）が大きくなるという問題があった。また、サーバ側にこの機能を設置すること自体が難しい場合もある。
【００１４】
なお、一例としてＯＡｕｔｈの問題について説明したが、アクセス権の委譲を行う他のシステムにも同様の問題がある。さらに、ＤｏＳ攻撃の対策を施している他のシステムについても同様の問題がある。
【００１５】
本発明はこのような点に鑑みてなされたものであり、容易にセキュリティの強化を図ることができるアクセス制御プログラム、アクセス制御方法およびアクセス制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、開示のアクセス制御プログラムが提供される。このアクセス制御プログラムは、クライアント装置と２以上のサーバ装置間のアクセス制御を情報処理装置に実行させるプログラムであり、コンピュータに、受信手順、生成手順、送信手順を実行させる。
【００１７】
受信手順では、２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了によりクライアント装置に送信されるポート番号であって、このポート番号のポートを情報処理装置に開放させるための開放要求を、受信する。
【００１８】
生成手順では、受信手順により受信された開放要求に含まれる、開放要求を送信した第１サーバ装置を識別する情報に基づいて、ポート番号のポートを開放させるためのデータ転送用情報を生成する。
【００１９】
送信手順では、生成手順により生成されたデータ転送用情報を、情報処理装置に送信する。
【発明の効果】
【００２０】
開示のアクセス制御プログラムによれば、容易にセキュリティの強化を図ることができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態のアクセス制御装置の概要を示す図である。
【図２】第１の実施の形態のポートの遮断処理を説明する図である。
【図３】第２の実施の形態のシステムを示す図である。
【図４】ポート変換設定サーバのハードウェア構成例を示す図である。
【図５】第２の実施の形態のポート変換設定サーバの機能を示すブロック図である。
【図６】次サーバ設定テーブルのデータ構造例を示す図である。
【図７】第２の実施の形態のポート管理テーブルのデータ構造例を示す図である。
【図８】第２の実施の形態のポート変換設定処理を示すフローチャートである。
【図９】第２の実施の形態のリクエストトークン発行処理を示すフローチャートである。
【図１０】第２の実施の形態の認証処理を示すフローチャートである。
【図１１】第２の実施の形態のアクセストークン発行処理を示すフローチャートである。
【図１２】サービスサーバの処理を示すフローチャートである。
【図１３】第２の実施の形態のシステムの処理の具体例を示す図である。
【図１４】第２の実施の形態のアドレス変換テーブルのデータ構造例を示す図である。
【図１５】第２の実施の形態のシステムの処理の具体例を示す図である。
【図１６】第２の実施の形態のシステムの処理の具体例を示す図である。
【図１７】第２の実施の形態のシステムの処理の具体例を示す図である。
【図１８】第２の実施の形態のシステムの処理の具体例を示す図である。
【図１９】第３の実施の形態のポート変換設定サーバの機能を示すブロック図である。
【図２０】第３の実施の形態のポート変換設定処理を示すフローチャートである。
【図２１】第３の実施の形態のリクエストトークン発行処理を説明するフローチャートである。
【図２２】第３の実施の形態の認証処理を示すフローチャートである。
【図２３】第３の実施の形態のアクセストークン発行処理を示すフローチャートである。
【図２４】第４の実施の形態のポート変換設定サーバの機能を示すブロック図である。
【図２５】第４の実施の形態のポート変換設定処理を示すフローチャートである。
【図２６】第４の実施の形態のリクエストトークン発行処理を説明するフローチャートである。
【図２７】第４の実施の形態の認証処理を示すフローチャートである。
【図２８】第４の実施の形態のアクセストークン発行処理を示すフローチャートである。
【図２９】第４の実施の形態の具体例のポート管理テーブルを示す図である。
【図３０】第５の実施の形態のポート変換設定サーバの機能を示すブロック図である。
【図３１】第５の実施の形態のポート管理テーブルのデータ構造例を示す図である。
【図３２】第５の実施の形態のパラメータ管理テーブルのデータ構造例を示す図である。
【図３３】第５の実施の形態のポート変換設定処理を示すフローチャートである。
【図３４】エントリ監視処理を示すフローチャートである。
【図３５】第６の実施の形態のポート変換設定サーバの機能を示すブロック図である。
【図３６】第６の実施の形態のパラメータ管理テーブルのデータ構造例を示す図である。
【図３７】サーバ監視処理を示すフローチャートである。
【図３８】第７の実施の形態のアドレス変換テーブルのデータ構造例を示す図である。
【図３９】第７の実施の形態のＤｏＳ対策装置のパケット処理を示すフローチャートである。
【図４０】第８の実施の形態のポート変換設定サーバの機能を示すブロック図である。
【図４１】第８の実施の形態のポート変換設定処理を示すフローチャートである。
【図４２】第８の実施の形態の認証処理を示すフローチャートである。
【図４３】第８の実施の形態のアクセストークン発行処理を示すフローチャートである。
【図４４】ポート変換機能がＤｏＳ対策装置に設けられている例を示す図である。
【発明を実施するための形態】
【００２２】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態のアクセス制御装置について説明し、その後、実施の形態をより具体的に説明する。
【００２３】
＜第１の実施の形態＞
図１は、第１の実施の形態のアクセス制御装置の概要を示す図である。
第１の実施の形態のアクセス制御装置（コンピュータ）１は、クライアント装置２の、サーバ装置群３が有する複数のサーバ装置に対するアクセスを制御する。サーバ装置群３が有するサーバ装置３ａ、サーバ装置３ｂ、サーバ装置３ｃは、それぞれ異なる処理を実行するサーバである。サーバは、それぞれ異なるアドレス（ＩＰアドレスとポート番号の組み合わせ）を有している。
【００２４】
図１では、サーバ装置３ａのアドレスは「アドレスＡ」である。サーバ装置３ｂのアドレスは「アドレスＢ」である。サーバ装置３ｃのアドレスは「アドレスＣ」である。
図１では、アクセス制御装置１は、サーバ装置群３の前段に設けられた情報処理装置４のポートの開閉を制御する。
【００２５】
ここで、このクライアント装置２としては、サーバ装置群３に対し処理を要求する装置であれば、特に限定されず、例えば、ユーザが操作する端末装置や、ユーザの要求に応じて処理を行うアプリケーションを有するアプリケーションサーバ等が挙げられる。図１では一例として、ユーザが操作するクライアント装置２を図示している。
【００２６】
図１に示すクライアント装置２には、例えば、クライアント装置２の要求に応じてサーバ装置３ａが所定の処理（例えば、後述するトークンの発行処理や、認証処理等）を実行し、応答した情報処理装置４へのアクセスのために動的に決定されたポート番号「Ｄ」が通知されている。このポート番号「Ｄ」は、サーバ装置３ａが生成してもよいし、アクセス制御装置１が生成してサーバ装置３ａに送信してもよい。
【００２７】
クライアント装置２が、このポート番号「Ｄ」のポートにアクセスすることにより、サーバ装置３ａ、サーバ装置３ｂ、サーバ装置３ｃのいずれかのサーバが、次の処理を実行する。
【００２８】
情報処理装置４は、サーバ装置３ａ、サーバ装置３ｂ、サーバ装置３ｃの処理を妨害するＤｏＳ攻撃を抑制する等の目的で設けられている。
アクセス制御装置１は、情報処理装置４が開放するポートを動的に変更することで、サーバ装置群３に対するＤｏＳ攻撃を抑制する。
【００２９】
アクセス制御装置１は、受信手段１ａと、生成手段１ｂと、送信手段１ｃとを有している。
受信手段１ａは、サーバ装置３ａ、サーバ装置３ｂ、サーバ装置３ｃのいずれかから、情報処理装置４のポートの開放要求を受信する。
【００３０】
この開放要求は、クライアント装置２に送信したポート番号のポートを、情報処理装置４に開放させる要求である。
なお、サーバ装置３ａ、サーバ装置３ｂ、サーバ装置３ｃが開放要求を送信するタイミングは特に限定されない。図１では、一例として、サーバ装置（第１サーバ装置）３ａが所定の処理を終了し、クライアント装置２に情報処理装置４へのアクセス用のポート番号「Ｄ」を通知した後にアクセス制御装置１に開放要求を送信した場合を示している。
【００３１】
この開放要求には、ポート番号と、開放要求を送信した送信元のサーバ装置を識別する情報（サーバ識別情報）とが含まれている。サーバ識別情報としては、例えば、サーバ名や、サーバのＩＰアドレス等が挙げられる。
【００３２】
図１に示す開放要求には、クライアント装置２に予め通知したポート番号「Ｄ」と、サーバ名「第１のサーバ装置」とが含まれている。
ここで、開放要求には、さらに、一連の処理を識別する情報（一連処理識別情報）が含まれているのが好ましい。
【００３３】
一連の処理としては、特に限定されないが、例えば、クライアント装置２の接続確認にユーザを認証したことを示す識別子を取得する処理や、サーバ装置群３へのアクセス用のセッション識別子を取得するための処理等が挙げられる。
【００３４】
この一連処理識別情報を含めることにより、同一のサーバ装置からの開放要求であっても、異なる処理内容であることを識別することができる。従って、アクセス制御装置１は、処理内容に応じて異なる転送先のサーバ装置を選択することが可能となる。
【００３５】
図１に示す開放要求には、一連処理識別情報の一例として、サーバ装置３ａがある処理Ａ（図示せず）を行った結果、発行したトークンＡ（ＴＡ）が含まれている。サーバ装置３ａは、この他にも例えば、処理Ａとは異なる処理Ｂを行うことができる。この場合、サーバ装置３ａは、処理Ｂ（図示せず）を行った結果としてトークンＢ（ＴＢ）を発行することができる。
【００３６】
また、開放要求には、一連処理識別情報の値を示す処理識別値の一例として、「ａｂｃ」が含まれている。この処理識別値は、生成手段１ｂが、後述するデータ転送用情報１ｂ１を生成する際に使用することができる。
【００３７】
クライアント装置２は、サーバ装置３ａから通知されたポート番号「Ｄ」に基づいて、宛先をポート番号「Ｄ」とするアドレス（以下「アドレスＤ」と言う）にアクセスするアクセス要求を生成し、情報処理装置４にアクセスする。
【００３８】
なお、サーバ装置３ａから直接「アドレスＤ」が通知された場合は、この「アドレスＤ」を用いて情報処理装置４にアクセスすることができる。
生成手段１ｂは、受信した開放要求に含まれる開放要求を送信したサーバ名とポート番号とに基づいて、ポート番号のポートを開放させて、開放したポートにアクセスしたデータをサーバ装置３ａの次にアクセスされるサーバ装置の１つである第２サーバ装置に転送させるデータ転送用情報１ｂ１を生成する。
【００３９】
このデータ転送用情報１ｂ１は、例えば次のようにして生成することができる。
生成手段１ｂは、開放要求に含まれる、サーバ名「第１のサーバ装置」に基づいて、応答に応じてクライアント装置２がポート番号「Ｄ」のポートにアクセスしたデータを転送させるサーバをサーバ装置群３から決定する。
【００４０】
また、生成手段１ｂは、開放要求に含まれるポート番号「Ｄ」に基づいて情報処理装置４の受信アドレス「アドレスＤ」を生成する。
そして、生成した受信アドレス「アドレスＤ」と、ポート番号「Ｄ」のポートにクライアント装置２がアクセスしたデータを転送する第２サーバ装置（本実施の形態では、サーバ装置３ｂ）のアドレス（転送先アドレス）とを含むデータ転送用情報１ｂ１を生成する。
【００４１】
転送先アドレスは、例えば、格納手段１ｄを参照することにより決定することができる。
格納手段１ｄには、サーバ装置群３の少なくとも１つのサーバ名と、一連処理識別情報種別と、転送先アドレスとが関連づけられたサーバ設定情報１ｄ１が予め格納されている。このサーバ設定情報１ｄ１を予め決定して設けることにより、第２サーバ装置のアドレスを容易に決定することができる。
【００４２】
なお、本実施の形態では、格納手段１ｄは、アクセス制御装置１内に設けたが、アクセス制御装置１の外部に設けられていてもよい。
生成手段１ｂは、開放要求に含まれるサーバ名「第１のサーバ装置」と一連処理識別情報種別「ＴＡ」に一致するサーバ設定情報１ｄ１のエントリを検索する。そして一致したエントリに含まれているサーバ装置３ｂのアドレス「アドレスＢ」を取得する。
【００４３】
送信手段１ｃは、生成手段１ｂにより生成されたデータ転送用情報１ｂ１を、情報処理装置４に送信する。
図１では、情報処理装置４が、データ転送用情報１ｂ１に従ってポート番号「Ｄ」のポートを開放する。
【００４４】
そして、開放したポートにアクセスしたデータを、サーバ装置３ｂのアドレス「アドレスＢ」に転送する。具体的には、情報処理装置４が、受信したアドレスの宛先「アドレスＤ」をサーバ装置３ｂのアドレス「アドレスＢ」に変換する。そしてデータをサーバ装置３ｂのアドレス「アドレスＢ」に転送する。これにより、サーバ装置３ｂが、このデータを受け取ることができ、処理を継続して実行することができる。
【００４５】
なお、情報処理装置４は、ポート番号「Ｄ」のポートにアクセスがあった要求のみをサーバ装置群３に通知し、それ以外のポートにアクセスした要求は通さないようにする。
このように、アクセス制御装置１が、開放要求に含まれるサーバ名とポート番号とに応じて開放するポートを動的に変更したデータ転送用情報１ｂ１を生成し、情報処理装置４に送信することで、開放するポート番号を動的に変更することができる。これにより、アクセス用のポート番号が通知されていない装置からの当該ポート番号へのアクセスを抑制することができる。
【００４６】
また、アクセス制御装置１を配置することにより、例えば、サーバ装置群３側へのポート番号の変更機能の追加を省略することができる。従って、例えば、既にサーバ装置群３の運用が開始されている等により、サーバ装置群３側にポート番号の変更機能を追加することが困難な場合であっても容易にサーバ装置群３のセキュリティの強化を図ることができる。
【００４７】
また、開放したポート番号のポートにアクセスがあった要求のみをサーバ装置群３に通知し、それ以外のポートにアクセスした要求は通さないようにすることで、ＤｏＳ攻撃を受けにくくし、サーバ装置群３の負荷を軽減する可能性を高めることができる。
【００４８】
ところで、本実施の形態のアクセス制御装置１は、さらに、情報処理装置４が開放したポートを遮断する（閉じる）機能を有している。
この機能を実現する場合、本実施の形態では、受信手段１ａが、遮断要求受信手段としても機能する。生成手段１ｂがポート遮断用情報生成手段としても機能する。送信手段１ｃが、ポート遮断用情報送信手段としても機能する。
【００４９】
また、この機能を実現する場合、生成手段１ｂが、開放要求に含まれるポート番号と、サーバ設定情報１ｄ１に格納されているサーバ装置３ｂのアドレスとに基づいて、開放するポートを管理する管理情報１ｄ２を生成するのが好ましい。この管理情報１ｄ２を生成することにより、開放されているポートの特定を容易なものとすることができる。
【００５０】
さらに、開放要求に処理識別値が含まれている場合は、この処理識別値を含めた管理情報１ｄ２を生成するのが好ましい。処理識別値を含めることにより、処理単位での開放されているポートの特定が可能となり、また、処理単位でのポートの遮断が可能となる。
【００５１】
図１に示す管理情報１ｄ２は、開放要求に含まれる処理識別値「ａｂｃ」と、データ転送用情報１ｂ１の受信アドレスと同じ受信アドレス「アドレスＤ」と、同じ転送先アドレス「アドレスＢ」とを有している。
【００５２】
生成手段１ｂは、管理情報１ｄ２を生成した場合、格納手段１ｄに格納する。
以下、開放されているポートを遮断する処理（遮断処理）を説明する。
図２は、第１の実施の形態のポートの遮断処理を説明する図である。
【００５３】
受信手段１ａは、開放されているポートの遮断要求を受信する。
図２では、一例として、サーバ装置３ｂから遮断要求を受信した場合を示している。
この遮断要求に含まれる情報は、アクセス制御装置１が開放されているポートを特定できれば、その内容は特に限定されないが、例えば、（１）サーバ装置３ｂのアドレス、（２）処理識別値、（３）サーバ装置３ｂのアドレスと処理識別値の組み合わせ等が挙げられる。
【００５４】
上記（１）の場合、アドレス単位で遮断するポートを特定することができる。例えば、開放されているポートが１つであれば、サーバ装置３ｂのアドレスによって開放されているポートを特定することができる。また、上記（２）の場合、一連の処理単位で遮断するポートを特定することができる。これにより、例えば、受信手段１ａが、サーバ装置３ａから処理識別値の異なる複数の開放要求を受信し、ポートを開放している場合であっても遮断するポートを特定することができる。また、上記（３）の場合、アドレスと一連の処理との組み合わせ単位で遮断するポートを特定することができる。これにより、上記（１）、（２）のいずれの場合にも対応することができる。
【００５５】
本実施の形態では、遮断要求には、上記（３）の場合、すなわち、サーバ装置３ｂのアドレス「アドレスＢ」と処理識別値「ａｂｃ」とが含まれている。
サーバ装置３ｂが遮断要求を送信するタイミングとしては特に限定されないが、クライアント装置２の要求に対する処理が完了し、クライアント装置２に対して応答するとともに遮断要求を送信するのが好ましい。これにより、ポートを迅速に遮断することができる。
【００５６】
また、他にも、当該サーバ装置３ｂでの処理が終了したタイミングや、クライアント装置２から転送されたデータを受信してから所定時間経過したタイミング等であってもよい。
【００５７】
生成手段１ｂは、遮断要求に含まれるアドレス「アドレスＢ」と処理識別値「ａｂｃ」とに基づいて、開放されているポートを遮断するポート遮断用情報１ｂ２を生成する。
このポート遮断用情報１ｂ２は、例えば、管理情報１ｄ２を用いて生成することができる。
【００５８】
具体的には、生成手段１ｂは、遮断要求に含まれるアドレス「アドレスＢ」と処理識別値「ａｂｃ」が含まれている管理情報１ｄ２のエントリを取得する。そして、このエントリの受信アドレスを含むポート遮断用情報１ｂ２を生成する。
【００５９】
なお、図１に示す管理情報１ｄ２の場合、遮断要求に含まれるアドレス「アドレスＢ」だけを用いた場合でもポート遮断用情報１ｂ２を生成することができる。また、遮断要求に含まれる処理識別値「ａｂｃ」だけを用いた場合でもポート遮断用情報１ｂ２を生成することができる。
【００６０】
送信手段１ｃは、生成手段１ｂにより生成されたポート遮断用情報１ｂ２を、情報処理装置４に送信する。
これにより、情報処理装置４は、ポート遮断用情報１ｂ２に含まれている受信アドレス「Ｄ」により、開放しているポート番号「Ｄ」を特定し、このポートを遮断する。このように、ポートを遮断することで、ＤｏＳ攻撃を受けにくくし、サーバ装置群３の負荷を軽減する可能性を、より高めることができる。
【００６１】
さらに、アクセス制御装置１が前述したタイミングで遮断要求を受けることで、ポートが開放されている時間を短縮することができる。これによって、よりＤｏＳ攻撃を受けにくくし、サーバ装置群３の負荷を軽減する可能性を、さらに高めることができる。
【００６２】
なお、受信手段１ａ、生成手段１ｂ、送信手段１ｃは、アクセス制御装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、格納手段１ｄは、アクセス制御装置１が有するＲＡＭ（Random Access Memory）やＨＤＤ（ＨＤＤ:Hard Disk Drive）等が備えるデータ記憶領域により実現することができる。
【００６３】
なお、本実施の形態では、異なる処理を異なるサーバが実行する場合を例に説明し、転送先アドレスを異なるサーバとした。
しかし、これに限らず、例えば、異なる処理を同一のサーバが実行するようにしてもよい。この場合、転送先アドレスは、同一のサーバの異なるポート番号となる。
【００６４】
この場合、サーバ装置３ａは、サーバ識別情報にポート番号を加えた処理を識別する情報（以下、「同一サーバ識別情報」と言う）を含む開放要求をアクセス制御装置１に送信する。
【００６５】
そして、アクセス制御装置１は、開放要求に含まれる同一サーバ識別情報に基づいて、転送先アドレスを決定する。
アクセス制御装置１は、例えば、アクセス権の委譲処理に使用することができる。
【００６６】
以下、開示のアクセス制御装置をアクセス権の委譲処理に適用した場合を例に、実施の形態をより具体的に説明する。
＜第２の実施の形態＞
図３は、第２の実施の形態のシステムを示す図である。
【００６７】
システム１０００は、クライアント装置１０と、アプリケーションサーバ２０と、ＤｏＳ対策装置３０と、サービスセンタ４０と、ポート変換設定サーバ（アクセス制御装置）１００とを有している。
【００６８】
クライアント装置１０とアプリケーションサーバ２０とは、ネットワークを介して互いに接続されている。
サービスセンタ４０の前段には、ＤｏＳ対策装置３０が設けられている。
【００６９】
クライアント装置１０とＤｏＳ対策装置３０およびアプリケーションサーバ２０とＤｏＳ対策装置３０は、ネットワークを介して接続されている。
また、ＤｏＳ対策装置３０およびサービスセンタ４０は、ネットワークを介して接続されている。
【００７０】
クライアント装置１０、および、アプリケーションサーバ２０は、ＤｏＳ対策装置３０を介してサービスセンタ４０にアクセスすることができる。
さらに、サービスセンタ４０とＤｏＳ対策装置３０を接続するポート変換設定サーバ１００が設けられている。
【００７１】
なお、サービスセンタ４０には、個人情報等が格納された記憶装置４３ａを有している。この記憶装置４３ａは、ユーザのクレデンシャル（ユーザＩＤ、ユーザパスワード等）を使用したセキュリティにより保護されている。
【００７２】
ここで、クライアント装置１０を操作するユーザが、記憶装置４３ａに格納された個人情報等をアプリケーションサーバ２０が有する（第三者の）アプリケーション２１に使用させたい場合がある。
【００７３】
しかし、ユーザが、記憶装置４３ａに格納された個人情報等を利用する際に、ユーザのクレデンシャルをアプリケーション２１に預けてしまうと、ユーザのセキュリティが犠牲となる。具体的には、アプリケーション２１は、ユーザの許可を取らずに、記憶装置４３ａにアクセスできてしまう。また、記憶装置４３ａにアクセスするユーザパスワードを変更してしまうと、記憶装置４３ａに接続しているアプリケーションの数だけ、ユーザパスワードを変更することになる。
【００７４】
これに対し、システム１０００は、ユーザが有する記憶装置４３ａに対するアクセス権を、ユーザのクレデンシャルを開示せずにアプリケーション２１に委譲することを可能とするシステムである。また、ユーザは、アプリケーション２１に委譲する権限を事前に確認することができる。
【００７５】
以下、各装置の機能を簡単に説明する。
クライアント装置１０は、アプリケーションサーバ２０からのリダイレクト指示を処理できるＷｅｂブラウザを有している。
【００７６】
クライアント装置１０を操作するユーザは、サービスセンタ４０に対しアクセスする権利を有している。
アプリケーションサーバ２０は、アクセス権限移譲先のアプリケーション２１を有するサーバである。アプリケーション２１の種別としては特に限定されないが、例えば、地図データに種々の情報を付加するアプリケーションや、写真データに種々の加工を施すアプリケーション等が挙げられる。
【００７７】
また、アプリケーションサーバ２０は、アクセスライブラリ２２を有している。
アクセスライブラリ２２は、サービスサーバ４３のＡＰＩ（Application Program Interface）が実装されたライブラリである。
【００７８】
サービスサーバ４３のＡＰＩおよびアドレス（例えばＵＲＬ（Uniform Resource Locator）等）は、アプリケーション２１およびユーザに予め公開されている。アプリケーションサーバ２０がアクセスライブラリ２２を組み込むことで、アプリケーション２１はアクセス権を委譲してもらう準備ができる。
【００７９】
ＤｏＳ対策装置３０は、サービスセンタ４０が、ＳＹＮ  Ｆｌｏｏｄｉｎｇ攻撃、ＵＤＰ  Ｆｌｏｏｄｉｎｇ攻撃、Ｐｉｎｇ  Ｆｌｏｏｄｉｎｇ攻撃等のＦｌｏｏｄ攻撃や、リロード攻撃等のＤｏＳ攻撃を受けることを抑制する装置である。
【００８０】
このＤｏＳ対策装置３０は、サービスセンタ４０が有する各サーバ宛のリクエストをパケットレベルで監視する。
また、ＤｏＳ対策装置３０は、複数のポートを有しており、ポート変換設定サーバ１００から通知されたポート番号のポートを開閉する。
【００８１】
また、ＤｏＳ対策装置３０は、ＮＡＰＴ（Network Address Port Translation）機能を有しており、ＤｏＳ対策装置３０とサービスセンタ４０内（組織内）でのみ通用するＩＰアドレス（ローカルアドレス）と、ネットワーク上のアドレス（グローバルアドレス）を透過的に相互変換する。
【００８２】
具体的には、ＤｏＳ対策装置３０は、ポート変換設定サーバ１００から通知により開放したポートにアクセスしたパケットに含まれる宛先アドレスを、予め記憶しておいたサービスセンタ４０内の転送先アドレスに変換し、変換した転送先アドレスにデータを転送する。なお、ここでいう宛先アドレスには、宛先のＩＰアドレスとポート番号の組み合わせが含まれる。また、転送先アドレスとは、転送先のＩＰアドレスとポート番号の組み合わせが含まれる。
【００８３】
以下、単に「アドレス」と言う場合、ＩＰアドレスとポート番号の組み合わせを言う。そして、ＩＰアドレスのみを言う場合は、個別に「ＩＰアドレス」と記載する。
なお、ＤｏＳ対策装置３０は、負荷分散機能、帯域制御・暗号機能、ＵＴＭ（Unified Threat Management）機能等を有していてもよい。
【００８４】
また、ＤｏＳ対策装置３０は、ポート変換設定サーバ１００からの通知に応じて、記憶している宛先アドレスと、この宛先アドレスに対する転送先アドレスを削除する。
サービスセンタ４０は、例えばデータセンタ等に設けられており、複数のサーバを有している。本実施の形態のサービスセンタ４０は、トークンサーバ４１と認証サーバ４２とサービスサーバ４３とを有している。
【００８５】
トークンサーバ４１は、アクセス権の委譲処理に伴いアプリケーションの接続確認にリクエストトークン（ＲＴ）、アクセストークン（ＡＴ）等の各種トークンを発行する。
トークンは、認証サーバ４２とサービスサーバ４３がアプリケーション２１のアクセス権を確認するために利用する一意のキー（ランダムに生成された文字列）である。これらトークンは、発行時には、未承認のトークンである。
【００８６】
ここで、リクエストトークンは、ユーザを認証したことを示す識別子である。アクセストークンは、サービスサーバ４３へのアクセス用のセッション識別子である。
また、トークンサーバ４１は、認証サーバ４２やサービスサーバ４３からトークンの正当性を確認する要求を受信すると、トークンの正当性を確認して、その結果を応答する。
【００８７】
認証サーバ４２は、ユーザの操作によりクライアント装置１０が送信する未承認のリクエストトークンの認証要求に応じて未承認のリクエストトークンを承認する。
詳しくは、認証サーバ４２は、ユーザの操作によりクライアント装置１０が送信する認証要求に応じてユーザＩＤとユーザパスワードを認証することで、ユーザの正当性を確認する。そして正当性が確認できると、未承認のリクエストトークンを承認する。なお、認証方法はユーザＩＤとユーザパスワードを用いた認証方法に限定されない。
【００８８】
サービスサーバ４３は、アクセス権の委譲処理後に、アクセス権が委譲されたアプリケーション２１からのサービスデータの提供要求に応じて、記憶装置４３ａにアクセスし、各種サービスデータを提供する。記憶装置４３ａが有するサービスデータとしては、特に限定されないが、例えば、ユーザが有するスケジュールデータ等が挙げられる。
【００８９】
ポート変換設定サーバ１００は、トークンサーバ４１および認証サーバ４２がクライアント装置１０やアプリケーション２１に通知したポート番号のポートを開放する要求をＤｏＳ対策装置３０に送信する。また、開放したポートにデータアクセスがあったとき、このデータを転送する転送先アドレスをＤｏＳ対策装置３０に送信する。
【００９０】
また、ポート変換設定サーバ１００は、認証サーバ４２から認証終了が通知されたり、サービスサーバ４３からサービスの終了が通知されたりすると、ポートを開放する際に通知したポート番号のポートを遮断する要求をＤｏＳ対策装置３０に送信する。
【００９１】
次に、システム１０００のアクセス権の委譲処理を説明する。
前処理として、アプリケーションサーバ２０は、サービスサーバ４３にアクセスし、アクセスライブラリ２２を予め組み込んでおく。
【００９２】
アクセス権の委譲処理は、認証フェーズと、データアクセスフェーズとに大別することができる。図３では、認証フェーズの処理の流れを実線で示し、データアクセスフェーズの処理の流れを点線で示している。
【００９３】
［シーケンスＳｅｑ１］  アプリケーション２１のサービスを利用するため、クライアント装置１０は、ユーザの操作によりＷｅｂブラウザを介してサービス要求をアプリケーションサーバ２０に送信する。
【００９４】
［シーケンスＳｅｑ２］  アプリケーション２１は、サービスセンタ４０が有するトークンサーバ４１に、リクエストトークン要求を送信する。なお、ＤｏＳ対策装置３０は、リクエストトークン要求に対するポート以外の全てのポートを閉じている。
【００９５】
トークンサーバ４１は、リクエストトークンを発行する。さらに、トークンサーバ４１は、クライアント装置１０が認証サーバ４２にアクセスできるようにＤｏＳ対策装置３０に開放させるポート番号を決定する。
【００９６】
トークンサーバ４１は、決定したポート番号のポートを開放する要求（以下、「ポートオープン要求」と言う）をポート変換設定サーバ１００に送信する。このポートオープン要求には、発行したリクエストトークンのトークン種別、および、トークン値、並びに、決定したポート番号、および、送信元サーバ名が含まれている。
【００９７】
ポート変換設定サーバ１００は、ポートオープン要求に基づいて、開放するＤｏＳ対策装置３０の受信アドレス（ポート番号を含む）を生成し、ＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、受信アドレスにより指定されたポートを開放する。また、ポート変換設定サーバ１００は、開放したポートに対してアクセスがあった場合の転送先アドレス（ポート番号を含む）として、認証サーバ４２のアドレスをＤｏＳ対策装置３０に送信する。なお、紙面の都合上、図３では、ポート変換設定サーバ１００からＤｏＳ対策装置３０へのデータの送信を１本の矢印で示している。
【００９８】
ＤｏＳ対策装置３０は、開放したポートの受信アドレスに認証サーバ４２のアドレスを関連づけて記憶する。
［シーケンスＳｅｑ３］  トークンサーバ４１は、発行したリクエストトークンと決定したポート番号とをメッセージに格納して応答する（ＲＴ応答）。なお、図３中、（ＲＴ）は、送信または応答するメッセージにリクエストトークンが格納されていることを示している。以下においても同様である。また、応答が通過するＤｏＳ対策装置３０のポートは特に限定されない。
【００９９】
［シーケンスＳｅｑ４］  アプリケーション２１は、リクエストトークンを格納した許可要求をクライアント装置１０に送信する。
［シーケンスＳｅｑ５］  ユーザは、クライアント装置１０に組み込まれているＷｅｂブラウザを介して、アプリケーションサーバ２０から許可要求があったことを知る。ユーザの操作により、クライアント装置１０は、ユーザＩＤおよびユーザパスワードを格納し、宛先アドレスを開放したポートとする許可要求を送信する。
【０１００】
ＤｏＳ対策装置３０は、開放されたポートで受信した許可要求の宛先アドレスを、関連づけて記憶しておいた認証サーバ４２のアドレスに変換し、認証サーバ４２に転送する。  認証サーバ４２は、ログインを受け付け、許可要求に含まれるユーザＩＤおよびユーザパスワードを認証する。このとき、認証サーバ４２は、認証成功である場合は、トークンサーバ４１のアクセストークン発行の際のＤｏＳ対策装置３０に開放させるポート番号を決定する。そして、認証サーバ４２は、決定したポートのポートオープン要求をポート変換設定サーバ１００に送信する。
【０１０１】
ポート変換設定サーバ１００は、ポートオープン要求に基づいて、開放するＤｏＳ対策装置３０の受信アドレスを生成し、ＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、受信アドレスにより指定されたポートを開放する。また、ポート変換設定サーバ１００は、開放したポートに対してアクセスがあった場合の転送先アドレスとして、トークンサーバ４１のアドレス（ポート番号を含む）をＤｏＳ対策装置３０に送信する。
【０１０２】
ＤｏＳ対策装置３０は、開放したポートの受信アドレスにトークンサーバ４１のアドレスを関連づけて記憶する。
［シーケンスＳｅｑ６］  認証サーバ４２は、許可要求に対する認証結果（認証成功または認証失敗）を応答する。認証成功である場合は、認証サーバ４２は、認証成功である旨と決定したポート番号とをメッセージに格納して応答する。一方、認証失敗である場合は、認証失敗である旨のみを、メッセージに格納して応答する。なお、応答が通過するＤｏＳ対策装置３０のポートは特に限定されない。
【０１０３】
認証サーバ４２は、許可要求の転送に使用したポートを遮断する要求（以下、「ポートクローズ要求」と言う）をポート変換設定サーバ１００に送信する。ポート変換設定サーバ１００は、認証に使用したポートを特定し、そのポートを遮断するようＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、認証に使用したポートを遮断する。
【０１０４】
ここまでが認証フェーズである。認証失敗の場合、例えば、クライアント装置１０のモニタに認証が失敗である旨が表示されて再度、クライアント装置１０からの認証要求を受け付ける。認証成功の場合、以下に示すデータアクセスフェーズを実行する。
【０１０５】
［シーケンスＳｅｑ７］  認証成功を受信したクライアント装置１０は、ユーザの操作により、許可処理が完了したことをアプリケーションサーバ２０に通知する。
［シーケンスＳｅｑ８］  アプリケーション２１は、リクエストトークンを格納し、宛先アドレスを開放したポートとするアクセストークン交換要求を送信する。
【０１０６】
ＤｏＳ対策装置３０は、開放したポートで受信したアクセストークン交換要求の宛先アドレスを、関連づけて記憶しておいたトークンサーバ４１のアドレスに変換し、トークンサーバ４１に転送する。
【０１０７】
［シーケンスＳｅｑ９］  トークンサーバ４１は、アクセストークン交換要求に対しユーザがアクセス許可設定をしているか否かを認証サーバ４２に問い合わせる。
アクセス許可設定がなされている場合、トークンサーバ４１は、アクセストークンを生成する。さらに、トークンサーバ４１は、サービスサーバ４３のサービス提供の際のＤｏＳ対策装置３０に開放させるポート番号を決定する。そして、トークンサーバ４１は、決定したポートのポートオープン要求をポート変換設定サーバ１００に送信する。このポートオープン要求には、発行したアクセストークンのトークン種別、および、トークン値、並びに、決定したポート番号、および、送信元サーバ名が含まれている。
【０１０８】
ポート変換設定サーバ１００は、ポート開放要求に基づいて、開放するアドレスを生成し、ＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、アドレスにより指定されたポートを開放する。また、ポート変換設定サーバ１００は、開放したポートに対してアクセスがあった場合の転送先のアドレスとして、サービスサーバ４３のアドレスをＤｏＳ対策装置３０に送信する。
【０１０９】
ＤｏＳ対策装置３０は、開放したポートの受信アドレスにサービスサーバ４３のアドレスを関連づけて記憶する。
［シーケンスＳｅｑ１０］  トークンサーバ４１は、生成したアクセストークンと決定したポート番号とをメッセージに格納して応答する（ＡＴ応答）。なお、応答が通過するＤｏＳ対策装置３０のポートは特に限定されない。
【０１１０】
トークンサーバ４１は、アクセストークン交換要求の転送に使用したポートのポートクローズ要求をポート変換設定サーバ１００に送信する。ポート変換設定サーバ１００は、アクセストークン交換要求に使用したポートを特定し、そのポートを遮断するようＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、アクセストークン交換要求の転送に使用したポートを遮断する。
【０１１１】
［シーケンスＳｅｑ１１］  アプリケーション２１はアクセストークンを格納し宛先アドレスを開放したポートとするサービス要求を送信する。
ＤｏＳ対策装置３０は、受信したサービス要求の宛先アドレスを、関連づけて記憶しておいたサービスサーバ４３のアドレスに変換し、サービスサーバ４３に転送する。
【０１１２】
［シーケンスＳｅｑ１２］  サービスサーバ４３は、サービス要求に格納されているアクセストークン（もともとはリクエストトークン）に対し設定されているアクセス権を確認する。
【０１１３】
［シーケンスＳｅｑ１３］  アクセス権が設定されている場合、サービスサーバ４３は、その権限（リソースの種類、期間等）に従って応答する。
［シーケンスＳｅｑ１４］  アプリケーション２１は、必要に応じた処理を行い、クライアント装置１０に処理の結果を応答する。これにより、クライアント装置１０は、アプリケーション２１により処理されたサービスを享受することができる。例えば、アプリケーション２１が地図作成アプリケーションである場合を例に説明する。
【０１１４】
クライアント装置１０は、アプリケーション２１にサービスサーバ４３にアクセスさせて、記憶装置４３ａ内にあるユーザのスケジュールデータを取得させる。そして、アプリケーション２１に、取得させたスケジュールデータと地図の表示とをマッシュアップ（MashUp）させて、推奨訪問経路を作成させ、クライアント装置１０に送信させる。
【０１１５】
なお、図示していないが、サービスサーバ４３は、ＤｏＳ対策装置３０が、サービス要求の転送に使用したポートのポートクローズ要求をポート変換設定サーバ１００に送信することができる。ポート変換設定サーバ１００は、サービス要求に使用したポートを特定し、そのポートを遮断するようＤｏＳ対策装置３０に送信することができる。これにより、ＤｏＳ対策装置３０は、サービス要求の転送に使用したポートを遮断することができる。
【０１１６】
このような処理により、ユーザは、自分のユーザＩＤおよびユーザパスワードをアプリケーション２１に伝えなくても、サービスサーバ４３へのアクセス権をアプリケーション２１に委譲することができる。
【０１１７】
また、ポート変換設定サーバ１００が、トークンサーバ４１および認証サーバ４２がクライアント装置１０やアプリケーション２１に通知したポート番号と同じポート番号のポートをＤｏＳ対策装置３０に開放させるようにした。また、ポート変換設定サーバ１００が、各サーバの転送先アドレスをＤｏＳ対策装置３０に送信し、ＤｏＳ対策装置３０に転送先アドレスへデータを転送させるようにした。
【０１１８】
これにより、サービスセンタ４０が、ポート番号を意識することなく処理を行うことができる。すなわち、サービスセンタ４０側にポート変換機能を配置せずに、ポート番号を動的に変更することができる。従って、容易にセキュリティの強化を図ることができる。また、ポート番号の書き換えに伴うサーバの処理コスト（ＴＣＰソケットのオープン、クローズ等）を軽減し、サービスセンタ４０内のサーバの負荷を低減することができる。
【０１１９】
以下、ポート変換設定サーバ１００の構成と機能を説明する。そして、ポートの開閉に伴うポート変換設定サーバ１００、並びに、トークンサーバ４１、認証サーバ４２、サービスサーバ４３の処理を詳しく説明する。
【０１２０】
図４は、ポート変換設定サーバのハードウェア構成例を示す図である。
ポート変換設定サーバ１００は、ＣＰＵ１１によって装置全体が制御されている。ＣＰＵ１１には、バス１７を介して記憶部１２、グラフィック処理装置１３、入力インタフェース１４、外部補助記憶装置１５および通信インタフェース１６が接続されている。
【０１２１】
記憶部１２は、ＲＡＭ１２ａと、ＨＤＤ（ハードディスクドライブ）１２ｂとを有している。
ＲＡＭ１２ａには、ＣＰＵ１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１２ａには、ＣＰＵ１１による処理に伴う各種データが格納される。ＨＤＤ１２ｂには、ＯＳやアプリケーションプログラムが格納される。また、ＨＤＤ１２ｂ内には、プログラムファイルが格納される。
【０１２２】
グラフィック処理装置１３には、モニタ１３ａが接続されている。グラフィック処理装置１３は、ＣＰＵ１１からの命令に従って、画像をモニタ１３ａの画面に表示させる。入力インタフェース１４には、キーボード１４ａとマウス１４ｂとが接続されている。入力インタフェース１４は、キーボード１４ａやマウス１４ｂから送られてくる信号を、バス１７を介してＣＰＵ１１に送信する。
【０１２３】
外部補助記憶装置１５は、記録媒体に書き込まれた情報を読み取ったり、記録媒体に情報を書き込んだりする。外部補助記憶装置１５で読み書きが可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ブルーレイディスク（Blu-ray Disc）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１２４】
通信インタフェース１６は、ネットワーク５０に接続されている。通信インタフェース１６は、ネットワーク５０を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成のポート変換設定サーバ１００内には、以下のような機能が設けられる。
【０１２５】
図５は、第２の実施の形態のポート変換設定サーバの機能を示すブロック図である。
記憶部１２は、次サーバ設定情報格納部１２１と、ポート管理情報格納部１２２と、エラーログ格納部１２３とを有している。
【０１２６】
次サーバ設定情報格納部１２１には、サーバの種別とトークンの種別に基づいてアクセスさせるサーバの転送先アドレスが予め（事前に設定されて）格納されている。
ポート管理情報格納部１２２には、開放するポートを管理する情報が、一時的に格納される。この情報は、ポート遮断時に用いられる。
【０１２７】
エラーログ格納部１２３には、エラーログが格納される。
ＣＰＵ１１は、通信データ受信部１１１と、通信データ解析部１１２と、ポートオープン処理部１１３と、ポートクローズ処理部１１４と、通信データ送信部１１５としての各機能を実行させる。
【０１２８】
通信データ受信部１１１は、通信インタフェース１６を介してサービスセンタ４０内の各サーバからメッセージを受信する。
通信データ解析部１１２は、通信データ受信部１１１が受信したメッセージに含まれる要求を解析する。そして、当該要求がポートオープン要求である場合は、ポートオープン処理をポートオープン処理部１１３に依頼する。当該要求がポートクローズ要求である場合は、ポートクローズ処理をポートクローズ処理部１１４に依頼する。
【０１２９】
ここで、ポートオープン要求には、送信元であるサーバを識別する情報（本実施の形態では送信元サーバ名）とトークン種別とトークン値とポート番号とが含まれている。また、ポートクローズ要求には、送信元サーバのＩＰアドレスとトークン値とが含まれている。
【０１３０】
ポートオープン処理部１１３は、通信データ解析部１１２からポートオープン処理の依頼を受けると、次サーバ設定情報格納部１２１を参照して転送先アドレスを取得する。なお、転送先アドレスの取得方法については、後述する。
【０１３１】
また、ポートオープン処理部１１３は、取得した転送先アドレスとポートオープン要求に含まれるポート番号とに基づいて、受信アドレスを生成する。そして、ポートオープン処理部１１３は、取得した転送先アドレスと生成された受信アドレスとを含むアドレス変換用データを生成する。このアドレス変換用データの先頭パケットには、アドレス変換用データであることを識別する情報を付加することができる。ポートオープン処理部１１３は、生成したアドレス変換用データを通信データ送信部１１５に送る。
【０１３２】
さらに、ポートオープン処理部１１３は、生成したアドレス変換用データに含まれる受信アドレスおよび転送先アドレスを、受信したトークン値に関連づけてポート管理情報格納部１２２に格納する。
【０１３３】
ポートクローズ処理部１１４は、通信データ解析部１１２からポートクローズ処理の依頼を受けると、ポート管理情報格納部１２２を参照してメッセージに含まれるトークン値に一致するトークン値を有するエントリを取得する。なお、エントリの取得方法については、後述する。
【０１３４】
そして、エントリを取得したポートクローズ処理部１１４は、取得したエントリに含まれている受信アドレスを含むポート遮断用データを生成する。このポート遮断用データの先頭パケットには、ポート遮断用データであることを識別する情報が付加されている。ポートクローズ処理部１１４は、生成したアドレス変換用データを通信データ送信部１１５に送る。
【０１３５】
また、ポートクローズ処理部１１４は、取得したエントリをポート管理情報格納部１２２から削除する。
通信データ送信部１１５は、ポートオープン処理部１１３から送られてくるアドレス変換用データおよびポートクローズ処理部１１４から送られてくるポート遮断用データを、通信インタフェース１６を介してＤｏＳ対策装置３０に送信する。
【０１３６】
次に、次サーバ設定情報格納部１２１に格納されている次サーバ設定情報を説明する。次サーバ設定情報格納部１２１では次サーバ設定情報がテーブル化されて格納されている。
【０１３７】
図６は、次サーバ設定テーブルのデータ構造例を示す図である。
次サーバ設定テーブル１２１ａには、エントリ識別情報、送信元サーバ名、トークン種別、転送先アドレスの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１３８】
エントリ識別情報の欄には、エントリを識別する情報が設定される。図６の例では、１行目のエントリには「Ａ」が設定されている。２行目のエントリには「Ｂ」が設定されている。３行目のエントリには「Ｃ」が設定されている。
【０１３９】
送信元サーバ名の欄には、送信元であるサーバを識別する情報が設定される。なお、この欄の情報は、ポートオープン要求に含まれる送信元サーバ名に対応している。
トークン種別の欄には、ポート変換設定サーバ１００が送信元のサーバから受け取ったトークン種別を識別する情報が設定される。リクエストトークンであれば「ＲＴ」が設定される。アクセストークンであれば「ＡＴ」が設定される。
【０１４０】
転送先アドレスの欄には、クライアント装置１０またはアプリケーションサーバ２０から要求を受け取ったときに、ＤｏＳ対策装置３０に転送させる転送先のサーバのＩＰアドレスとポート番号が設定される。図６の例では、エントリ「Ａ」には、トークンサーバ４１のＩＰアドレス「１０．２５．２０．１」とポート番号「１０」が設定されている。エントリ「Ｂ」には、トークンサーバ４１のＩＰアドレス「１０．２５．２０．２」とポート番号「２０」が設定されている。エントリ「Ｃ」には、認証サーバ４２のＩＰアドレス「１０．２５．２０．３」とポート番号「３０」が設定されている。
【０１４１】
このように送信元のサーバが同じであっても、トークン種別が異なれば、転送先のアドレスが異なっている。
転送先アドレスの欄に設定されるアドレスは、アクセス権の委譲処理の順番に沿ったサーバのアドレスが設定されている。すなわち、図３にて示したように、トークンサーバ４１がリクエストトークンを発行した次の処理は、認証サーバ４２の認証処理となるため、転送先アドレスの欄には、認証サーバ４２のアドレスが設定されている。また、トークンサーバ４１がアクセストークンを発行した次の処理は、サービスサーバ４３のサービスの提供となるため、転送先アドレスの欄には、サービスサーバ４３のアドレスが設定されている。また、認証サーバ４２が認証処理を行った次の処理は、トークンサーバ４１のアクセストークン発行処理となるため、トークンサーバ４１のアドレスが設定されている。
【０１４２】
このように、アクセス委譲処理の流れに沿ってアクセスする転送先アドレスを用意したテーブルを予め設定しておくことで、転送先アドレスを容易に決定することができる。
次に、ポート管理情報格納部１２２に格納されているユーザポート管理情報を説明する。ポート管理情報格納部１２２ではユーザポート管理情報がテーブル化されて格納されている。
【０１４３】
図７は、第２の実施の形態のポート管理テーブルのデータ構造例を示す図である。
ポート管理テーブル１２２ａには、トークン値、受信アドレス、転送先アドレスの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１４４】
トークン値の欄には、受信したトークンのトークン値を識別する情報が格納される。
受信アドレスの欄には、ポートオープン処理において生成された受信アドレスが格納される。
【０１４５】
転送先アドレスの欄には、受信アドレスの欄に格納されているポート番号のポートに対しクライアント装置１０またはアプリケーション２１からアクセスがあったときの転送先のサーバのアドレスが格納される。
【０１４６】
以下、各装置の処理を詳しく説明する。
まず、ポート変換設定サーバ１００の処理（ポート変換設定処理）を説明する。
＜ポート変換設定処理＞
図８は、第２の実施の形態のポート変換設定処理を示すフローチャートである。
【０１４７】
［ステップＳ１］  通信データ受信部１１１は、メッセージを受信する。その後、ステップＳ２に遷移する。
［ステップＳ２］  通信データ解析部１１２は、受信したメッセージがポートオープン要求か否かを判断する。ポートオープン要求であれば（ステップＳ２のＹｅｓ）、ステップＳ３に遷移する。ポートオープン要求ではなければ（ステップＳ２のＮｏ）、ステップＳ１０に遷移する。
【０１４８】
［ステップＳ３］  ポートオープン処理部１１３は、メッセージに含まれている送信元サーバ名、および、トークン種別をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致するエントリの転送先アドレスを取得する。その後、ステップＳ４に遷移する。
【０１４９】
［ステップＳ４］  ポートオープン処理部１１３は、アドレス変換用データを生成する。その後、ステップＳ５に遷移する。
［ステップＳ５］  ポートオープン処理部１１３は、ポート管理テーブル１２２ａを参照し、生成したアドレス変換用データの受信アドレスが重複しているか否かを判断する。重複していない場合は（ステップＳ５のＮｏ）、ステップＳ６に遷移する。重複している場合は（ステップＳ５のＹｅｓ）、ステップＳ９に遷移する。
【０１５０】
［ステップＳ６］  ポートオープン処理部１１３は、受信アドレスが重複していないこと（以下、「重複なし」と言う）を、ポートオープン要求を送信したサーバに応答する。その後、ステップＳ７に遷移する。
【０１５１】
［ステップＳ７］  ポートオープン処理部１１３は、ステップＳ４にて生成したアドレス変換用データに含まれる受信アドレスおよび転送先アドレスを、受信したメッセージに含まれているトークン値に関連づけてポート管理テーブル１２２ａに登録する。その後、ステップＳ８に遷移する。
【０１５２】
［ステップＳ８］  ポートオープン処理部１１３は、通信データ送信部１１５を介してＤｏＳ対策装置３０にアドレス変換用データを送信する。その後、ポート変換設定処理を終了する。
【０１５３】
［ステップＳ９］  ポートオープン処理部１１３は、アドレス重複エラーを、ポートオープン要求を送信したサーバに応答する。その後、ポート変換設定処理を終了する。
なお、ステップＳ６〜ステップＳ８の処理の順番は、特に限定されず、例えば、ステップＳ７の処理をステップＳ６の処理の前に行ってもよい。
【０１５４】
［ステップＳ１０］  通信データ解析部１１２は、受信したメッセージがポートクローズ要求か否かを判断する。ポートクローズ要求であれば（ステップＳ１０のＹｅｓ）、ステップＳ１１に遷移する。ポートクローズ要求ではなければ（ステップＳ１０のＮｏ）、ステップＳ１４に遷移する。
【０１５５】
［ステップＳ１１］  ポートクローズ処理部１１４は、ポート管理テーブル１２２ａを参照し、メッセージに含まれているトークンに一致するトークンを有するエントリを取得する。その後、ステップＳ１２に遷移する。
【０１５６】
［ステップＳ１２］  ポートクローズ処理部１１４は、取得したエントリに含まれている受信アドレスを含むポート遮断用データを生成する。そして、生成したポート遮断用データを、通信データ送信部１１５を介してＤｏＳ対策装置３０に送信する。その後、ステップＳ１３に遷移する。
【０１５７】
［ステップＳ１３］  ポートオープン処理部１１３は、ステップＳ１１にて取得したエントリをポート管理テーブル１２２ａから削除する。その後、ポート変換設定処理を終了する。
【０１５８】
［ステップＳ１４］  通信データ解析部１１２は、受信したメッセージをエラーログとしてエラーログ格納部１２３に格納する。その後、ポート変換設定処理を終了する。
以上で、ポート変換設定処理の説明を終了する。
【０１５９】
＜リクエストトークン発行処理＞
次に、トークンサーバ４１のリクエストトークン発行処理を説明する。
図９は、第２の実施の形態のリクエストトークン発行処理を示すフローチャートである。
【０１６０】
［ステップＳ２１］  トークンサーバ４１は、クライアント装置１０からリクエストトークン要求を受信するとステップＳ２２に遷移する。
［ステップＳ２２］  トークンサーバ４１は、リクエストトークンを発行し、アプリケーション２１に送信する。その後、ステップＳ２３に遷移する。
【０１６１】
［ステップＳ２３］  トークンサーバ４１は、ポート番号をランダムに選択する。その後、ステップＳ２４に遷移する。なお、アドレス重複エラーの場合、すなわち、ステップＳ２５から遷移してきた場合、再度、ポート番号を選択する。この場合の選び方は、特に限定されず、再度ランダムに選択する、前回選択したポート番号に所定値（例えば１）を加算したポート番号を選択する等でもよい。
【０１６２】
［ステップＳ２４］  トークンサーバ４１は、発行したリクエストトークンのトークン種別、トークン値、選択したポート番号、トークンサーバ４１の送信元サーバ名を引数に、ポートオープン要求をポート変換設定サーバ１００に送信する。その後、ポート変換設定サーバ１００からの応答を待機する。ポート変換設定サーバ１００から応答があると、ステップＳ２５に遷移する。
【０１６３】
［ステップＳ２５］  トークンサーバ４１は、ポート変換設定サーバ１００からの応答が、アドレス重複エラーか否かを判断する。アドレス重複エラーである場合（ステップＳ２５のＹｅｓ）、ステップＳ２３に遷移する。一方、アドレス重複エラーではない場合（ステップＳ２５のＮｏ）、ステップＳ２６に遷移する。
【０１６４】
［ステップＳ２６］  トークンサーバ４１は、リクエストトークンと決定したポート番号をメッセージに格納してクライアント装置１０に応答する。その後、処理を終了する。
以上でリクエストトークン発行処理の説明を終了する。
【０１６５】
＜認証処理＞
次に、認証サーバ４２の認証処理を説明する。
図１０は、第２の実施の形態の認証処理を示すフローチャートである。
【０１６６】
［ステップＳ３１］  認証サーバ４２は、クライアント装置１０から認証要求を受信する。その後、ステップＳ３２に遷移する。
［ステップＳ３２］  認証サーバ４２は、認証要求に含まれるリクエストトークンを抽出する。その後、ステップＳ３３に遷移する。
【０１６７】
［ステップＳ３３］  認証サーバ４２は、抽出したリクエストトークンが、トークンサーバが発行したリクエストトークンであるか否かをトークンサーバ４１に問い合わせる。トークンサーバ４１からの応答があればステップＳ３４に遷移する。
【０１６８】
［ステップＳ３４］  認証サーバ４２は、トークンサーバ４１からの応答により、抽出したリクエストトークンが、トークンサーバ４１が発行したリクエストトークンであるか否かを判断する。トークンサーバ４１が発行したリクエストトークンである場合（ステップＳ３４のＹｅｓ）、ステップＳ３５に遷移する。トークンサーバ４１が発行したリクエストトークンではない場合（ステップＳ３４のＮｏ）、ステップＳ４２に遷移する。
【０１６９】
［ステップＳ３５］  認証サーバ４２は、認証要求に含まれるユーザＩＤおよびユーザパスワードが、正当なものか否かを認証する。
［ステップＳ３６］  認証サーバ４２は、認証の結果、正当なユーザＩＤおよびユーザパスワードである場合（ステップＳ３６のＹｅｓ）、ステップＳ３７に遷移する。正当なユーザＩＤおよびユーザパスワードではない場合（ステップＳ３６のＮｏ）、ステップＳ４２に遷移する。
【０１７０】
［ステップＳ３７］  認証サーバ４２は、ポート番号をランダムに選択する。その後、ステップＳ３８に遷移する。なお、アドレス重複エラーの場合、すなわち、ステップＳ３９から遷移してきた場合、再度、ポート番号を選択する。この場合の選び方は、特に限定されず、再度ランダムに選択する、前回選択したポート番号に所定値（例えば１）を加算したポート番号を選択する等でもよい。
【０１７１】
［ステップＳ３８］  認証サーバ４２は、リクエストトークンのトークン種別、トークン値、選択したポート番号、認証サーバ４２の送信元サーバ名を引数に、ポートオープン要求をポート変換設定サーバ１００に送信する。その後、ポート変換設定サーバ１００からの応答を待機する。ポート変換設定サーバ１００から応答があると、ステップＳ３９に遷移する。
【０１７２】
［ステップＳ３９］  認証サーバ４２は、その応答がアドレス重複エラーか否かを判断する。アドレス重複エラーである場合（ステップＳ３９のＹｅｓ）、ステップＳ３７に遷移する。一方、アドレス重複エラーではない場合（ステップＳ３９のＮｏ）、ステップＳ４０に遷移する。
【０１７３】
［ステップＳ４０］  認証サーバ４２は、ポート番号を格納した認証成功を応答する。その後、ステップＳ４１に遷移する。
［ステップＳ４１］  認証サーバ４２は、トークン値、送信元アドレスを引数に、ポートクローズ要求をポート変換設定サーバ１００に送信する。その後、認証処理を終了する。
【０１７４】
［ステップＳ４２］  認証サーバ４２は、認証エラーをクライアント装置１０に応答する。その後、認証処理を終了する。
以上で、認証処理の説明を終了する。
【０１７５】
＜アクセストークン発行処理＞
次に、トークンサーバ４１のアクセストークン発行処理を説明する。
図１１は、第２の実施の形態のアクセストークン発行処理を示すフローチャートである。
【０１７６】
［ステップＳ５１］  トークンサーバ４１は、クライアント装置１０からアクセストークン交換要求を受信する。その後、ステップＳ５２に遷移する。
［ステップＳ５２］  トークンサーバ４１は、受信した要求からリクエストトークンを抽出する。その後、ステップＳ５３に遷移する。
【０１７７】
［ステップＳ５３］  トークンサーバ４１は、抽出したリクエストトークンが、トークンサーバ４１が発行したものか否かを判断する。トークンサーバ４１が発行したものである場合（ステップＳ５３のＹｅｓ）、ステップＳ５４に遷移する。トークンサーバ４１が発行したものではない場合（ステップＳ５３のＮｏ）、ステップＳ６２に遷移する。
【０１７８】
［ステップＳ５４］  トークンサーバ４１は、抽出したリクエストトークンに対しユーザがアクセス許可設定しているか否かを認証サーバ４２に問い合わせる。認証サーバ４２からの応答があれば、ステップＳ５５に遷移する。
【０１７９】
［ステップＳ５５］  トークンサーバ４１は、問い合わせの結果、ユーザがアクセス許可設定しているという通知を受信した場合（ステップＳ５５のＹｅｓ）、ステップＳ５６に遷移する。ユーザがアクセス許可設定していないという通知を受信した場合（ステップＳ５５のＮｏ）、ステップＳ６２に遷移する。
【０１８０】
［ステップＳ５６］  トークンサーバ４１は、アクセストークンを発行し、クライアント装置１０に送信する。その後、ステップＳ５７に遷移する。
［ステップＳ５７］  トークンサーバ４１は、ポート番号をランダムに選択する。その後、ステップＳ５８に遷移する。なお、アドレス重複エラーの場合、すなわち、ステップＳ５９から遷移してきた場合、再度、ポート番号を選択する。この場合の選び方は、特に限定されず、再度ランダムに選択する、前回選択したポート番号に所定値（例えば１）を加算したポート番号を選択する等でもよい。
【０１８１】
［ステップＳ５８］  トークンサーバ４１は、トークン値、ポート番号、送信元サーバ名を引数に、ポートオープン要求をポート変換設定サーバ１００に送信する。その後、ポート変換設定サーバ１００からの応答を待機する。ポート変換設定サーバ１００から応答があると、ステップＳ５９に遷移する。
【０１８２】
［ステップＳ５９］  トークンサーバ４１は、ポート変換設定サーバ１００からの応答がアドレス重複エラーか否かを判断する。アドレス重複エラーである場合（ステップＳ５９のＹｅｓ）、ステップＳ５７に遷移する。一方、アドレス重複エラーではない場合（ステップＳ５９のＮｏ）、ステップＳ６０に遷移する。
【０１８３】
［ステップＳ６０］  トークンサーバ４１は、ポート番号を格納してアクセストークン交換要求に対して応答する。その後、ステップＳ６１に遷移する。
［ステップＳ６１］  トークンサーバ４１は、トークン値、送信元アドレスを引数に、ポートクローズ要求をポート変換設定サーバ１００に送信する。その後、アクセストークン発行処理を終了する。
【０１８４】
［ステップＳ６２］  トークンサーバ４１は、エラーをクライアント装置１０に応答する。その後、アクセストークン発行処理を終了する。
以上で、アクセストークン発行処理の説明を終了する。
【０１８５】
次に、サービスサーバ４３の処理を説明する。
図１２は、サービスサーバの処理を示すフローチャートである。
［ステップＳ７１］  サービスサーバ４３は、アプリケーション２１からサービス要求を受信するとステップＳ７２に遷移する。
【０１８６】
［ステップＳ７２］  サービスサーバ４３は、サービス要求に含まれているアクセストークンを抽出する。その後、ステップＳ７３に遷移する。
［ステップＳ７３］  サービスサーバ４３は、抽出したアクセストークンが、トークンサーバ４１が発行したものか否かをトークンサーバ４１に問い合わせる。
【０１８７】
［ステップＳ７４］  サービスサーバ４３は、トークンサーバ４１からの応答により、抽出したアクセストークンが、トークンサーバ４１が発行したアクセストークンであるか否かを判断する。トークンサーバ４１が発行したアクセストークンである場合（ステップＳ７４のＹｅｓ）、ステップＳ７５に遷移する。トークンサーバ４１が発行したアクセストークンではない場合（ステップＳ７４のＮｏ）、ステップＳ７６に遷移する。
【０１８８】
［ステップＳ７５］  サービスサーバ４３は、サービス処理の結果をアプリケーション２１に応答する。
［ステップＳ７６］  サービスサーバ４３は、エラーをアプリケーション２１に応答する。
【０１８９】
以上でサービスサーバの処理の説明を終了する。
次に、図６に示す次サーバ設定テーブル１２１ａを用いてシステム１０００の全体処理の具体例を説明する。
【０１９０】
図１３、図１５〜図１８は、第２の実施の形態のシステムの処理の具体例を示す図である。なお、図１３、図１５〜図１８では、紙面の都合上、トークンサーバ４１のＩＰアドレスとポート番号の組み合わせ「１０．２５．２０．３：３０」を「ＩＰａ：３０」と表記している。認証サーバ４２のＩＰアドレスとポート番号の組み合わせ「１０．２５．２０．１：１０」を「ＩＰｂ：１０」と表記している。サービスサーバ４３のＩＰアドレスとポート番号の組み合わせ「１０．２５．２０．２：２０」を「ＩＰｃ：２０」と表記している。
【０１９１】
また、受信アドレス「１０．２５．２０．３：２００１１」を「ＩＰａ：２００１１」と表記している。受信アドレス「１０．２５．２０．１：２０００１」を「ＩＰｂ：２０００１」と表記している。受信アドレス「１０．２５．２０．２：２００２１」を「ＩＰｃ：２００２１」と表記している。
【０１９２】
また、本具体例では、アクセス権の委譲処理が開始する前は、ポート管理テーブル１２２ａの各欄は空欄である。
以下、図３にて説明したシーケンスと同じシーケンスには、同じシーケンス番号を附している。また、シーケンス番号の後に付される「ａ」や「ｂ」は、そのシーケンス番号の処理を細分化したシーケンスであることを示している。
【０１９３】
［シーケンスＳｅｑ１］  図１３に示すように、クライアント装置１０は、サービス要求をアプリケーション２１に送信する。
［シーケンスＳｅｑ２］  クライアント装置１０からサービス要求を受信したアプリケーション２１は、リクエストトークン要求をトークンサーバ４１に送信する。
【０１９４】
リクエストトークン要求を受信したトークンサーバ４１は、トークン値「ＲＴ００１」のリクエストトークンを発行し、アプリケーション２１に送信する。次に、トークンサーバ４１は、アプリケーション２１からのアクセスを許可するポート番号をランダムに選択する。本具体例では、「２０００１」とする。
【０１９５】
［シーケンスＳｅｑ２ａ］  トークンサーバ４１は、発行したトークンのトークン種別「ＲＴ」、トークン値「ＲＴ００１」、ポート番号「２０００１」、送信元サーバ名「トークンサーバ」を引数に、ポートオープン要求をポート変換設定サーバ１００に送信する。そして、応答を待機する。
【０１９６】
［シーケンスＳｅｑ２ｂ］  ポートオープン要求を受信したポート変換設定サーバ１００は、メッセージに含まれている送信元サーバ名「トークンサーバ」とトークン種別「ＲＴ」をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして一致する１行目のエントリの転送先アドレス「１０．２５．２０．１：１０」を取得する。
【０１９７】
次に、ポート変換設定サーバ１００は、取得した転送用アドレス「１０．２５．２０．１：１０」と通知されたポート番号「２０００１」より、受信アドレス「１０．２５．２０．１：２０００１」を生成する。そして、受信アドレス「１０．２５．２０．１：２０００１」と転送先アドレス「１０．２５．２０．１：１０」とを含むアドレス変換用データ１５０を生成する。
【０１９８】
そして、ポート変換設定サーバ１００は、ポート管理テーブル１２２ａを参照し、生成した受信アドレスが、既に生成したアドレス変換用データの受信アドレスと重複しているか否かをチェックする。本具体例では各欄は空欄であり重複していないため、ポート変換設定サーバ１００は、アドレス変換用データ１５０をＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、ポート番号「２０００１」のポートＰ１を開放する。また、ＤｏＳ対策装置３０は、受信アドレス「１０．２５．２０．１：２０００１」と転送先アドレス「１０．２５．２０．１：１０」を関連づけて記憶する。ＤｏＳ対策装置３０は、例えば、情報をテーブル化して記憶している。
【０１９９】
図１４は、第２の実施の形態のアドレス変換テーブルのデータ構造例を示す図である。
ＤｏＳ対策装置３０が有するアドレス変換テーブル３０ａには、受信アドレス、転送先アドレスの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０２００】
受信アドレスの欄には、アドレス変換用データに含まれる受信アドレスが格納される。
転送先アドレスの欄には、アドレス変換用データに含まれる転送先アドレスが格納される。
【０２０１】
再び図１３に戻って説明する。
また、ポート変換設定サーバ１００は、受信アドレス「１０．２５．２０．１：２０００１」と転送先アドレス「１０．２５．２０．１：１０」をトークン値「ＲＴ００１」に関連づけたエントリをポート管理テーブル１２２ａに設定する。
【０２０２】
また、ポート変換設定サーバ１００は、「重複なし」をトークンサーバ４１に応答する。
［シーケンスＳｅｑ３］  応答を取得したトークンサーバ４１は、応答がアドレス重複エラーでないため、リクエストトークンのトークン値「ＲＴ００１」と、ポート番号「２０００１」を応答メッセージに格納してアプリケーション２１に応答する。
【０２０３】
［シーケンスＳｅｑ４］  応答を受信したアプリケーション２１は、受信したリクエストトークンのトークン値「ＲＴ００１」とポート番号「２０００１」を格納した許可要求をクライアント装置１０に送信する。
【０２０４】
［シーケンスＳｅｑ５］  クライアント装置１０は、アクセス許可設定のため、指定されたポート番号「２０００１」のアドレス「１０．２５．２０．１：２０００１」宛にパケットを送信する。このパケットには、リクエストトークンのトークン値「ＲＴ００１」とユーザＩＤとユーザパスワードとが格納されている。
【０２０５】
［シーケンスＳｅｑ５ａ］  このデータをポート番号「２０００１」で受信したＤｏＳ対策装置３０は、アドレス変換テーブル３０ａを参照する。そして、受信したパケットの宛先アドレス「１０．２５．２０．１：２０００１」を、関連づけて格納されている転送先アドレス「１０．２５．２０．１：１０」に変換して転送する。この結果、パケットは、認証サーバ４２にて受信される。
【０２０６】
［シーケンスＳｅｑ５ｂ］  図１５に示すように、認証サーバ４２は、受信したパケットからリクエストトークンのトークン値「ＲＴ００１」を抽出し、トークンサーバ４１が発行したものか否かをトークンサーバ４１に問い合わせる。本具体例では、シーケンスＳｅｑ２にてトークンサーバ４１が発行したものであるため、次に進む。
【０２０７】
次に、認証サーバ４２は、ユーザＩＤとユーザパスワードの認証を行う。本具体例では、正しいユーザであるため、ポート番号をランダムに選択する。本具体例では、「２００１１」を選択する。
【０２０８】
［シーケンスＳｅｑ５ｃ］  さらに、認証サーバ４２は、トークン種別「ＲＴ」、トークン値「ＲＴ００１」、ポート番号「２００１１」、送信元サーバ名「認証サーバ」を引数に、ポートオープン要求をポート変換設定サーバ１００に送信し、応答を待機する。
【０２０９】
［シーケンスＳｅｑ５ｄ］  ポートオープン要求を受信したポート変換設定サーバ１００は、送信元サーバ名「認証サーバ」とトークン種別「ＲＴ」をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致する３行目のエントリの転送先アドレス「１０．２５．２０．３：３０」を取得する。
【０２１０】
次に、転送先アドレス「１０．２５．２０．３：３０」と通知されたポート番号「２００１１」より、受信アドレス「１０．２５．２０．３：２００１１」を生成する。そして、受信アドレス「１０．２５．２０．３：２００１１」と転送先アドレス「１０．２５．２０．３：３０」とを含むアドレス変換用データ１５１を生成する。
【０２１１】
そして、ポート変換設定サーバ１００は、ポート管理テーブル１２２ａを参照して、生成した受信アドレスが、既に生成した受信アドレスに重複しているか否かをチェックする。
【０２１２】
本具体例では重複していないため、ポート変換設定サーバ１００は、アドレス変換用データ１５１をＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、ポート番号「２００１１」のポートＰ２を開放する。また、ＤｏＳ対策装置３０は、受信アドレス「１０．２５．２０．３：２００１１」と転送先アドレス「１０．２５．２０．３：３０」を関連づけてアドレス変換テーブル３０ａに記憶する。
【０２１３】
また、ポート変換設定サーバ１００は、受信アドレス「１０．２５．２０．３：２００１１」と転送先アドレス「１０．２５．２０．３：３０」をトークン値「ＲＴ００１」に関連づけたエントリをポート管理テーブル１２２ａに設定する。また、認証サーバ４２に「重複なし」を応答する。
【０２１４】
［シーケンスＳｅｑ６］  応答を取得した認証サーバ４２は、応答がアドレス重複エラーでないため、認証サーバ４２により認証されたリクエストトークンのトークン値「ＲＴ００１」と、ポート番号「２００１１」を格納した認証成功をクライアント装置１０に応答する。
【０２１５】
［シーケンスＳｅｑ６ａ］  クライアント装置１０への応答後、図１６に示すように、認証サーバ４２は、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．１：１０」を引数に、ポートクローズ要求を、ポート変換設定サーバ１００に送信する。
【０２１６】
［シーケンスＳｅｑ６ｂ］  ポートクローズ要求を受信したポート変換設定サーバ１００は、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．１：１０」をキーワードにして、キーワードに一致するポート管理テーブル１２２ａのエントリを検索する。そして一致する１行目のエントリを取得する。
【０２１７】
そして、ポート変換設定サーバ１００は、受信アドレス「１０．２５．２０．１：２０００１」を有するポート遮断用データ１５２を生成する。そして、生成したポート遮断用データをＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、ポート番号「２０００１」のポートＰ１を遮断する。また、ポート変換設定サーバ１００は、１行目のエントリを削除する。
【０２１８】
［シーケンスＳｅｑ７］  認証成功を受信したクライアント装置１０は、トークン値「ＲＴ００１」とポート番号「２００１１」を引数に許可完了をアプリケーション２１に応答する。
【０２１９】
［シーケンスＳｅｑ８］  応答を受信したアプリケーション２１は、指定されたポート番号「２００１１」のアドレス「１０．２５．２０．３：２００１１」宛に、トークン値「ＲＴ００１」を格納したアクセストークン交換要求を送信する。
【０２２０】
［シーケンスＳｅｑ８ａ］  アクセストークン交換要求をポート番号「２００１１」で受信したＤｏＳ対策装置３０は、アドレス変換テーブル３０ａを参照する。そして、受信したパケットの宛先アドレス「１０．２５．２０．３：２００１１」を、関連づけて格納されている転送先アドレス「１０．２５．２０．３：３０」に変換して転送する。この結果、パケットは、トークンサーバ４１にて受信される。
【０２２１】
アクセストークン交換要求を受信したトークンサーバ４１は、要求メッセージからリクエストトークンのトークン値「ＲＴ００１」を抽出し、トークンサーバ４１が発行したものか否かをチェックする。本具体例では、シーケンスＳｅｑ２にてトークンサーバ４１が発行したものであるので次に進む。
【０２２２】
［シーケンスＳｅｑ９］  図１７に示すように、トークンサーバ４１は、トークン値「ＲＴ００１」のリクエストトークンに対し、ユーザがアクセス許可設定をしているか否かを認証サーバ４２に問い合わせる。本具体例では、アクセス許可設定がされているため次に進む。
【０２２３】
［シーケンスＳｅｑ９ａ］  次に、トークンサーバ４１は、トークン値「ＡＴ００１」のアクセストークンを発行し、クライアント装置１０に送信する。そして、トークンサーバ４１は、ポート番号をランダムに選択する。本具体例では、「２００２１」を選択する。さらにトークンサーバ４１は、トークン種別「ＡＴ」、トークン値「ＡＴ００１」、ポート番号「２００２１」、送信元サーバ名「トークンサーバ」を引数に、ポートオープン要求をポート変換設定サーバ１００に送信し、応答を待機する。
【０２２４】
［シーケンスＳｅｑ９ｂ］  ポートオープン要求を受信したポート変換設定サーバ１００は、送信元サーバ名「トークンサーバ」とトークン種別「ＡＴ」をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして一致する２行目のエントリの転送先アドレス「１０．２５．２０．２：２０」を取得する。
【０２２５】
次に、転送先アドレス「１０．２５．２０．２：２０」と通知されたポート番号「２００２１」より、受信アドレス「１０．２５．２０．２：２００２１」、転送先アドレス「１０．２５．２０．２：２０」とを含むアドレス変換用データ１５３を生成する。そして、ポート管理テーブル１２２ａを参照し、受信アドレスが重複しているか否かチェックする。
【０２２６】
本具体例では、重複していないので、生成したアドレス変換用データ１５３をＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、ポート番号「２００２１」のポートＰ３を開放する。また、ＤｏＳ対策装置３０は、受信アドレス「１０．２５．２０．２：２００２１」と転送先アドレス「１０．２５．２０．２：２０」を関連づけてアドレス変換テーブル３０ａに記憶する。
【０２２７】
また、ポート変換設定サーバ１００は、受信アドレス「１０．２５．２０．２：２００２１」と転送先アドレス「１０．２５．２０．２：２０」をトークン値「ＡＴ００１」に関連づけたエントリを、ポート管理テーブル１２２ａに設定する。
【０２２８】
また、ポート変換設定サーバ１００は、「重複なし」をトークンサーバ４１に応答する。
［シーケンスＳｅｑ１０］  応答を取得したトークンサーバ４１は、応答がアドレス重複エラーでないため、トークン値「ＡＴ００１」のアクセストークンと、ポート番号「２００２１」を応答メッセージに格納してアプリケーション２１に応答する。
【０２２９】
［シーケンスＳｅｑ１０ａ］  クライアント装置１０への応答後、図１８に示すように、トークンサーバ４１は、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．３：３０」を引数に、ポートクローズ要求を、ポート変換設定サーバ１００に送信する。
【０２３０】
［シーケンスＳｅｑ１０ｂ］  ポートクローズ要求を受信したポート変換設定サーバ１００は、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．３：３０」をキーワードにして、キーワードに一致するポート管理テーブル１２２ａのエントリを検索する。そして一致する１行目のエントリを取得する。
【０２３１】
ポート変換設定サーバ１００は、受信アドレス「１０．２５．２０．３：２００１１」を有するポート遮断用データ１５４を生成する。
そして、ポート変換設定サーバ１００は、このポート遮断用データ１５４をＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、ポート番号「２００１１」のポートＰ２を遮断する。また、ポート変換設定サーバ１００は、１行目のエントリを削除する。
【０２３２】
［シーケンスＳｅｑ１１］  トークン値「ＡＴ００１」のアクセストークンを取得したアプリケーション２１は、指定されたポート番号「２００２１」のアドレス「１０．２５．２０．２：２００２１」宛にサービス要求を送信する。
【０２３３】
［シーケンスＳｅｑ１１ａ］  このデータをポート番号「２００２１」で受信したＤｏＳ対策装置３０は、アドレス変換テーブル３０ａを参照する。そして、受信したパケットのアドレス「１０．２５．２０．２：２００２１」を、関連づけて格納されている転送先アドレス「１０．２５．２０．２：２０」に変換して転送する。この結果、パケットは、サービスサーバ４３にて受信される。
【０２３４】
［シーケンスＳｅｑ１２］  サービスサーバ４３は、サービス要求からアクセストークンを抽出する。そして、抽出したアクセストークンが、トークンサーバ４１が発行したものか否かをトークンサーバ４１に問い合わせる。本具体例では、シーケンスＳｅｑ９ａにてトークンサーバ４１が発行したものであるため次に進む。
【０２３５】
［シーケンスＳｅｑ１３］  サービスサーバ４３は、サービス要求に対応するサービス処理を行い、サービス結果をアプリケーション２１に応答する。
［シーケンスＳｅｑ１４］  アプリケーション２１は、必要に応じた処理を行い、クライアント装置１０に処理の結果を応答する。
【０２３６】
なお、以下、説明を省略するが、サービス終了時においても、サービス処理に使用したポートＰ３を遮断する処理を行う。この処理は、前述した方法と同様の方法で行うことができる。
【０２３７】
以上で、具体例の説明を終了する。
以上述べたように、本実施の形態のシステム１０００によれば、トークンサーバ４１および認証サーバ４２が、ポートオープン要求をポート変換設定サーバ１００に送信するようにした。そして、ポート変換設定サーバ１００が、アドレス変換用データを生成し、ＤｏＳ対策装置３０に送信するようにした。そして、ＤｏＳ対策装置３０が、アドレス変換用データに含まれる受信アドレスのポートを開放するようにした。
【０２３８】
これにより、サービスセンタ４０側にポート変換機能を配置せずに、ポート番号を動的に変更することができる。従って、ポート番号の書き換えに伴うサービスセンタ４０内のサーバの処理コスト（ＴＣＰソケットのオープン、クローズ等）を軽減することができる。また、サービスセンタ４０側にポート変換機能を配置することが困難な場合であっても容易にサービスセンタ４０のセキュリティの強化を図ることができる。
【０２３９】
また、ポート番号を動的に変更することで、悪意のあるアプリケーションによる開放したポートの特定を困難なものとすることができる。これにより、開放するポートに対する攻撃を回避し、ＤｏＳ攻撃によりサービスが提供できなくなったり、システムがダウンしたりしてしまうことを抑制することができる。
【０２４０】
また、ポート変換設定サーバ１００が、ポート番号に加え、トークン種別とトークン値とを含むポートオープン要求を受信するようにした。これにより、ポート変換設定サーバ１００は、トークン種別に応じて適切な転送先のサーバを判断することができる。
【０２４１】
また、ポート変換設定サーバ１００が、次サーバ設定テーブル１２１ａを有するようにした。これにより、転送先のサーバを容易に決定することができる。
また、ポート変換設定サーバ１００が、ポートオープン要求受信時にポート管理テーブル１２２ａのエントリを生成するようにした。これにより、ポートクローズ要求受信時に、遮断するポートを容易に決定することができる。
【０２４２】
そして、ポートクローズ要求に応じて、ポート管理テーブル１２２ａを参照し、ポート遮断用データを生成し、送信するようにした。これにより、ＤｏＳ対策装置３０は、開放したポートを遮断することができる。
【０２４３】
さらに、アクセス権委譲のシーケンスに従ってポートの開放、遮断を行い、ポートを開いている時間を短縮するようにした。具体的には、処理を完了したサーバが、処理が完了した時点でポートクローズ要求をポート変換設定サーバ１００に送信するようにした。すなわち、認証要求に対し認証成功、失敗を応答した時点、または、アクセストークン交換要求に対し応答した時点でポートクローズ要求をポート変換設定サーバ１００に送信するようにした。
【０２４４】
そして、ポート変換設定サーバ１００が、当該処理に使用したポートを遮断するポート遮断用データをＤｏＳ対策装置に送信するようにした。そして、ＤｏＳ対策装置３０が、ポート遮断用データに含まれるポート番号のポートを遮断するようにした。
【０２４５】
これにより、開放したポートに対する攻撃を回避し、ＤｏＳ攻撃によりサービスが提供できなくなったり、システムがダウンしたりしてしまうことを抑制することができる。
また、ポート変換設定サーバ１００は、ポート番号に加え、トークン値をも含むポートクローズ要求を受信するようにした。これにより、トークン単位（処理単位）でのポートの遮断が可能となる。
【０２４６】
具体的には、システム１０００が、アプリケーション２１以外のアプリケーションを有しており、ユーザが、このアプリケーションにもアクセス権の委譲処理を行う場合を考える。
【０２４７】
この場合、トークンサーバ４１が、リクエストトークン発行処理を複数回行い、ポート変換設定サーバ１００は、ポートオープン要求を複数回受信することになる。
要求に従ってポート変換設定サーバ１００が前述した処理を行った結果、図７に示すポート管理テーブル１２２ａのように、受信アドレスおよび転送先アドレスが同じでトークン値が異なるエントリが複数登録される。このような場合においてポートクローズ要求を受信した場合でも、ポート変換設定サーバ１００は、ポート管理テーブル１２２ａに格納したトークン値に基づいて遮断するポートを判断することができる。このように、ポート変換設定サーバ１００は、複数のクライアント装置や複数のアプリケーションからの複数のポートオープン要求や複数のポートクローズ要求に応じて、ＤｏＳ対策装置３０のポートを開閉することができる。
【０２４８】
＜第３の実施の形態＞
次に、第３の実施の形態のシステムについて説明する。
以下、第３の実施の形態のシステムについて、前述した第２の実施の形態のシステム１０００との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０２４９】
第３の実施の形態のシステムは、次にアクセスするサーバのポート番号を、ポート変換設定サーバが決定する点が、第２の実施の形態と異なっている。
図１９は、第３の実施の形態のポート変換設定サーバの機能を示すブロック図である。
【０２５０】
第３の実施の形態のポート変換設定サーバ１００ａは、さらに、ポート番号選択部１１６を有している。
通信データ解析部１１２は、通信データ受信部１１１が受信したメッセージに含まれる要求を解析する。そして、当該要求が、ポート番号通知要求である場合は、ポート番号の選択処理をポート番号選択部１１６に依頼する。
【０２５１】
ポート番号選択部１１６は、ポート番号の選択処理の依頼を受けると、受信したメッセージに含まれる送信元サーバ名、トークン種別をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致するエントリの転送先アドレスを取得する。
【０２５２】
また、ポート番号選択部１１６は、ポート番号を選択する。転送先アドレスと選択したポート番号とに基づいて、受信アドレスを生成する。そして、生成した受信アドレスをキーワードにして、キーワードに一致するポート管理テーブル１２２ａのエントリを検索する。そして一致するエントリが存在すれば、再度ポート番号の選択をやり直す。一致するエントリが存在しなければ、選択したポート番号を通信データ送信部１１５に送る。
【０２５３】
通信データ送信部１１５は、ポート番号選択部１１６からポート番号を受け取ると、ポート番号通知要求元のサーバに送信する。
次に、第３の実施の形態のポート変換設定処理を説明する。
【０２５４】
図２０は、第３の実施の形態のポート変換設定処理を示すフローチャートである。
［ステップＳ１０］  通信データ解析部１１２は、受信したメッセージがポートクローズ要求か否かを判断する。ポートクローズ要求であれば（ステップＳ１０のＹｅｓ）、ステップＳ１１に遷移する。ポートクローズ要求ではなければ（ステップＳ１０のＮｏ）、ステップＳ１０ａに遷移する。
【０２５５】
［ステップＳ１０ａ］  通信データ解析部１１２は、受信したメッセージがポート番号通知要求か否かを判断する。ポート番号通知要求であれば（ステップＳ１０ａのＹｅｓ）、ステップＳ１０ｂに遷移する。ポート番号通知要求でなければ（ステップＳ１０ａのＮｏ）、ステップＳ１４に遷移する。
【０２５６】
［ステップＳ１０ｂ］  ポート番号選択部１１６は、受信したメッセージに含まれる送信元サーバ名、トークン種別をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致するエントリの転送先アドレスを取得する。その後、ステップＳ１０ｃに遷移する。
【０２５７】
［ステップＳ１０ｃ］  ポート番号選択部１１６は、ポート番号をランダムに選択する。その後、ステップＳ１０ｄに遷移する。なお、ステップＳ１０ｅから遷移してきた場合、再度、ポート番号を選択する。この場合の選び方は、特に限定されず、再度ランダムに選択する、前回選択したポート番号に所定値（例えば１）を加算したポート番号を選択する等でもよい。
【０２５８】
［ステップＳ１０ｄ］  ポート番号選択部１１６は、転送先アドレスと選択したポート番号とに基づいて、受信アドレスを生成する。そして、生成した受信アドレスをキーワードにして、キーワードに一致するポート管理テーブル１２２ａのエントリを検索する。
【０２５９】
［ステップＳ１０ｅ］  ポート番号選択部１１６は、キーワードに一致する受信アドレスが存在するか否かを判断する。一致する受信アドレスが存在する場合（ステップＳ１０ｅのＹｅｓ）、ステップＳ１０ｃに遷移する。一致する受信アドレスが存在しない場合（ステップＳ１０ｅのＮｏ）、ステップＳ１０ｆに遷移する。
【０２６０】
［ステップＳ１０ｆ］  ポート番号選択部１１６は、ステップＳ１０ｃにて選択したポート番号を、通信データ送信部１１５に送る。通信データ送信部１１５は、ポート番号選択部１１６からポート番号を受け取ると、ポート番号通知要求元のサーバに応答する。その後、ポート変換設定処理を終了する。
【０２６１】
以上で、第３の実施の形態のポート変換設定処理の説明を終了する。
次に、第３の実施の形態のリクエストトークン発行処理を説明する。
図２１は、第３の実施の形態のリクエストトークン発行処理を説明するフローチャートである。
【０２６２】
［ステップＳ２２］  トークンサーバ４１は、リクエストトークンを発行し、アプリケーション２１に送信する。その後、ステップＳ２２ａに遷移する。
［ステップＳ２２ａ］  トークンサーバ４１は、ポート番号通知要求をポート変換設定サーバ１００ａに送信する。ポート変換設定サーバ１００ａから応答があると、ステップＳ２４ａに遷移する。
【０２６３】
［ステップＳ２４ａ］  トークンサーバ４１は、応答メッセージに含まれるポート番号および発行したリクエストトークンのトークン種別、トークン値、トークンサーバ４１の送信元サーバ名を引数に、ポートオープン要求をポート変換設定サーバ１００ａに送信する。その後、ポート変換設定サーバ１００ａからの応答を待機する。ポート変換設定サーバ１００ａから応答があると、ステップＳ２６に遷移する。
【０２６４】
以上で第３の実施の形態のリクエストトークン発行処理の説明を終了する。
次に、第３の実施の形態の認証サーバ４２の認証処理を説明する。
図２２は、第３の実施の形態の認証処理を示すフローチャートである。
【０２６５】
［ステップＳ３６］  認証サーバ４２は、認証の結果、正当なユーザＩＤおよびユーザパスワードである場合（ステップＳ３６のＹｅｓ）、ステップＳ３７ａに遷移する。正当なユーザＩＤおよびユーザパスワードではない場合（ステップＳ３６のＮｏ）、ステップＳ４２に遷移する。
【０２６６】
［ステップＳ３７ａ］  認証サーバ４２は、ポート番号通知要求をポート変換設定サーバ１００に送信する。その後、ポート変換設定サーバ１００ａから応答があると、ステップＳ３８ａに遷移する。
【０２６７】
［ステップＳ３８ａ］  認証サーバ４２は、応答メッセージに含まれるポート番号およびリクエストトークンのトークン種別、トークン値、認証サーバ４２の送信元サーバ名を引数に、ポートオープン要求をポート変換設定サーバ１００ａに送信する。その後、メッセージの応答を待機する。ポート変換設定サーバ１００ａから応答があると、ステップＳ４０に遷移する。
【０２６８】
以上で、第３の実施の形態の認証処理の説明を終了する。
次に、第３の実施の形態のアクセストークン発行処理を説明する。
図２３は、第３の実施の形態のアクセストークン発行処理を示すフローチャートである。
【０２６９】
［ステップＳ５６］  トークンサーバ４１は、アクセストークンを発行し、クライアント装置１０に送信する。その後、ステップＳ５７ａに遷移する。
［ステップＳ５７ａ］  トークンサーバ４１は、ポート番号通知要求をポート変換設定サーバ１００に送信する。その後、ポート変換設定サーバ１００ａから応答があると、ステップＳ５８ａに遷移する。
【０２７０】
［ステップＳ５８ａ］  トークンサーバ４１は、応答メッセージに含まれるポート番号、および、アクセストークンのトークン種別、トークン値、トークンサーバ４１の送信元サーバ名を引数に、ポートオープン要求をポート変換設定サーバ１００ａに送信する。その後、メッセージの応答を待機する。ポート変換設定サーバ１００ａから応答があると、ステップＳ６０に遷移する。
【０２７１】
以上で、第３の実施の形態のアクセストークン発行処理の説明を終了する。
次に、第３の実施の形態のシステムの全体処理の具体例を説明する。
以下、第２の実施の形態と異なる部分を中心に説明し、同様の部分は説明を省略する。
【０２７２】
［シーケンスＳｅｑ２］  クライアント装置１０からサービス要求を受信したアプリケーション２１は、リクエストトークン要求をトークンサーバ４１に送信する。
リクエストトークン要求を受信したトークンサーバ４１は、トークン値「ＲＴ００１」のリクエストトークンを発行し、アプリケーション２１に送信する。
【０２７３】
次に、トークンサーバ４１は、トークン種別「ＲＴ」、送信元サーバ名「トークンサーバ」を引数にポート番号をポート変換設定サーバ１００に要求する。
ポート番号通知要求を受信したポート変換設定サーバ１００は、トークン種別「ＲＴ」、送信元サーバ名「トークンサーバ」をキーワードに、次サーバ設定テーブル１２１ａを検索し、転送先アドレス「１０．２５．２０．１：１０」を取得する。
【０２７４】
次に、ポート番号をランダムに選択する。本具体例では、ポート番号「２０００１」を選択する。転送先アドレスとポート番号で受信アドレス「１０．２５．２０．１：２０００１」を生成する。そして、ポート管理テーブル１２２ａを参照し、生成した受信アドレスに一致する受信アドレスが存在するか否かを確認する。一致するものが無ければ、選択したポート番号「２０００１」を応答する。
【０２７５】
応答を受信したトークンサーバ４１は、トークン種別「ＲＴ」、トークン値「ＲＴ００１」、ポート番号「２０００１」、送信元サーバ名「トークンサーバ」を引数に、ポートオープン要求をポート変換設定サーバ１００に送信し、応答を待機する。
【０２７６】
以降、認証サーバ４２、および、トークンサーバ４１が、ポート番号通知要求をポート変換設定サーバ１００に送信する処理以外は、第２の実施の形態のシステム１０００と同じである。
【０２７７】
この第３の実施の形態のシステムによれば、第２の実施の形態のシステム１０００と同様の効果が得られる。
そして、第３の実施の形態のシステムによれば、ポート変換設定サーバ１００がポート番号を決定するようにしたので、リクエストトークン発行処理、認証処理、アクセストークン発行処理においてポート番号が重複したときの処理が不要となり、さらに、処理の簡略化を図ることができる。
【０２７８】
＜第４の実施の形態＞
次に、第４の実施の形態のシステムについて説明する。
以下、第４の実施の形態のシステムについて、前述した第３の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
【０２７９】
図２４は、第４の実施の形態のポート変換設定サーバの機能を示すブロック図である。
第４の実施の形態のシステムは、ポート変換設定サーバ１００ｂが、各サーバからのポート番号通知要求を受信した際に、以降のシーケンスで開放するポート番号を予め選択し、開放しておく点が第３の実施の形態のシステムと異なっている。
【０２８０】
このポート番号通知要求は、トークンサーバ４１が、リクエストトークン発行処理時にポート変換設定サーバ１００ｂに送信する。そして、認証処理時およびアクセストークン発行処理時には、ポートは既に開放されているため、開放しているポート番号を問い合わせる処理を行う。
【０２８１】
説明を補足すると、認証処理時およびアクセストークン発行処理時には、認証サーバ４２およびトークンサーバ４１は、ポートオープン要求をポート変換設定サーバ１００ｂに送信しない。
【０２８２】
ポート変換設定サーバ１００ｂは、ポートオープン処理部１１３ａとポート番号選択部１１６ａとを有している。
本実施の形態のポートオープン処理部１１３ａは、ポートオープン処理の依頼を受けると、次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致するエントリの全ての転送先アドレスを取得する。
【０２８３】
また、ポートオープン処理部１１３ａは、ポート番号選択部１１６ａにポート番号の選択を依頼する。そして、選択されたポート番号と取得した転送先アドレスとに基づいて、受信アドレスを生成する。そして、ポートオープン処理部１１３ａは、取得した転送先アドレスと生成された受信アドレスとを含むアドレス変換用データを生成する。
【０２８４】
また、ポートオープン処理部１１３ａは、生成した全てのアドレス変換用データに含まれる受信アドレスおよび転送先アドレスを、受信したトークンに関連づけてポート管理テーブル１２２ａに格納する。
【０２８５】
さらに、ポートオープン処理部１１３ａは、ポート番号をトークンサーバ４１に応答する。具体的には、ポートオープン要求に含まれるトークン種別、送信元サーバ名をキーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして一致するエントリの転送先アドレスを取得する。次に、ポート管理テーブル１２２ａを参照し、転送先アドレスに対する受信アドレスのポート番号をトークンサーバ４１に応答する。
【０２８６】
ポート番号選択部１１６ａは、ポートオープン処理部１１３ａからポート番号の選択処理の依頼を受けると、ポート番号をランダムに選択する。そして、選択したポート番号をポートオープン処理部１１３ａに通知する。
【０２８７】
また、ポート番号選択部１１６ａは、通信データ解析部１１２からポート番号の選択処理の依頼を受けると、受信したメッセージに含まれる送信元サーバ名、トークン種別をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致するエントリの転送先アドレスを取得する。そして、ポート番号選択部１１６ａは、取得した転送先アドレスをキーワードにして、ポート管理テーブル１２２ａのエントリを検索する。そして、一致するエントリの受信アドレスのポート番号を通信データ送信部１１５に送る。
【０２８８】
通信データ送信部１１５は、ポート番号選択部１１６ａからポート番号を受け取ると、ポート番号通知要求元のサーバに送信する。
図２５は、第４の実施の形態のポート変換設定処理を示すフローチャートである。
【０２８９】
第４の実施の形態のポート変換設定処理は、ポートオープン要求を受信したときの処理と、ポート番号通知要求を受信したときの処理が異なっている。以下順番に説明する。
［ステップＳ２］  通信データ解析部１１２は、受信したメッセージがポートオープン要求か否かを判断する。ポートオープン要求であれば（ステップＳ２のＹｅｓ）、ステップＳ３ａに遷移する。ポートオープン要求ではなければ（ステップＳ２のＮｏ）、ステップＳ１０に遷移する。
【０２９０】
［ステップＳ３ａ］  ポートオープン処理部１１３ａは、次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致するエントリの全ての転送先アドレスを取得する。その後、ステップＳ４ａに遷移する。
【０２９１】
［ステップＳ４ａ］  ポートオープン処理部１１３ａは、取得した全ての転送先アドレスに対するアドレス変換用データを生成する。その後、ステップＳ７ａに遷移する。
［ステップＳ７ａ］  ポートオープン処理部１１３ａは、ステップＳ４ａにて生成した全てのアドレス変換用データに含まれる受信アドレスおよび転送先アドレスを、受信したトークンに関連づけてポート管理テーブル１２２ａに格納する。その後、ステップＳ８ａに遷移する。
【０２９２】
［ステップＳ８ａ］  ポートオープン処理部１１３ａは、通信データ送信部１１５を介してＤｏＳ対策装置３０に全てのアドレス変換用データを送信する。これにより、ＤｏＳ対策装置３０は、通知された全てのアドレス変換用データに含まれる受信アドレスのポートを開放する。その後、ステップＳ８ｂに遷移する。
【０２９３】
［ステップＳ８ｂ］  ポートオープン処理部１１３ａは、ポート番号をトークンサーバ４１に応答する。その後、ポート変換設定処理を終了する。
次に、ポート番号通知要求を受信したときの処理を説明する。
【０２９４】
［ステップＳ１０ｂ］  ポート番号選択部１１６ａは、受信したメッセージに含まれる送信元サーバ名、トークン種別をキーワードにして、次サーバ設定テーブル１２１ａを検索し、転送先アドレスを取得する。その後、ステップＳ１０ｇに遷移する。
【０２９５】
［ステップＳ１０ｇ］  ポート番号選択部１１６ａは、メッセージに含まれているトークンと、転送先アドレスとをキーワードにして、ポート管理テーブル１２２ａを検索する。そして、キーワードに一致するエントリを取得する。その後、ステップＳ１０ｈに遷移する。
【０２９６】
［ステップＳ１０ｈ］  ポート番号選択部１１６ａは、取得したエントリの受信アドレスの欄に設定されているポート番号を、通信データ送信部１１５に送る。通信データ送信部１１５は、ポート番号選択部１１６ａからポート番号を受け取ると、ポート番号通知要求元のサーバに応答する。その後、ポート変換設定処理を終了する。
【０２９７】
以上で、第４の実施の形態のポート変換設定処理の説明を終了する。
次に、第４の実施の形態のリクエストトークン発行処理を説明する。
図２６は、第４の実施の形態のリクエストトークン発行処理を説明するフローチャートである。
【０２９８】
［ステップＳ２２］  トークンサーバ４１は、リクエストトークンを発行し、アプリケーション２１に送信する。その後、ステップＳ２４ｂに遷移する。
［ステップＳ２４ｂ］  トークンサーバ４１は、トークン種別、トークン値、送信元サーバ名を引数に、ポートオープン要求をポート変換設定サーバ１００ｂに送信する。その後、ポート変換設定サーバ１００ｂからの応答を待機する。ポート変換設定サーバ１００ｂから応答があると、ステップＳ２６に遷移する。
【０２９９】
以上で第４の実施の形態のリクエストトークン発行処理の説明を終了する。
このように、本実施の形態ではポートオープン処理でポート番号を選択するため、リクエストトークン発行処理において、ポート番号通知要求を省略することができる。
【０３００】
次に、第４の実施の形態の認証サーバ４２の認証処理を説明する。
図２７は、第４の実施の形態の認証処理を示すフローチャートである。
［ステップＳ３６］  認証サーバ４２は、認証の結果、正当なユーザＩＤおよびユーザパスワードである場合（ステップＳ３６のＹｅｓ）、ステップＳ３７ｂに遷移する。正当なユーザＩＤおよびユーザパスワードではない場合（ステップＳ３６のＮｏ）、ステップＳ４２に遷移する。
【０３０１】
［ステップＳ３７ｂ］  認証サーバ４２は、トークン種別、トークン値、送信元サーバ名を引数に、ポート番号通知要求をポート変換設定サーバ１００ａに送信する。その後、ポート変換設定サーバ１００ｂから応答があると、ステップＳ４０に遷移する。
【０３０２】
以上で、第４の実施の形態の認証処理の説明を終了する。
このように、本実施の形態ではポートが既に開放されているので、認証処理において、ポートオープン要求を省略することができる。
【０３０３】
次に、第４の実施の形態のアクセストークン発行処理を説明する。
図２８は、第４の実施の形態のアクセストークン発行処理を示すフローチャートである。
【０３０４】
［ステップＳ５６］  トークンサーバ４１は、アクセストークンを発行し、クライアント装置１０に送信する。その後、ステップＳ５７ｂに遷移する。
［ステップＳ５７ｂ］  トークンサーバ４１は、トークン種別、トークン値、送信元サーバ名を引数に、ポート番号通知要求をポート変換設定サーバ１００ｂに送信する。その後、ポート変換設定サーバ１００ｂから応答があると、ステップＳ６０に遷移する。
【０３０５】
以上で、第４の実施の形態のアクセストークン発行処理の説明を終了する。
このように、本実施の形態ではポートが既に開放されているので、アクセストークン発行処理において、ポートオープン要求を省略することができる。
【０３０６】
次に、第４の実施の形態のシステムの全体処理の具体例を説明する。
以下、図３にて説明したシーケンスと同じシーケンスには、同じシーケンス番号を附している。
【０３０７】
［シーケンスＳｅｑ１］  クライアント装置１０は、アプリケーション２１にサービス要求を送信する。
［シーケンスＳｅｑ２］  クライアント装置１０からサービス要求を受信したアプリケーション２１は、トークンサーバ４１にリクエストトークン要求を送信する。
【０３０８】
リクエストトークン要求を受信したトークンサーバ４１は、トークン値「ＲＴ００１」のリクエストトークンを発行し、アプリケーション２１に送信する。
次に、トークン種別「ＲＴ」、トークン値「ＲＴ００１」、送信元サーバ名「トークンサーバ」を引数に、ポートオープン要求をポート変換設定サーバ１００ａに送信し、応答を待機する。
【０３０９】
ポートオープン要求を受信したポート変換設定サーバ１００ｂは、次サーバ設定テーブル１２１ａを検索し、次サーバ設定テーブルに格納されている全ての転送先アドレス「１０．２５．２０．１：１０」、「１０．２５．２０．２：２０」、「１０．２５．２０．３：３０」を取得する。
【０３１０】
次に、ポート番号をランダムに選択し、転送先アドレスに対するアドレス変換用データを生成する。
本具体例では、ポート番号「２０００１、２００２１、２００１１」を選択する。そして、（１）受信アドレス「１０．２５．１０．１：２０００１」、転送先アドレス「１０．２５．１０．１：１０」、（２）受信アドレス「１０．２５．２０．２：２００２１」、転送先アドレス「１０．２５．２０．２：２０」、（３）受信アドレス「１０．２５．２０．３：２００１１」、転送先アドレス「１０．２５．２０．３：３０」を生成する。そして、上記（１）を含むアドレス変換用データと、上記（２）を含むアドレス変換用データと、上記（３）を含むアドレス変換用データを生成する。
【０３１１】
そして、生成したアドレス変換用データをＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、受信アドレスのポート番号のポートを開放する。また、上記（１）、（２）、（３）における受信アドレスと転送先アドレスの組み合わせをそれぞれアドレス変換テーブル３０ａに記憶する。
【０３１２】
また、ポート変換設定サーバ１００ｂは、上記（１）〜（３）をトークン値「ＲＴ００１」に関連づけたエントリをポート管理テーブル１２２ａに登録する。
図２９は、第４の実施の形態の具体例のポート管理テーブルを示す図である。
【０３１３】
さらに、ポート変換設定サーバ１００ｂは、選択したポート番号をトークンサーバ４１に応答する。このとき応答するポート番号は、以下のように選択する。
まず、トークン種別「ＲＴ」、送信元サーバ名「トークンサーバ」をキーワードにして、一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして一致するエントリの転送先アドレス「１０．２５．２０．１：１０」を取得する。
【０３１４】
次に、ポート変換設定サーバ１００ｂは、図２８に示すポート管理テーブル１２２ａを参照し、転送先アドレス「１０．２５．２０．１：１０」に対する受信アドレスのポート番号「２０００１」を取得する。取得したポート番号を、トークンサーバ４１に応答するポート番号として選択する。
【０３１５】
［シーケンスＳｅｑ３］  応答を取得したトークンサーバ４１は、応答メッセージにリクエストトークンのトークン値「ＲＴ００１」と、ポート番号「２０００１」を格納してアプリケーション２１に応答する。
【０３１６】
［シーケンスＳｅｑ４］  応答を受信したアプリケーション２１は、受信したリクエストトークンのトークン値「ＲＴ００１」とポート番号「２０００１」をキーワードに、クライアント装置１０に許可要求を送信する。
【０３１７】
［シーケンスＳｅｑ５］  クライアント装置１０は、アクセス許可設定のため、指定されたポート番号「２０００１」のアドレス「１０．２５．２０．１：２０００１」宛に、受信したリクエストトークンのトークン値「ＲＴ００１」とユーザＩＤとユーザパスワードとを格納したパケットを送信する。
【０３１８】
このデータをポート番号「２０００１」で受信したＤｏＳ対策装置３０は、アドレス変換テーブル３０ａを参照する。そして、受信したパケットの宛先アドレス「１０．２５．２０．１：２０００１」を、関連づけて格納されている転送先アドレス「１０．２５．２０．１：１０」に変換して転送する。この結果、パケットは、認証サーバ４２にて受信される。
【０３１９】
認証サーバ４２は、受信したパケットからリクエストトークンのトークン値「ＲＴ００１」を抽出し、トークンサーバ４１に発行したものかを問い合わせる。本具体例では、シーケンスＳｅｑ２にてトークンサーバ４１が発行したものであるため、次に進む。
【０３２０】
次に、認証サーバ４２は、ユーザＩＤとユーザパスワードのチェックを行う。本具体例では、正しいユーザであるため、トークン値「ＲＴ００１」、トークン種別「ＲＴ」、送信元サーバ名「認証サーバ」を引数に、ポート番号通知要求をポート変換設定サーバ１００に送信する。
【０３２１】
ポート番号通知要求を受信したポート変換設定サーバ１００ｂは、送信元サーバ名「認証サーバ」とトークン種別「ＲＴ」をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして、一致する転送先アドレス「１０．２５．２０．３：３０」を取得する。
【０３２２】
次に、トークン値「ＲＴ００１」と転送先アドレス「１０．２５．２０．３：３０」をキーワードにして、キーワードに一致する図２８に示すポート管理テーブル１２２ａのエントリを検索する。そして、一致する３行目のエントリの受信アドレスのポート番号「２００１１」を応答する。
【０３２３】
［シーケンスＳｅｑ６］  応答を取得した認証サーバ４２は、応答メッセージにリクエストトークンのトークン値「ＲＴ００１」とポート番号「２００１１」とを格納した認証成功をクライアント装置１０に応答する。
【０３２４】
クライアント装置１０への応答後、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．１：１０」を引数に、ポートクローズ要求を、ポート変換設定サーバ１００ｂに送信する。
【０３２５】
ポートクローズ要求を受信したポート変換設定サーバ１００ｂは、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．１：１０」をキーワードにして、キーワードに一致する図２９に示すポート管理テーブル１２２ａのエントリを検索する。そして一致する１行目のエントリを取得する。
【０３２６】
そして、ポート変換設定サーバ１００ｂは、受信アドレス「１０．２５．２０．１：２０００１」を有するポート遮断用データを生成する。そして、生成したポート遮断用データをＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、ポート番号「２０００１」のポートＰ１を遮断する。
【０３２７】
［シーケンスＳｅｑ７］  認証成功を受信したクライアント装置１０は、トークン値「ＲＴ００１」とポート番号「２００１１」を引数に許可完了をアプリケーション２１に応答する。
【０３２８】
［シーケンスＳｅｑ８］  応答を受信したアプリケーション２１は、のアドレス「１０．２５．２０．３：２００１１」宛に、トークン値「ＲＴ００１」を格納したアクセストークン交換要求を送信する。
【０３２９】
アクセストークン交換要求をポート番号「２００１１」で受信したＤｏＳ対策装置３０は、アドレス変換テーブル３０ａを参照する。そして、受信したパケットの宛先アドレス「１０．２５．２０．３：２００１１」を、関連づけて格納されている転送先アドレス「１０．２５．２０．３：３０」に変換して転送する。この結果、パケットは、トークンサーバ４１にて受信される。
【０３３０】
アクセストークン交換要求を受信したトークンサーバ４１は、要求メッセージからリクエストトークンのトークン値「ＲＴ００１」を抽出し、トークンサーバ４１が発行したものか否かをチェックする。本具体例では、シーケンスＳｅｑ２にてトークンサーバ４１が発行したものであるので次に進む。
【０３３１】
［シーケンスＳｅｑ９］  トークンサーバ４１は、リクエストトークンが認証されているか否かを認証サーバ４２に問い合わせる。本具体例では、認証されているため次に進む。
【０３３２】
次に、トークンサーバ４１は、トークン値「ＡＴ００１」のアクセストークンを発行し、クライアント装置１０に送信する。そして、トークン種別「ＡＴ」、トークン値「ＲＴ００１」、送信元サーバ名「トークンサーバ」を引数に、ポート番号通知要求をポート変換設定サーバ１００ｂに送信し、応答を待機する。
【０３３３】
ポート番号通知要求を受信したポート変換設定サーバ１００ｂは、送信元サーバ名「トークンサーバ」とトークン種別「ＡＴ」とをキーワードに、次サーバ設定テーブル１２１ａを検索し、転送先アドレス「１０．２５．２０．２：２０」を取得する。
【０３３４】
次に、ポート変換設定サーバ１００ｂは、トークン値「ＲＴ００１」と転送先アドレス「１０．２５．２０．２：２０」をキーワードにして、キーワードに一致する図２８に示すポート管理テーブル１２２ａのエントリを検索する。そして、一致する２行目のエントリの受信アドレスのポート番号「２００２１」を応答する。
【０３３５】
［シーケンスＳｅｑ１０］  応答を取得したトークンサーバ４１は、トークン値「ＡＴ００１」のアクセストークンと、ポート番号「２００２１」を応答メッセージに格納してクライアント装置１０に応答する。
【０３３６】
クライアント装置１０への応答後、トークンサーバ４１は、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．３：３０」を引数に、ポートクローズ要求を、ポート変換設定サーバ１００ｂに送信する。
【０３３７】
ポートクローズ要求を受信したポート変換設定サーバ１００ｂは、トークン値「ＲＴ００１」、送信元アドレス「１０．２５．２０．３：３０」をキーワードにして、キーワードに一致する図２８に示すポート管理テーブル１２２ａのエントリを検索する。そして一致する３行目のエントリを取得する。
【０３３８】
ポート変換設定サーバ１００ｂは、受信アドレス「１０．２５．２０．３：２００１１」を有するポート遮断用データを生成する。
そして、ポート変換設定サーバ１００ｂは、このポート遮断用データ１５４をＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、ポート番号「２００１１」のポートＰ２を遮断する。
【０３３９】
［シーケンスＳｅｑ１１］  トークン値「ＡＴ００１」のアクセストークンを取得したアプリケーション２１は、指定されたポート番号「２００２１」のアドレス「１０．２５．２０．２：２００２１」宛にサービス要求を送信する。
【０３４０】
サービス要求をポート番号「２００２１」で受信したＤｏＳ対策装置３０は、アドレス変換テーブル３０ａを参照する。そして、受信したパケットのアドレス「１０．２５．２０．２：２００２１」を、関連づけて格納されている転送先アドレス「１０．２５．２０．２：２０」に変換して転送する。結果、パケットは、サービスサーバ４３にて受信される。
【０３４１】
［シーケンスＳｅｑ１２］  サービスサーバ４３は、サービス要求からアクセストークンを抽出する。そして、抽出したアクセストークンが、トークンサーバ４１が発行したものか否かをトークンサーバ４１に問い合わせる。本具体例では、シーケンスＳｅｑ９ａにてトークンサーバ４１が発行したものであるため次に進む。
【０３４２】
［シーケンスＳｅｑ１３］  サービスサーバ４３は、サービス要求に対応するサービス処理を行い、サービス結果をアプリケーション２１に応答する。
［シーケンスＳｅｑ１４］  アプリケーション２１は、必要に応じた処理を行い、クライアント装置１０に処理の結果を応答する。
【０３４３】
この第４の実施の形態のシステムによれば、第３の実施の形態のシステムと同様の効果が得られる。
そして、第４の実施の形態のシステムによれば、さらに、ポート番号の選択およびポートの設定に要する時間を短縮することができる。
【０３４４】
＜第５の実施の形態＞
次に、第５の実施の形態のシステムについて説明する。
以下、第５の実施の形態のシステムについて、前述した第２の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
【０３４５】
図３０は、第５の実施の形態のポート変換設定サーバの機能を示すブロック図である。
第５の実施の形態のシステムは、ポート変換設定サーバ１００ｃが、ポートオープン要求を受信後、一定時間が経過しても当該トークンに関するポートクローズ要求を受信しない場合に、ポートを遮断する機能を備えている。
【０３４６】
第５の実施の形態のポート変換設定サーバ１００ｃのＣＰＵ１１は、さらに、エントリ監視部１１７を有している。また、記憶部１２は、さらに、パラメータ管理情報格納部１２４を有している。
【０３４７】
図３１は、第５の実施の形態のポート管理テーブルのデータ構造例を示す図である。
ポート管理テーブル１２２ｂは、ポート管理テーブル１２２ａと比較して、さらに、登録時刻の欄が設けられている。この登録時刻の欄には、当該エントリをポート管理テーブル１２２ｂに登録した時刻が、例えば、秒単位で設定される。
【０３４８】
再び図３０に戻って説明する。
エントリ監視部１１７は、ポート管理テーブル１２２ｂをエントリ単位で監視する。そして、予め設定した削除時間が経過しても削除されないエントリが存在する場合、このエントリに含まれている受信アドレスを含むポート遮断用データを生成する。エントリ監視部１１７は、生成したアドレス変換用データを通信データ送信部１１５に送る。
【０３４９】
このエントリ監視部１１７は、ポート変換設定サーバ１００ｃの起動後、ポートオープン要求／ポートクローズ要求を受信する処理と並行して動作するのが好ましい。例えば別スレッドや別プロセスとすることで動作することができる。
【０３５０】
パラメータ管理情報格納部１２４には、エントリ監視部１１７がポートクローズ要求の受信を監視する間隔を決定する時間が、予め設定されて格納されている。
図３２は、第５の実施の形態のパラメータ管理テーブルのデータ構造例を示す図である。
【０３５１】
パラメータ管理テーブル１２４ａには、パラメータ、値の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
パラメータの欄には、パラメータとして管理する項目が設定される。図３１では、削除時間とテーブル監視間隔が設定されている。
【０３５２】
削除時間は、所定時間内にポートクローズ要求を受信しなかったポート管理テーブル１２２ｂのエントリを削除する時間を管理するための項目である。
テーブル監視間隔は、ポート管理テーブル１２２ｂを監視する時間の間隔を管理するための項目である。
【０３５３】
値の欄には、パラメータの欄に設定された項目を実行する時間が設定されている。図３２では、ポート管理テーブル１２２ｂからエントリを削除する時間である１２０秒が設定されている。また、図３２では、ポート管理テーブル１２２ｂを監視する時間の間隔である６０秒が設定されている。
【０３５４】
すなわち、図３２に示すパラメータ管理テーブル１２４ａは、エントリ監視部１１７が、６０秒間隔でポート管理テーブル１２２ｂを監視することを示している。そして、エントリが登録されてから１２０秒間に通信データ受信部１１１がポートクローズ要求を受信しなかった場合、当該エントリを削除することを示している。
【０３５５】
図３３は、第５の実施の形態のポート変換設定処理を示すフローチャートである。
［ステップＳ６］  ポートオープン処理部１１３は、アドレスが重複していないことを、ポートオープン要求を送信したサーバに応答する。その後、ステップＳ７ｂに遷移する。
【０３５６】
［ステップＳ７ｂ］  ポートオープン処理部１１３は、ステップＳ４にて生成したアドレス変換用データに含まれる受信アドレスおよび転送先アドレスを、受信したトークンに関連づけてポート管理テーブル１２２ｂに格納する。このとき、アドレス変換用データをポート管理テーブル１２２ｂに登録した時刻を登録時刻の欄に設定する。その後、ステップＳ８に遷移する。
【０３５７】
以上で、第５の実施の形態のポート変換設定処理の説明を終了する。
次に、エントリ監視部１１７の処理（エントリ監視処理）を説明する。
図３４は、エントリ監視処理を示すフローチャートである。
【０３５８】
［ステップＳ８１］  ポート変換設定サーバ１００ｃが起動すると、ステップＳ８２に遷移する。
［ステップＳ８２］  エントリ監視部１１７は、パラメータ管理テーブル１２４ａを参照し、テーブル監視間隔の値の欄に設定された時間だけスリープ（待機）する。スリープ時間が経過するとステップＳ８３に遷移する。
【０３５９】
［ステップＳ８３］  エントリ監視部１１７は、エントリ毎に削除時間が経過したか否かを判断する。具体的には、現在時刻からポート管理テーブル１２２ｂの登録時刻を減算した時間が、パラメータ管理テーブル１２４ａの削除時間の値の欄に設定された時間より大きいか否かを判断する。現在時刻からポート管理テーブル１２２ｂの登録時刻を減算した時間が、パラメータ管理テーブル１２４ａの削除時間の値の欄に設定された時間より大きいエントリが存在する場合（ステップＳ８３のＹｅｓ）、ステップＳ８４に遷移する。現在時刻からポート管理テーブル１２２ｂの登録時刻を減算した時間が、パラメータ管理テーブル１２４ａの削除時間の値の欄に設定された時間以下であるエントリが存在しない場合（ステップＳ８３のＮｏ）、ステップＳ８２に遷移する。
【０３６０】
［ステップＳ８４］  エントリ監視部１１７は、当該エントリに含まれている受信アドレスを含むポート遮断用データを生成する。そして、生成したポート遮断用データを、通信データ送信部１１５を介してＤｏＳ対策装置３０に送信する。その後、ステップＳ８５に遷移する。
【０３６１】
［ステップＳ８５］  エントリ監視部１１７は、当該エントリをポート管理テーブル１２２ａから削除する。その後、ステップＳ８２に遷移する。
以上で、エントリ監視処理の説明を終了する。
【０３６２】
次に、第５の実施の形態のシステムの処理の具体例を説明する。
なお、本具体例では、第２の実施の形態のポート変換設定処理とは異なる部分を中心に説明し、同様の部分についてはその説明を省略する。
【０３６３】
［シーケンスＳｅｑ１］  まず、クライアント装置１０は、サービス要求をアプリケーション２１に送信する。
［シーケンスＳｅｑ２］  クライアント装置１０からサービス要求を受信したアプリケーション２１は、リクエストトークン要求をトークンサーバ４１に送信する。
【０３６４】
リクエストトークン要求を受信したトークンサーバ４１は、トークン値「ＲＴ００１」のリクエストトークンを発行し、アプリケーション２１に送信する。そして、アプリケーション２１からのアクセスを許可するポート番号をランダムに選択する。本具体例では、「２０００１」とする。
【０３６５】
トークンサーバ４１は、発行したトークンのトークン種別「ＲＴ」、トークン値「ＲＴ００１」、ポート番号「２０００１」、送信元サーバ名「トークンサーバ」を引数に、ポートオープン要求をポート変換設定サーバ１００ｃに送信し、応答を待機する。
【０３６６】
ポートオープン要求を受信したポート変換設定サーバ１００ｃは、メッセージに含まれている送信元サーバ名「トークンサーバ」とトークン種別「ＲＴ」をキーワードにして、キーワードに一致する次サーバ設定テーブル１２１ａのエントリを検索する。そして一致するエントリの転送先アドレス「１０．２５．２０．１：１０」を取得する。
【０３６７】
次に、ポート変換設定サーバ１００ｃは、取得した転送用アドレス「１０．２５．２０．１：１０」と通知されたポート番号「２０００１」より、受信アドレス「１０．２５．２０．１：２０００１」を生成する。そして、受信アドレス「１０．２５．２０．１：２０００１」と転送先アドレス「１０．２５．２０．１：１０」とを含むアドレス変換用データを生成する。
【０３６８】
そして、ポート変換設定サーバ１００ｃは、ポート管理テーブル１２２ｂを参照し、生成した受信アドレスが、既に生成した受信アドレスに重複しているか否かをチェックする。重複していないため、ポート変換設定サーバ１００ｃは、アドレス変換用データをＤｏＳ対策装置３０に送信する。
【０３６９】
また、ポート管理テーブル１２２ｂに、受信アドレス「１０．２５．２０．１：２０００１」と転送先アドレス「１０．２５．２０．１：１０」をトークン値「ＲＴ００１」に関連づけたエントリをポート管理テーブル１２２ｂに設定する。このエントリの登録時刻は、「１０：３０：００」とする。
【０３７０】
また、ポート変換設定サーバ１００は、「重複ＯＫ」をトークンサーバ４１に応答する。
以降、ポート管理テーブル１２２ｂにエントリを登録する際に、登録時刻も合わせて設定する以外は第２の実施の形態と同じシーケンスを行う。
【０３７１】
一方、ポート変換設定サーバ１００ａのエントリ監視部１１７は、上記の動作とは独立してエントリ監視処理を実行し、定期的にポート管理テーブル１２２ｂのエントリを監視する。すなわち、起動後、パラメータ管理テーブル１２４ａのテーブル監視間隔である「６０秒」間スリープし、その後、現在時刻と、ポート管理テーブルの登録時刻「１０：３０」との差分を計算する。それが、削除時間「１２０秒」よりも大きい場合、すなわち、１０：３２：００以降である場合は、受信アドレス「１０．２５．２０．１：２０００１」を有するポート遮断用データ１５２を生成する。そして、生成したポート遮断用データをＤｏＳ対策装置３０に送信する。また、エントリ監視部１１７は、当該エントリを削除する。
【０３７２】
この第５の実施の形態のシステムによれば、第２の実施の形態のシステム１０００と同様の効果が得られる。
そして、第５の実施の形態のシステムによれば、さらに、処理が放置されることによるポート管理テーブル１２２ｂやアドレス変換テーブル３０ａの容量の増大を抑制することができる。なお、処理が放置されるケースとしては、例えば、クライアント装置１０が許可要求を送信しない（ユーザが認証処理をしない）等が挙げられる。
【０３７３】
＜第６の実施の形態＞
次に、第６の実施の形態のシステムについて説明する。
以下、第６の実施の形態のシステムについて、前述した第５の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
【０３７４】
第６の実施の形態のシステムは、サービスセンタ４０内のサーバを監視し、サーバが停止している等、サーバの応答がないことを検出すると、当該サーバを転送先アドレスとするポート管理テーブル１２２ｂの登録時刻を現在時刻に設定する点が異なっている。
【０３７５】
図３５は、第６の実施の形態のポート変換設定サーバの機能を示すブロック図である。
第６の実施の形態のポート変換設定サーバ１００ｄは、さらに、サーバ監視部１１８を有している。
【０３７６】
サーバ監視部１１８は、ポート管理テーブル１２２ｂの転送先アドレスの欄に設定されている転送先アドレスのサーバの応答を監視する。この処理は、例えば、ｐｉｎｇ（Packet Internet Groper）等により行うことができる。
【０３７７】
そして、応答がないサーバが存在する場合には、応答がないサーバを転送先アドレスとするエントリの登録時刻の欄の時刻を、現在時刻に書き換える。これにより、現在時刻からポート管理テーブル１２２ｂの登録時刻を減算した時間が「０」になる。すなわち、ポートオープン要求を受信し、登録時刻がエントリに登録されてからの時間の経過のカウントがリセットされる。このため、エントリ監視処理にて、サーバの停止に起因して当該エントリについてポート遮断用情報が生成されることが抑制される。
【０３７８】
このサーバ監視部１１８は、ポート変換設定サーバ１００ｄの起動後、ポートオープン要求／ポートクローズ要求を受信する処理と並行して動作するのが好ましい。例えば別スレッドや別プロセスとすることで動作することができる。
【０３７９】
図３６は、第６の実施の形態のパラメータ管理テーブルのデータ構造例を示す図である。
パラメータ管理テーブル１２４ｂには、パラメータ管理テーブル１２４ａと比較して、さらに、項目としてサーバ監視間隔が設定されている。
【０３８０】
サーバ監視間隔は、各サーバの停止を監視する時間の間隔を管理するための項目である。
次に、サーバ監視部１１８の処理（サーバ監視処理）を説明する。
【０３８１】
図３７は、サーバ監視処理を示すフローチャートである。
［ステップＳ９１］  ポート変換設定サーバ１００ｄが起動すると、ステップＳ９２に遷移する。
【０３８２】
［ステップＳ９２］  サーバ監視部１１８は、パラメータ管理テーブル１２４ｂを参照し、サーバ監視間隔の値の欄に設定された時間だけスリープ（待機）する。スリープ時間が経過するとステップＳ９３に遷移する。
【０３８３】
［ステップＳ９３］  サーバ監視部１１８は、次サーバ設定テーブル１２１ａを検索し、全ての転送先アドレスを取得する。その後、ステップＳ９４に遷移する。
［ステップＳ９４］  サーバ監視部１１８は、取得した転送先アドレスを１つ選択する。そして、選択したサーバに応答の有無を問い合わせる。
【０３８４】
［ステップＳ９５］  サーバ監視部１１８は、問い合わせたサーバから応答があったか否かを判断する。応答があれば（ステップＳ９５のＹｅｓ）、ステップＳ９７に遷移する。応答がなければ（ステップＳ９５のＮｏ）、ステップＳ９６に遷移する。
【０３８５】
［ステップＳ９６］  サーバ監視部１１８は、ポート管理テーブル１２２ｂの転送先アドレスと、問い合わせたアドレスが一致するエントリの登録時刻を現在時刻に設定する。その後、ステップＳ９７に遷移する。
【０３８６】
［ステップＳ９７］  サーバ監視部１１８は、取得した全てのサーバアドレスについて、問い合わせを行ったか否かを判断する。取得した全てのサーバアドレスについて、問い合わせを行った場合（ステップＳ９７のＹｅｓ）、ステップＳ９２に遷移する。取得した全てのサーバアドレスについて、問い合わせを行っていない場合（ステップＳ９７のＮｏ）、ステップＳ９４に遷移する。
【０３８７】
以上で、サーバ監視処理の説明を終了する。
この第６の実施の形態のシステムによれば、第５の実施の形態のシステムと同様の効果が得られる。
【０３８８】
そして、第６の実施の形態のシステムによれば、例えば、トークンサーバ４１または認証サーバ４２の停止時にエントリ監視部１１７が、ポート管理テーブル１２２ｂのエントリを削除することを抑制することができる。従って、アクセス権限の委譲処理の途中にサーバの停止に起因して委譲処理が失敗することを抑制することができる。
【０３８９】
＜第７の実施の形態＞
次に、第７の実施の形態のシステムについて説明する。
以下、第７の実施の形態のシステムについて、前述した第２の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
【０３９０】
第７の実施の形態のシステムは、ポート変換設定サーバが、ＤｏＳ対策装置３０にアドレス変換設定されたポートに対し、最初に到着したクライアント装置１０のＩＰアドレスのみを通過させる点が第２の実施の形態のシステムと異なっている。
【０３９１】
図３８は、第７の実施の形態のアドレス変換テーブルのデータ構造例を示す図である。
アドレス変換テーブル３０ｂには、受信側Ｓｒｃアドレス、受信アドレス、転送先アドレスの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０３９２】
受信側Ｓｒｃアドレスの欄には、受信アドレスの欄に設定されている受信アドレスに対し、最初にアクセスした装置のＩＰアドレスが設定されている。未だアクセスされていない場合「Ｎｕｌｌ」が設定される。例えば、図３７に示すアドレス変換テーブル３０ｂでは、１行目のエントリの受信アドレスには、未だ装置からアクセスが存在しないことを示している。また、２行目のエントリの受信アドレスには、ＩＰアドレス「１３３．１０．４５．１０」の装置がアクセスしたことを示している。
【０３９３】
受信アドレスおよび転送先アドレスの欄には、アドレス変換テーブル３０ａと同様の情報が設定される。
次に、第７の実施の形態のＤｏＳ対策装置３０のパケット処理を説明する。
【０３９４】
図３９は、第７の実施の形態のＤｏＳ対策装置のパケット処理を示すフローチャートである。
［ステップＳ１０１］  ＤｏＳ対策装置３０は、パケットを受信すると、ステップＳ１０２に遷移する。
【０３９５】
［ステップＳ１０２］  ＤｏＳ対策装置３０は、受信したパケットに含まれる宛先アドレスに一致する受信アドレスを有するエントリが、アドレス変換テーブル３０ｂに存在するか否かを判断する。一致する受信アドレスを有するエントリが、アドレス変換テーブル３０ｂに存在する場合（ステップＳ１０２のＹｅｓ）、ステップＳ１０３に遷移する。一致する受信アドレスを有するエントリが、アドレス変換テーブル３０ｂに存在しない場合（ステップＳ１０２のＮｏ）、ステップＳ１０７に遷移する。
【０３９６】
［ステップＳ１０３］  ＤｏＳ対策装置３０は、一致する受信アドレスを有するエントリの受信側Ｓｒｃアドレスの欄がＮｕｌｌに設定されているか否かを判断する。受信側Ｓｒｃアドレスの欄がＮｕｌｌに設定されている場合（ステップＳ１０３のＹｅｓ）、ステップＳ１０４に遷移する。受信側Ｓｒｃアドレスの欄がＮｕｌｌに設定されていない場合（ステップＳ１０３のＮｏ）、ステップＳ１０６に遷移する。
【０３９７】
［ステップＳ１０４］  ＤｏＳ対策装置３０は、受信したパケットを送信した装置のＩＰアドレスを、一致する受信アドレスを有するエントリの受信側Ｓｒｃアドレスの欄に設定し、アドレス変換テーブル３０ｂを上書きする。その後、ステップＳ１０５に遷移する。
【０３９８】
［ステップＳ１０５］  ＤｏＳ対策装置３０は、パケットの宛先アドレスを転送先アドレスに変換する。そして、そのパケットを転送先アドレスに転送する。その後、パケット処理を終了する。
【０３９９】
［ステップＳ１０６］  ＤｏＳ対策装置３０は、一致する受信アドレスを有するエントリの受信側Ｓｒｃアドレスが、パケットを送信した装置のＩＰアドレスと一致するか否かを判断する。一致する場合（ステップＳ１０６のＹｅｓ）、ステップＳ１０５に遷移する。一致しない場合（ステップＳ１０６のＮｏ）、ステップＳ１０７に遷移する。
【０４００】
［ステップＳ１０７］  ＤｏＳ対策装置３０は、受信したパケットを廃棄する。その後、パケット処理を終了する。
以上で、パケット処理の説明を終了する。
【０４０１】
次に、図３７に示すアドレス変換テーブル３０ｂを用いて第７の実施の形態のシステムの具体例を説明する。本具体例では、クライアント装置１０のＩＰアドレスを、ＩＰアドレス「１３３．１０．４５．５」とする。
【０４０２】
なお、本具体例では、第２の実施の形態のポート変換設定処理とは異なる部分を中心に説明し、同様の部分についてはその説明を省略する。
［シーケンスＳｅｑ５］  クライアント装置１０は、アクセス許可設定のため、指定されたポート番号「２０００１」宛に、リクエストトークンのトークン値「ＲＴ００１」とユーザＩＤとユーザパスワードを格納したパケットを送信する。
【０４０３】
このパケットを受信したＤｏＳ対策装置３０は、パケットの宛先アドレス「１０．２５．２０．１：２０００１」に一致する受信アドレスを有するエントリがアドレス変換テーブル３０ｂに存在するかを確認する。本具体例では、１行目のエントリが存在するため、次に、そのエントリの受信側ＳｒｃアドレスがＮｕｌｌかどうかを確認する。
【０４０４】
本具体例ではＮｕｌｌとなっているため、アドレス変換テーブル３０ｂの受信側Ｓｒｃアドレスの欄にクライアント装置１０のＩＰアドレス「１３３．１０．４５．５」を登録する。
【０４０５】
次にパケットの宛先アドレスを、そのエントリの転送先アドレス「１０．２５．２０．１：１０」に変換して送信する。この結果、「１０．２５．２０．１：２０００１」で受信したパケットは、「１０．２５．２０．１：１０」に変換されて転送されることになり、認証サーバ４２にて受信される。
【０４０６】
このような処理を行うことにより、クライアント装置１０のＩＰアドレス「１３３．１０．４５．５」が登録された後にクライアント装置１０以外の装置から当該受信アドレス宛のパケットを受信した場合、ＤｏＳ対策装置３０は、そのパケットを廃棄する。従って、開放されているポートに対し、最初にアクセスしたパケット以外のパケットが、サービスセンタ４０に転送されることを抑制することができる。
【０４０７】
なお、本実施の形態では、最初にアクセスしたパケットを送信した装置のＩＰアドレスを、受信側Ｓｒｃアドレスの欄に設定した。しかし、これに限定されず、同じ装置から複数回アクセスがあった時点で、この装置のＩＰアドレスを受信側Ｓｒｃアドレスの欄に設定するようにしてもよい。
【０４０８】
＜第８の実施の形態＞
次に、第８の実施の形態のシステムについて説明する。
以下、第８の実施の形態のシステムについて、前述した第７の実施の形態のシステムとの相違点を中心に説明し、同様の事項については、その説明を省略する。
【０４０９】
図４０は、第８の実施の形態のポート変換設定サーバの機能を示すブロック図である。
第８の実施の形態のシステムは、トークンサーバ４１または認証サーバ４２に対し、不当な要求が届いたときは、ポート変換設定サーバ１００ｅが、アドレス変換テーブル３０ｂの受信側Ｓｒｃアドレスに設定したＩＰアドレスを削除する。
【０４１０】
なお、不当な要求としては、例えば、有効でないトークンや、アクセス権が設定されてないトークンが付与された要求や、ユーザＩＤとユーザパスワードのいずれか一方または両方が誤っている認証要求等が挙げられる。
【０４１１】
ポート変換設定サーバ１００ｅは、さらに、チェックエラー処理部１１９を有している。
通信データ解析部１１２は、通信データ受信部１１１が受信したメッセージに含まれる要求を解析する。そして、当該要求が、トークンサーバ４１または認証サーバ４２が通知するチェックエラーである場合は、チェックエラー処理をチェックエラー処理部１１９に依頼する。
【０４１２】
チェックエラー処理部１１９は、通信データ解析部１１２からチェックエラー処理の依頼を受けると、メッセージに含まれるサーバのアドレスをキーワードにして、キーワードに一致するポート管理テーブル１２２ａのエントリを取得する。
【０４１３】
そして、一致するエントリについてのアドレス変換テーブル３０ｂの受信側Ｓｒｃアドレスの欄を「Ｎｕｌｌ」にする指示をＤｏＳ対策装置３０に送信する。
次に、第８の実施の形態のポート変換設定処理を説明する。
【０４１４】
図４１は、第８の実施の形態のポート変換設定処理を示すフローチャートである。
［ステップＳ１０］  通信データ解析部１１２は、受信したメッセージがポートクローズ要求か否かを判断する。ポートクローズ要求であれば（ステップＳ１０のＹｅｓ）、ステップＳ１１に遷移する。ポートクローズ要求ではなければ（ステップＳ１０のＮｏ）、ステップＳ１０ｉに遷移する。
【０４１５】
［ステップＳ１０ｉ］  通信データ解析部１１２は、受信したメッセージがチェックエラー通知か否かを判断する。チェックエラー通知であれば（ステップＳ１０ｉのＹｅｓ）、ステップＳ１０ｊに遷移する。チェックエラー通知ではなければ（ステップＳ１０ｉのＮｏ）、ステップＳ１４に遷移する。
【０４１６】
［ステップＳ１０ｊ］  チェックエラー処理部１１９は、チェックエラー通知に含まれているサーバのアドレスをキーワードにして、キーワードに一致するポート管理テーブル１２２ａの転送先アドレスを検索する。そして、一致するエントリを取得する。該当するエントリが複数の場合もある。その後、ステップＳ１０ｋに遷移する。
【０４１７】
［ステップＳ１０ｋ］  チェックエラー処理部１１９は、取得したエントリの受信アドレスと転送先アドレスと一致するアドレス変換テーブル３０ｂのエントリの受信側Ｓｒｃアドレスを「Ｎｕｌｌ」にする指示をＤｏＳ対策装置３０に送信する。その後、ポート変換設定処理を終了する。
【０４１８】
以上で、第８の実施の形態のポート変換設定処理の説明を終了する。
次に、第８の実施の形態の認証処理を説明する。
図４２は、第８の実施の形態の認証処理を示すフローチャートである。
【０４１９】
［ステップＳ３４］  認証サーバ４２は、トークンサーバ４１からの応答により、抽出したリクエストトークンが、トークンサーバ４１が発行したリクエストトークンであるか否かを判断する。トークンサーバ４１が発行したリクエストトークンである場合（ステップＳ３４のＹｅｓ）、ステップＳ３５に遷移する。トークンサーバ４１が発行したリクエストトークンではない場合（ステップＳ３４のＮｏ）、ステップＳ４１ａに遷移する。
【０４２０】
［ステップＳ３６］  認証サーバ４２は、認証の結果、正当なユーザＩＤおよびユーザパスワードである場合（ステップＳ３６のＹｅｓ）、ステップＳ３７に遷移する。正当なユーザＩＤおよびユーザパスワードではない場合（ステップＳ３６のＮｏ）、ステップＳ４１ａに遷移する。
【０４２１】
［ステップＳ４１ａ］  認証サーバ４２は、当該認証サーバ４２のアドレスを引数に、チェックエラー通知をポート変換設定サーバ１００ｄに送信する。その後、ステップＳ４２に遷移する。
【０４２２】
以上で、第８の実施の形態の認証処理の説明を終了する。
次に、第８の実施の形態のアクセストークン発行処理を説明する。
図４３は、第８の実施の形態のアクセストークン発行処理を示すフローチャートである。
【０４２３】
［ステップＳ５３］  トークンサーバ４１は、抽出したリクエストトークンが、トークンサーバ４１が発行したものか否かを判断する。トークンサーバ４１が発行したものである場合（ステップＳ５３のＹｅｓ）、ステップＳ５４に遷移する。トークンサーバ４１が発行したものではない場合（ステップＳ５３のＮｏ）、ステップＳ６１ａに遷移する。
【０４２４】
［ステップＳ５５］  トークンサーバ４１は、問い合わせの結果、ユーザがアクセス許可設定しているという通知を受信した場合（ステップＳ５５のＹｅｓ）、ステップＳ５６に遷移する。ユーザがアクセス許可設定していないという通知を受信した場合（ステップＳ５５のＮｏ）、ステップＳ６１ａに遷移する。
【０４２５】
［ステップＳ６１ａ］  トークンサーバ４１は、当該トークンサーバ４１のアドレスを引数に、チェックエラー通知をポート変換設定サーバ１００ｄに送信する。その後、ステップＳ６２に遷移する。
【０４２６】
以上で、第８の実施の形態のアクセストークン発行処理の説明を終了する。
次に、図３８に示すアドレス変換テーブル３０ｂを用いて第８の実施の形態のシステムの具体例を説明する。本具体例では、クライアント装置１０を操作するユーザ以外のユーザ（正当でないユーザ）からアクセスがあった場合の処理を説明する。
【０４２７】
なお、本具体例では、第２の実施の形態のポート変換設定処理とは異なる部分を中心に説明し、同様の部分についてはその説明を省略する。
以下、正当でないユーザが操作するクライアント装置（以下、「第三者クライアント装置」と言う）のＩＰアドレスを、ＩＰアドレス「１３３．１０．４５．９９」とする。
【０４２８】
［シーケンスＳｅｑ５］  第三者クライアント装置は、アクセス許可設定のため、ポート番号「２０００１」宛に、リクエストトークンのトークン値「ＲＴ００１」とユーザＩＤとユーザパスワードを格納したパケットを送信する。
【０４２９】
このパケットを受信したＤｏＳ対策装置３０は、パケットの宛先アドレス「１０．２５．２０．１：２０００１」に一致する受信アドレスのエントリが、アドレス変換テーブル３０ｂに存在するか否かを判断する。本具体例では存在するため、次に、そのエントリの受信側Ｓｒｃアドレスが「Ｎｕｌｌ」か否かを判断する。
【０４３０】
本具体例では「Ｎｕｌｌ」となっているため、アドレス変換テーブル３０ｂの当該エントリの受信側Ｓｒｃアドレスの欄に第三者クライアント装置のＩＰアドレス「１３３．１０．４５．９９」を登録する。
【０４３１】
次にパケットの宛先アドレスを、そのエントリの転送先アドレス「１０．２５．２０．１：１０」に変換して送信する。この結果、「１０．２５．２０．１：２０００１」で受信したパケットは、「１０．２５．２０．１：１０」に変換されて転送されることになり、認証サーバ４２にて受信される。
【０４３２】
次に、認証サーバ４２は、要求メッセージからリクエストトークンのトークン値「ＲＴ００１」を抽出し、トークンサーバ４１が発行したリクエストトークンか否かをトークンサーバ４１に問い合わせる。本具体例では、トークンサーバ４１が発行したものであるため、次に進む。
【０４３３】
次に、認証サーバ４２は、ユーザＩＤとユーザパスワードの認証チェックを行う。本具体例では、正当でないユーザであるため認証しない。認証サーバ４２は、認証サーバ４２のアドレス「１０．２５．２０．１：１０」を引数に、チェックエラー通知をポート変換設定サーバ１００ｅに送信する。また、第三者クライアント装置に認証エラーを応答し、応答を待機する。
【０４３４】
チェックエラー通知を受信したポート変換設定サーバ１００ｅは、通知に含まれている認証サーバ４２のアドレス「１０．２５．２０．１：１０」をキーワードにして、キーワードに一致するポート管理テーブル１２２ａの転送先アドレスを検索する。そして一致するエントリを取得する。図７に示すポート管理テーブル１２２ａの場合、受信アドレス「１０．２５．２０．１：２０００１」を含むエントリを取得する。
【０４３５】
次に、ポート変換設定サーバ１００ｅは、取得したエントリの受信アドレスと転送先アドレスに一致するアドレス変換テーブル３０ｂのエントリの受信側Ｓｒｃアドレスを「Ｎｕｌｌ」にする指示をＤｏＳ対策装置３０に送信する。これにより、ＤｏＳ対策装置３０は、取得したエントリの受信アドレスと転送先アドレスとが一致するアドレス変換テーブル３０ｂのエントリの受信側Ｓｒｃアドレスを「Ｎｕｌｌ」に設定する。これにより、ＤｏＳ対策装置３０は、再度、受信アドレス「１０．２５．２０．１：２０００１」に対するアクセスを受け付けることができる。
【０４３６】
この第８の実施の形態のシステムによれば、第７の実施の形態のシステムと同様の効果が得られる。
そして、第８の実施の形態のシステムによれば、トークンサーバ４１または認証サーバ４２に対し、不当な要求が届いたときは、ポート変換設定サーバ１００ｅが、アドレス変換テーブル３０ｂの受信側Ｓｒｃアドレスに設定したＩＰアドレスを削除するようにした。これにより、例えば、悪意のあるアプリケーションからのリクエストが先に届いてしまった場合は、受信側Ｓｒｃアドレスを「Ｎｕｌｌ」にすることができる。従って、再度、正当なクライアント装置１０やアプリケーション２１からのアクセスを受け入れることができる。
【０４３７】
以上、本発明のアクセス制御プログラム、アクセス制御方法およびアクセス制御装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。例えば、前述した各実施の形態では、ポート変換設定サーバを独立した装置として説明したが、これに限定されず、例えば、ポート変換設定サーバが有する機能が、ＤｏＳ対策装置３０に組み込まれていてもよい。
【０４３８】
図４４は、ポート変換機能がＤｏＳ対策装置に設けられている例を示す図である。
図４４に示すポート変換設定部３１は、ポート変換設定サーバ１００が有する機能と同様の機能を有しており、前述したポート変換設定処理等を実行する。このような構成によるシステムにおいてもシステム１０００と同様の効果が得られる。
【０４３９】
また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０４４０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ポート変換設定サーバ１００、１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０４４１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０４４２】
アクセス制御プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０４４３】
以上の第１〜第８の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  クライアント装置と２以上のサーバ装置間のアクセス制御を情報処理装置に実行させるアクセス制御プログラムにおいて、
コンピュータに、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを前記情報処理装置に開放させるための開放要求を、受信する受信手順、
前記受信手順により受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成する生成手順、
前記生成手順により生成された前記データ転送用情報を、前記情報処理装置に送信する送信手順、
を実行させることを特徴とするアクセス制御プログラム。
【０４４４】
（付記２）  前記データ転送用情報には、前記第１サーバ装置の次にアクセスされる前記サーバ装置の１つである第２サーバ装置のポート番号を含むことを特徴とする付記１記載のアクセス制御プログラム。
【０４４５】
（付記３）  前記生成手順では、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記第２サーバ装置のポート番号を決定することを特徴とする付記１または２記載のアクセス制御プログラム。
【０４４６】
（付記４）  前記生成手順では、前記開放要求を送信した前記第１サーバ装置を識別する情報に加え、前記開放要求に含まれる一連の処理を識別する情報に基づいて、前記第２サーバ装置のポート番号を決定することを特徴とする付記１から３のいずれかに記載のアクセス制御プログラム。
【０４４７】
（付記５）  前記コンピュータに、さらに、開放されている前記ポートの遮断要求を受信する遮断要求受信手順、
前記遮断要求に含まれる前記一連の処理を識別する情報と前記開放要求に含まれる一連の処理を識別する情報とに基づいて、開放されている前記ポートを特定し、特定した前記ポートを遮断させるポート遮断用情報を生成するポート遮断用情報生成手順、
前記ポート遮断用情報生成手順により生成された前記ポート遮断用情報を、前記情報処理装置に送信するポート遮断用情報送信手順、
を実行させることを特徴とする付記４記載のアクセス制御プログラム。
【０４４８】
（付記６）  前記遮断要求に前記遮断要求を送信する前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号が含まれている場合、
前記ポート遮断用情報生成手順では、さらに、ポートの開放時に決定した前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号に基づいて開放されている前記ポートを特定することを特徴とする付記５記載のアクセス制御プログラム。
【０４４９】
（付記７）  前記コンピュータを、さらに、前記生成手順により決定された前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号と、開放させた前記ポート番号と、前記一連の処理を識別する情報とを関連づけた管理情報を格納する格納手段として機能させ、
前記ポート遮断用情報生成手順では、前記遮断要求を送信する前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号と前記一連の処理を識別する情報と、前記管理情報とに基づいて、開放されている前記ポートを特定し、前記ポート遮断用情報を生成することを特徴とする付記６記載のアクセス制御プログラム。
【０４５０】
（付記８）  前記コンピュータに、さらに、前記開放要求を送信する前記第１サーバ装置を識別する情報と前記一連の処理を識別する情報と前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号とを関連づけた設定情報を格納する格納手段として機能させ、
前記生成手順では、前記設定情報を参照し、前記第２サーバ装置のポートを決定することを特徴とする付記４記載のアクセス制御プログラム。
【０４５１】
（付記９）  前記コンピュータに、さらに、
開放されている前記ポートの遮断要求を受信する遮断要求受信手順、
前記遮断要求に含まれる前記遮断要求を送信する前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号に基づいて、開放されている前記ポートを特定し、特定した前記ポートを遮断させるポート遮断用情報を生成するポート遮断用情報生成手順、
前記ポート遮断用情報生成手順により生成された前記ポート遮断用情報を、前記情報処理装置に送信する送信手順、
を実行させることを特徴とする付記３記載のアクセス制御プログラム。
【０４５２】
（付記１０）  前記コンピュータを、さらに、前記生成手順により決定された前記第２サーバ装置および前記第２サーバ装置のポートと、開放させた前記ポート番号を識別する情報とを関連づけた管理情報を格納する格納手段として機能させ、
前記ポート遮断用情報生成手順では、前記遮断要求を送信する前記第２サーバ装置を識別する情報および前記第２サーバ装置のポート番号と、前記管理情報とに基づいて、開放されている前記ポートを特定し、前記ポート遮断用情報を生成することを特徴とする付記９記載のアクセス制御プログラム。
【０４５３】
（付記１１）  前記遮断要求は、前記一連の処理を完了した前記第２サーバ装置が、処理が完了した時点で出力することを特徴とする付記５または９記載のアクセス制御プログラム。
【０４５４】
（付記１２）  前記コンピュータに、さらに、前記受信手順により前記開放要求を受信した時刻から所定時間経過後までに前記開放要求により開放した前記ポートの遮断要求が前記遮断要求受信手順により受信されなかった場合、前記遮断要求を受信していなくても前記開放要求により開放した前記ポートを遮断させるポート遮断用情報を生成する監視手順を実行させ、
前記送信手順では、前記監視手順により生成された前記ポート遮断用情報を、前記情報処理装置に送信することを特徴とする付記５または９記載のアクセス制御プログラム。
【０４５５】
（付記１３）  前記コンピュータに、さらに、前記第２サーバ装置の応答を監視し、前記第２サーバ装置の応答がないことを検出すると、前記開放要求を受信した時刻からの時間の経過のカウントをリセットする監視手順を実行させることを特徴とする付記１２記載のアクセス制御プログラム。
【０４５６】
（付記１４）  前記コンピュータを、さらに、前記ポート番号を決定し、前記開放要求を送信する前記第１サーバ装置に通知するポート決定手順を実行させることを特徴とする付記１記載のアクセス制御プログラム。
【０４５７】
（付記１５）  前記生成手順では、前記受信手順による前記開放要求の受信に基づいて前記複数の処理のうちのアクセス予定の全ての前記サーバ装置を決定し、決定した全ての前記サーバ装置のポートを予め開いておくことを特徴とする付記１記載のアクセス制御プログラム。
【０４５８】
（付記１６）  前記情報処理装置は、開放したポートに対しアクセスがあった装置のＩＰアドレスを登録し、登録した前記ＩＰアドレス以外からのアクセスを拒否する機能を有し、
前記コンピュータに、さらに、不当なリクエストが届いたことにより前記第２サーバ装置から受信するエラー通知に応じて、前記ＩＰアドレスの登録を解除する指示を出力する出力手順を実行させることを特徴とする付記１記載のアクセス制御プログラム。
【０４５９】
（付記１７）  クライアント装置と２以上のサーバ装置間のアクセス制御を情報処理装置に実行させるアクセス制御方法において、
コンピュータが、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを前記情報処理装置に開放させるための開放要求を、受信し、
受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成し、
生成された前記データ転送用情報を、前記情報処理装置に送信する、
ことを特徴とするアクセス制御方法。
【０４６０】
（付記１８）  クライアント装置と２以上のサーバ装置間のアクセス制御を情報処理装置に実行させるアクセス制御装置において、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを前記情報処理装置に開放させるための開放要求を、受信する受信部と、
前記受信部により受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成する生成部と、
前記生成部により生成された前記データ転送用情報を、前記情報処理装置に送信する送信部と、
を有することを特徴とするアクセス制御装置。
【０４６１】
（付記１９）  クライアント装置と２以上のサーバ装置間のアクセス制御をコンピュータに実行させるアクセス制御プログラムにおいて、
前記コンピュータに、
前記２以上のサーバ装置の１つである第１サーバ装置上で実行される複数の処理のうち１つの処理の完了により前記クライアント装置に送信されるポート番号であって、該ポート番号のポートを開放するための開放要求を、受信する受信手順、
前記受信手順により受信された前記開放要求に含まれる、前記開放要求を送信した前記第１サーバ装置を識別する情報に基づいて、前記ポート番号のポートを開放させるためのデータ転送用情報を生成する生成手順、
を実行させることを特徴とするアクセス制御プログラム。
【符号の説明】
【０４６２】
１  アクセス制御装置（コンピュータ）
１ａ  受信手段
１ｂ  生成手段
１ｂ１  データ転送用情報
１ｂ２  ポート遮断用情報
１ｃ  送信手段
１ｄ  格納手段
１ｄ１  サーバ設定情報
１ｄ２  管理情報
２  クライアント装置
３  サーバ装置群
３ａ、３ｂ、３ｃ  サーバ装置
４  情報処理装置
１０  クライアント装置
１１  ＣＰＵ
１１１  通信データ受信部
１１２  通信データ解析部
１１３、１１３ａ  ポートオープン処理部
１１４  ポートクローズ処理部
１１５  通信データ送信部
１１６、１１６ａ  ポート番号選択部
１１７  エントリ監視部
１１８  サーバ監視部
１１９  チェックエラー処理部
１２  記憶部
１２１  次サーバ設定情報格納部
１２１ａ  次サーバ設定テーブル
１２２  ポート管理情報格納部
１２２ａ、１２２ｂ  ポート管理テーブル
１２３  エラーログ格納部
１２４  パラメータ管理情報格納部
１２４ａ、１２４ｂ  パラメータ管理テーブル
１５０、１５１、１５３  アドレス変換用データ
１５２、１５４  ポート遮断用データ
２０  アプリケーションサーバ
２１  アプリケーション
２２  アクセスライブラリ
３０  ＤｏＳ対策装置
３０ａ、３０ｂ  アドレス変換テーブル
３１  ポート変換設定部
４０  サービスセンタ
４１  トークンサーバ
４２  認証サーバ
４３  サービスサーバ
４３ａ  記憶装置
５０  ネットワーク
１００、１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅ  ポート変換設定サーバ
１０００  システム
Ｐ１、Ｐ２、Ｐ３  ポート
【図１】
0005440210.tif 000002
【図２】
0005440210.tif 000003
【図３】
0005440210.tif 000004
【図４】
0005440210.tif 000005
【図５】
0005440210.tif 000006
【図６】
0005440210.tif 000007
【図７】
0005440210.tif 000008
【図８】
0005440210.tif 000009
【図９】
0005440210.tif 000010
【図１０】
0005440210.tif 000011
【図１１】
0005440210.tif 000012
【図１２】
0005440210.tif 000013
【図１３】
0005440210.tif 000014
【図１４】
0005440210.tif 000015
【図１５】
0005440210.tif 000016
【図１６】
0005440210.tif 000017
【図１７】
0005440210.tif 000018
【図１８】
0005440210.tif 000019
【図１９】
0005440210.tif 000020
【図２０】
0005440210.tif 000021
【図２１】
0005440210.tif 000022
【図２２】
0005440210.tif 000023
【図２３】
0005440210.tif 000024
【図２４】
0005440210.tif 000025
【図２５】
0005440210.tif 000026
【図２６】
0005440210.tif 000027
【図２７】
0005440210.tif 000028
【図２８】
0005440210.tif 000029
【図２９】
0005440210.tif 000030
【図３０】
0005440210.tif 000031
【図３１】
0005440210.tif 000032
【図３２】
0005440210.tif 000033
【図３３】
0005440210.tif 000034
【図３４】
0005440210.tif 000035
【図３５】
0005440210.tif 000036
【図３６】
0005440210.tif 000037
【図３７】
0005440210.tif 000038
【図３８】
0005440210.tif 000039
【図３９】
0005440210.tif 000040
【図４０】
0005440210.tif 000041
【図４１】
0005440210.tif 000042
【図４２】
0005440210.tif 000043
【図４３】
0005440210.tif 000044
【図４４】
0005440210.tif 000045