JP2017142619A - Api連携装置、api連携方法及びapi連携プログラム - Google Patents

Api連携装置、api連携方法及びapi連携プログラム Download PDF

Info

Publication number
JP2017142619A
JP2017142619A JP2016022993A JP2016022993A JP2017142619A JP 2017142619 A JP2017142619 A JP 2017142619A JP 2016022993 A JP2016022993 A JP 2016022993A JP 2016022993 A JP2016022993 A JP 2016022993A JP 2017142619 A JP2017142619 A JP 2017142619A
Authority
JP
Japan
Prior art keywords
api
authentication
user
cooperation
external authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016022993A
Other languages
English (en)
Other versions
JP6353471B2 (ja
Inventor
彩 鈴木
Aya Suzuki
彩 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016022993A priority Critical patent/JP6353471B2/ja
Publication of JP2017142619A publication Critical patent/JP2017142619A/ja
Application granted granted Critical
Publication of JP6353471B2 publication Critical patent/JP6353471B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】API利用装置における複数の認証APIの実装を不要とし、複数の外部認証サーバ装置と好適に連携することが可能なAPI連携装置を提供する。【解決手段】API連携装置40の連携部44は、一つのAPIリクエストの認証レスポンスが認証成功を示すものである場合に、一つのAPIリクエストに含まれるユーザIDを用いてID情報記憶部42を参照し、当該ユーザIDに対応する他の外部認証サーバ装置30におけるユーザIDを読み出し、読み出されたユーザIDに基づいて、他の外部認証サーバ装置30へAPIリクエストを送信するとともに、他の外部認証サーバ装置30による認証レスポンスを受信し、受信された認証レスポンスを一つのAPIリクエストの認証レスポンスとともにAPI利用装置10へ送信する。【選択図】図1

Description

本発明は、複数のIDプロバイダの外部認証サーバ装置を連携させる技術に関する。
クライアントアプリケーションにおいてエンドユーザを認証する際に、エンドユーザが利用する端末であるAPI(Application Programming Interface)利用装置がIDプロバイダの外部認証サーバ装置を経由して認証連携を行う技術として、OAuth認証技術(非特許文献1参照)、OpenID認証技術(非特許文献2参照)等がある。
OAUTH、[平成28年1月28日検索]、インターネット(URL:http://oauth.net/2/) Welcome to OpenID Connect 、[平成28年1月28日検索]、インターネット(URL:http://openid.net/connect/)
エンドユーザが利用するAPI利用装置が複数の外部認証サーバ装置と認証連携可能な設計を行う際には、連携可能な複数の認証APIをAPI利用装置に実装する必要がある。また、外部認証サーバ装置において認証APIの仕様変更がある場合には、その都度API利用装置の開発者がAPI利用装置における対応を行う必要がある。また、エンドユーザが初回認証に選択した外部認証サーバ装置(IDプロバイダ)が、同一ユーザとして認証される唯一のサーバ装置となり、2回目以降の認証においても同一の外部認証サーバ装置を選択する必要がある。
本発明は、前記事情に鑑みて創案されたものであり、API利用装置における複数の認証APIの実装を不要とし、複数の外部認証サーバ装置と好適に連携することが可能なAPI連携装置、API連携方法及びAPI連携プログラムを提供することを課題とする。
前記課題を解決するために、本発明は、API利用装置と複数の外部認証サーバ装置との認証連携を行うAPI連携装置であって、前記API利用装置を利用するユーザのユーザIDと、前記複数の外部認証サーバ装置のサーバIDと、が関連付けられたID情報が記憶されるID情報記憶部と、前記API利用装置から送信された、前記ユーザID及び前記サーバIDを含む一つのAPIリクエストを受信し、受信された一つの前記APIリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記API利用装置へ送信する連携部と、を備え、前記連携部は、一つの前記APIリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記APIリクエストに含まれる前記ユーザIDを用いて前記ID情報記憶部を参照し、当該ユーザIDに対応する他の前記外部認証サーバ装置における前記ユーザIDを読み出し、読み出された前記ユーザIDに基づいて、他の前記外部認証サーバ装置へAPIリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記API利用装置へ送信することを特徴とする。
かかる構成によると、API利用装置と複数の外部認証サーバ装置との間に設けられて複数の外部認証サーバ装置の連携を行うので、API利用装置に複数の認証APIを実装する必要を無くすことができる。
また、一つの外部認証サーバ装置へのAPIリクエストに基づいて、一つの外部認証サーバ装置の認証レスポンスに加えて他の外部認証サーバ装置30の認証レスポンスもAPI利用装置へ送信するので、複数の外部認証サーバ装置との好適な連携を実現することができる。
前記API利用装置から送信された一つの前記APIリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記連携部は、前記一つの前記APIリクエストに含まれる前記ユーザID及び前記サーバIDを前記ID情報記憶部に記憶させる構成であってもよい。
かかる構成によると、認証が初めてである外部認証サーバ装置のID情報(サーバID及びユーザID)をID情報記憶部に記憶させることによって、当該外部認証サーバ装置の2回目以降の認証を好適に行うことができる。
前記外部認証サーバ装置での認証が初めてである場合の一つの前記APIリクエストが、他の前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを含む場合には、前記連携部は、前記ID情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバID及び前記ユーザIDと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを前記ID情報記憶部に記憶させる構成であってもよい。
かかる構成によると、認証が初めてである外部認証サーバ装置のID情報(サーバID及びユーザID)を既に認証されたことがあってID情報記憶部に記憶されているID情報と好適に関連付けて記憶させることによって、その後に他の外部認証サーバ装置の認証とともに当該外部認証サーバ装置の認証も好適に行うことができる。
また、本発明は、API利用装置と複数の外部認証サーバ装置との認証連携を行うAPI連携装置によるAPI連携方法であって、前記API連携装置は、前記API利用装置を利用するユーザのユーザIDと、前記複数の外部認証サーバ装置のサーバIDと、が関連付けられたID情報が記憶されるID情報記憶部を備えており、前記API連携装置が、前記API利用装置から送信された、前記ユーザID及び前記サーバIDを含む一つのAPIリクエストを受信し、受信された一つの前記APIリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信する第一の認証連携ステップと、前記API連携装置が、一つの前記APIリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記APIリクエストに含まれる前記ユーザIDを用いて前記ID情報記憶部を参照し、当該ユーザIDに対応する他の前記外部認証サーバ装置における前記ユーザIDを読み出し、読み出された前記ユーザIDに基づいて、他の前記外部認証サーバ装置へAPIリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信する第二の認証連携ステップと、前記第一の認証ステップ及び前記第二の認証ステップにおいて受信された全ての前記認証レスポンスを前記API利用装置へ送信する認証レスポンス送信ステップと、を含むことを特徴とする。
前記API連携方法は、前記第一の認証連携ステップにおいて前記API利用装置から送信された一つの前記APIリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記API連携装置が、前記一つの前記APIリクエストに含まれる前記ユーザID及び前記サーバIDを前記ID情報記憶部に記憶させるID情報管理ステップを含む構成であってもよい。
また、前記API連携方法は、前記第一の認証連携ステップにおいて前記外部認証サーバ装置での認証が初めてである場合の一つの前記APIリクエストが、他の前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを含む場合には、前記ID情報管理ステップにおいて、前記API連携装置が、前記ID情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバID及び前記ユーザIDと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを前記ID情報記憶部に記憶させる構成であってもよい。
また、本発明は、コンピュータを前記API連携装置として機能させるAPI連携プログラムとしても具現化可能である。
本発明によると、API利用装置における複数の認証APIの実装を不要とし、複数の外部認証サーバ装置と好適に連携することができる。
本発明の実施形態に係るAPI連携装置を備えるAPI連携システムを示す模式図である。 (a)は、IdP設定情報記憶部に記憶された情報の一例を示す図であり、(b)は、ID情報記憶部に記憶された情報の一例を示す図である。 IdP設定情報管理部の動作例を説明するためのフローチャートである。 IdP連携部の動作例を説明するためのフローチャートである。 ID情報問合せ部の動作例を説明するためのフローチャートである。 ID情報管理部の動作例を説明するためのフローチャートである。 APIリクエスト及び認証レスポンスに含まれるパラメータの一例を示す図である。
続いて、本発明の実施形態について図面を参照して説明する。図1に示すように、本発明の実施形態に係るAPI(Application Program Interface)連携システム1は、API利用装置10と、IdP(Identity Provider)設定情報入力装置20と、複数の外部認証サーバ装置30と、API連携装置40と、を備える。
<API利用装置>
API利用装置10は、エンドユーザがユーザ認証を受けてインターネット上のサービスを享受するためのクライアント装置(携帯端末装置等)である。API利用装置10は、操作部11と、表示部12と、制御部13と、を備える。
操作部11は、キーボード、マウス等によって構成されており、エンドユーザの操作に基づく入力内容を制御部13へ出力する。表示部12は、モニタ等によって構成されており、制御部13からの出力に基づいて画面表示を行う。
制御部13は、不図示のCPU(Central Processing Unit)、ROM(Read-Only Memory)、RAM(Random Access Memory)、入出力回路等から構成されている。制御部13は、操作部11から出力された入力内容を取得してAPI連携装置40へ送信したり、操作部11から出力された入力内容やAPI連携装置40から送信されたデータを表示部12に表示させたりする。
<IdP設定情報入力装置>
IdP設定情報入力装置20は、ログインによってサービスを提供するIDプロバイダ(各種SNS等)である外部認証サーバ装置30の設定情報(IdP設定情報)を、API連携装置40へ送信する装置(デスクトップ型コンピュータ等)である。IdP設定情報入力装置20は、操作部21と、表示部22と、制御部23と、を備える。
操作部21は、キーボード、マウス等によって構成されており、オペレータの操作に基づく入力内容を制御部23へ出力する。表示部22は、モニタ等によって構成されており、制御部23からの出力に基づいて画面表示を行う。
制御部23は、不図示のCPU、ROM、RAM、入出力回路等から構成されている。制御部23は、操作部21から出力された入力内容を取得してAPI連携装置40へ送信したり、操作部21から出力された入力内容やAPI連携装置40から送信されたデータを表示部22に表示させたりする。
<外部認証サーバ装置>
外部認証サーバ装置30は、API利用装置10から送信されたAPIリクエストを受信し、受信されたAPIリクエストに基づく認証を行うサーバ装置である。
<API連携装置>
API連携装置40は、API利用装置10と複数の外部認証サーバ装置30との間に通信可能に設けられており、API利用装置10に対して、複数の外部認証サーバ装置30を認証連携させるサーバ装置である。。API連携装置40は、不図示のCPU、ROM、RAM、入出力回路等から構成されており、機能部として、IdP設定情報記憶部41と、ID情報記憶部42と、IdP設定情報管理部43と、IdP連携部44と、ID情報問合せ部45と、ID情報管理部46と、を備える。ここで、IdP連携部44、ID情報問合せ部45及びID情報管理部46が、複数の外部認証サーバ装置30を連携させる連携部40Aを構成する。
≪IdP設定情報記憶部≫
図2(a)に示すように、IdP設定情報記憶部41には、IdP設定情報として、外部認証サーバ装置(IdP)30のIDごとに、当該外部認証サーバ装置30と通信するための情報として、認可コードリクエストURL、クライアントID、アクセストークンリクエストURL、クライアントシークレット等が関連付けて記憶されている。
≪ID情報記憶部≫
ID情報記憶部42には、ID情報として、ユーザごとに、外部認証サーバ装置(IdP)30とIDとが関連付けて記憶されている。
≪IdP設定情報管理部≫
IdP設定情報管理部43は、IdP設定情報入力装置20によって送信されたIdP設定情報を受信し、受信されたIdP設定情報に基づいて、IdP設定情報記憶部41に記憶されたIdP設定情報を管理(登録、更新、修正、削除等)する。
≪IdP連携部≫
IdP連携部44は、API利用装置10によって送信されたAPIリクエストを受信し、当該APIリクエストを対応する外部認証サーバ装置30へ送信したり、外部認証サーバ装置30の認証レスポンスを受信し、当該認証レスポンスをAPI利用装置10へ送信したりする。また、IdP連携部44は、認証成功した外部認証サーバ装置30のユーザIDと関連付けられた他の外部認証サーバ装置30のID情報を後記するID情報問合せ部45を介してID情報記憶部42を照会し、照会結果に基づいて他の外部認証サーバ装置30へのAPIリクエストを生成し、当該APIリクエストを対応する他の外部認証サーバ装置30へ送信したり、他の外部認証サーバ装置30の認証レスポンスを受信し、当該認証レスポンスをAPI利用装置10へ送信したりする。
≪ID情報問合せ部≫
ID情報問合せ部45は、認証成功した外部認証サーバ装置30のユーザIDと関連付けられた他の外部認証サーバ装置30のID情報をID情報記憶部42から読み出し、読み出された他の外部認証サーバ装置30のID情報をIdP連携部44へ出力する。
≪ID情報管理部≫
ID情報管理部46は、IdP連携部44によって取得された外部認証サーバ装置30のID及びユーザのIDに基づいて、ID情報記憶部42に記憶されたID情報を管理(登録、更新、修正、削除等)する。
<動作例>
続いて、API連携装置40の各機能部の動作例について、図3〜図6を参照して説明する。
≪IdP設定情報管理部の動作例≫
IdP設定情報管理部の動作例(IdP連携の事前準備)について、図3を参照して説明する。まず、オペレータがIdP設定情報入力装置20の操作部21を操作すると、制御部23は、操作部21の操作内容に基づいて、複数の外部認証サーバ装置30のIdP設定情報を送信する。IdP設定情報管理部43は、制御部23によって送信されたIdP設定情報を受信する(ステップS1)
続いて、IdP設定情報管理部43は、受信されたIdp設定情報をIdP設定情報記憶部41に記憶させる(ステップS2)。
≪IdP連携部の動作例≫
続いて、IdP連携部44の動作例について、図4を参照して説明する。図4のフローチャートにおいて、ステップS11〜S14が第一の認証連携ステップに該当し、ステップS15〜S22の繰り返しが第二の認証連携ステップに該当し、ステップS24が認証レスポンス送信ステップに該当する。まず、エンドユーザがAPI利用装置10の操作部11を操作すると、制御部13は、操作部11の操作内容に基づいて、APIリクエストを送信する。APIリクエストは、外部認証サーバ装置30のID(サーバID)と、エンドユーザのID(ユーザID)と、を含む。
IdP連携部44は、API利用装置10の制御部13によって送信されたAPIリクエストを受信する(ステップS11)。APIリクエストは、外部認証サーバ装置30のサーバIDと、当該サーバIDに対応するユーザIDと、が関連付けられたID情報を含む。また、外部サーバ装置30での初めての認証(初回認証)を行う場合には、APIリクエストは、ID情報記憶部に既に記憶された他の外部認証サーバ装置30のサーバIDと、当該サーバIDに対応するユーザIDと、が関連付けられた、認証経験のある他の外部認証サーバ装置30に関するID情報も含むことができる。続いて、IdP連携部44は、受信されたAPIリクエストに含まれるサーバIDを用いてIdP設定情報記憶部41を参照し、受信したAPIリクエストに含まれるサーバIDに対応するリクエストURLを読み出す。続いて、IdP連携部44は、読み出されたリクエストURLを用いて、APIリクエストを当該APIリクエストに対応する外部認証サーバ装置30へ送信する(ステップS12)。
外部認証サーバ装置30は、IdP連携部44によって送信されたAPIリクエストを受信する。続いて、外部認証サーバ装置30は、受信されたAPIリクエストに含まれるユーザIDを用いて認証を行い、認証結果である認証レスポンス(認証成功又は認証失敗)をIdP連携部44へ送信する。
IdP連携部44は、外部認証サーバ装置30によって送信された認証レスポンスを受信する(ステップS13)。認証レスポンスが認証成功を示すものである場合(ステップS14でYes)には、IdP連携部44は、APIリクエストに含まれるユーザID及びサーバIDをID情報問合せ部45へ出力し、ID情報問合せ部45にID照会を依頼する(ステップS15)。
なお、後記するように、外部認証サーバ装置30を初めて利用する場合のAPIリクエストは、初めて利用する外部認証サーバ装置30のサーバID及びユーザIDに加えて、エンドユーザが既に利用したことのある他の外部認証サーバ装置30のサーバID及びユーザIDを含むことができる。APIリクエストが他の外部認証サーバ装置30のサーバID及びユーザIDも含んでいる場合には、後記するステップS43,S44において、ID情報管理部46は、エンドユーザによって初めて利用された外部認証サーバ装置30のID情報を既に利用されたことのある他の外部認証サーバ装置のID情報と関連付けて記憶させることができる。
ID情報記憶部42に、ユーザIDに関連付けられた他の外部認証サーバ装置30のサーバID及び当該他の外部認証サーバ装置30用のユーザIDがある場合(ステップS16でYes)には、ID情報問合せ部45は、他の外部認証サーバ装置30のサーバID及び当該他の外部認証サーバ装置30用のユーザIDをID情報記憶部42から読み出し、読み出された各IDをIdP連携部44へ出力する。ID情報問合せ部45の動作例に関しては、後に図5を参照して詳細に説明する。
IdP連携部44は、ID情報問合せ部45から出力された各IDを取得し、取得された外部認証サーバ装置30のサーバIDを用いてIdP設定情報記憶部41を参照し、当該サーバIDに対応するリクエストURLを読み出す。続いて、IdP連携部44は、取得されたユーザID及びサーバIDを含むAPIリクエストを生成するとともに、読み出されたリクエストURLを用いて、生成されたAPIリクエストを当該APIリクエストに対応する他の外部認証サーバ装置30へ送信する(ステップS17)。
他の外部認証サーバ装置30は、IdP連携部44によって送信されたAPIリクエストを受信する。続いて、他の外部認証サーバ装置30は、受信されたAPIリクエストに含まれるユーザのIDを用いて認証を行い、認証結果である認証レスポンスをIdP連携部44へ送信する。
IdP連携部44は、他の外部認証サーバ装置30によって送信された認証レスポンスを受信する(ステップS18)。認証レスポンスが認証成功を示すものである場合(ステップS19でYes)には、IdP連携部44は、認証成功を示す認証レスポンスを保持し(ステップS20)。
一方、ステップS18で受信された認証レスポンスが認証失敗を示すものである場合(ステップS19でNo)には、IdP連携部44は、認証失敗した外部認証サーバ装置30のユーザIDの消去をID情報管理部46へ依頼する(ステップS21)とともに、認証失敗に関するエラー信号を生成して保持する(ステップS22)。エラー信号は、外部認証サーバ装置30が認証失敗した旨を示す信号であり、認証失敗した外部認証サーバ装置30の名称(サーバID)を含む。
ステップS20の実行後、及び、ステップS22の実行後に、本フローはステップS16に移行し、IdP連携部44は、全ての他の外部認証サーバ装置30のID及びユーザのIDについて、ステップS16〜S22を繰り返し実行する。
また、ステップS13で受信された認証レスポンスが認証失敗を示すものである場合(ステップS14でNo)にも、IdP連携部44は、認証失敗に関するエラー信号を生成して保持する(ステップS23)。
ステップS16〜ステップS22が全ての他の外部認証サーバ装置30のID及びユーザのIDについて繰り返された場合(ステップS16でNo)、及び、ステップS23の実行後に、IdP連携部44は、外部認証サーバ装置30から受信した認証成功を示す認証レスポンスと、認証失敗を示す認証レスポンスに基づいて生成されたエラー信号と、を集約してAPI利用装置10へ送信する(ステップS24)。
API利用装置10の制御部13は、IdP連携部44によって送信された認証レスポンス及びエラー信号を受信し、受信された認証レスポンス及びエラー信号を表示部12に表示させる。ステップS15でYesである場合には、表示部12には、API利用装置10が送信した一つのAPIリクエストに対応する外部認証サーバ装置30の認証レスポンスが表示されることとなり、エンドユーザは、一つの外部認証サーバ装置30のサービスを享受することができる。ステップS16でYesである場合には、表示部12には、API利用装置10が送信した一つのAPIリクエストに対応する外部認証サーバ装置30の認証レスポンスに加え、当該一つのAPIリクエストに関連付けられた他の外部認証サーバ装置30の認証レスポンス及びエラー信号も表示されることとなり、エンドユーザは、一つの外部認証サーバ装置30へのログイン動作のみで、一つの外部認証サーバ装置30のサービスに加えて他の外部認証サーバ装置30のサービスも享受することができる。
なお、ステップS19において認証レスポンスが認証失敗を示すものであり、エラー信号が生成されて表示部12に表示されるケースとしては、ユーザIDが変更されているにも関わらずID情報記憶部42内の該当データが更新されていない場合等が考えられる。
このような場合には、エンドユーザは、表示部12に表示されたエラー信号に基づいて認証失敗した外部認証サーバ装置30を認識することができ、また、ID情報記憶部42内のエラーに該当するユーザIDが削除されているので、エンドユーザは、該当する外部認証サーバ装置30を初めて利用する際と同様の操作を行うことにより、正しいユーザIDがID情報記憶部42に改めて登録されることとなる。
≪ID情報問合せ部の動作例≫
続いて、ID情報問合せ部45の動作例について、図5を参照して説明する。前記したステップS15において、IdP連携部44が認証成功したAPIリクエストに含まれるユーザID及びサーバIDを出力すると、ID情報問合せ部45は、IdP連携部44から出力されたユーザID及びサーバIDを取得する(ステップS31)。
続いて、ID情報問合せ部45は、取得されたユーザID及びサーバIDをID情報記憶部42へ照会する(ステップS32)。照会したユーザID及びサーバIDがID情報記憶部42へ記憶されている(登録済)場合(ステップS33でYes)には、ID情報問合せ部45は、照会したユーザIDに対応する他の外部認証サーバ装置30のサーバID及びユーザIDをID情報記憶部42から読み出す(ステップS34)。一方、照会したユーザID及びサーバIDがID情報記憶部42へ記憶されていない(未登録)場合(ステップS33でNo)には、ID情報問合せ部45は、認証成功したAPIリクエストに対応する外部認証サーバ装置30が初めて利用されたと判定し、APIリクエストに含まれるユーザ情報(ユーザID及びサーバID)をID情報管理部46へ出力し、ユーザIDの登録をID情報管理部46へ依頼する(ステップS35)。
ステップS34又はステップS35の実行後、ID情報問合せ部45は、ID情報記憶部42への登録状況(例えば、照会したユーザIDに対応する他の外部認証サーバ装置30のサーバID及びユーザID)をIdP連携部44へ出力する(ステップS36)。
≪ID情報管理部の動作例≫
続いて、ID情報管理部46の動作例について、図6を参照して説明する。図6のフローチャートにおけるステップS41〜S46がID情報管理ステップに該当する。前記したステップS35において、ID情報問合せ部45がID情報管理部46へユーザIDの登録を依頼すると、ID情報管理部46は、ID情報問合せ部45から出力されたID情報(ユーザID及びサーバID)を取得する(ステップS41)。または、IdP連携部44がID情報管理部46へユーザIDの消去を依頼すると、ID情報管理部46は、削除対象となるID情報(ユーザID及びサーバID)を取得する(ステップS41)。ID情報管理部46は、取得されたID情報を用いてID情報記憶部42を照会する。
取得されたID情報が登録依頼されたものであり(ステップS42でYes)、かつ、取得されたID情報に登録済みのサーバID及びユーザIDが含まれる場合(ステップS43でYes)には、ID情報管理部46は、初めての認証に関するID情報(サーバIDおよびユーザID)を、既に登録済みのID情報(サーバIDおよびユーザID)と関連付けてID情報記憶部42へ追加登録する(ステップS44)。一方、取得されたID情報に登録済みのサーバID及びユーザIDが含まれない場合(ステップS43でNo)には、ID情報管理部46は、ID情報をID情報記憶部42へ新規登録する(ステップS45)。
また、取得されたID情報が削除依頼されたものである場合(ステップS42でNo)には、ID情報管理部46は、当該ID情報に対応するユーザIDをID情報記憶部42から削除する(ステップS46)。
<APIリクエスト及び認証レスポンス>
ここで、APIリクエスト及び認証レスポンスに含まれるパラメータの例について、図7を参照して説明する。図7に示すように、APIリクエストは、必須のパラメータとして、ログイン先の外部認証サーバ装置30のサーバIDと、当該ログイン先の外部認証サーバ装置30のユーザIDと、API利用装置10への返信を行うためのリダイレクトURIと、を含む。
また、APIリクエストは、外部認証サーバ装置30への初回認証時の必須のパラメータとして、ID情報記憶部42に登録済の外部認証装置30のサーバIDを含み、オプションとして、ID情報記憶部42に登録済の外部認証装置30に対応するユーザIDを含む。すなわち、初めての認証成功であるか否かは、APIリクエストに他の登録済の外部認証サーバ装置30のサーバID(及びユーザID)が含まれているか否かによっても判定可能である。また、APIリクエストは、オプションとして、外部認証サーバ装置30から取得したいユーザ情報を含むことができる。
例えば、OAuth認証において、エンドユーザがAPI利用装置10から、あるSNSでのログインを選択した場合には、自動で当該SNSのページに遷移し、当該SNSのページがAPI利用装置10の表示部12に表示された状態において、エンドユーザがユーザIDを入力することが考えられる。そのため、API利用装置10は、APIリクエスト暖海においてユーザIDを必要としない場合もある。
認証レスポンスは、必須のパラメータとして、登録済の外部認証サーバ装置30のサーバID及びユーザIDを含む。また、認証レスポンスは、オプションとして、登録済の外部認証サーバ装置30から取得されたユーザ情報を含むことができる。
本発明の実施形態に係るAPI連携装置40は、API利用装置10と複数の外部認証サーバ装置30との間に設けられて複数の外部認証サーバ装置30の連携を行うので、API利用装置10に複数の認証APIを実装する必要を無くすことができる。
また、API連携装置40は、一つの外部認証サーバ装置30へのAPIリクエストに基づいて、一つの外部認証サーバ装置30の認証レスポンスに加えて他の外部認証サーバ装置30の認証レスポンスもAPI利用装置10へ送信するので、複数の外部認証サーバ装置30との好適な連携を実現することができる。
また、API連携装置40は、認証が初めてである外部認証サーバ装置30のID情報(サーバID及びユーザID)をID情報記憶部42に記憶させることによって、当該外部認証サーバ装置30の2回目以降の認証を好適に行うことができる。
特に、API連携装置40は、認証が初めてである外部認証サーバ装置30のID情報(サーバID及びユーザID)を既に認証されたことがあってID情報記憶部42に記憶されているID情報と好適に関連付けて記憶させることによって、その後に他の外部認証サーバ装置30の認証とともに当該外部認証サーバ装置30の認証も好適に行うことができる。
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、初回認証の際には、ユーザID及びサーバIDに加えてエンドユーザが有するメールアドレスがAPIリクエストに含まれており、ID情報記憶部42には、当該メールアドレスがユーザID及びサーバIDと関連付けて記憶されている構成であってもよい。
また、本発明は、コンピュータを前記API連携装置40として機能させるプログラムとしても具現化可能である。
10 API利用装置
30 外部認証サーバ装置(IDプロバイダ)
40 API連携装置
40A 連携部
42 ID情報記憶部

Claims (7)

  1. API利用装置と複数の外部認証サーバ装置との認証連携を行うAPI連携装置であって、
    前記API利用装置を利用するユーザのユーザIDと、前記複数の外部認証サーバ装置のサーバIDと、が関連付けられたID情報が記憶されるID情報記憶部と、
    前記API利用装置から送信された、前記ユーザID及び前記サーバIDを含む一つのAPIリクエストを受信し、受信された一つの前記APIリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記API利用装置へ送信する連携部と、
    を備え、
    前記連携部は、一つの前記APIリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記APIリクエストに含まれる前記ユーザIDを用いて前記ID情報記憶部を参照し、当該ユーザIDに対応する他の前記外部認証サーバ装置における前記ユーザIDを読み出し、読み出された前記ユーザIDに基づいて、他の前記外部認証サーバ装置へAPIリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記API利用装置へ送信する
    ことを特徴とするAPI連携装置。
  2. 前記API利用装置から送信された一つの前記APIリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記連携部は、前記一つの前記APIリクエストに含まれる前記ユーザID及び前記サーバIDを前記ID情報記憶部に記憶させる
    ことを特徴とする請求項1に記載のAPI連携装置。
  3. 前記外部認証サーバ装置での認証が初めてである場合の一つの前記APIリクエストが、他の前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを含む場合には、
    前記連携部は、前記ID情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバID及び前記ユーザIDと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを前記ID情報記憶部に記憶させる
    ことを特徴とする請求項2に記載のAPI連携装置。
  4. API利用装置と複数の外部認証サーバ装置との認証連携を行うAPI連携装置によるAPI連携方法であって、
    前記API連携装置は、前記API利用装置を利用するユーザのユーザIDと、前記複数の外部認証サーバ装置のサーバIDと、が関連付けられたID情報が記憶されるID情報記憶部を備えており、
    前記API連携装置が、前記API利用装置から送信された、前記ユーザID及び前記サーバIDを含む一つのAPIリクエストを受信し、受信された一つの前記APIリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信する第一の認証連携ステップと、
    前記API連携装置が、一つの前記APIリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記APIリクエストに含まれる前記ユーザIDを用いて前記ID情報記憶部を参照し、当該ユーザIDに対応する他の前記外部認証サーバ装置における前記ユーザIDを読み出し、読み出された前記ユーザIDに基づいて、他の前記外部認証サーバ装置へAPIリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信する第二の認証連携ステップと、
    前記第一の認証ステップ及び前記第二の認証ステップにおいて受信された全ての前記認証レスポンスを前記API利用装置へ送信する認証レスポンス送信ステップと、
    を含むことを特徴とするAPI連携方法。
  5. 前記第一の認証連携ステップにおいて前記API利用装置から送信された一つの前記APIリクエストによる前記外部認証サーバ装置での認証が初めてである場合に、前記API連携装置が、前記一つの前記APIリクエストに含まれる前記ユーザID及び前記サーバIDを前記ID情報記憶部に記憶させるID情報管理ステップ
    を含むことを特徴とする請求項4に記載のAPI連携方法。
  6. 前記第一の認証連携ステップにおいて前記外部認証サーバ装置での認証が初めてである場合の一つの前記APIリクエストが、他の前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを含む場合には、
    前記ID情報管理ステップにおいて、前記API連携装置が、前記ID情報記憶部に既に記憶された他の外部認証サーバ装置の前記サーバID及び前記ユーザIDと関連付けて、認証が初めてである前記外部認証サーバ装置の前記サーバID及び前記ユーザIDを前記ID情報記憶部に記憶させる
    ことを特徴とする請求項5に記載のAPI連携方法。
  7. API利用装置と複数の外部認証サーバ装置との認証連携を行うAPI連携装置としてのコンピュータを、
    前記API利用装置から送信された、前記ユーザID及び前記サーバIDを含む一つのAPIリクエストを受信し、受信された一つの前記APIリクエストを該当する前記外部認証サーバ装置へ送信するとともに、前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記API利用装置へ送信する連携部、
    として機能させ、
    前記連携部は、一つの前記APIリクエストの前記認証レスポンスが認証成功を示すものである場合に、一つの前記APIリクエストに含まれる前記ユーザIDを用いて、前記API利用装置を利用するユーザのユーザIDと、前記複数の外部認証サーバ装置のサーバIDと、が関連付けられたID情報が記憶されるID情報記憶部を参照し、当該ユーザIDに対応する他の前記外部認証サーバ装置における前記ユーザIDを読み出し、読み出された前記ユーザIDに基づいて、他の前記外部認証サーバ装置へAPIリクエストを送信するとともに、他の前記外部認証サーバ装置による認証レスポンスを受信し、受信された前記認証レスポンスを前記API利用装置へ送信する
    ことを特徴とするAPI連携プログラム。
JP2016022993A 2016-02-09 2016-02-09 Api連携装置、api連携方法及びapi連携プログラム Active JP6353471B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016022993A JP6353471B2 (ja) 2016-02-09 2016-02-09 Api連携装置、api連携方法及びapi連携プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016022993A JP6353471B2 (ja) 2016-02-09 2016-02-09 Api連携装置、api連携方法及びapi連携プログラム

Publications (2)

Publication Number Publication Date
JP2017142619A true JP2017142619A (ja) 2017-08-17
JP6353471B2 JP6353471B2 (ja) 2018-07-04

Family

ID=59627427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016022993A Active JP6353471B2 (ja) 2016-02-09 2016-02-09 Api連携装置、api連携方法及びapi連携プログラム

Country Status (1)

Country Link
JP (1) JP6353471B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170537A (zh) * 2017-12-06 2018-06-15 北京像素软件科技股份有限公司 游戏api实现方法、装置、接口服务器及可读存储介质
JP2019075006A (ja) * 2017-10-18 2019-05-16 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム
WO2019159894A1 (ja) * 2018-02-14 2019-08-22 日本電信電話株式会社 認証認可情報統合装置及び認証認可情報統合方法
JP2019164465A (ja) * 2018-03-19 2019-09-26 株式会社エヌ・ティ・ティ・データ 情報処理装置および情報処理方法
JP2020102270A (ja) * 2020-03-26 2020-07-02 株式会社エヌ・ティ・ティ・データ 情報処理装置および情報処理方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207362A (ja) * 1999-01-19 2000-07-28 Toshiba Corp ネットワ―クシステム及びネットワ―クシステムにおけるユ―ザ認証方法
JP2000267958A (ja) * 1999-03-18 2000-09-29 Fujitsu Ltd 中継装置および記録媒体
JP2004038646A (ja) * 2002-07-04 2004-02-05 Bank Of Tokyo-Mitsubishi Ltd 認証システム、及びこの認証システムに用いる認証装置とサイト提供装置
JP2004234329A (ja) * 2003-01-30 2004-08-19 Nippon Telegraph & Telephone East Corp Idマッピングを利用したシングルサインオンシステム、方法、プログラム並びに記憶媒体
US20060271689A1 (en) * 2005-05-26 2006-11-30 Katsuro Kikuchi System and method for single sign-on
JP2011128985A (ja) * 2009-12-18 2011-06-30 Toshiba Corp アカウントアグリゲーションシステム、情報処理装置およびアカウントアグリゲーションシステムにおける暗号鍵管理方法
JP2011238083A (ja) * 2010-05-12 2011-11-24 Nippon Hoso Kyokai <Nhk> 認証連携装置およびそのプログラム、機器認証装置およびそのプログラム、ならびに、認証連携システム
JP2013125410A (ja) * 2011-12-14 2013-06-24 Fujitsu Ltd 認証処理プログラム、認証処理方法、及び認証処理装置
JP2015038748A (ja) * 2014-09-22 2015-02-26 株式会社野村総合研究所 アクセス管理方法およびアクセス管理装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207362A (ja) * 1999-01-19 2000-07-28 Toshiba Corp ネットワ―クシステム及びネットワ―クシステムにおけるユ―ザ認証方法
JP2000267958A (ja) * 1999-03-18 2000-09-29 Fujitsu Ltd 中継装置および記録媒体
JP2004038646A (ja) * 2002-07-04 2004-02-05 Bank Of Tokyo-Mitsubishi Ltd 認証システム、及びこの認証システムに用いる認証装置とサイト提供装置
JP2004234329A (ja) * 2003-01-30 2004-08-19 Nippon Telegraph & Telephone East Corp Idマッピングを利用したシングルサインオンシステム、方法、プログラム並びに記憶媒体
US20060271689A1 (en) * 2005-05-26 2006-11-30 Katsuro Kikuchi System and method for single sign-on
JP2006331044A (ja) * 2005-05-26 2006-12-07 Hitachi Ltd シングルサインオン実現方法
JP2011128985A (ja) * 2009-12-18 2011-06-30 Toshiba Corp アカウントアグリゲーションシステム、情報処理装置およびアカウントアグリゲーションシステムにおける暗号鍵管理方法
JP2011238083A (ja) * 2010-05-12 2011-11-24 Nippon Hoso Kyokai <Nhk> 認証連携装置およびそのプログラム、機器認証装置およびそのプログラム、ならびに、認証連携システム
JP2013125410A (ja) * 2011-12-14 2013-06-24 Fujitsu Ltd 認証処理プログラム、認証処理方法、及び認証処理装置
JP2015038748A (ja) * 2014-09-22 2015-02-26 株式会社野村総合研究所 アクセス管理方法およびアクセス管理装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019075006A (ja) * 2017-10-18 2019-05-16 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム
JP7047322B2 (ja) 2017-10-18 2022-04-05 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム及びプログラム
CN108170537A (zh) * 2017-12-06 2018-06-15 北京像素软件科技股份有限公司 游戏api实现方法、装置、接口服务器及可读存储介质
WO2019159894A1 (ja) * 2018-02-14 2019-08-22 日本電信電話株式会社 認証認可情報統合装置及び認証認可情報統合方法
JP2019164465A (ja) * 2018-03-19 2019-09-26 株式会社エヌ・ティ・ティ・データ 情報処理装置および情報処理方法
JP2020102270A (ja) * 2020-03-26 2020-07-02 株式会社エヌ・ティ・ティ・データ 情報処理装置および情報処理方法
JP7122333B2 (ja) 2020-03-26 2022-08-19 株式会社エヌ・ティ・ティ・データ 情報処理装置および情報処理方法

Also Published As

Publication number Publication date
JP6353471B2 (ja) 2018-07-04

Similar Documents

Publication Publication Date Title
JP6353471B2 (ja) Api連携装置、api連携方法及びapi連携プログラム
JP6318940B2 (ja) サービス提供システム、データ提供方法及びプログラム
TWI637286B (zh) 隨選密碼方法及其系統
JP5424614B2 (ja) 情報処理システム、情報処理装置、Webサーバ、制御方法、及びプログラム
JP5296726B2 (ja) Webコンテンツ提供システム、Webサーバ、コンテンツ提供方法、及びこれらのプログラム
JP5962354B2 (ja) 情報処理装置、プログラム及びシステム
JP2016004453A (ja) サービス提供システム、ログ情報提供方法及びプログラム
JP2018195081A (ja) 情報処理システム、制御方法及びそのプログラム
JP6550708B2 (ja) 画像読取装置、および、コンピュータプログラム
JP6507863B2 (ja) 情報処理装置及びプログラム
JP6430689B2 (ja) 認証方法、端末およびプログラム
JP6303312B2 (ja) サービス提供システム及び画像提供方法
JP6447766B2 (ja) サービス提供システム、データ提供方法及びプログラム
JP6334865B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6237868B2 (ja) クラウドサービス提供システム及びクラウドサービス提供方法
JP2016218825A (ja) シングルサインオンシステム、シングルサインオン方法およびコンピュータプログラム
JP2019046133A (ja) 情報処理装置、制御方法、およびプログラム
US11178231B2 (en) Information processing apparatus and non-transitory computer readable medium
JP6059307B1 (ja) 端末装置、情報送信方法、及び情報送信プログラム
JP6424864B2 (ja) システム
JP5745013B2 (ja) 画像処理システム、画像処理装置、画像処理システムにおける制御方法、画像処理装置の制御方法、及びプログラム
JP5881756B2 (ja) 情報提供装置、情報提供システム、情報提供プログラムおよび情報提供方法
JP5521688B2 (ja) 情報閲覧装置及び情報閲覧制御プログラム
JP2008269220A (ja) 認証委譲システム及び認証委譲方法並びに端末装置及び認証サーバ
JP2015146147A (ja) サービス提供システム、情報処理装置、画像提供方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180608

R150 Certificate of patent or registration of utility model

Ref document number: 6353471

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150