(57)【特許請求の範囲】
【請求項１】
ＡＰＩ利用装置と複数の外部認証サーバ装置との認証連携を行うＡＰＩ連携装置であって、
前記ＡＰＩ利用装置を利用するユーザのユーザＩＤと、前記複数の外部認証サーバ装置のサーバＩＤと、が関連付けられたＩＤ情報が記憶されるＩＤ情報記憶部と、
前記ＡＰＩ利用装置から送信された、前記ユーザＩＤ及び前記サーバＩＤを含む一つのＡＰＩリクエストを受信し、受信された一つの前記ＡＰＩリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記ＡＰＩ利用装置へ送信する連携部と、
を備え、
前記連携部は、一つの前記ＡＰＩリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤを用いて前記ＩＤ情報記憶部を参照し、当該ユーザＩＤに対応する他の前記外部認証サーバ装置における前記ユーザＩＤを読み出し、読み出された前記ユーザＩＤに基づいて、他の前記外部認証サーバ装置へＡＰＩリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記ＡＰＩ利用装置へ送信する
ことを特徴とするＡＰＩ連携装置。
【請求項２】
前記ＡＰＩ利用装置から送信された一つの前記ＡＰＩリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記連携部は、前記一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤ及び前記サーバＩＤを前記ＩＤ情報記憶部に記憶させる
ことを特徴とする請求項１に記載のＡＰＩ連携装置。
【請求項３】
前記外部認証サーバ装置での認証が初めてである場合の一つの前記ＡＰＩリクエストが、他の前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを含む場合には、
前記連携部は、前記ＩＤ情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを前記ＩＤ情報記憶部に記憶させる
ことを特徴とする請求項２に記載のＡＰＩ連携装置。
【請求項４】
ＡＰＩ利用装置と複数の外部認証サーバ装置との認証連携を行うＡＰＩ連携装置によるＡＰＩ連携方法であって、
前記ＡＰＩ連携装置は、前記ＡＰＩ利用装置を利用するユーザのユーザＩＤと、前記複数の外部認証サーバ装置のサーバＩＤと、が関連付けられたＩＤ情報が記憶されるＩＤ情報記憶部を備えており、
前記ＡＰＩ連携装置が、前記ＡＰＩ利用装置から送信された、前記ユーザＩＤ及び前記サーバＩＤを含む一つのＡＰＩリクエストを受信し、受信された一つの前記ＡＰＩリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信する第一の認証連携ステップと、
前記ＡＰＩ連携装置が、一つの前記ＡＰＩリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤを用いて前記ＩＤ情報記憶部を参照し、当該ユーザＩＤに対応する他の前記外部認証サーバ装置における前記ユーザＩＤを読み出し、読み出された前記ユーザＩＤに基づいて、他の前記外部認証サーバ装置へＡＰＩリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信する第二の認証連携ステップと、
前記第一の認証連携ステップ及び前記第二の認証連携ステップにおいて受信された全ての前記認証レスポンスを前記ＡＰＩ利用装置へ送信する認証レスポンス送信ステップと、
を含むことを特徴とするＡＰＩ連携方法。
【請求項５】
前記第一の認証連携ステップにおいて前記ＡＰＩ利用装置から送信された一つの前記ＡＰＩリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記ＡＰＩ連携装置が、前記一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤ及び前記サーバＩＤを前記ＩＤ情報記憶部に記憶させるＩＤ情報管理ステップ
を含むことを特徴とする請求項４に記載のＡＰＩ連携方法。
【請求項６】
前記第一の認証連携ステップにおいて前記外部認証サーバ装置での認証が初めてである場合の一つの前記ＡＰＩリクエストが、他の前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを含む場合には、
前記ＩＤ情報管理ステップにおいて、前記ＡＰＩ連携装置が、前記ＩＤ情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを前記ＩＤ情報記憶部に記憶させる
ことを特徴とする請求項５に記載のＡＰＩ連携方法。
【請求項７】
ＡＰＩ利用装置と複数の外部認証サーバ装置との認証連携を行うＡＰＩ連携装置としてのコンピュータを、
前記ＡＰＩ利用装置から送信された、ユーザＩＤ及びサーバＩＤを含む一つのＡＰＩリクエストを受信し、受信された一つの前記ＡＰＩリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記ＡＰＩ利用装置へ送信する連携部、
として機能させ、
前記連携部は、一つの前記ＡＰＩリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤを用いて、前記ＡＰＩ利用装置を利用するユーザのユーザＩＤと、前記複数の外部認証サーバ装置のサーバＩＤと、が関連付けられたＩＤ情報が記憶されるＩＤ情報記憶部を参照し、当該ユーザＩＤに対応する他の前記外部認証サーバ装置における前記ユーザＩＤを読み出し、読み出された前記ユーザＩＤに基づいて、他の前記外部認証サーバ装置へＡＰＩリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記ＡＰＩ利用装置へ送信する
ことを特徴とするＡＰＩ連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＩＤプロバイダの外部認証サーバ装置を連携させる技術に関する。
【背景技術】
【０００２】
クライアントアプリケーションにおいてエンドユーザを認証する際に、エンドユーザが利用する端末であるＡＰＩ（Application Programming Interface）利用装置がＩＤプロバイダの外部認証サーバ装置を経由して認証連携を行う技術として、OAuth認証技術（非特許文献１参照）、OpenID認証技術（非特許文献２参照）等がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】OAUTH、［平成２８年１月２８日検索］、インターネット（URL:http://oauth.net/2/）
【非特許文献２】Welcome to OpenID Connect 、［平成２８年１月２８日検索］、インターネット（URL:http://openid.net/connect/）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
エンドユーザが利用するＡＰＩ利用装置が複数の外部認証サーバ装置と認証連携可能な設計を行う際には、連携可能な複数の認証ＡＰＩをＡＰＩ利用装置に実装する必要がある。また、外部認証サーバ装置において認証ＡＰＩの仕様変更がある場合には、その都度ＡＰＩ利用装置の開発者がＡＰＩ利用装置における対応を行う必要がある。また、エンドユーザが初回認証に選択した外部認証サーバ装置（ＩＤプロバイダ）が、同一ユーザとして認証される唯一のサーバ装置となり、２回目以降の認証においても同一の外部認証サーバ装置を選択する必要がある。
【０００５】
本発明は、前記事情に鑑みて創案されたものであり、ＡＰＩ利用装置における複数の認証ＡＰＩの実装を不要とし、複数の外部認証サーバ装置と好適に連携することが可能なＡＰＩ連携装置、ＡＰＩ連携方法及びＡＰＩ連携プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、本発明は、ＡＰＩ利用装置と複数の外部認証サーバ装置との認証連携を行うＡＰＩ連携装置であって、前記ＡＰＩ利用装置を利用するユーザのユーザＩＤと、前記複数の外部認証サーバ装置のサーバＩＤと、が関連付けられたＩＤ情報が記憶されるＩＤ情報記憶部と、前記ＡＰＩ利用装置から送信された、前記ユーザＩＤ及び前記サーバＩＤを含む一つのＡＰＩリクエストを受信し、受信された一つの前記ＡＰＩリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記ＡＰＩ利用装置へ送信する連携部と、を備え、前記連携部は、一つの前記ＡＰＩリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤを用いて前記ＩＤ情報記憶部を参照し、当該ユーザＩＤに対応する他の前記外部認証サーバ装置における前記ユーザＩＤを読み出し、読み出された前記ユーザＩＤに基づいて、他の前記外部認証サーバ装置へＡＰＩリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記ＡＰＩ利用装置へ送信することを特徴とする。
【０００７】
かかる構成によると、ＡＰＩ利用装置と複数の外部認証サーバ装置との間に設けられて複数の外部認証サーバ装置の連携を行うので、ＡＰＩ利用装置に複数の認証ＡＰＩを実装する必要を無くすことができる。
また、一つの外部認証サーバ装置へのＡＰＩリクエストに基づいて、一つの外部認証サーバ装置の認証レスポンスに加えて他の外部認証サーバ装置の認証レスポンスもＡＰＩ利用装置へ送信するので、複数の外部認証サーバ装置との好適な連携を実現することができる。
【０００８】
前記ＡＰＩ利用装置から送信された一つの前記ＡＰＩリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記連携部は、前記一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤ及び前記サーバＩＤを前記ＩＤ情報記憶部に記憶させる構成であってもよい。
【０００９】
かかる構成によると、認証が初めてである外部認証サーバ装置のＩＤ情報（サーバＩＤ及びユーザＩＤ）をＩＤ情報記憶部に記憶させることによって、当該外部認証サーバ装置の２回目以降の認証を好適に行うことができる。
【００１０】
前記外部認証サーバ装置での認証が初めてである場合の一つの前記ＡＰＩリクエストが、他の前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを含む場合には、前記連携部は、前記ＩＤ情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを前記ＩＤ情報記憶部に記憶させる構成であってもよい。
【００１１】
かかる構成によると、認証が初めてである外部認証サーバ装置のＩＤ情報（サーバＩＤ及びユーザＩＤ）を既に認証されたことがあってＩＤ情報記憶部に記憶されているＩＤ情報と好適に関連付けて記憶させることによって、その後に他の外部認証サーバ装置の認証とともに当該外部認証サーバ装置の認証も好適に行うことができる。
【００１２】
また、本発明は、ＡＰＩ利用装置と複数の外部認証サーバ装置との認証連携を行うＡＰＩ連携装置によるＡＰＩ連携方法であって、前記ＡＰＩ連携装置は、前記ＡＰＩ利用装置を利用するユーザのユーザＩＤと、前記複数の外部認証サーバ装置のサーバＩＤと、が関連付けられたＩＤ情報が記憶されるＩＤ情報記憶部を備えており、前記ＡＰＩ連携装置が、前記ＡＰＩ利用装置から送信された、前記ユーザＩＤ及び前記サーバＩＤを含む一つのＡＰＩリクエストを受信し、受信された一つの前記ＡＰＩリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信する第一の認証連携ステップと、前記ＡＰＩ連携装置が、一つの前記ＡＰＩリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤを用いて前記ＩＤ情報記憶部を参照し、当該ユーザＩＤに対応する他の前記外部認証サーバ装置における前記ユーザＩＤを読み出し、読み出された前記ユーザＩＤに基づいて、他の前記外部認証サーバ装置へＡＰＩリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信する第二の認証連携ステップと、前記第一の認証連携ステップ及び前記第二の認証連携ステップにおいて受信された全ての前記認証レスポンスを前記ＡＰＩ利用装置へ送信する認証レスポンス送信ステップと、を含むことを特徴とする。
【００１３】
前記ＡＰＩ連携方法は、前記第一の認証連携ステップにおいて前記ＡＰＩ利用装置から送信された一つの前記ＡＰＩリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記ＡＰＩ連携装置が、前記一つの前記ＡＰＩリクエストに含まれる前記ユーザＩＤ及び前記サーバＩＤを前記ＩＤ情報記憶部に記憶させるＩＤ情報管理ステップを含む構成であってもよい。
【００１４】
また、前記ＡＰＩ連携方法は、前記第一の認証連携ステップにおいて前記外部認証サーバ装置での認証が初めてである場合の一つの前記ＡＰＩリクエストが、他の前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを含む場合には、前記ＩＤ情報管理ステップにおいて、前記ＡＰＩ連携装置が、前記ＩＤ情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバＩＤ及び前記ユーザＩＤを前記ＩＤ情報記憶部に記憶させる構成であってもよい。
【００１５】
また、本発明は、コンピュータを前記ＡＰＩ連携装置として機能させるＡＰＩ連携プログラムとしても具現化可能である。
【発明の効果】
【００１６】
本発明によると、ＡＰＩ利用装置における複数の認証ＡＰＩの実装を不要とし、複数の外部認証サーバ装置と好適に連携することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るＡＰＩ連携装置を備えるＡＰＩ連携システムを示す模式図である。
【図２】（ａ）は、ＩｄＰ設定情報記憶部に記憶された情報の一例を示す図であり、（ｂ）は、ＩＤ情報記憶部に記憶された情報の一例を示す図である。
【図３】ＩｄＰ設定情報管理部の動作例を説明するためのフローチャートである。
【図４】ＩｄＰ連携部の動作例を説明するためのフローチャートである。
【図５】ＩＤ情報問合せ部の動作例を説明するためのフローチャートである。
【図６】ＩＤ情報管理部の動作例を説明するためのフローチャートである。
【図７】ＡＰＩリクエスト及び認証レスポンスに含まれるパラメータの一例を示す図である。
【発明を実施するための形態】
【００１８】
続いて、本発明の実施形態について図面を参照して説明する。図１に示すように、本発明の実施形態に係るＡＰＩ（Application Program Interface）連携システム１は、ＡＰＩ利用装置１０と、ＩｄＰ（Identity Provider）設定情報入力装置２０と、複数の外部認証サーバ装置３０と、ＡＰＩ連携装置４０と、を備える。
【００１９】
＜ＡＰＩ利用装置＞
ＡＰＩ利用装置１０は、エンドユーザがユーザ認証を受けてインターネット上のサービスを享受するためのクライアント装置（携帯端末装置等）である。ＡＰＩ利用装置１０は、操作部１１と、表示部１２と、制御部１３と、を備える。
【００２０】
操作部１１は、キーボード、マウス等によって構成されており、エンドユーザの操作に基づく入力内容を制御部１３へ出力する。表示部１２は、モニタ等によって構成されており、制御部１３からの出力に基づいて画面表示を行う。
【００２１】
制御部１３は、不図示のＣＰＵ（Central Processing Unit）、ＲＯＭ（Read-Only Memory）、ＲＡＭ（Random Access Memory）、入出力回路等から構成されている。制御部１３は、操作部１１から出力された入力内容を取得してＡＰＩ連携装置４０へ送信したり、操作部１１から出力された入力内容やＡＰＩ連携装置４０から送信されたデータを表示部１２に表示させたりする。
【００２２】
＜ＩｄＰ設定情報入力装置＞
ＩｄＰ設定情報入力装置２０は、ログインによってサービスを提供するＩＤプロバイダ（各種SNS等）である外部認証サーバ装置３０の設定情報（ＩｄＰ設定情報）を、ＡＰＩ連携装置４０へ送信する装置（デスクトップ型コンピュータ等）である。ＩｄＰ設定情報入力装置２０は、操作部２１と、表示部２２と、制御部２３と、を備える。
【００２３】
操作部２１は、キーボード、マウス等によって構成されており、オペレータの操作に基づく入力内容を制御部２３へ出力する。表示部２２は、モニタ等によって構成されており、制御部２３からの出力に基づいて画面表示を行う。
【００２４】
制御部２３は、不図示のＣＰＵ、ＲＯＭ、ＲＡＭ、入出力回路等から構成されている。制御部２３は、操作部２１から出力された入力内容を取得してＡＰＩ連携装置４０へ送信したり、操作部２１から出力された入力内容やＡＰＩ連携装置４０から送信されたデータを表示部２２に表示させたりする。
【００２５】
＜外部認証サーバ装置＞
外部認証サーバ装置３０は、ＡＰＩ利用装置１０から送信されたＡＰＩリクエストを受信し、受信されたＡＰＩリクエストに基づく認証を行うサーバ装置である。
【００２６】
＜ＡＰＩ連携装置＞
ＡＰＩ連携装置４０は、ＡＰＩ利用装置１０と複数の外部認証サーバ装置３０との間に通信可能に設けられており、ＡＰＩ利用装置１０に対して、複数の外部認証サーバ装置３０を認証連携させるサーバ装置である。ＡＰＩ連携装置４０は、不図示のＣＰＵ、ＲＯＭ、ＲＡＭ、入出力回路等から構成されており、機能部として、ＩｄＰ設定情報記憶部４１と、ＩＤ情報記憶部４２と、ＩｄＰ設定情報管理部４３と、ＩｄＰ連携部４４と、ＩＤ情報問合せ部４５と、ＩＤ情報管理部４６と、を備える。ここで、ＩｄＰ連携部４４、ＩＤ情報問合せ部４５及びＩＤ情報管理部４６が、複数の外部認証サーバ装置３０を連携させる連携部４０Ａを構成する。
【００２７】
≪ＩｄＰ設定情報記憶部≫
図２（ａ）に示すように、ＩｄＰ設定情報記憶部４１には、ＩｄＰ設定情報として、外部認証サーバ装置（ＩｄＰ）３０のＩＤごとに、当該外部認証サーバ装置３０と通信するための情報として、認可コードリクエストＵＲＬ、クライアントＩＤ、アクセストークンリクエストＵＲＬ、クライアントシークレット等が関連付けて記憶されている。
【００２８】
≪ＩＤ情報記憶部≫
ＩＤ情報記憶部４２には、ＩＤ情報として、ユーザごとに、外部認証サーバ装置（ＩｄＰ）３０とＩＤとが関連付けて記憶されている。
【００２９】
≪ＩｄＰ設定情報管理部≫
ＩｄＰ設定情報管理部４３は、ＩｄＰ設定情報入力装置２０によって送信されたＩｄＰ設定情報を受信し、受信されたＩｄＰ設定情報に基づいて、ＩｄＰ設定情報記憶部４１に記憶されたＩｄＰ設定情報を管理（登録、更新、修正、削除等）する。
【００３０】
≪ＩｄＰ連携部≫
ＩｄＰ連携部４４は、ＡＰＩ利用装置１０によって送信されたＡＰＩリクエストを受信し、当該ＡＰＩリクエストを対応する外部認証サーバ装置３０へ送信したり、外部認証サーバ装置３０の認証レスポンスを受信し、当該認証レスポンスをＡＰＩ利用装置１０へ送信したりする。また、ＩｄＰ連携部４４は、認証成功した外部認証サーバ装置３０のユーザＩＤと関連付けられた他の外部認証サーバ装置３０のＩＤ情報を後記するＩＤ情報問合せ部４５を介してＩＤ情報記憶部４２を照会し、照会結果に基づいて他の外部認証サーバ装置３０へのＡＰＩリクエストを生成し、当該ＡＰＩリクエストを対応する他の外部認証サーバ装置３０へ送信したり、他の外部認証サーバ装置３０の認証レスポンスを受信し、当該認証レスポンスをＡＰＩ利用装置１０へ送信したりする。
【００３１】
≪ＩＤ情報問合せ部≫
ＩＤ情報問合せ部４５は、認証成功した外部認証サーバ装置３０のユーザＩＤと関連付けられた他の外部認証サーバ装置３０のＩＤ情報をＩＤ情報記憶部４２から読み出し、読み出された他の外部認証サーバ装置３０のＩＤ情報をＩｄＰ連携部４４へ出力する。
【００３２】
≪ＩＤ情報管理部≫
ＩＤ情報管理部４６は、ＩｄＰ連携部４４によって取得された外部認証サーバ装置３０のＩＤ及びユーザのＩＤに基づいて、ＩＤ情報記憶部４２に記憶されたＩＤ情報を管理（登録、更新、修正、削除等）する。
【００３３】
＜動作例＞
続いて、ＡＰＩ連携装置４０の各機能部の動作例について、図３〜図６を参照して説明する。
【００３４】
≪ＩｄＰ設定情報管理部の動作例≫
ＩｄＰ設定情報管理部の動作例（ＩｄＰ連携の事前準備）について、図３を参照して説明する。まず、オペレータがＩｄＰ設定情報入力装置２０の操作部２１を操作すると、制御部２３は、操作部２１の操作内容に基づいて、複数の外部認証サーバ装置３０のＩｄＰ設定情報を送信する。ＩｄＰ設定情報管理部４３は、制御部２３によって送信されたＩｄＰ設定情報を受信する（ステップＳ１）
続いて、ＩｄＰ設定情報管理部４３は、受信されたＩｄｐ設定情報をＩｄＰ設定情報記憶部４１に記憶させる（ステップＳ２）。
【００３５】
≪ＩｄＰ連携部の動作例≫
続いて、ＩｄＰ連携部４４の動作例について、図４を参照して説明する。図４のフローチャートにおいて、ステップＳ１１〜Ｓ１４が第一の認証連携ステップに該当し、ステップＳ１５〜Ｓ２２の繰り返しが第二の認証連携ステップに該当し、ステップＳ２４が認証レスポンス送信ステップに該当する。まず、エンドユーザがＡＰＩ利用装置１０の操作部１１を操作すると、制御部１３は、操作部１１の操作内容に基づいて、ＡＰＩリクエストを送信する。ＡＰＩリクエストは、外部認証サーバ装置３０のＩＤ（サーバＩＤ）と、エンドユーザのＩＤ（ユーザＩＤ）と、を含む。
【００３６】
ＩｄＰ連携部４４は、ＡＰＩ利用装置１０の制御部１３によって送信されたＡＰＩリクエストを受信する（ステップＳ１１）。ＡＰＩリクエストは、外部認証サーバ装置３０のサーバＩＤと、当該サーバＩＤに対応するユーザＩＤと、が関連付けられたＩＤ情報を含む。また、外部サーバ装置３０での初めての認証（初回認証）を行う場合には、ＡＰＩリクエストは、ＩＤ情報記憶部に既に記憶された他の外部認証サーバ装置３０のサーバＩＤと、当該サーバＩＤに対応するユーザＩＤと、が関連付けられた、認証経験のある他の外部認証サーバ装置３０に関するＩＤ情報も含むことができる。続いて、ＩｄＰ連携部４４は、受信されたＡＰＩリクエストに含まれるサーバＩＤを用いてＩｄＰ設定情報記憶部４１を参照し、受信したＡＰＩリクエストに含まれるサーバＩＤに対応するリクエストＵＲＬを読み出す。続いて、ＩｄＰ連携部４４は、読み出されたリクエストＵＲＬを用いて、ＡＰＩリクエストを当該ＡＰＩリクエストに対応する外部認証サーバ装置３０へ送信する（ステップＳ１２）。
【００３７】
外部認証サーバ装置３０は、ＩｄＰ連携部４４によって送信されたＡＰＩリクエストを受信する。続いて、外部認証サーバ装置３０は、受信されたＡＰＩリクエストに含まれるユーザＩＤを用いて認証を行い、認証結果である認証レスポンス（認証成功又は認証失敗）をＩｄＰ連携部４４へ送信する。
【００３８】
ＩｄＰ連携部４４は、外部認証サーバ装置３０によって送信された認証レスポンスを受信する（ステップＳ１３）。認証レスポンスが認証成功を示すものである場合（ステップＳ１４でＹｅｓ）には、ＩｄＰ連携部４４は、ＡＰＩリクエストに含まれるユーザＩＤ及びサーバＩＤをＩＤ情報問合せ部４５へ出力し、ＩＤ情報問合せ部４５にＩＤ照会を依頼する（ステップＳ１５）。
【００３９】
なお、後記するように、外部認証サーバ装置３０を初めて利用する場合のＡＰＩリクエストは、初めて利用する外部認証サーバ装置３０のサーバＩＤ及びユーザＩＤに加えて、エンドユーザが既に利用したことのある他の外部認証サーバ装置３０のサーバＩＤ及びユーザＩＤを含むことができる。ＡＰＩリクエストが他の外部認証サーバ装置３０のサーバＩＤ及びユーザＩＤも含んでいる場合には、後記するステップＳ４３，Ｓ４４において、ＩＤ情報管理部４６は、エンドユーザによって初めて利用された外部認証サーバ装置３０のＩＤ情報を既に利用されたことのある他の外部認証サーバ装置のＩＤ情報と関連付けて記憶させることができる。
【００４０】
ＩＤ情報記憶部４２に、ユーザＩＤに関連付けられた他の外部認証サーバ装置３０のサーバＩＤ及び当該他の外部認証サーバ装置３０用のユーザＩＤがある場合（ステップＳ１６でＹｅｓ）には、ＩＤ情報問合せ部４５は、他の外部認証サーバ装置３０のサーバＩＤ及び当該他の外部認証サーバ装置３０用のユーザＩＤをＩＤ情報記憶部４２から読み出し、読み出された各ＩＤをＩｄＰ連携部４４へ出力する。ＩＤ情報問合せ部４５の動作例に関しては、後に図５を参照して詳細に説明する。
【００４１】
ＩｄＰ連携部４４は、ＩＤ情報問合せ部４５から出力された各ＩＤを取得し、取得された外部認証サーバ装置３０のサーバＩＤを用いてＩｄＰ設定情報記憶部４１を参照し、当該サーバＩＤに対応するリクエストＵＲＬを読み出す。続いて、ＩｄＰ連携部４４は、取得されたユーザＩＤ及びサーバＩＤを含むＡＰＩリクエストを生成するとともに、読み出されたリクエストＵＲＬを用いて、生成されたＡＰＩリクエストを当該ＡＰＩリクエストに対応する他の外部認証サーバ装置３０へ送信する（ステップＳ１７）。
【００４２】
他の外部認証サーバ装置３０は、ＩｄＰ連携部４４によって送信されたＡＰＩリクエストを受信する。続いて、他の外部認証サーバ装置３０は、受信されたＡＰＩリクエストに含まれるユーザのＩＤを用いて認証を行い、認証結果である認証レスポンスをＩｄＰ連携部４４へ送信する。
【００４３】
ＩｄＰ連携部４４は、他の外部認証サーバ装置３０によって送信された認証レスポンスを受信する（ステップＳ１８）。認証レスポンスが認証成功を示すものである場合（ステップＳ１９でＹｅｓ）には、ＩｄＰ連携部４４は、認証成功を示す認証レスポンスを保持し（ステップＳ２０）。
一方、ステップＳ１８で受信された認証レスポンスが認証失敗を示すものである場合（ステップＳ１９でＮｏ）には、ＩｄＰ連携部４４は、認証失敗した外部認証サーバ装置３０のユーザＩＤの消去をＩＤ情報管理部４６へ依頼する（ステップＳ２１）とともに、認証失敗に関するエラー信号を生成して保持する（ステップＳ２２）。エラー信号は、外部認証サーバ装置３０が認証失敗した旨を示す信号であり、認証失敗した外部認証サーバ装置３０の名称（サーバＩＤ）を含む。
ステップＳ２０の実行後、及び、ステップＳ２２の実行後に、本フローはステップＳ１６に移行し、ＩｄＰ連携部４４は、全ての他の外部認証サーバ装置３０のＩＤ及びユーザのＩＤについて、ステップＳ１６〜Ｓ２２を繰り返し実行する。
【００４４】
また、ステップＳ１３で受信された認証レスポンスが認証失敗を示すものである場合（ステップＳ１４でＮｏ）にも、ＩｄＰ連携部４４は、認証失敗に関するエラー信号を生成して保持する（ステップＳ２３）。
【００４５】
ステップＳ１６〜ステップＳ２２が全ての他の外部認証サーバ装置３０のＩＤ及びユーザのＩＤについて繰り返された場合（ステップＳ１６でＮｏ）、及び、ステップＳ２３の実行後に、ＩｄＰ連携部４４は、外部認証サーバ装置３０から受信した認証成功を示す認証レスポンスと、認証失敗を示す認証レスポンスに基づいて生成されたエラー信号と、を集約してＡＰＩ利用装置１０へ送信する（ステップＳ２４）。
【００４６】
ＡＰＩ利用装置１０の制御部１３は、ＩｄＰ連携部４４によって送信された認証レスポンス及びエラー信号を受信し、受信された認証レスポンス及びエラー信号を表示部１２に表示させる。ステップＳ１４でＹｅｓである場合には、表示部１２には、ＡＰＩ利用装置１０が送信した一つのＡＰＩリクエストに対応する外部認証サーバ装置３０の認証レスポンスが表示されることとなり、エンドユーザは、一つの外部認証サーバ装置３０のサービスを享受することができる。ステップＳ１６でＹｅｓである場合には、表示部１２には、ＡＰＩ利用装置１０が送信した一つのＡＰＩリクエストに対応する外部認証サーバ装置３０の認証レスポンスに加え、当該一つのＡＰＩリクエストに関連付けられた他の外部認証サーバ装置３０の認証レスポンス及びエラー信号も表示されることとなり、エンドユーザは、一つの外部認証サーバ装置３０へのログイン動作のみで、一つの外部認証サーバ装置３０のサービスに加えて他の外部認証サーバ装置３０のサービスも享受することができる。
【００４７】
なお、ステップＳ１９において認証レスポンスが認証失敗を示すものであり、エラー信号が生成されて表示部１２に表示されるケースとしては、ユーザＩＤが変更されているにも関わらずＩＤ情報記憶部４２内の該当データが更新されていない場合等が考えられる。
このような場合には、エンドユーザは、表示部１２に表示されたエラー信号に基づいて認証失敗した外部認証サーバ装置３０を認識することができ、また、ＩＤ情報記憶部４２内のエラーに該当するユーザＩＤが削除されているので、エンドユーザは、該当する外部認証サーバ装置３０を初めて利用する際と同様の操作を行うことにより、正しいユーザＩＤがＩＤ情報記憶部４２に改めて登録されることとなる。
【００４８】
≪ＩＤ情報問合せ部の動作例≫
続いて、ＩＤ情報問合せ部４５の動作例について、図５を参照して説明する。前記したステップＳ１５において、ＩｄＰ連携部４４が認証成功したＡＰＩリクエストに含まれるユーザＩＤ及びサーバＩＤを出力すると、ＩＤ情報問合せ部４５は、ＩｄＰ連携部４４から出力されたユーザＩＤ及びサーバＩＤを取得する（ステップＳ３１）。
【００４９】
続いて、ＩＤ情報問合せ部４５は、取得されたユーザＩＤ及びサーバＩＤをＩＤ情報記憶部４２へ照会する（ステップＳ３２）。照会したユーザＩＤ及びサーバＩＤがＩＤ情報記憶部４２へ記憶されている（登録済）場合（ステップＳ３３でＹｅｓ）には、ＩＤ情報問合せ部４５は、照会したユーザＩＤに対応する他の外部認証サーバ装置３０のサーバＩＤ及びユーザＩＤをＩＤ情報記憶部４２から読み出す（ステップＳ３４）。一方、照会したユーザＩＤ及びサーバＩＤがＩＤ情報記憶部４２へ記憶されていない（未登録）場合（ステップＳ３３でＮｏ）には、ＩＤ情報問合せ部４５は、認証成功したＡＰＩリクエストに対応する外部認証サーバ装置３０が初めて利用されたと判定し、ＡＰＩリクエストに含まれるユーザ情報（ユーザＩＤ及びサーバＩＤ）をＩＤ情報管理部４６へ出力し、ユーザＩＤの登録をＩＤ情報管理部４６へ依頼する（ステップＳ３５）。
【００５０】
ステップＳ３４又はステップＳ３５の実行後、ＩＤ情報問合せ部４５は、ＩＤ情報記憶部４２への登録状況（例えば、照会したユーザＩＤに対応する他の外部認証サーバ装置３０のサーバＩＤ及びユーザＩＤ）をＩｄＰ連携部４４へ出力する（ステップＳ３６）。
【００５１】
≪ＩＤ情報管理部の動作例≫
続いて、ＩＤ情報管理部４６の動作例について、図６を参照して説明する。図６のフローチャートにおけるステップＳ４１〜Ｓ４６がＩＤ情報管理ステップに該当する。前記したステップＳ３５において、ＩＤ情報問合せ部４５がＩＤ情報管理部４６へユーザＩＤの登録を依頼すると、ＩＤ情報管理部４６は、ＩＤ情報問合せ部４５から出力されたＩＤ情報（ユーザＩＤ及びサーバＩＤ）を取得する（ステップＳ４１）。または、ＩｄＰ連携部４４がＩＤ情報管理部４６へユーザＩＤの消去を依頼すると、ＩＤ情報管理部４６は、削除対象となるＩＤ情報（ユーザＩＤ及びサーバＩＤ）を取得する（ステップＳ４１）。ＩＤ情報管理部４６は、取得されたＩＤ情報を用いてＩＤ情報記憶部４２を照会する。
【００５２】
取得されたＩＤ情報が登録依頼されたものであり（ステップＳ４２でＹｅｓ）、かつ、取得されたＩＤ情報に登録済みのサーバＩＤ及びユーザＩＤが含まれる場合（ステップＳ４３でＹｅｓ）には、ＩＤ情報管理部４６は、初めての認証に関するＩＤ情報（サーバＩＤおよびユーザＩＤ）を、既に登録済みのＩＤ情報（サーバＩＤおよびユーザＩＤ）と関連付けてＩＤ情報記憶部４２へ追加登録する（ステップＳ４４）。一方、取得されたＩＤ情報に登録済みのサーバＩＤ及びユーザＩＤが含まれない場合（ステップＳ４３でＮｏ）には、ＩＤ情報管理部４６は、ＩＤ情報をＩＤ情報記憶部４２へ新規登録する（ステップＳ４５）。
【００５３】
また、取得されたＩＤ情報が削除依頼されたものである場合（ステップＳ４２でＮｏ）には、ＩＤ情報管理部４６は、当該ＩＤ情報に対応するユーザＩＤをＩＤ情報記憶部４２から削除する（ステップＳ４６）。
【００５４】
＜ＡＰＩリクエスト及び認証レスポンス＞
ここで、ＡＰＩリクエスト及び認証レスポンスに含まれるパラメータの例について、図７を参照して説明する。図７に示すように、ＡＰＩリクエストは、必須のパラメータとして、ログイン先の外部認証サーバ装置３０のサーバＩＤと、当該ログイン先の外部認証サーバ装置３０のユーザＩＤと、ＡＰＩ利用装置１０への返信を行うためのリダイレクトＵＲＩと、を含む。
【００５５】
また、ＡＰＩリクエストは、外部認証サーバ装置３０への初回認証時の必須のパラメータとして、ＩＤ情報記憶部４２に登録済の外部認証装置３０のサーバＩＤを含み、オプションとして、ＩＤ情報記憶部４２に登録済の外部認証装置３０に対応するユーザＩＤを含む。すなわち、初めての認証成功であるか否かは、ＡＰＩリクエストに他の登録済の外部認証サーバ装置３０のサーバＩＤ（及びユーザＩＤ）が含まれているか否かによっても判定可能である。また、ＡＰＩリクエストは、オプションとして、外部認証サーバ装置３０から取得したいユーザ情報を含むことができる。
例えば、OAuth認証において、エンドユーザがＡＰＩ利用装置１０から、あるＳＮＳでのログインを選択した場合には、自動で当該ＳＮＳのページに遷移し、当該ＳＮＳのページがＡＰＩ利用装置１０の表示部１２に表示された状態において、エンドユーザがユーザＩＤを入力することが考えられる。そのため、ＡＰＩ利用装置１０は、ＡＰＩリクエスト段階においてユーザＩＤを必要としない場合もある。
【００５６】
認証レスポンスは、必須のパラメータとして、登録済の外部認証サーバ装置３０のサーバＩＤ及びユーザＩＤを含む。また、認証レスポンスは、オプションとして、登録済の外部認証サーバ装置３０から取得されたユーザ情報を含むことができる。
【００５７】
本発明の実施形態に係るＡＰＩ連携装置４０は、ＡＰＩ利用装置１０と複数の外部認証サーバ装置３０との間に設けられて複数の外部認証サーバ装置３０の連携を行うので、ＡＰＩ利用装置１０に複数の認証ＡＰＩを実装する必要を無くすことができる。
また、ＡＰＩ連携装置４０は、一つの外部認証サーバ装置３０へのＡＰＩリクエストに基づいて、一つの外部認証サーバ装置３０の認証レスポンスに加えて他の外部認証サーバ装置３０の認証レスポンスもＡＰＩ利用装置１０へ送信するので、複数の外部認証サーバ装置３０との好適な連携を実現することができる。
【００５８】
また、ＡＰＩ連携装置４０は、認証が初めてである外部認証サーバ装置３０のＩＤ情報（サーバＩＤ及びユーザＩＤ）をＩＤ情報記憶部４２に記憶させることによって、当該外部認証サーバ装置３０の２回目以降の認証を好適に行うことができる。
【００５９】
特に、ＡＰＩ連携装置４０は、認証が初めてである外部認証サーバ装置３０のＩＤ情報（サーバＩＤ及びユーザＩＤ）を既に認証されたことがあってＩＤ情報記憶部４２に記憶されているＩＤ情報と好適に関連付けて記憶させることによって、その後に他の外部認証サーバ装置３０の認証とともに当該外部認証サーバ装置３０の認証も好適に行うことができる。
【００６０】
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、初回認証の際には、ユーザＩＤ及びサーバＩＤに加えてエンドユーザが有するメールアドレスがＡＰＩリクエストに含まれており、ＩＤ情報記憶部４２には、当該メールアドレスがユーザＩＤ及びサーバＩＤと関連付けて記憶されている構成であってもよい。
また、本発明は、コンピュータを前記ＡＰＩ連携装置４０として機能させるプログラムとしても具現化可能である。
【符号の説明】
【００６１】
１０    ＡＰＩ利用装置
３０    外部認証サーバ装置（ＩＤプロバイダ）
４０    ＡＰＩ連携装置
４０Ａ  連携部
４２    ＩＤ情報記憶部
【図１】
0006353471.tif 000002
【図２】
0006353471.tif 000003
【図３】
0006353471.tif 000004
【図４】
0006353471.tif 000005
【図５】
0006353471.tif 000006
【図６】
0006353471.tif 000007
【図７】
0006353471.tif 000008