JP6880579B2 - 情報提供システム - Google Patents

情報提供システム Download PDF

Info

Publication number
JP6880579B2
JP6880579B2 JP2016126748A JP2016126748A JP6880579B2 JP 6880579 B2 JP6880579 B2 JP 6880579B2 JP 2016126748 A JP2016126748 A JP 2016126748A JP 2016126748 A JP2016126748 A JP 2016126748A JP 6880579 B2 JP6880579 B2 JP 6880579B2
Authority
JP
Japan
Prior art keywords
authentication
request
information
web server
unit
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.)
Active
Application number
JP2016126748A
Other languages
English (en)
Other versions
JP2018005283A (ja
Inventor
裕介 佐々木
裕介 佐々木
忠弘 上原
忠弘 上原
敦二 関口
敦二 関口
功作 木村
功作 木村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016126748A priority Critical patent/JP6880579B2/ja
Priority to US15/487,629 priority patent/US20170374052A1/en
Publication of JP2018005283A publication Critical patent/JP2018005283A/ja
Application granted granted Critical
Publication of JP6880579B2 publication Critical patent/JP6880579B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明の実施形態は、情報提供プログラム、情報提供方法および情報提供システムに関する。
近年、REST(REpresentational State Transfer)などのWeb API(Application Programming Interface)を通してシステム間の連携やクライアント端末との連携を行うWebアプリが増加している。このWebアプリでは、OAuthやSAML(Security Assertion Markup Language)といった仕組みでユーザ認証および認可の機構を統一している。また、OAuthやSAMLを採用していないWebアプリでもWeb APIを取り入れるニーズが高まっている。このWebアプリでは、Cookieを利用した認証を行っており、クライアント端末とWebサーバとの間のAPIサーバが認証できるように認証情報をAPIサーバに渡している。
国際公開第2011/090144号 特開2004−103022号公報
「The OAuth 2.0 Authorization Framework」、[平成28年5月28日検索]、インターネット<URL:https://tools.ietf.org/html/rfc6749> 「Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants」、[平成28年5月28日検索]、インターネット<URL:https://tools.ietf.org/html/rfc7522>
しかしながら、上述したOAuthやSAMLを採用していないWebアプリでは、データ参照(GET Request)時などにおいて平文の認証情報が随所で利用され、認証情報が漏洩するリスクが高くなるという問題がある。例えば、APIサーバ上のアクセスログに、アクセスされたページへのPathとともに認証情報が残る場合がある。また、Webブラウザ上の閲覧履歴にアクセスしたページのURLとともに認証情報が残る場合がある。
図10は、従来の情報提供システムの通信例を説明する説明図である。図10に示すように、従来の情報提供システム200は、クライアント端末210、APIサーバ220およびWebサーバ230を有する。クライアント端末210は、APIサーバ220を通してWebサーバ230との通信セッションを開始して情報を閲覧する。APIサーバ220は、クライアント端末210より得た認証情報を用いてWebサーバ230へアクセスする際の認証を実施し、通信セッションを開始する。
例えば、Basic認証を利用してクライアント端末210からAPIサーバ220へ認証情報を送信してWebサーバ230への認証を行う場合は、APIサーバ220上でも平文の認証情報を取り扱うことになる。このため、認証情報が漏洩するリスクが高くなる。
また、認証情報をGET Parameterへ含めて送信する場合、すなわちRequest Path上に認証情報を含める場合は、APIサーバ220上のアクセスログにはアクセスされたページへのPathとともに認証情報が残る。また、クライアント端末210のWebブラウザ上の閲覧履歴にもアクセスしたページのURL(Uniform Resource Locator)とともに認証情報が残るため、認証情報の漏洩リスクは高くなる。
また、GET Requestの場合は、多くのライブラリがリクエスト引数をmessage−bodyへ含めることを許していないので、Request Path上に認証情報が載ることとなる。また、データ更新などで用いるPOST Requestの場合は、リクエスト引数をmessage−bodyへ含めるので、アクセスログには認証情報が残らないが、依然認証情報をAPIサーバ220へ格納することから認証情報の漏洩リスクは高くなる。
1つの側面では、認証情報が漏洩するリスクを低減できる情報提供プログラム、情報提供方法および情報提供システムを提供することを目的とする。
第1の案では、情報提供プログラムは、通信セッションを開始する第1のサーバ装置へ認証情報を送信して第1のサーバ装置からセッション情報を取得する処理をコンピュータに実行させる。また、情報提供プログラムは、取得したセッション情報を第2のサーバ装置へ転送して第1のサーバ装置との通信セッションを第2のサーバ装置を介して継続する処理をコンピュータに実行させる。
本発明の1実施態様によれば、認証情報が漏洩するリスクを低減できる。
図1は、実施形態にかかる情報提供システムを例示するブロック図である。 図2は、実施形態にかかる情報提供システムの動作例を示すフローチャートである。 図3は、認証画面アクセスを説明する説明図である。 図4は、Cookieを転送するアクセスを説明する説明図である。 図5は、Webサーバからのレスポンスを説明する説明図である。 図6は、Webサーバからのレスポンスを説明する説明図である。 図7は、リクエストから表示までの流れを説明する説明図である。 図8は、実施形態にかかる情報提供システムの通信例を説明する説明図である。 図9は、クライアント端末、APIサーバ、Webサーバのハードウエア構成を例示するブロック図である。 図10は、従来の情報提供システムの通信例を説明する説明図である。
以下、図面を参照して、実施形態にかかる情報提供プログラム、情報提供方法および情報提供システムを説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する情報提供プログラム、情報提供方法および情報提供システムは、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
図1は、実施形態にかかる情報提供システムを例示するブロック図である。図1に示すように、情報提供システム1は、クライアント端末10、APIサーバ20、Webサーバ30を有する。
クライアント端末10は、例えばPC(Personal Computer)やタブレット端末などである。クライアント端末10は、WebブラウザなどのWebアプリを実行してWebサーバ30にHTTP(HyperText Transfer Protocol)でアクセスし、Webサーバ30から提供された情報をユーザへ表示する。例えば、クライアント端末10は、Webサーバ30との間で通信セッションを確立した後に、Webサーバ30への情報提供をリクエスト(要求)し、リクエストによるレスポンス(返信)を得てWebサーバ30から提供された情報をユーザへ表示する。
クライアント端末10は、認証画面アクセス部11、認証情報管理部12、Cookie管理部13、Webリソースアクセス部14、リソース管理部15、アプリケーション16および表示部17を有する。
認証画面アクセス部11は、Webサーバ30との間でリクエストD1およびレスポンスD2を送受信し、Webサーバ30と通信セッションを確立するための認証プロセスを実行する。
具体的には、認証画面アクセス部11は、Webサーバ30の認証画面(ログイン画面)へアクセスし、認証画面において入力されたユーザIDやパスワードなどの認証情報をパラメータとするPOSTリクエストのリクエストD1を送信する。
Webサーバ30は、リクエストD1に含まれる認証情報をもとに、予め登録された認証情報を管理するDB(図示しない)を参照し、認証成功か認証失敗かを判定する。次いで、Webサーバ30は、判定結果に応じたレスポンス画面を含むレスポンスD2を返信する。なお、Webサーバ30は、認証成功の場合にはクライアント端末10との間の通信セッションにかかるCookie(セッション情報)をレスポンスD2に含めて返信する。これにより、認証画面アクセス部11は、認証成功の場合にはCookie(セッション情報)をWebサーバ30より取得する。
なお、認証画面アクセス部11は、Webサーバ30との間でリクエストD1およびレスポンスD2を送受信する通信路、すなわち認証情報をWebサーバ30へ送信してセッション情報を取得する通信路について、暗号化された通信路を用いるものとする。具体的には、認証画面アクセス部11は、SSL(Secure Sockets Layer)/TLS(Transport Layer Security)を実装しており、SSL/TLSにより暗号化された通信路を用いてリクエストD1およびレスポンスD2を送受信する。これにより、Webサーバ30との間での通信において、認証情報が漏洩することを防止することができる。
認証情報管理部12は、例えば認証画面アクセス部11において入力されたユーザID、パスワードなどの、ユーザの認証情報を管理する。Cookie管理部13は、認証画面アクセス部11がWebサーバ30より取得したCookie(セッション情報)を管理する。
Webリソースアクセス部14は、APIサーバ20のAPI21との間でリクエストD3およびレスポンスD4を送受信し、APIサーバ20を介してWebサーバ30が提供するWebリソースへのアクセスを行う。
具体的には、Webリソースアクセス部14は、Webサーバ30より取得したCookie(セッション情報)をCookie管理部13より読み出してAPIサーバ20へ転送し、Webサーバ30との間の通信セッションをAPIサーバ20を介して継続することで、Webサーバ30が提供するWebリソースへアクセスする。
Webリソースアクセス部14は、例えば、CookieをパラメータとするGETリクエストのリクエストD3をAPIサーバ20のAPI21へ送信する。このCookieの転送により、APIサーバ20では、認証されたユーザの権限でWebサーバ30へのアクセスが許可され、Webサーバ30が提供するWebリソースをAPIサーバ20を介してクライアント端末10へ提供することができる。なお、Webサーバ30が提供するWebリソースは、顧客情報や購買情報を管理する業務DB(データベース)などがあり、様々な現場よりアクセスして利用される。
リソース管理部15は、Webリソースアクセス部14がAPIサーバ20を介して取得したWebリソースを管理する。アプリケーション16は、種々の論理処理を行うWebアプリにおけるアプリロジック部であり、例えば取得したWebリソースを描画用のデータに加工するなどの処理を行う。表示部17は、モニタなどへの表示処理を行う処理部であり、描画用に加工されたWebリソースの表示などのWebアプリの処理結果を表示する。
APIサーバ20は、API21、コントローラ22、ハンドラ23、APIセッション検証部24、アクセス集約部25、リクエスト変換部26およびHTML2Object部27を有する。
API21は、Webサーバ30におけるWebリソースへのアクセスを受け付けるインタフェースである。具体的には、API21は、Webリソースアクセス部14よりリクエストD3を受信し、受信したリクエストD3をコントローラ22へ出力する。また、API21は、リクエストD3に対応してコントローラ22より出力されたWebサーバ30からの返信結果をレスポンスD4としてクライアント端末10へ送信する。
コントローラ22は、API21からリクエストD3を受け付け、リクエストD3に含まれるヘッダー部やボディ部などの内容をメモリに一時記憶する。具体的には、コントローラ22は、リクエストD3より、GETなどのリクエストの種類(リクエストメソッド)、URLなどのリクエストしたいWebリソースのパス(リクエストパス)、Cookie24a(セッション情報)などを抽出してメモリに一時記憶する。ハンドラ23は、コントローラ22によりメモリに一時記憶されたリクエストD3のそれぞれに対応するリクエストハンドラ23a〜23cを取り扱う。
APIセッション検証部24は、リクエストD3に含まれるCookie24aをWebサーバ30へのリクエストD5に含めて送信し、リクエストD5に対するレスポンスD6の内容をもとに、APIサーバ20とWebサーバ30との通信セッションを検証する。具体的には、APIセッション検証部24は、レスポンスD6に含まれる認証レスポンス画面を解析して認証成功か認証失敗かを判定する。認証失敗の場合は、APIセッション検証部24は、API21より認証失敗のレスポンスD4をクライアント端末10へ送信させる。認証成功の場合は、認証成功のレスポンスD4をクライアント端末10へ送信することなく、Webサーバ30との通信セッションが継続される。
アクセス集約部25は、リクエストハンドラ23a〜23cのリクエストごとに、リクエスト変換部26およびHTML2Object部27によるWebサーバ30へのアクセスを集約する。具体的には、アクセス集約部25は、リクエストハンドラ23a〜23cのリクエストごとに、リクエスト変換部26がリクエストD5をWebサーバ30に送信してHTML2Object部27が受信したレスポンスD6の内容を集約してハンドラ23へ出力する。これにより、API21は、リクエストハンドラ23a〜23cのリクエストについて、Webサーバ30からのレスポンスD6を集約した結果をレスポンスD4としてクライアント端末10へ送信する。
リクエスト変換部26は、クライアント端末10より受信したリクエストD3に対応するリクエストD5をWebサーバ30へ送信する。具体的には、リクエスト変換部26は、リクエストD3に含まれるCookie24aをパラメータとしてGETリクエストのリクエストD5を送信する。
HTML2Object部27は、リクエストD5に対するWebサーバ30からのレスポンスD6を受信し、アクセス集約部25へ渡す。なお、HTML2Object部27は、受信したレスポンスD6のボディ部に含まれる内容を、クライアント端末10において読み取り可能な共通形式(JSONなど)に加工してアクセス集約部25へ渡す。
Webサーバ30は、Webサーバ30における通信インタフェースであり、所定のネットワークアドレスが割り当てられた通信部31を有する。Webサーバ30は、通信部31との間で通信セッションを確立したクライアント端末10などの外部機器に対して様々な情報を提供する。例えば、Webサーバ30は、HTTPでのリクエストに応じたレスポンスを返してHTML( HyperText Markup Language)などで記述された情報を提供する。
図2は、実施形態にかかる情報提供システム1の動作例を示すフローチャートである。図2に示すように、処理が開始されると、クライアント端末10の認証画面アクセス部11は、リクエストD1をWebサーバ30へ送信してレスポンスD2を受信することでログイン画面(認証画面)を取得し、Webサーバ30との通信セッションを開始する(S1)。
図3は、認証画面アクセスを説明する説明図である。図3に示すように、S11において認証画面アクセス部11は、ログイン画面のGETリクエストのリクエストD1をWebサーバ30に送信し、Webサーバ30よりログイン画面についてのレスポンスD2を受信する。認証画面アクセス部11は、レスポンスD2に含まれるCookieを抽出してCookie管理部13に出力する。また、認証画面アクセス部11は、CSRF(Cross Site Request Forgeries)による成りすまし防止トークンなどがWebサーバ30から送られているときは防止トークンもCookieとともに抽出してCookie管理部13に出力する。
次いで、認証画面アクセス部11は、ユーザが入力したユーザIDやパスワードなど、認証情報管理部12が管理している認証情報を含むPOSTリクエストのリクエストD1をWebサーバ30へ送信する(S2)。次いで、認証画面アクセス部11は、認証情報に基づく判定結果に応じたレスポンス画面を含むレスポンスD2をWebサーバ30より受信する(S3)。
具体的には、図3に示すように、S2において認証画面アクセス部11は、「uid」、「passwd」などが設定されたリクエストD1をWebサーバ30へ送信する。また、S3において認証画面アクセス部11は、「uid」、「passwd」の判定結果に応じたレスポンス画面を含むレスポンスD2をWebサーバ30より受信する。
次いで、認証画面アクセス部11は、レスポンスD2に含まれる、認証レスポンス画面を解析し、認証成功か否かを判定する(S4)。例えば、認証画面アクセス部11は、認証失敗を示すエラーコードが含まれる場合は認証失敗と判定し、認証失敗を示すエラーコードが含まれない場合には認証成功と判定する。
S4において認証失敗の場合、認証画面アクセス部11はS1へ処理を戻す。また、認証失敗の場合、Webサーバ30においては、クライアント端末10に送信したCookieに対する通信セッションが認証失敗(ログイン未承認)とされる。
S4において認証成功の場合は、レスポンスD2に含まれるレスポンス画面が表示部17によりユーザに対して表示される。例えば認証成功の場合、図3に示すように、表示部17の表示画面G1には、認証成功のユーザに対するレスポンス画面である、ユーザのポータル画面が表示される。ユーザは、表示画面G1上での操作により、Webサーバ30が提供する各種Webリソースをリクエストする。また、Webサーバ30においては、クライアント端末10に送信したCookieに対する通信セッションが認証成功(ログイン済み)として継続されることとなる。
S4において認証成功の場合、認証画面アクセス部11は、レスポンスD2に含まれるCookieを抽出し(S5)、Cookie管理部13に出力する。これにより、Webサーバ30において認証が成功した通信セッション(ログイン済み)のCookieがCookie管理部13で管理されることとなる。
次いで、Webリソースアクセス部14は、表示画面G1(図3参照)上での操作などにより、Webサーバ30が提供する各種Webリソースについてのリクエストをユーザより受け付ける。次いで、Webリソースアクセス部14は、ユーザよりリクエストのあったWebリソースについてのGetリクエストとログイン済みのCookie(セッション情報)をAPIサーバ20へ送信する(S6)。
図4は、Cookieを転送するアクセスを説明する説明図である。図4に示すように、S6においてWebリソースアクセス部14は、ログイン済みのCookie(セッション情報)をパラメータとするGETリクエストのリクエストD3をAPIサーバ20のAPI21へ送信する。このGETリクエストには、ユーザよりリクエストのあったWebリソースについてのリソースパスがWebサーバ30のCoookieとともに含まれている。
次いで、APIサーバ20のコントローラ22は、クライアント端末10からGetリクエストとCookie(セッション情報)を受信し(S7)、Getリクエストをログへ記録する(S8)。次いで、APIサーバ20では、リクエストD3に応じたWebサーバ30へのアクセスにかかる、S9〜S15のループ処理を行う。
図4におけるリクエストD3の例では、リクエストパスが「api/company/xyz_orz/member/alice」である。よって、S9〜S15のループ処理では、「xyz_orz」の「company」に属する「member」の「alice」の情報についてアクセスが行われる。
ループ処理が開始されると、リクエスト変換部26は、リクエストD3に応じたGetリクエストとCookie(セッション情報)をWebサーバ30へ送信する(S10)。具体的には、図4に示すように、S10においてリクエスト変換部26は、リクエストD3に含まれるCookie(セッション情報)とリクエストパスとを有するリクエストD5をWebサーバ30へ送信する。すなわち、リクエスト変換部26は、クライアント端末10のリクエストD3に含まれるCookie(セッション情報)をWebサーバ30へ転送することで、認証されたユーザの権限でWebサーバ30へアクセスする。なお、リクエストD5は、例えば「api/company/xyz_orz/member/alice」のリクエストパスへのアクセスを示す所定のRESTフォーマットであってもよい。
次いで、HTML2Object部27はリクエストD5に対応するボディデータD7を受信する。次いで、APIセッション検証部24は、レスポンスD6に含まれる認証レスポンス画面を解析し、認証成功か否かを判定する(S11)。例えば、APIセッション検証部24は、認証失敗を示すエラーコードが含まれる場合は認証失敗と判定し、認証失敗を示すエラーコードが含まれない場合には認証成功と判定する。
S11において認証失敗の場合、APIセッション検証部24は、認証失敗を示すエラーコードなどを付与したレスポンスD4をAPI21よりクライアント端末10へ送信させ、認証が失敗したことを通知する(S12)。
図5は、Webサーバ30からのレスポンスを説明する説明図であり、より具体的には認証が失敗した場合のレスポンスを示す図である。
図5に示すように、Cookie(セッション情報)による認証が失敗した場合には、「401」などのエラーコードを示すレスポンスD6がWebサーバ30よりAPIサーバ20に通知される。この場合、APIセッション検証部24は、「401」のエラーコードを付与したレスポンスD4をAPI21よりクライアント端末10に送信させ、認証失敗を通知する。
認証失敗の通知を受けたクライアント端末10では、Cookie(セッション情報)による認証が失敗し、通信セッションが途切れていることから、ログイン認証をやり直すためにS1へ処理を戻す。
S11において認証成功の場合、HTML2Object部27は、リクエストしたデータ(HTML文書)、すなわちリクエストD5に対するレスポンスD6を受信する(S13)。次いで、HTML2Object部27は、受信したデータをクライアント端末10が読める形式(JSONなど)に加工する(S14)。
図6は、Webサーバ30からのレスポンスを説明する説明図であり、より具体的には認証が成功した場合のレスポンスを示す図である。図6に示すように、Cookie(セッション情報)による認証が成功した場合には、リクエストしたデータ(HTML文書)を含むレスポンスD6がWebサーバ30よりAPIサーバ20に通知される。HTML2Object部27は、レスポンスD6においてHTML文書が格納されたボディデータD7をもとに、JSONなどの所定の形式に加工した加工済データD8を作成する。クライアント端末10では、加工済データD8を得ることで、リクエストしたデータの表示画面G2を描画することができる。
アクセス集約部25では、リクエストD3においてリクエストされたデータの全てがWebサーバ30より得られるまでループ処理(S9〜S15)を継続し、得られたデータを集約してハンドラ23へ出力する。
次いで、API21は、Webサーバ30より受信したデータ(加工済データD8)をレスポンスD4としてクライアント端末10へ送信する(S16)。クライアント端末10のリソース管理部15は、レスポンスD4に含まれる加工済データD8を描画用のデータ(所定の描画サイズや着色)に加工(例えばMap形式への加工)するなどの処理を行う。次いで、表示部17は、リソース管理部15により加工されたデータをユーザへ表示する(S17)。
図7は、リクエストから表示までの流れを説明する説明図である。図7に示すように、APIサーバ20は、Webサーバ30へのリクエストD5に対するレスポンスD6に含まれるボディデータD7をもとに、加工済データD8を得る。そして、APIサーバ20は、得られた加工済データD8をボディ部にセットしたレスポンスD4をクライアント端末10へ送信する。このレスポンスD4を受けてクライアント端末10では、Webサーバ30より得られたWebリソースを表示部17の表示画面G2上に表示し、ユーザへの表示を行う。
図8は、実施形態にかかる情報提供システム1の通信例を説明する説明図である。図8に示すように、クライアント端末10は、通信セッションを開始するWebサーバ30へ認証情報を送信(D1)してWebサーバ30からセッション情報(Cookie)を取得(D2)する。また、クライアント端末10は、取得したセッション情報をAPIサーバ20へ転送(D3)してWebサーバ30との通信セッションをAPIサーバ20を介して継続(D5、D6、D4)する。これにより、クライアント端末10は、認証情報をAPIサーバ20に渡すことなくWebサーバ30よりAPIサーバ20を介してWebリソースの提供を受けることができるので、認証情報が漏洩するリスクを低減できる。
また、Webサーバ30において、ログイン認証後のAPIサーバ20を介した通信セッションの確認は、従来のCookieを用いた確認を行えばよい。このため、Webサーバ30では、既存のシステムの改修なしにサービスを提供できる。例えば、Webサーバ30において、APIサーバ20からのログイン認証を受け付けるなどの改修を行わなくてもよい。
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、クライアント端末10、APIサーバ20、Webサーバ30で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、APIサーバ20、Webサーバ30で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ(ハードウエア)の一例を説明する。図9は、実施形態にかかるクライアント端末10、APIサーバ20、Webサーバ30のハードウエア構成を例示するブロック図である。なお、以下の説明ではクライアント端末10のハードウエア構成例を代表して説明する。
図9に示すように、クライアント端末10は、各種演算処理を実行するCPU101と、データ入力を受け付ける入力装置102と、モニタ103と、スピーカ104とを有する。また、クライアント端末10は、記憶媒体からプログラム等を読み取る媒体読取装置105と、各種装置と接続するためのインタフェース装置106と、有線または無線により外部機器と通信接続するための通信装置107とを有する。また、クライアント端末10は、各種情報を一時記憶するRAM108と、ハードディスク装置109とを有する。また、クライアント端末10内の各部(101〜109)は、バス110に接続される。
ハードディスク装置109には、上記の実施形態で説明した認証画面アクセス部11、認証情報管理部12、Cookie管理部13、Webリソースアクセス部14、リソース管理部15、アプリケーション16および表示部17における各種の処理を実行するためのプログラム111が記憶される。また、ハードディスク装置109には、プログラム111が参照する各種データ112が記憶される。入力装置102は、例えば、情報提供システム1の操作者から操作情報の入力を受け付ける。モニタ103は、例えば、操作者が操作する各種画面を表示する。インタフェース装置106は、例えば印刷装置等が接続される。通信装置107は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
CPU101は、ハードディスク装置109に記憶されたプログラム111を読み出して、RAM108に展開して実行することで、各種の処理を行う。なお、プログラム111は、ハードディスク装置109に記憶されていなくてもよい。例えば、クライアント端末10が読み取り可能な記憶媒体に記憶されたプログラム111を読み出して実行するようにしてもよい。クライアント端末10が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム111を記憶させておき、クライアント端末10がこれらからプログラム111を読み出して実行するようにしてもよい。
1…情報提供システム
10…クライアント端末
11…認証画面アクセス部
12…認証情報管理部
13…Cookie管理部
14…Webリソースアクセス部
15…リソース管理部
16…アプリケーション
17…表示部
20…APIサーバ
21…API
22…コントローラ
23…ハンドラ
23a〜23c…リクエストハンドラ
24…APIセッション検証部
24a…Cookie
25…アクセス集約部
26…リクエスト変換部
27…HTML2Object部
30…Webサーバ
31…通信部
101…CPU
102…入力装置
103…モニタ
104…スピーカ
105…媒体読取装置
106…インタフェース装置
107…通信装置
108…RAM
109…ハードディスク装置
110…バス
111…プログラム
112…各種データ
D1、D3、D5…リクエスト
D2、D4、D6…レスポンス
D7…ボディデータ
D8…加工済データ
G1、G2…表示画面

Claims (1)

  1. 第1のサーバ装置と、第2のサーバ装置と、クライアント端末とを有する情報提供システムにおいて、
    前記クライアント端末は、
    前記第1のサーバ装置へ認証情報を送信して前記第1のサーバ装置からセッション情報を取得する第1のアクセス部と、
    取得した前記セッション情報を前記第2のサーバ装置へ転送して当該第2のサーバ装置を介して前記第1のサーバ装置への情報提供を要求する第2のアクセス部とを有し、
    前記第2のサーバ装置は、
    前記転送されたセッション情報を用いて前記第1のサーバ装置へ前記クライアント端末からの情報提供を要求するリクエスト部と、
    前記リクエスト部の要求に対する前記第1のサーバ装置からの返信に基づき、前記セッション情報に関する通信セッションを検証する検証部と、
    前記通信セッションの検証の結果、認証成功である場合に、前記第1のサーバ装置からの返信を前記クライアント端末へ送信する送信部と
    を有することを特徴とする情報提供システム。
JP2016126748A 2016-06-27 2016-06-27 情報提供システム Active JP6880579B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016126748A JP6880579B2 (ja) 2016-06-27 2016-06-27 情報提供システム
US15/487,629 US20170374052A1 (en) 2016-06-27 2017-04-14 Computer-readable recording medium, information provision method and information provision system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016126748A JP6880579B2 (ja) 2016-06-27 2016-06-27 情報提供システム

Publications (2)

Publication Number Publication Date
JP2018005283A JP2018005283A (ja) 2018-01-11
JP6880579B2 true JP6880579B2 (ja) 2021-06-02

Family

ID=60675627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016126748A Active JP6880579B2 (ja) 2016-06-27 2016-06-27 情報提供システム

Country Status (2)

Country Link
US (1) US20170374052A1 (ja)
JP (1) JP6880579B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985953B1 (en) * 1998-11-30 2006-01-10 George Mason University System and apparatus for storage and transfer of secure data on web
JP2001217826A (ja) * 2000-01-31 2001-08-10 Saison Information Systems Co Ltd ネットワーク認証装置および方法
US7043455B1 (en) * 2000-07-28 2006-05-09 International Business Machines Corporation Method and apparatus for securing session information of users in a web application server environment
EP1379044A1 (en) * 2002-06-22 2004-01-07 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method for providing information to a web server
US7647404B2 (en) * 2007-01-31 2010-01-12 Edge Technologies, Inc. Method of authentication processing during a single sign on transaction via a content transform proxy service
US8959608B2 (en) * 2012-12-26 2015-02-17 Cellco Partnership Single sign-on for a native application and a web application on a mobile device
JP5907061B2 (ja) * 2012-12-28 2016-04-20 ブラザー工業株式会社 仲介サーバ、通信装置、及び、コンピュータプログラム
US20140366080A1 (en) * 2013-06-05 2014-12-11 Citrix Systems, Inc. Systems and methods for enabling an application management service to remotely access enterprise application store
US20150180857A1 (en) * 2013-12-23 2015-06-25 Joseph Schulman Simple user management service utilizing an access token
JP6546100B2 (ja) * 2014-02-17 2019-07-17 富士通株式会社 サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置

Also Published As

Publication number Publication date
US20170374052A1 (en) 2017-12-28
JP2018005283A (ja) 2018-01-11

Similar Documents

Publication Publication Date Title
US11922492B2 (en) System and method for programmatically accessing financial data
EP3675451B1 (en) Method, computer readable storage medium and apparatus for seamless single sign-on (sso) for native mobile-application initiated open-id connect (oidc) and security assertion markup language (saml) flows
US9985962B2 (en) Authorization server, authentication cooperation system, and storage medium storing program
US9300653B1 (en) Delivery of authentication information to a RESTful service using token validation scheme
US8495720B2 (en) Method and system for providing multifactor authentication
JP7382753B2 (ja) セキュリティーアサーションマークアップランゲージ(saml)サービスプロバイダー起点のシングルサインオンのための方法及びプログラム
JP6098636B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
US9473480B2 (en) Controlled access
US9178868B1 (en) Persistent login support in a hybrid application with multilogin and push notifications
US8832857B2 (en) Unsecured asset detection via correlated authentication anomalies
US20070156592A1 (en) Secure authentication method and system
US20130086657A1 (en) Relying party platform
US11799841B2 (en) Providing intercommunication within a system that uses disparate authentication technologies
US20130205360A1 (en) Protecting user credentials from a computing device
US9276932B2 (en) Federated identity mapping using delegated authorization
US20210099441A1 (en) Method and system for one-time multiple registration chain with pki-credential anchoring and universal registration
US11750608B2 (en) Assisted third-party password authentication
EP3614643B1 (en) Oauth2 saml token service
US20160212123A1 (en) System and method for providing a certificate by way of a browser extension
US20210099874A1 (en) Method and system for avoidance of user re-registration
EP2973296B1 (en) Method and apparatus for translation of business messages
JP7269486B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US20140026203A1 (en) Authenticating a user for testing purposes
JP2016115260A (ja) 権限移譲システム、権限移譲システムに用いられる認可サーバー、リソースサーバー、クライアント、媒介装置、権限移譲方法およびプログラム
JP6880579B2 (ja) 情報提供システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201022

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: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6880579

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150