JP6949688B2 - システムおよびその制御方法 - Google Patents

システムおよびその制御方法 Download PDF

Info

Publication number
JP6949688B2
JP6949688B2 JP2017230834A JP2017230834A JP6949688B2 JP 6949688 B2 JP6949688 B2 JP 6949688B2 JP 2017230834 A JP2017230834 A JP 2017230834A JP 2017230834 A JP2017230834 A JP 2017230834A JP 6949688 B2 JP6949688 B2 JP 6949688B2
Authority
JP
Japan
Prior art keywords
authentication
server
user
information
web browser
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
JP2017230834A
Other languages
English (en)
Other versions
JP2019101668A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2017230834A priority Critical patent/JP6949688B2/ja
Priority to EP18208399.8A priority patent/EP3493463B1/en
Priority to US16/204,039 priority patent/US11044245B2/en
Publication of JP2019101668A publication Critical patent/JP2019101668A/ja
Application granted granted Critical
Publication of JP6949688B2 publication Critical patent/JP6949688B2/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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

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

Description

本発明は、クラウド認証サービスを有するシステムおよびその制御方法に関する。
近年、インターネット上に展開されたクラウドサービスの利用が拡大している。クラウドサービスでは、サーバーやネットワーク機器などのIT機器をデータセンターと呼ばれる施設に集約して設置、運用し、利用者にWebアプリケーションサービスを提供している。データセンターは国や地域ごとに設置されており、ワールドワイドにサービスを提供する企業は必要に応じて複数のデータセンターに同種のサービスを配備している。利用者がアクセスするデータセンターは、利用者の物理的な地域や法制度あるいは業務内容に応じて決められる。
一方、配備されるWebアプリケーションに目を向けると、WebアプリケーションはHTTPプロトコルを使ってWebサーバーとWebクライアントが通信しているが、HTTPプロトコルは一回の通信で処理が完結する、いわゆるステートレスなプロトコルである。よって、複数の通信によって成り立つ業務フローで必要な利用者の状態を保持できない。そこで、状態を保持する技術として、HTTP cookie(以下、cookieと称する)が使われるようになった。cookieは、WebサーバーとWebブラウザ間で状態を管理するための通信プロトコルで、Webブラウザがクライアントに保存するWebサーバーとの通信に関する情報のことを指す。cookieはWebサーバーの構成や、クライアント側の利用方法に応じて適切に管理する必要がある。クライアント側におけるcookie管理の方法として特許文献1がある。
前述のように、ワールドワイドにサービスを提供する場合には、利用者の物理的な地域や法制度に応じて利用者がアクセスするデータセンターを決定する。だが、データセンターが異なるということはデータセンターに配備されたサービスサイトにアクセスするためのURLが異なることでもある。そこで、利用者が共通のURLでサービスにアクセスするための統合エントランスサイトを設けることがある。
この統合エントランスサイトでは、利用者からの要求に応じて利用者が利用しているデータセンター上のサービスへ転送する役目を果たす。また、統合エントランスサイトと各データセンターに配備されたエントランスサイトは個々に存在しており、どちらのエントランスサイトからアクセスするのかはユーザーの利用方法によって使い分けることになる。例えば、Webブラウザにアクセスするページのブックマークを設定したような場合には、各データセンターのサイトに依存したURLがブックマークとして設定されることがある。ブックマークを選択すると各データセンターのエントランスサイトに遷移し、アクセスすることになる。
特開2015−5134号公報
統合エントランスサイトと各データセンターのエントランスサイトが共存することになるため、認証に関する処理フローの中で、どちらに遷移するべきなのかを状況に応じて適宜判断する必要性が生じることになる。本願発明の目的は、WebブラウザのCookie情報を基に、システムにおけるWebブラウザの遷移を制御することで、課題を解決することを目的とする。
課題を解決するための本願発明の一実施例に係るシステムは、各リージョンに配備された複数の認証サーバーと、ログインページを提供する統合エントランスサーバーと、Webブラウザを有するクライアントとを含むシステムであって、前記統合エントランスサーバーは、前記Webブラウザから前記ログインページを介してユーザーにより入力されたユーザー情報を受信したことに応じて、前記ユーザー情報を基に前記ユーザーが所属するリージョンを特定する特定手段と、前記特定手段により特定されたリージョンに関する情報を前記Webブラウザへ送信する送信手段と、を有し、前記クライアントは、前記送信手段により送信された情報を基に、各リージョンに配備された複数の認証サーバーの内、1つの認証サーバーへアクセスするアクセス手段を有し、前記アクセス手段によるアクセスを受けた前記認証サーバーは、前記アクセス手段によるアクセスに伴い受信した前記ユーザー情報を基に、前記ユーザーの認証を行う認証手段と、前記認証手段により前記ユーザーが認証されたことに応じて、前記WebブラウザのCookie情報に対してログインされたことを示す認証トークンおよび前記統合エントランスサーバーを経由してログインされたことを示す識別情報を設定する設定手段と、を有し、前記WebブラウザのCookie情報を基に、前記システムにおける前記Webブラウザの遷移を制御することを特徴とする。
統合エントランスサイトと各データセンターのエントランスサイトが共存する場合でも、認証に関する処理フローの中で、適切な遷移が可能となる。
本発明の一実施形態におけるコンピュータの構成内容を示す図 本発明の一実施形態としてのネットワーク構成図 認証・認可サーバーの機能ブロック図 ログインシーケンス図 ログイン状態下でのサーバーへのアクセスシーケンス図 統合エントランスサーバーの機能ブロック図 本発明の一実施形態としての統合ログインシーケンス図 ログイン処理時のcookie設定フローチャート 統合ログイン状態下で統合エントランスにアクセスした場合のシーケンス図 ログイン判定cookieチェックのフローチャート 統合ログイン状態下で認証エラーとなった場合のシーケンス図 遷移先チェックのフローチャート 認証エラーの際に詳細エラーを表示する場合のシーケンス図 JWTを用いた統合ログインシーケンス図 JWTを用いた統合ログインで発行されるJWTの例 ログイン処理切り替えのフローチャート 認証エラーの表示画面
[実施例1]
以下、本発明を実施するための形態について図面を用いて説明する。図1は、本発明を実施するための一実施形態に係る情報処理装置の構成を示す図である。図1において、情報処理装置は、CPU102、メモリ103、記憶装置104、ビデオインタフェース105、Input/Output(以下I/Oと略称)インタフェース106、通信インタフェース107を備えている。また、情報処理装置内の各構成要素はシステムバス101を介して互いに接続されている。CPU102は、システムバス101を介して各構成要素を制御したり、データの計算や加工を行ったりする中央処理装置である。
メモリ103は、データやプログラムを記憶する装置で、RAM(Random Access Memory)やROM(Read Only Memory)から構成される。記憶装置104は、記憶されたデータの書き込み/読み出しを行う。記憶装置104には、ハードディスクドライブ(HDD)111、不揮発性のデータソースとして利用されるDVD−ROMドライブ112、半導体メモリを用いたソリッドステートドライブ(SSD)113がある。図1には示されていないが、記憶装置104として、磁気テープドライブ、フロッピー(登録商標)ディスクドライブ(FDD)、CD−ROMドライブ、CD/DVD−RAMドライブ、USBフラッシュドライブなども使用されることがある。
本実施形態に係るプログラムは、記憶装置104から読み込まれ、メモリ103に格納した上で、CPU102によって実行される。なお、本実施形態ではプログラムを記憶装置104から読み込む構成としているが、ROM(不図示)から読み込んだり、通信インタフェース107を介して外部から読み込んだりする構成としてもよい。
ビデオインタフェース105は、ディスプレイ装置114への表示出力を制御する。ディスプレイ装置114には、CRTや液晶等の方式を用いたものがある。I/Oインタフェース106には、キーボード115やポインティングデバイス116等の入力装置が接続される。操作者は、キーボード115を操作することにより情報処理装置に対する動作指令等を行う。ポインティングデバイス116は、ディスプレイ装置114上のカーソルを移動させてメニューやオブジェクトの選択や操作等を行う。
また、ディスプレイ装置114には、タッチパネル等による操作の入力を行えるものもある。この場合、ディスプレイ装置114は出力装置と入力装置を兼ねることになる。通信インタフェース107は、コンピュータネットワーク117を通して外部機器との通信を行う。接続先のネットワークには、LANやWAN、インターネットのような公衆回線等がある。
図2は、本実施形態に係るネットワーク構成図である。図2に図示されるクライアントおよびサーバーは図1で示した装置の構成を備えているものとする。ただし、図1の構成に限定するものではなく、他の機能を備えている場合や、単体のコンピュータに限らないラックマウント型のシステムであっても構わない。また、後述の全ての説明において、特に断りのない限りサーバーやクライアントの実行の主体はCPU102であり、ソフトウェア上の主体は記憶装置104に保管されたアプリケーションプログラムである。
200はインターネットを表しており、Webクライアント201はインターネットに接続されている。Webクライアント201はWebブラウザの機能を搭載したクライアントであり、cookie等のWeb技術を利用することができる。210はデータセンターを示しており、220は210と別のデータセンターを示している。ここで便宜上、データセンターが設置されている地域を元にした識別名でデータセンターを区別することとし、210のデータセンターをUSリージョン、220のデータセンターをEUリージョンと呼称する。USリージョン210内のコンピュータネットワーク211には、リバースプロキシサーバー212、認証・認可サーバー213、リソースサーバー214が接続されている。また、EUリージョン220内のコンピュータネットワーク221には、リバースプロキシサーバー222、認証・認可サーバー223、リソースサーバー224が接続されている。なお、リージョンとは国、地域と言ったある一定の範囲を指す用語であり、リージョンの範囲に限定はない。
USリージョン210とEUリージョン220には同様のサーバー構成が構築されている。リバースプロキシサーバー212および222は外部からのリクエストをネットワーク内部のサーバーに振り分ける役割を持つ。例えば、URLのパス名から認証・認可サーバーへ振り分けるのか、リソースサーバーに振り分けるのかを判断する。リバースプロキシサーバー212と222はそれぞれリージョン固有の異なるドメイン名が割り当てられ、URLのドメイン名も異なる。従って、アクセスはリージョン毎に分離されることになる。Webクライアント201からリバースプロキシサーバー212へのアクセスは認証・認可サーバー213およびリソースサーバー214に振り分けられる。
一方、リバースプロキシサーバー222へのアクセスは認証・認可サーバー223およびリソースサーバー224に振り分けられる。また、リバースプロキシサーバー212および222がリクエストを受信するため、認証・認可サーバー213とリソースサーバー214のドメイン名およびドメインは同じになる。同様に認証・認可サーバー223とリソースサーバー224のドメイン名およびドメインも同じになる。認証・認可サーバー213および223はWebクライアント201からのリクエストに対して認証、および処理の認可を行う。なお、認証処理のみ行う認証・認可サーバーであってもよいため、便宜上、認証・認可サーバーを単に認証サーバーと呼ぶ場合もある。リソースサーバー214および224は、認証・認可サーバー213および223に認可された範囲でWebアプリケーションサービスを提供する。
統合エントランスサーバー230は、ワールドワイドで共通のURLを受け付けるために用意されたサーバーである。統合エントランスサーバー230は、USリージョン210やEUリージョン220とは別のデータセンターに配備されてもよいし、USリージョン210あるいはEUリージョン220に配備されてもよい。またさらに、統合エントランスサーバーを複数のデータセンターに配備し、GeoDNS(不図示)を用いて共通のURLを付与するようにしてもよい。GeoDNSとはリクエストを要求しているクライアントからネットワーク的に近いサーバーへ要求を転送する仕組みである。例えばWebクライアント201が統合エントランスサーバーの共通URLへアクセスを要求した場合、Webクライアント201の配置位置がネットワーク上におけるUSリージョン210に近い場合はUSリージョン210に配備された統合エントランスサーバーに要求が転送される。
図3は認証・認可サーバー213および223の機能ブロック図である。リクエスト受信部301はクライアントあるいはサーバーからのリクエストを受信する。レスポンス送信部302はリクエスト受信部301で受信した内容に応じてクライアントあるいはサーバーへ応答を返す。cookie管理部303はリクエスト受信部301やレスポンス送信部302で送受信されるcookie情報の設定や取得を行う。ユーザー情報管理部304は登録されたユーザー情報を保管、管理する。認証トークン発行部305は認証トークンの発行を行う。認証トークンはユーザー情報管理部304に保管されたユーザー情報に紐付けて発行される。認証トークン管理部306は認証トークン発行部305が発行した認証トークンを保管、管理する。また、不要となった認証トークンの削除も認証トークン管理部306で行われる。認証トークン検証部307は渡された認証トークンを認証トークン管理部306に保管されている認証トークンと照合し、認証トークンが正規に発行されたものであるか、すなわちユーザーが認証済みであるかを検証する。
図4および図5で、統合エントランスサーバーが存在しない場合のシーケンスについて説明を行う。なお、図4以降のシーケンス図において、図2で示したリバースプロキシサーバー212を省略して記載する。Webクライアント201から認証・認可サーバー213やリソースサーバー214に直接アクセスしているように記載するが、実際にはリバースプロキシサーバー212を経由してアクセスされる。
図4(A)は、従来のログインシーケンスを示した図である。Webクライアント201はUSリージョン210にある認証・認可サーバー213に対してログインページを要求し(S401)、認証・認可サーバー213はWebクライアント201にログインページを返す(S402)。ログインページを受信したWebクライアント201はログインページをディスプレイ装置114に表示し、Webクライアント201を利用するユーザーはキーボード115やポインティングデバイス116等の入力装置を使ってログインページ上にユーザーIDとパスワードを入力し、ログイン指示を出す(S403)。
Webクライアント201は認証・認可サーバー213にログイン要求を送信する(S404)。この際、利用ユーザーから受信したユーザーIDとパスワードも送信する。S404でログイン要求時に指定するURLは、USリージョン210固有のドメイン名を持ったURLとなる。要求を受信した認証・認可サーバー213はログイン処理を行う(S405)。ログイン処理の詳細は図8の中で後述する。そして、認証・認可サーバー213はログイン完了時の移動先であるメニューページのURLへリダイレクトする指示と、cookie情報に認証トークンを設定する指示を応答として返す(S406)。
Webクライアント201のWebブラウザは、S406で受信したcookieをローカルに保管する。S406で認証・認可サーバー213が設定するcookie情報の例を示したのが図4(B)である。Cookie情報の設定はHTTPヘッダのSet−Cookieフィールドで指定される。図4(B)の「auth」属性に設定される値が認証トークンで、認証トークンは認証・認可サーバー213内でユニークなIDである。また「expirers」属性に設定される値はcookieの有効期限で、有効期限を過ぎたcookieはWebブラウザからサーバーに送信されない仕様となっている。また、図4(B)では「domain」属性を指定していないが、「domain」属性を指定しない場合は、cookie情報の設定を行ったサーバーのドメイン、図例の場合www−us.xyz.comのみに送信される仕様となっている。
図4(A)に戻り、Webクライアント201はS406で受信したリダイレクト先URLへリダイレクトすると共に、保管したcookie情報を送信する(S407)。認証・認可サーバー213とリソースサーバー214は同じリバースプロキシサーバー212を経由するため、Webクライアント201は認証・認可サーバー213とリソースサーバー214を同じリバースプロキシサーバー212のドメインと判定しcookie情報を送信する。リソースサーバー214は受信した認証トークンの検証を認証・認可サーバー213に依頼し、認証・認可サーバー213が認証トークンの検証を行う(S408)。ユーザーが認証済みであることが検証されたら、リソースサーバー214はWebクライアント201から要求されたメニューページを返す(S409)。
図5はユーザーがログインした状態、すなわち、Webクライアント201に認証トークンがcookieとして保管されている状態において認証・認可サーバー213やリソースサーバー214へアクセスしたときのシーケンス図を示している。
図5(A)は、メニューページにアクセスした場合のシーケンス図で、図4(A)のS407からの処理と同じになる。図4(A)では、S406でリダイレクトされてメニューページにアクセスしたが、図5(A)ではWebクライアント201から直接メニューページへのアクセスを指定している。
Webクライアント201がメニューページへのアクセスを要求すると共に、S406で受信して保管した、認証トークンが設定されたcookie情報をリソースサーバー214に送信する(S501)。リソースサーバー214は受信した認証トークンの検証を認証・認可サーバー213に依頼し、認証・認可サーバー213が認証トークンの検証を行う(S408)。ユーザーが認証済みであることが検証されたら、リソースサーバー214はWebクライアント201から要求されたメニューページを返す(S409)。
図5(B)は、ログアウト時のシーケンス図を示している。Webクライアント201はログアウト要求を送信する(S511)。受信した認証・認可サーバー213は認証トークン管理部306に保管した認証トークンを削除する(S512)。そして、認証トークンが設定されたcookieの有効期限を現在日時より過去にして設定し直すと共に、デフォルトページであるログインページを返す(S513)。認証トークンが設定されたcookieは有効期限が切れるため無効化される。
図5(C)は、メニューページにアクセスして認証エラーになった場合のシーケンス図を示している。認証エラーになるケースとしては、認証トークンが設定されたcookieの有効期限が切れた場合や認証トークン管理部306で管理されていない認証トークンを送信した場合等がある。なお、既にログアウトした場合も有効期限切れの場合と同様である。Webクライアント201はメニューページへのアクセスを要求するが、S406で受信した認証トークンは有効期限が切れているため送信されない、もしくは、認証トークン管理部306で管理されていない認証トークンが送信される(S521)。
リソースサーバー214は認証トークンの検証を認証・認可サーバー213に依頼するが、認証・認可サーバー213は認証トークンの値が無い、あるいは認証トークンが認証トークン管理部306に存在しないため、検証エラーとなる(S522)。なお、認証トークンが渡されなかった場合、認証トークンの検証を認証・認可サーバー213に依頼せずにリソースサーバーが認証エラーと判断する実装であってもよい。リソースサーバー214はリダイレクト先に認証エラー発生時のエンドポイントのURLを指定して応答を返す(S523)。Webクライアント201はS523で指定されたエンドポイントへリダイレクトし(S524)、認証・認可サーバー213はエラー情報を含んだログインページを返す(S525)。
図4および図5で示したように、cookieに認証トークンを保管することで、ステートレスなHTTPプロトコルであっても、その都度ログイン処理を行うことなくリソースサーバーにアクセスできる。また、ログアウト時や認証エラーが発生した場合もエラーページやログインページに戻ることができる。なお、図4および図5では図2で示したUSリージョン210でのフローを示したが、EUリージョン220でも同様のシーケンスとなる。
次に図6から図12で統合エントランスサーバー230を経由したクラウド認証サービスについて説明する。図6は統合エントランスサーバー230の機能ブロック図である。リクエスト受信部601はクライアントあるいはサーバーからのリクエストを受信する。レスポンス送信部602はリクエスト受信部601で受信した内容に応じてクライアントあるいはサーバーへ応答を返す。cookie管理部603はリクエスト受信部601やレスポンス送信部602で送受信されるcookie情報の設定や取得を行う。ユーザーリージョンマッピング情報管理部604は各リージョンに所属するユーザーIDのハッシュ値とそのユーザーが登録されているリージョンのマッピング情報を管理する。ユーザーIDのハッシュ値を保管するのは、ユーザーIDが個人情報にあたり、個人情報を保護するためである。ユーザーIDはワールドワイドでユニークな値となっている。また、統合エントランスサーバー230は各リージョンの認証・認可サーバーのユーザー情報管理部304と同期してマッピング情報を管理する。
図2の例では、USリージョン210にある認証・認可サーバー213のユーザー情報管理部304に保管されているユーザーIDリストの各ハッシュ値とUSリージョンであることのマッピング情報を保管している。また、EUリージョン220にある認証・認可サーバー223のユーザー情報管理部304に保管されているユーザーIDも同様にユーザーIDリストの各ハッシュ値とEUリージョンであることのマッピング情報を保管している。その結果、ユーザーリージョンマッピング情報管理部604の情報によって、統合エントランスサーバー230はユーザーIDがどのリージョンに所属しているのかが判定可能となる。リージョン情報管理部605はクラウド認証サービスに内にあるリージョン情報や各リージョンに配備されたサーバーのドメイン名等の情報を管理する。表1はユーザーIDとリージョンのマッピングテーブルの例である。
Figure 0006949688
表1のuser_id_hash列はユーザーIDのハッシュ値である。前述のようにユーザーIDは個人情報に該当する場合があるため、ユーザーが特定されないようにハッシュ値にして保管している。統合エントランスサーバー230がユーザーIDを照合する際は、マッピングテーブルに保管されたハッシュ値と同様の方法で受信したユーザーIDをハッシュ値に変換し、照合を行う。region列はユーザーが所属するリージョンを示している。
図7(A)は本発明の一実施形態としてのログインシーケンス図である。Webクライアント201は統合エントランスサーバー230に対してログインページを要求し(S701)、統合エントランスサーバー230はWebクライアント201にログインページを返す(S702)。S701で統合エントランスサーバー230に要求する際のURLはワールドワイドで共通のURLとなり、クライアントがどのリージョンにあってもURLの変化を意識することなく利用できるURLである。ここで、ログインページを受信したWebクライアント201ではログインページのHTMLに記述されたスクリプトが動作し、統合エントランスサーバー230に対してログイン判定cookieのチェックを行うAPIを実行する(S903)。受信した統合エントランスサーバー230は、ログイン判定cookieのチェックを行う(S904)。詳細は後述の図9で説明するが、S903およびS904の処理は既にログイン済みかどうかを判定するための処理であり、図7においては未だログイン処理は行われていないため、S905では戻り値が返されない。
ログイン済みでないことを確認すると、Webクライアント201はログインページをディスプレイ装置114に表示する。Webクライアント201を利用するユーザーはキーボード115やポインティングデバイス116等の入力装置を使ってログインページ上にユーザーIDとパスワードを入力し、ログイン指示を出す(S703)。すると、ログインページのHTMLに記載されたスクリプトがクライアント上で動作し、Webクライアント201は統合エントランスサーバー230に対してユーザーIDの所属リージョンを取得するAPIを実行する(S704)。
このとき利用ユーザーから受信したユーザーIDも統合エントランスサーバー230へ送信される。なお、API実行スクリプトの記述例には「XMLHttpRequest.open(‘POST’, ‘/region’, false);」などがある。統合エントランスサーバー230は受信したユーザーIDのハッシュ値を算出し、ユーザーリージョンマッピング情報管理部604で照合して所属するリージョンを特定する(S705)。そして、統合エントランスサーバー230はS705で特定されたリージョンをWebクライアント201へ返す(S706)。Webクライアント201は受信したリージョンによって特定されるURLのログインAPIにログイン要求を行う(S707)。図7(A)の例ではUSリージョンにユーザーが所属しているため、USリージョン210にある認証・認可サーバー213のログインAPIにログイン要求を送信する。
S707でログイン要求時に指定するURLは、USリージョン210固有のドメイン名を持ったURLとなる。URLはログインページのHTMLに記載されたスクリプトがS706で受信したリージョンと組み合わせて作成する。なお、統合エントランスサーバー230がS705で特定したリージョンに基づいて、リージョン情報管理部605から認証・認可サーバー213のログインAPIのURLを取得し、S706でURLを送信するという実装であってもよい。またこの際、S703で利用ユーザーから受信したユーザーIDとパスワードも送信する。
認証・認可サーバー213はログイン処理を行う(S708)。ログイン処理の詳細は図8の中で後述する。認証・認可サーバー213はログイン完了時の移動先であるメニューページのURLへリダイレクトする指示を応答として返す(S709)。このとき、後述するログイン処理の結果、cookie情報に認証トークンおよび統合エントランスからログインされた識別情報を設定する。Webクライアント201はS709で受信した2種類のcookieをローカルに保管する。
S709で設定するcookie情報の例を示したのが図7(B)である。図7(B)において、721は認証トークンを設定するcookieで、図4(B)と同じものである。722は統合エントランスからログインされた識別情報を設定するcookieである。「login」はログイン状態であることを示すキー名で、その値「ww_us」は統合エントランスを経由してUSリージョンでログインしたことを示している。図4のケースのようにリージョン内からログインした場合には、値「us」が設定される。「domain」属性に設定される値はcookieの送信範囲を示している。ログイン判定cookie722では、「domain」属性に「xyz.com」が指定されているが、これはメインドメインであるxyz.comとそのサブドメイン全てのサーバーに送信されることを示す。すなわち、Cookie情報は図2のUSリージョン210とEUリージョン220内にあるサーバー全てに送信される。
なお、認証トークンcookie721のように「domain」属性を指定しない場合は、cookieの設定を行ったサーバーのドメイン、図例の場合www−us.xyz.comのみに送信される仕様となっている。すなわち、統合エントランスサーバー230にはログイン状態であることを判定するためのログイン判定cookie722のみが送信される。一方、リバースプロキシサーバー212を経由する認証・認可サーバー213とリソースサーバー214には認証トークンcookie721およびログイン判定cookie722の両方が送信されることになる。認証トークンの送信範囲は図4のフローと変わらないため、セキュリティが弱まることはない。
図7(A)に戻り、Webクライアント201はS709で受信したリダイレクト先URLへリダイレクトすると共に、S709で受信して保管したcookie情報を送信する(S710)。リソースサーバー214は受信した認証トークンの検証を認証・認可サーバー213に依頼し、認証・認可サーバー213が認証トークンの検証を行う(S711)。ユーザーが認証済みであることが検証されたら、リソースサーバー214はWebクライアント201から要求されたメニューページを返す(S712)。なお、図4のシーケンスと図7のシーケンスは共存しており、Webクライアント201はリージョン内からログインする他、統合エントランスからログインすることも可能である。
図8は図7(A)のS707で行われるログイン処理のフローチャートである。本フローチャートに係るプログラムは、認証・認可サーバー213の記憶装置104に記憶されており、メモリ103に読み出されCPU102によって実行される。まず、認証・認可サーバー213はログイン処理を行う(S801)。具体的には、リクエスト受信部301でユーザーIDおよびパスワードを受信し、ユーザーIDおよびパスワードが合致するユーザー情報をユーザー情報管理部304が照合する。合致するユーザー情報が存在した場合はユーザーが認証されたと判断してログインを許可する。そしてログインが許可されたかどうかを判定し(S802)、許可された場合は認証トークン発行部305が認証トークンを発行(S803)、認証トークン管理部306が発行した認証トークンを保管する(S804)。
またcookie管理部303がレスポンスHTTPヘッダのSet−Cookieフィールドとして発行された認証トークンを設定する(S805)。具体的には図7の721で示した通りである。そして、リクエスト受信部301が、図4で示したリージョン内からのログイン要求なのか、図7で示した統合エントランスからのログインなのかを判定する(S806)。判定方法としては図4と図7のようにリクエストを受信するURLが異なることで判別する方法や、URLが同じ場合には判別するための属性値を設ける方法などがある。例えば、判別するための属性値としてHTTPヘッダのOriginフィールドを使う方法がある。OriginフィールドはCross−Origin Resource Sharingの仕様で、異なるドメインへのアクセスを行う際に設定されるフィールドである。統合エントランスサーバー230のログインページから異なるドメインである認証・認可サーバー213へアクセスするため、Originフィールドに統合エントランスサーバー230のドメイン名「https://www.xyz.com/」が設定される。一方、認証・認可サーバー213のログインページから同認証・認可サーバー213へアクセスする場合はOriginフィールドが設定されないため、統合エントランスからのログインなのか判定が可能である。
S806で統合エントランスからのログインであると判定された場合は、cookie管理部303がHTTPヘッダのSet−Cookieフィールドとして統合エントランスからログインされたこととサーバーが所属するリージョン情報を持ったcookieを設定する(S807)。具体的には図7の722で示した通りである。S802でログインが許可されなかった場合は認証エラーの応答を返す(S808)。
図9はユーザーが統合エントランスからログインした状態、すなわち、Webクライアント201に認証トークンcookie721とログイン判定cookie722が保管されている状態において、統合エントランスに対してログイン要求を行った場合のシーケンス図である。Webクライアント201は統合エントランスサーバー230に対してログインページを要求し(S901)、統合エントランスサーバー230はWebクライアント201にログインページを返す(S902)。ログインページを受信したWebクライアント201ではログインページに記述されたスクリプトが動作し、Webクライアント201は統合エントランスサーバー230に対してログイン判定cookieのチェックを行うAPIを実行する(S903)。また、併せてWebクライアント201は図7のS709で受信したログイン判定cookie722を送信する。
ここで、認証トークンcookie721は送信範囲がリバースプロキシサーバー212を経由するサーバーに限られるため、統合エントランスサーバー230には送信されない。統合エントランスサーバー230は、ログイン判定cookieチェックを行い(S904)、リージョン情報をWebクライアント201へ返す(S905)。ログイン判定cookieチェックの内容は後述する。なお、リージョン情報が取得できなかった場合は、図7で説明したようにログインページが表示され、図7のS703にあるユーザーの入力を待つ状態となる。
続いてWebクライアント201はS905で受信したリージョンの認証・認可サーバーに対して、認証トークンが発行されているか、すなわちユーザーがログイン状態にあるかどうかを確認するAPIを実行する(S906)。このAPIは、ログインチェックを行う専用APIであってもよいし、図に示したようにログイン状態であればユーザー情報が取得されるユーザー情報取得APIを実行することで代用してもよい。また併せて、Webクライアント201は認証トークンcookie721およびログイン判定cookie722を送信する。
認証・認可サーバー213は認証トークンを検証してログイン済みであることを確認すると(S907)、成功応答を返す(S908)。Webクライアント201はログイン状態にあることの応答を受信すると、S905で受信したリージョンに対して、メニューページへのアクセスを要求する(S909)。また併せて、Webクライアント201は認証トークンcookie721およびログイン判定cookie722を送信する。リソースサーバー214は受信した認証トークンの検証を認証・認可サーバー213に依頼し、認証・認可サーバー213が認証トークンの検証を行う(S910)。ユーザーが認証済みであることが検証されたら、リソースサーバー214はWebクライアント201から要求されたメニューページを返す(S911)。
図10は図9のS904において、統合エントランスサーバー230で行われるログイン判定cookieチェックのフローチャートである。本フローチャートに係るプログラムは、統合エントランスサーバー230の記憶装置104に記憶されており、メモリ103に読み出されCPU102によって実行される。統合エントランスサーバー230において、cookie管理部603がログイン判定cookie722を取得し(S1001)、ログイン判定cookie722が存在するかどうかを判定する(S1002)。ログイン判定cookie722が存在する場合はcookie管理部603がcookieの値に設定されていたリージョン情報を取得する(S1003)。例えばリージョン内からログインした場合はログイン判定cookie722の値である「us」を取得し、統合エントランスサーバー230経由でログインした場合は値「ww_us」からリージョンを示す部分「us」を切り出して取得する。そして、リージョン情報管理部605がリージョン情報のチェックを行った上で、レスポンス送信部602がリージョン情報を応答する(S1004)。S1002でログイン判定cookie722が取得できなかった場合はログイン状態ではないため、認証エラーを応答する(S1005)。
図11はユーザーが統合エントランスからログインした状態、すなわち、Webクライアント201に認証トークンcookie721とログイン判定cookie722が保管されている状態において、メニューページにアクセスしたが認証エラーになった場合のシーケンス図を示している。認証エラーになるケースとしては、図5(C)と同様に、認証トークンが設定されたcookieの有効期限が切れた場合や認証トークン管理部306で管理されていない認証トークンを送信した場合等がある。既にログアウトした状態の場合も有効期限切れの場合と同様である。
Webクライアント201はリソースサーバー214にメニューページへのアクセスを要求するが、S709で受信した認証トークンは有効期限が切れているため送信されない、もしくは、認証トークン管理部306で管理されていない認証トークンが送信される(S1101)。リソースサーバー214は認証トークンの検証を認証・認可サーバー213に依頼するが、認証・認可サーバー213は認証トークンの値が無い、あるいは認証トークンが認証トークン管理部306に存在しないため、検証エラーとなる(S1102)。なお、認証トークンが渡されなかった場合、認証トークンの検証を認証・認可サーバー213に依頼せずにリソースサーバーが認証エラーと判断する実装であってもよい。
リソースサーバー214はリダイレクト先に認証エラー時のエンドポイントのURLを指定して応答を返し(S1103)、Webクライアント201は認証エラー時のエンドポイントへリダイレクトする(S1104)。併せて、ログイン判定cookie722が送信されるが、認証トークンは有効期限が切れているため送信されない、もしくは、認証トークン管理部306で管理されていない認証トークンを送信する。認証・認可サーバー213は統合エントランス経由でログインしたのかリージョン内からログインしたのか確認(以降、遷移先チェックと呼称)を行う(S1105)。遷移先チェックの詳細は後述するが、図11においては、Webクライアント201は統合エントランス経由でログインした前提で説明を続ける。認証・認可サーバー213は統合エントランスのログインページにエラー情報のクエリパラメータを付けてリダイレクトすると共に、ログイン判定cookie722を無効化する(S1106)。Webクライアント201は統合エントランスサーバー230へリダイレクトし(S1107)、統合エントランスサーバー230はクエリパラメータを元にエラー情報を付けたログインページを応答する(S1108)。
図12は図11のS1105で行われる遷移先チェックのフローチャートである。本フローチャートに係るプログラムは、認証・認可サーバー213の記憶装置104に記憶されており、メモリ103に読み出されCPU102によって実行される。認証・認可サーバー213において、cookie管理部303がログイン判定cookie722を取得し(S2101)、統合エントランス経由でログインされたのかリージョン内からログインされたのかを判定する(S2102)。例えば、ログイン判定cookie722の値に「ww」が付いていれば統合エントランス経由でログインされたと判定し、リージョン部分のみであればリージョン内からログインされたと判定する。統合エントランス経由でログインされた場合は、cookie管理部303がログイン判定cookie722の有効期限を現在日時より過去にして設定し直す(S2103)。そして、レスポンス送信部302が統合エントランスのログインページにエラー情報のクエリパラメータを付けてリダイレクト応答を返す(S1204)。S2102でリージョン内からログインされた場合は、S2103と同様にログイン判定cookie722を無効化し(S1205)、レスポンス送信部302がリージョン内のログインページにエラー情報を追加して応答する(S1206)。
以上、図6から図12で説明したように、統合エントランスからログインした場合とリージョン内からログインした場合の遷移を適切に制御することが可能となる。また、認証トークンと統合ログイン経由時の識別情報をcookieのドメイン属性を使い分けて設定することで、セキュリティの低下を防ぐことにもなる。なお、図6から図12ではUSリージョン210へ遷移するフローを示したが、EUリージョン220へ遷移する場合も同様のシーケンスとなる。
次に図13で、図11のシーケンスにおけるS1108において、詳細なエラー表示を行うケースについて説明する。エラー表示にはユーザーIDなどの個人情報を表示するケースがある。しかし、エラーページの作成はリダイレクト先の統合エントランスサーバー230が行うため、図4および図5で示した従来のケースのように、認証・認可サーバー213のsessionに情報を保持することができない。また、cookieに関しても送信範囲が広がって国を越えるケースもあるため、個人情報保護の観点から保管すべきではない。そこで、個人情報は予めWeb Storageに保管しておき、エラー発生時にWebクライアント201がスクリプトで表示するエラー情報を整形して出力する例について説明する。
図13は図7で示した統合エントランスサーバー230からログインを行い、図11で示した認証エラーが発生するケースを示している。図13において、S701からS703までの処理は図7と同様である。次にS703で利用ユーザーが入力を行った際に、ユーザーIDをWeb Storageに保管する(S1301)。保管する処理はS702で返されるログインページのHTMLに記述されたスクリプトがページに入力されたユーザーIDを取得し、Web Storage に保管するメソッドを使って保管する。保管メソッドの例としては「sessionStorage.setItem(‘userId’, userId);」などがある。第一引数の「‘userId’」はWeb Storageに保管するときのキー名で、第二引数の「userId」はログインページに入力されたユーザーIDが格納されている変数を示している。
S704以降のログイン処理は図7と同様のため省略する。その後、図11と同様にS1101からS1108でメニューページを要求し認証エラーが発生、統合エントランスサーバー230にリダイレクトしてエラー表示を含むログインページか返される。S1108で返されるログインページのHTMLに記述されたスクリプトがWebクライアント201で実行され、表示するエラー情報にS1301でWeb Storageに保管したユーザーIDを取得して表示を行う(S1302)。Web Storageから取得するメソッドの例としては「sessionStorage.getItem(‘userId’);」などがある。第一引数の「‘userId’」はWeb Storageから取得する情報のキー名を示している。
図17は図13のS1302で説明したエラー表示の例を示している。1701はエラーメッセージである。エラーメッセージは図13において認証・認可サーバー213がS1106で送信したエラー情報を、S1107を通して統合エントランスサーバー230が受信し、S1108でメッセージとしてログインページのHTMLに埋め込んだものである。また、エラーメッセージは候補を複数HTMLに埋め込んでおき、Web Storageから取得した情報を元にログインページのHTMLに記述したスクリプトで選択しても構わない。例えば、図17の例では、認証・認可サーバー213はS1106でログイン状態ではない旨のエラー情報を返す。S1302ではWebクライアント201はWeb StorageにユーザーIDが保管されていたことによって直前にログインしていたと判定できるため、再ログインを促すメッセージを表示している。1702は直前にログインしていたときのユーザーIDで、図13のS1302でWeb Storageから取得した値である。このように、保管する情報に応じて保管する場所を選択し組み合わせて利用することで、セキュリティの低下を防止しつつ、エラーを表示することができる。
[実施例2]
実施例1では、図7で説明した統合エントランスサーバー230からのログイン処理において、S704やS707でAPIを使った実装を行っているが、古いWebブラウザではスクリプトを使ったAPI呼び出しが実行できないものもある。そのような古いWebブラウザを使ったケースにおいても、統合エントランスサーバー230からのログイン処理するための実施形態について説明する。
図14において、Webクライアント201は統合エントランスサーバー230に対してログインページを要求し(S1401)、統合エントランスサーバー230はWebクライアント201にログインページを返す(S1402)。S1401でログインページを要求する際のURLはワールドワイドで共通のURLとなる。また、S1402で返されるログインページのHTMLは実施例1の図7におけるS702の内容とは異なっており、図7のS903、S704、S707のようにAPIが実行されるスクリプトは記述されていない。
ログインページを受信したWebクライアント201はログインページをディスプレイ装置114に表示する。Webクライアント201を利用するユーザーはキーボード115やポインティングデバイス116等の入力装置を使ってログインページ上にユーザーIDとパスワードを入力し、ログイン指示を出す(S1403)。Webクライアント201は統合エントランスサーバー230に対してログイン要求を送信する(S1404)。この際、S703で利用ユーザーから受信したユーザーIDとパスワードも送信する。
統合エントランスサーバー230は受信したユーザーIDのハッシュ値を算出し、ユーザーリージョンマッピング情報管理部604が所属するリージョンを特定する(S1405)。そして、統合エントランスサーバー230は、認証・認可サーバー213にログイン要求を行うために、JWT(JSON Web Token)フォーマットのリクエスト情報を作成する(S1406)。JWTにはWebクライアント201から受信したユーザーIDとパスワードが含まれる。JWTの内容の詳細は後述する。また、JWTにはデジタル署名が付けられ、JWTのヘッダ部とペイロード部は暗号化される。デジタル署名には統合エントランスサーバー230の秘密鍵、暗号化には共通鍵が用いられる。統合エントランスサーバー230では予め公開鍵と秘密鍵の鍵ペアが作成されており、公開鍵が認証・認可サーバー213に配布されている。また、共通鍵が統合エントランスサーバー230や認証・認可サーバー213等、本システム内のサーバーに配布されている。
統合エントランスサーバー230はWebクライアント201に遷移先のURL、暗号化されたJWTを返し、JWTのデジタル署名をcookieに設定する(S1407)。遷移先URLのドメイン名はS1405で解決したリージョンのドメイン名である。JWTのデジタル署名を設定したcookieのドメイン属性はログイン判定cookie722と同じ「xyz.com」であり、認証・認可サーバー213も参照可能にしている。なお、JWTを暗号化するのは統合エントランスサーバー230から認証・認可サーバー213へJWTを受け渡す際に盗聴を防止するためある。また、JWTをレスポンスで返してJWTのデジタル署名をcookieに保存するのは、JWTとJWTのデジタル署名がセットで置換されてしまうことを防止するためである。
Webクライアント201は受信した遷移先のURL、すなわち認証・認可サーバー213に対してログイン要求を行う。この際、S1407で受信したJWTとJWTのデジタル署名が設定されたcookieを送信する(S1408)。なお、S1408のログイン要求は、実施例1の図7におけるS707とは異なるURLであり、認証・認可サーバー213で実行される処理も異なる。
認証・認可サーバー213は受信したJWTを共通鍵で復号し(S1409)、統合エントランスサーバー230の公開鍵を使って受信したデジタル署名でJWTの内容を署名検証する(S1410)。JWTの内容が署名検証されたら、JWTから取り出したユーザーIDとパスワードを使ってログイン処理を実施する(S1411)。なお、ログイン処理の詳細は前述の通りである。そして、認証・認可サーバー213は図7のS709と同様に、ログイン完了時に移動するメニューページのURLへリダイレクトする指示と、cookie情報として認証トークンおよび統合エントランスからログインされた識別情報を設定する指示を応答として返す(S1412)。その後の処理は実施例1で説明した図7のS710からS712と同様である。
図15はS1406で作成されるJWTの例である。JWTはヘッダ部、ペイロード部、デジタル署名部からなっており、それぞれをBase64エンコードした文字列を「.」連結した構成になっている。ここで利用するJWTのペイロードには、iss(発行者を示す)およびsub(主体を示す)に発行した統合エントランスサーバー230のドメイン名「https://www.xyz.com/」が設定される。次にaud(利用者を示す)に認証・認可サーバー213のドメイン名「https://www−us.xyz.com/」を設定し、exp(有効期限)、iat(発行日時)をそれぞれ設定する。そして本実施の形態の特徴として、ペイロードのuserIdにユーザーIDの値、passwordにパスワードの値が設定されている。なお、図15の例ではログインコンテキストをJSON(JavaScript(登録商標) Object Notation)形式のテキストデータで示しているが、その形式に限定されない。最後にヘッダおよびペイロードをBase64エンコードし、その文字列に対して統合エントランスサーバー230の秘密鍵を使ってデジタル署名を付与する。
認証・認可サーバー213は統合エントランスサーバー230の公開鍵を使ってこのデジタル署名値を検証する事によって、JWTの情報が改竄されていない事を検証する事ができる。また、図14で説明したように、S1406ではヘッダ部とペイロード部、デジタル署名部は分離され、ヘッダ部とペイロード部は共通鍵を使って暗号化された上でWebクライアント201に渡される。
以上のように、スクリプトを使ったAPI呼び出しが実行できない古いWebブラウザであっても、統合エントランスサーバー230からのログイン処理を実行することができる。なお、実施例1と実施例2は共存した実装とすることもできる。実施例1の図7におけるS701と実施例2の図14におけるS1401は共に同じURLを指定し、それぞれS702もしくはS1402のログインページを返しているが、ログインページを共通化する。そして、クライアント側でログインページのHTMLに記載されたスクリプトによって実施例1もしくは実施例2のどちらの処理を実行するかを判定することで共存が可能となる。
図16はログイン処理切り替えのフローチャートである。本フローチャートに係るプログラムは、ログインページのHTMLに記載されたスクリプトとして受信し、Webクライアント201のメモリ103に読み出されCPU102によって実行される。まず、Webクライアント201は環境情報を取得する(S1601)。環境情報の取得は、例えばjavascriptでwindow.navigatorオブジェクトを取得する。window.navigatorオブジェクトにはWebブラウザの情報やオペレーションシステムの情報等が含まれている。Webクライアント201は環境情報を確認し、クライアント側でAPI呼び出しが可能かどうかを判断する(S1602)。API呼び出しが可能かどうかの判定も予めスクリプトに判定処理が記載されており、Webクライアント201はスクリプトの判定処理に従って判断を行う。そして、API呼び出しが可能であれば、実施例1の図7で示したAPIを使ったログイン処理を実施し(S1603)、API呼び出しが不可であれば、実施例2の図14で示したS1402のログイン処理を実施する(S1604)。
[その他の実施例]
実施例1および実施例2は認証・認可サーバー213が認証トークンを発行し、リソースサーバー214は認証トークンの検証を認証・認可サーバー213に依頼していたが、デジタル署名付きの情報として渡す実装であってもよい。例えば、認証・認可サーバー213は、認証トークンをJWTフォーマットで発行し、自身の秘密鍵を使ってデジタル署名を付与して渡す。リソースサーバー214は認証・認可サーバー213の公開鍵を使って署名検証を行い、JWTペイロード部をチェックすることで認証トークンの検証を行う。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
201 Webクライアント
212 リバースプロキシサーバー
213 認証・認可サーバー
214 リソースサーバー
230 統合エントランスサーバー

Claims (10)

  1. 各リージョンに配備された複数の認証サーバーと、ログインページを提供する統合エントランスサーバーと、Webブラウザを有するクライアントとを含むシステムであって、
    前記統合エントランスサーバーは、
    前記Webブラウザから前記ログインページを介してユーザーにより入力されたユーザー情報を受信したことに応じて、前記ユーザー情報を基に前記ユーザーが所属するリージョンを特定する特定手段と、
    前記特定手段により特定されたリージョンに関する情報を前記Webブラウザへ送信する送信手段と、を有し、
    前記クライアントは、
    前記送信手段により送信された情報を基に、各リージョンに配備された複数の認証サーバーの内、1つの認証サーバーへアクセスするアクセス手段を有し、
    前記アクセス手段によるアクセスを受けた前記認証サーバーは、
    前記アクセス手段によるアクセスに伴い受信した前記ユーザー情報を基に、前記ユーザーの認証を行う認証手段と、
    前記認証手段により前記ユーザーが認証されたことに応じて、前記WebブラウザのCookie情報に対してログインされたことを示す認証トークンおよび前記統合エントランスサーバーを経由してログインされたことを示す識別情報を設定する設定手段と、を有し、
    前記WebブラウザのCookie情報を基に、前記システムにおける前記Webブラウザの遷移を制御することを特徴とするシステム。
  2. 前記Webブラウザの遷移の制御とは、前記統合エントランスサーバーへのアクセス、および各リージョンに配備されたリソースサーバーへのアクセスの何れか1つのアクセスが行われたことによる前記Webブラウザの遷移の制御であることを特徴とする請求項1に記載のシステム。
  3. 前記アクセス手段によるアクセスは、前記Webブラウザにより行われることを特徴とする請求項1または2に記載のシステム。
  4. 前記認証サーバーは、
    各リージョンに配備された複数のリソースサーバーの内、前記クライアントによるアクセスを受けたリソースサーバーから前記クライアントの前記WebブラウザのCookie情報に設定された認証トークンを受信し、受信された認証トークンの検証を行う検証手段を有する請求項1に記載のシステム。
  5. 前記認証サーバーは、
    前記検証手段による検証がエラーであったことにより前記リソースサーバーからの指示で前記クライアントがアクセスしてきたことに応じて、前記Cookie情報に設定された前記識別情報を基に、前記統合エントランスサーバーを経由してログインしたか否かを確認する確認手段と、
    前記確認手段により前記統合エントランスサーバーを経由してログインしたと確認されたことに応じて、前記クライアントに前記統合エントランスサーバーへアクセスするよう指示する指示手段と、を有し、
    前記統合エントランスサーバーは、前記指示手段による指示に従いアクセスしてきた前記クライアントの前記Webブラウザに対して前記ログインページを提供することを特徴とする請求項4に記載のシステム。
  6. 前記指示手段は、クライアントに前記統合エントランスサーバーへアクセスするよう指示するとともに、前記Webブラウザの前記Cookie情報に設定された前記識別情報を無効化することを特徴とする請求項5に記載のシステム。
  7. 前記認証サーバーは、前記確認手段により前記統合エントランスサーバーを経由してログインしていないと確認されたことに応じて、前記クライアントの前記Webブラウザに対して前記認証サーバーのログインページを提供することを特徴とする請求項5または6に記載のシステム。
  8. 前記Webブラウザは、
    前記統合エントランスサーバーが提供する前記ログインページに入力された前記ユーザー情報を保存する保存手段を有し、
    前記指示手段による指示に従い前記統合エントランスサーバーにアクセスしたことに応じて提供される前記ログインページに前記保存手段により保存された前記ユーザー情報が入力された状態で、当該ログインページを表示することを特徴とする請求項5乃至7の何れか1項に記載のシステム。
  9. 前記送信手段は、前記クライアントの環境情報を基に前記Webブラウザが認証に関するAPIを呼び出せないことが確認された場合、暗号化したユーザー情報、デジタル署名、およびアクセスすべき認証サーバーのURLを送信し、
    前記アクセス手段は、前記URLが示す前記認証サーバーへアクセスするとともに前記ユーザー情報、および前記デジタル署名を送信し、
    前記認証手段は、前記デジタル署名の検証が成功したことに応じて、前記暗号化された前記ユーザー情報を基に前記ユーザーの認証を行うことを特徴とする請求項1乃至8の何れか1項に記載のシステム。
  10. 各リージョンに配備された複数の認証サーバーと、ログインページを提供する統合エントランスサーバーと、Webブラウザを有するクライアントとを含むシステムの制御方法であって、
    前記統合エントランスサーバーにおいて、
    前記Webブラウザから前記ログインページを介してユーザーにより入力されたユーザー情報を受信したことに応じて、前記ユーザー情報を基に前記ユーザーが所属するリージョンを特定する特定ステップと、
    前記特定ステップにより特定されたリージョンに関する情報を前記Webブラウザへ送信する送信ステップと、を実行し、
    前記クライアントにおいて、
    前記送信ステップにおいて送信された情報を基に、各リージョンに配備された複数の認証サーバーの内、1つの認証サーバーへアクセスするアクセスステップを実行し、
    前記アクセスステップによるアクセスを受けた前記認証サーバーにおいて、
    前記アクセスステップによるアクセスに伴い受信した前記ユーザー情報を基に、前記ユーザーの認証を行う認証ステップと、
    前記認証ステップにおいて前記ユーザーが認証されたことに応じて、前記WebブラウザのCookie情報に対してログインされたことを示す認証トークンおよび前記統合エントランスサーバーを経由してログインされたことを示す識別情報を設定する設定ステップと、を実行し、
    前記WebブラウザのCookie情報を基に、前記システムにおける前記Webブラウザの遷移を制御することを特徴とする制御方法。
JP2017230834A 2017-11-30 2017-11-30 システムおよびその制御方法 Active JP6949688B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017230834A JP6949688B2 (ja) 2017-11-30 2017-11-30 システムおよびその制御方法
EP18208399.8A EP3493463B1 (en) 2017-11-30 2018-11-26 System and control method therefor
US16/204,039 US11044245B2 (en) 2017-11-30 2018-11-29 System and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017230834A JP6949688B2 (ja) 2017-11-30 2017-11-30 システムおよびその制御方法

Publications (2)

Publication Number Publication Date
JP2019101668A JP2019101668A (ja) 2019-06-24
JP6949688B2 true JP6949688B2 (ja) 2021-10-13

Family

ID=64604430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017230834A Active JP6949688B2 (ja) 2017-11-30 2017-11-30 システムおよびその制御方法

Country Status (3)

Country Link
US (1) US11044245B2 (ja)
EP (1) EP3493463B1 (ja)
JP (1) JP6949688B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6643373B2 (ja) * 2018-02-09 2020-02-12 キヤノン株式会社 情報処理システムと、その制御方法とプログラム
EP3554038A1 (en) * 2018-04-11 2019-10-16 Barclays Services Limited System for efficient management of invalid access tokens
JP7331532B2 (ja) * 2019-07-30 2023-08-23 京セラドキュメントソリューションズ株式会社 情報処理システム、情報処理装置、および情報処理方法
CN114244548B (zh) * 2021-04-12 2023-10-13 无锡江南计算技术研究所 一种面向云ide的动态调度和用户认证方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155737B1 (en) * 1999-05-11 2006-12-26 Entrust, Inc. Integrating user specified extensions into an information access system
US20040003287A1 (en) * 2002-06-28 2004-01-01 Zissimopoulos Vasileios Bill Method for authenticating kerberos users from common web browsers
JP4946564B2 (ja) * 2007-03-27 2012-06-06 富士通株式会社 認証処理方法及びシステム
JP5153591B2 (ja) * 2008-11-26 2013-02-27 株式会社日立製作所 認証仲介サーバ、プログラム、認証システム及び選択方法
EP2526504A1 (en) * 2010-01-22 2012-11-28 InterDigital Patent Holdings, Inc. Method and apparatus for trusted federated identity management and data access authorization
US8769651B2 (en) * 2012-09-19 2014-07-01 Secureauth Corporation Mobile multifactor single-sign-on authentication
US9374369B2 (en) * 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
JP5821904B2 (ja) 2013-06-20 2015-11-24 コニカミノルタ株式会社 情報処理装置およびプログラム
JP6198507B2 (ja) * 2013-07-29 2017-09-20 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
US20160021097A1 (en) * 2014-07-18 2016-01-21 Avaya Inc. Facilitating network authentication
US9641503B2 (en) * 2014-10-03 2017-05-02 Amazon Technologies, Inc. Using credentials stored in different directories to access a common endpoint
JP2017010266A (ja) * 2015-06-22 2017-01-12 株式会社リコー 情報処理システム、制御方法、及びサービス提供装置
JP6719875B2 (ja) * 2015-09-01 2020-07-08 キヤノン株式会社 認証サーバ、認証方法およびプログラム

Also Published As

Publication number Publication date
US20190173877A1 (en) 2019-06-06
JP2019101668A (ja) 2019-06-24
EP3493463B1 (en) 2021-03-24
EP3493463A1 (en) 2019-06-05
US11044245B2 (en) 2021-06-22

Similar Documents

Publication Publication Date Title
JP6949688B2 (ja) システムおよびその制御方法
EP3525415B1 (en) Information processing system and control method therefor
US10817703B2 (en) Capturing electronic signatures via captive portal
JP5458888B2 (ja) 証明書生成配布システム、証明書生成配布方法およびプログラム
US8504704B2 (en) Distributed contact information management
JP6929181B2 (ja) デバイスと、その制御方法とプログラム
JP5988699B2 (ja) 連携システム、その連携方法、情報処理システム、およびそのプログラム。
US9824351B2 (en) Providing access to account information using authentication tokens
US8938789B2 (en) Information processing system, method for controlling information processing system, and storage medium
US9830591B2 (en) Providing access to account information using authentication tokens
US10637830B2 (en) VPN access control system, operating method thereof, program, VPN router, and server
WO2013175901A1 (en) Authorization server and client apparatus, server cooperative system, and token management method
KR20130007797A (ko) 개방형 인증 방법 및 시스템
JP7096736B2 (ja) システム、及びデータ処理方法
JP2020067967A (ja) 情報処理システム、情報処理装置、情報処理方法、およびプログラム
JP2012243027A (ja) 情報処理システム、その情報処理システムを制御する制御方法、およびそのプログラム。
JP2007257500A (ja) 被認証装置、被認証プログラム、被認証方法、WebブラウザプラグインおよびWebブラウザブックマークレット
KR101803535B1 (ko) 일회용 토큰을 이용한 싱글 사인온 서비스 인증방법
KR20080036837A (ko) 웹 사이트의 로그인 정보 저장 방법, 그를 이용한 자동로그인 방법과 그를 위한 프로그램을 기록한 컴퓨터에서읽을 수 있는 기록매체
JP5955106B2 (ja) マッピングサーバーとシングルサインオンシステム、マッピング機能提供方法
JP2017010266A (ja) 情報処理システム、制御方法、及びサービス提供装置
JP4890105B2 (ja) 認証装置、認証代行装置、およびユーザ認証方法
JP2005293161A (ja) 認証システム、認証方法及びコンピュータプログラム
JP2016057737A (ja) サービス提供システム及びこれに用いる管理サーバー及び管理方法
JP2007272689A (ja) オンラインストレージ認証システム、オンラインストレージ認証方法、及びオンラインストレージ認証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201105

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210922

R151 Written notification of patent or utility model registration

Ref document number: 6949688

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151