JP2020067967A - 情報処理システム、情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理システム、情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP2020067967A
JP2020067967A JP2018202078A JP2018202078A JP2020067967A JP 2020067967 A JP2020067967 A JP 2020067967A JP 2018202078 A JP2018202078 A JP 2018202078A JP 2018202078 A JP2018202078 A JP 2018202078A JP 2020067967 A JP2020067967 A JP 2020067967A
Authority
JP
Japan
Prior art keywords
address
information processing
authentication response
service provider
redirect
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.)
Pending
Application number
JP2018202078A
Other languages
English (en)
Inventor
和成 山中嶋
Kazunari Yamanakajima
和成 山中嶋
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 JP2018202078A priority Critical patent/JP2020067967A/ja
Publication of JP2020067967A publication Critical patent/JP2020067967A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】シングルサインオン連携を用いた情報処理システムにおいて、サービスプロバイダ側の変更によって、応答を受信するためのアドレス情報が変わった場合であっても、シングルサインオンを継続する。【解決手段】シングルサインオン連携を行うための情報処理システムであって、サービスプロバイダのアドレスが変更になった後に、前記サービスプロバイダの変更前のアドレスに対して送信された認証応答を受信する受信手段と、前記サービスプロバイダの変更後のアドレスを特定する特定手段と、前記認証応答の送信元に、前記特定手段にて特定された変更後のアドレスに対する前記認証応答のリダイレクトを指示するリダイレクト手段とを有する。【選択図】 図6

Description

本発明は、情報処理システム、情報処理装置、情報処理方法、およびプログラムに関する。
近年、インターネット上に展開されるアプリケーションサービスは、サーバーやネットワーク機器をデータセンターと呼ばれる施設に集約して設置、運用するクラウド上のサーバーで動作している。アプリケーションサービスの増加に伴い、ユーザーは複数のアプリケーションサービスを利用するようになってきている。複数のアプリケーションサービスを利用する際に、ユーザーが一回の認証操作で複数のアプリケーションサービスにログインすることができるシングルサインオン機能がある。例えば、SAML(Security Assertion Markup Language)は、異なる管理ドメインのアプリケーションサービス間でのシングルサインオンを行う標準規格の一つである。SAMLを利用したシングルサインオンの一例として特許文献1がある。
SAMLを利用したシングルサインオンでは、認証情報を利用するSP(Service Provider)と認証情報を提供するIdP(Identity Provider)があり、SPとIdPで予め信頼関係を結んでおく必要がある。具体的には、SPの情報をIdPに登録したり、IdPがSP向けに鍵ペアを作成して公開鍵をSPに渡したりする。IdPに登録するSPの情報として、SPがIdPから認証応答を受信するためのエンドポイントであるACS(Assertion Consumer Service) URL(Uniform Resource Locator)がある。このような認証応答を受け付けるためのアドレス情報など、SPとIdP間の信頼関係に関する設定は、利用ユーザーなど、SPやIdPの提供者とは別のユーザーが行うことが多い。
特開2012−168795号公報
例えば、SPのURLが変更されると、認証応答であるSAMLレスポンスを受信するためのACS URLも変わる。しかし、ACS URLはIdP側に登録されているため、通常、SPの提供者は変更することができない。IdP側に登録されているACS URLが変更されないとSAMLレスポンスが受信できず、シングルサインオンができなくなってしまう。
そこで、本発明は、シングルサインオン連携を用いた情報処理システムにおいて、サービスプロバイダ側の変更によって、応答を受信するためのアドレス情報が変わった場合であっても、シングルサインオンを継続することを目的とする。
上記課題を解決するために本願発明は以下の構成を有する。すなわち、シングルサインオン連携を行うための情報処理システムであって、サービスプロバイダのアドレスが変更になった後に、前記サービスプロバイダの変更前のアドレスに対して送信された認証応答を受信する受信手段と、前記サービスプロバイダの変更後のアドレスを特定する特定手段と、前記認証応答の送信元に、前記特定手段にて特定された変更後のアドレスに対する前記認証応答のリダイレクトを指示するリダイレクト手段とを有する。
本発明により、シングルサインオン連携を用いた情報処理システムにおいて、サービスプロバイダ側の変更によって、応答を受信するアドレス情報が変わった場合であっても、シングルサインオンの継続が可能となる。
本発明の一実施形態におけるコンピュータの構成例を示す図。 本発明の一実施形態としてのネットワーク構成の例を図。 従来例におけるSAMLシングルサインオンのシーケンス図。 テナントがSPを移動した場合の課題を説明するための図。 本実施形態に係る認証・認可サーバー(SP)の機能構成の例を示す図。 第1の実施形態に係るSAMLシングルサインオンのシーケンス図。 本実施形態に係るテナントの存在チェック処理のフローチャート。 第1の実施形態に係るACS URL更新を含むSAMLシングルサインオンのシーケンス図。 本実施形態に係るACS URL更新対象者チェック処理のフローチャート。 本実施形態に係るACS URL更新の確認ダイアログの例を示す図。 第2の実施形態に係る統合エントランスサーバーを用いたSAMLシングルサインオンのシーケンス図。 第2の実施形態に係るACS URLに統合エントランスを指定した場合のシーケンス図。
以下、本発明を実施するための一実施形態について図面を用いて説明する。なお、以下に示す構成等は一例であり、これらに限定することを意図するものではない。
<第1の実施形態>
[装置構成]
図1は、本発明を実施するための一実施形態に係る情報処理装置の構成例を示す図である。図1において、情報処理装置100は、CPU102、メモリ103、記憶装置104、ビデオインタフェース105、Input/Output(以下I/Oと略称)インタフェース106、および通信インタフェース107を備える。また、情報処理装置100内の各構成要素はシステムバス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から読み込む構成としているが、メモリ103から読み出したり、通信インタフェース107を介して外部から読み出したりする構成であってもよい。
ビデオインタフェース105は、ディスプレイ装置114への表示出力を制御する。ディスプレイ装置114には、CRTや液晶等の方式を用いたものがある。I/Oインタフェース106には、キーボード115やポインティングデバイス116等の入力装置が接続される。操作者は、キーボード115を操作することにより情報処理装置100に対する動作指令等を行う。ポインティングデバイス116は、ディスプレイ装置114上のカーソルを移動させてメニューやオブジェクトの選択や操作等を行う。また、ディスプレイ装置114には、タッチパネル等による操作の入力を行えるものもある。この場合、ディスプレイ装置114は出力装置と入力装置を兼ねることになる。
通信インタフェース107は、コンピュータネットワーク117を通して外部機器との通信を行う。接続先のネットワークには、LANやWAN、インターネットのような公衆回線等がある。
[ネットワーク構成]
図2は、本実施形態に係る情報処理システムにおけるネットワーク構成の例を示す図である。図2に示されるクライアントおよびサーバーは、図1で示した情報処理装置100の構成を備えているものとする。ただし、図1の構成に限定するものではなく、他の機能を備えている場合や、単体のコンピュータに限らないラックマウント型のシステムであっても構わない。また、後述の全ての説明において、特に断りのない限りサーバーやクライアントの実行の主体は各装置におけるCPU102であり、ソフトウェア上の主体は記憶装置104に保管されたアプリケーションプログラムである。
Webクライアント201、データセンター210、220、統合エントランスサーバー230、および認証サーバー240が、インターネット200に接続されている。Webクライアント201は、Webブラウザの機能を搭載したクライアントである。データセンター210、220はそれぞれ異なるデータセンターを示している。データセンター210内のコンピュータネットワーク211には、リバースプロキシサーバー212、認証・認可サーバー213、リソースサーバー214が接続されている。また、データセンター220内のコンピュータネットワーク221には、リバースプロキシサーバー222、認証・認可サーバー223、リソースサーバー224が接続されている。各データセンター内のサーバーは、コンピュータネットワークを介してインターネット200に接続されている。
データセンター210とデータセンター220には同様のサーバー構成が構築されている。リバースプロキシサーバー212および222はそれぞれ、外部からのリクエストをコンピュータネットワーク内部のサーバーに振り分ける役割を持つ。例えば、リバースプロキシサーバーは、アクセスを受け付けたURL(Uniform Resource Locator)にて示されるパス名に基づき、認証・認可サーバーもしくはリソースサーバーへの振り分けを判断する。なお、認証・認可サーバーとリソースサーバーの振り分けが不要な場合等、リバースプロキシサーバーが存在しない構成であっても構わない。リバースプロキシサーバー212、222はそれぞれ、リージョン固有の異なるサブドメインが割り当てられ、URLのサブドメインも異なる。従って、アクセスはリージョン毎に分離されることになる。ここでのリージョンとは、物理的に離れた位置を示す。
Webクライアント201からリバースプロキシサーバー212へのアクセスは認証・認可サーバー213およびリソースサーバー214に振り分けられる。一方、リバースプロキシサーバー222へのアクセスは認証・認可サーバー223およびリソースサーバー224に振り分けられる。また、認証・認可サーバー213とリソースサーバー214のサブドメインは同じになる。同様に、認証・認可サーバー223とリソースサーバー224のサブドメインも同じになる。認証・認可サーバー213、223はそれぞれ、Webクライアント201からのリクエストに対して認証、および処理の認可を行う。リソースサーバー214、224はそれぞれ、認証・認可サーバー213、223に認可された範囲でWebアプリケーションサービスを提供する。
統合エントランスサーバー230は、ワールドワイドで共通のURLを受け付けるために用意されたサーバーである。統合エントランスサーバー230は、データセンター210やデータセンター220とは別のデータセンターに配備されてもよいし、データセンター210あるいはデータセンター220に配備されてもよい。またさらに、統合エントランスサーバー230を複数のデータセンターに配備し、GeoDNS(非図示)を用いて共通のURLを付与するようにしてもよい。GeoDNSとはリクエストを要求しているクライアントからネットワーク的に(もしくは、物理的に)近いサーバーへ要求を転送する仕組みである。例えば、Webクライアント201が統合エントランスサーバーの共通URLへアクセスを要求したとする。このとき、Webクライアント201の配置位置がネットワーク上におけるデータセンター210に近い場合はデータセンター210に配備された統合エントランスサーバーに要求が転送される。
認証サーバー240は、データセンター210やデータセンター220とは異なるドメインのクラウドサービス上に存在する。本実施形態におけるSAMLシングルサインオンの機能において、認証サーバー240はIdP(Identity Provider:アイデンティティプロバイダ)の役割を担う。また、認証・認可サーバー213および223はSP(Service Provider:サービスプロバイダ)の役割を担う。なお、本実施形態では、シングルサインオン連携を行うための認証としてSAMLを用いた例を示すが、これに限定するものではない。
[処理シーケンス]
図3を用いて、一般的なSAMLシングルサインオンのシーケンスについて説明を行う。なお、図3以降のシーケンス図において、図2で示したリバースプロキシサーバー212あるいは222の動作は省略して説明する。Webクライアント201から認証・認可サーバー213あるいは223に直接アクセスしているように記載するが、実際には各リバースプロキシサーバーを経由してアクセスされる。
図3(A)は、SP側のサイトを起点としたSAMLシングルサインオンのシーケンス図である。
S301にて、Webクライアント201は、SPの役割を担う認証・認可サーバー213に対してIdP認証でのログイン要求を行う。この際に、Webクライアント201は、SP内のターゲットリソースを指定する。ターゲットリソースは認証を受け付けるSP内の対象を示し、例えば、テナントのURI(Uniform Resource Identifier)等がある。
S302にて、SP213は、Webクライアント201からのログイン要求に起因して、Webクライアント201に対して認証要求であるSAMLリクエストを送信する。このときSAMLリクエストには、クエリパラメータとして、RelayStateが指定される。RelayStateの値は、S301で受信したログイン要求にて指定されるターゲットリソースである。
S303にて、Webクライアント201は、IdP240へSAMLリクエストを送信する。ここでも、SAMLリクエストには、クエリパラメータとして、S302にて指定されたRelayStateが指定される。
S304にて、IdP240は、SAMLリクエストを受信すると、Webクライアント201にログインページを返す。
S305にて、Webクライアント201は、ログインページを介してユーザーによりクレデンシャル情報が入力されると、このクレデンシャル情報をIdP240へ送信する。クレデンシャル情報の例としては、ユーザーIDとパスワードの対などが挙げられる。
S306にて、IdP240は、Webクライアント201からクレデンシャル情報を受け付けると、これを用いて認証およびログイン処理を実行する。IdP240側では、クレデンシャル情報に対応付けてユーザーの管理が行われており、管理している情報と、Webクライアント201から受信した情報とに基づいて認証処理が行われる。
S307にて、IdP240は、認証およびログイン処理の結果に基づき、認証応答であるSAMLレスポンスを作成し、Webクライアント201にSAMLレスポンスを送信する。ここでのSAMLレスポンスには、クエリパラメータとして、S303にてSAMLリクエストにて指定されたRelayStateが指定される。
S308にて、Webクライアント201は、IdP240から受信したSAMLレスポンスをSP213へ送信する。ここでのSAMLレスポンスには、クエリパラメータとして、S307にてSAMLレスポンスにて指定されたRelayStateが指定される。
S309にて、SP213は、SAMLレスポンスを受信すると、SAMLレスポンスにて示されるIdP側のユーザーIDと、SP側のユーザーIDとを用いてログイン処理を行う。IdP側のユーザーIDとSP側のユーザーIDのマッピングは信頼関係構築後に事前に実施されている。つまり、SP213は、信頼関係が構築されているIdP240側で正常に認証が行われていた場合には、この結果を信用し、認証対象(ここでは、Webクライアント201)からの要求を許可する。
S310にて、SP213は、ログイン処理の結果に基づき、ログイン応答をWebクライアント201へ返す。そして、本シーケンスを終了する。
図3(B)は、IdP側のサイトを起点としたSAMLシングルサインオンのシーケンス図である。
S321にて、Webクライアント201は、IdP240にログインページを要求する。
S322にて、IdP240は、Webクライアント201からの要求に応じてログインページを返す。
S323にて、Webクライアント201は、ログインページを介してユーザーによりクレデンシャル情報が入力されると、このクレデンシャル情報をIdP240へ送信する。
S324にて、IdP240は、Webクライアント201からクレデンシャル情報を受け付けると、これを用いて認証およびログイン処理を実行する。IdP240側では、クレデンシャル情報に対応付けてユーザーの管理が行われており、管理している情報と、Webクライアント201から受信した情報とに基づいて認証処理が行われる。
S325にて、IdP240は、認証およびログイン処理の結果に基づき、ログイン応答をWebクライアント201に返す。
S326にて、Webクライアント201は、SPを選択する。例えば、S325で受信したログイン応答にて示されるWebページ上にSPサイト側の機能を選択するリンクやボタンが配置されており、それをユーザーがクリックすることにより選択が行われる。リンクやボタンにはSP側のターゲットリソース情報も含まれる。
S327にて、IdP240は、S326で受信した情報を元にSAMLリクエストを作成して自身のエンドポイントに対するリダイレクトを行わせるためのリダイレクト応答を返す。
S328にて、Webクライアント201は、IdP240からのリダイレクト応答に基づき、IdP240のエンドポイントへリダイレクトする。ここで、IdP240は既にログインしているユーザーからの要求であることを判別して、SAMLレスポンスを作成する。ユーザーのログイン状態の判別には、例えばcookieを利用する方法等があるがこれに限定するものではない。
S329にて、IdP240は、Webクライアント201にSAMLレスポンスを送信する。ここでのSAMLレスポンスには、S326にて指定されたターゲットリソース情報がRelayStateの値として指定される。
S330にて、Webクライアント201は、IdP240からSAMLレスポンスを受信したことに応じて、SAMLレスポンスをSP213へ送信する。ここでのSAMLレスポンスには、S329にて指定されたターゲットリソース情報がRelayStateの値として指定される。
S331にて、SP213は、SAMLレスポンスを受信すると、SAMLレスポンスにて示されるIdP側のユーザーIDと、SP側のユーザーIDとを用いてログイン処理を行う。
S332にて、SP213は、ログイン処理の結果に基づき、ログイン応答をWebクライアント201へ返す。そして、本シーケンスを終了する。なお、図3(A)、図3(B)で示したどちらのケースも、IdP240がSAMLレスポンスを送信した後の流れは同様となる。
[本実施形態に係る課題の詳細]
図4は、本実施形態に係るテナントがSPを移動した場合を説明するための図である。例えば、ある利用ユーザーに近い場所に新しくデータセンターが開設されたような場合、ユーザーのネットワーク上の利便性を考慮してテナントごとデータセンターを移動する場合がある。テナントの移動では、ユーザー情報を含めテナントに関係する情報がコピーされる。SAMLのシングルサインオンで利用されるIdPの情報もコピーされる。図4において、SrcSPは移動元のSPを示し、DestSPは移動先のSPを示している。図2に対応付けて説明すると、SrcSPが認証・認可サーバー213で、DestSPが認証・認可サーバー223のような構成となる。また、IdPも図2に対応付けて説明すると認証サーバー240、ユーザー401はWebクライアント201を操作するユーザーとなる。
ここで、図3(A)で示したシングルサインオンを、移動先のDestSP223で実行する場合について説明する。ユーザー401は、IdP認証でのログイン要求をDestSP223に対して行う(S411)。DestSP223は、ユーザー401からのログイン要求に起因して、IdP240に向けてSAMLリクエストを送信する(S412)。IdP240は、ユーザー401に対してクレデンシャル情報を要求し、入力されたクレデンシャル情報を用いて認証を行ってログイン処理を実行する(S413)。更に、IdP240は、ログイン処理の結果に基づきSAMLレスポンスを作成する。ここで、IdP240は、予め設定されたSrcSP213のACS(Assertion Consumer Service) URLに向けてSAMLレスポンスを送付することになる(S414)。つまり、通信応答(SAMLレスポンス)の通信先が変更前のアドレスとなり、正しい送信先でない状態となる。IdPへのACS URLの設定は、通常、利用ユーザーが行う。従って、SPを提供する事業者等はSP内のテナント情報は移動できるが、IdPの情報を変更することはできない。そのため、テナント情報を移動させただけでは、SAMLリクエストの送信元であるDestSP(変更後のアドレスのサービスプロバイダ)にはSAMLレスポンスが返らないこととなる。結果として、移動元のSrcSP213でテナントが存在しないためにエラーとなってしまう。
なお、図4ではデータセンターを移動する例を示したが、テナントの移動を伴わずにアドレス情報(例えば、URL)が変更されるようなケースでも同様の問題が発生する。
[シングルサインオン]
次に、本実施形態に係るシングルサインオンの機能について説明する。
図5は、本実施形態に係るSPの役割を担う認証・認可サーバー213および223の機能ブロックの構成例を示す図である。ユーザー管理部501は、認証・認可サーバーで認証・認可されるユーザーの情報を管理する。認証部502は、ユーザー管理部501で管理される情報に基づいて、ユーザーの認証を行う。テナント管理部503は、テナントの管理を行う。テナントは、主にクラウドサービスでリソースを共有する単位、境界として定義されるものであり、例えば利用する企業単位に作成される。なお、ここでの単位は、契約に基づいて設定され、1の企業が複数のテナントを用いてもよい。グローバルテナントロケーション管理部504は、例えば、図2で示したような複数のデータセンターを横断して、テナントがどのデータセンターに存在しているかを管理している。グローバルテナントロケーション管理部504は、データセンター間や統合エントランスサーバー230と同期して各種情報が管理されている。したがって、グローバルテナントロケーション管理部504は、外部装置と連携して、外部に位置するテナントに関する情報を適時更新、管理する。
SAML IdP情報管理部505は、IdPと信頼関係を構築するための情報を管理する。ここではIdPのエンドポイントを含むメタデータやIdPが発行した公開鍵が管理されており、これらはSAMLリクエストの作成やSAMLレスポンスの検証で利用される。SAMLリクエスト作成部506は、IdPへ送信するSAMLリクエストを作成する。SAMLレスポンス検証部507は、IdPから受信したSAMLレスポンスを検証する。ユーザーマッピング管理部508は、自サーバー(SP)内で管理されているユーザーと、IdPで管理されているユーザーのマッピング情報を管理する。マッピング情報は、ユーザーの対応関係を示す情報である。
図6は、本発明の一実施形態としてのSAMLシングルサインオンのシーケンス図である。本シーケンスは、図3(A)にて示したSPに起因するシーケンスに対応する。図4で示したように移動元のSrcSPを認証・認可サーバー213、移動先のDestSPを認証・認可サーバー223として説明する。
S601にて、Webクライアント201は、DestSP223に対してIdP認証でのログイン要求を行う。このとき、SP内のターゲットリソースとしてテナントIDが指定される。テナントIDは、属するテナントを一意に示すための識別情報(ID)である。
S602にて、DestSP223は、Webクライアント201からのログイン要求に対応して、Webクライアント201にSAMLリクエストを送信するためのHTML(Hypertext Markup Language)ページを返す。より具体的には、DestSP223は、IdPの役割を担う認証サーバー240のIdPエンドポイントに対してformを使ってPOSTリクエストを送信するHTMLページをWebクライアント201に返す。formのパラメータには、SAMLリクエストを示すSAMLRequest、およびRelayStateが設定される。RelayStateの値は、S601で受信したログイン要求にて指定されるターゲットリソース(ここでは、テナントID)である。
S603にて、Webクライアント201は、DestSP223から受信したHTMLページをロードすることにより、formによるPOSTリクエストの送信がIdP240に対して実行される。ここでのSAMLリクエストには、S602にて指定されたターゲットリソース情報がRelayStateの値として指定される。
S604にて、IdP240は、SAMLリクエストを受信すると、これに応答してWebクライアント201にログインページを返す。
S605にて、Webクライアント201は、ログインページを介してユーザーによりクレデンシャル情報が入力されると、このクレデンシャル情報をIdP240へ送信する。クレデンシャル情報の例としては、ユーザーIDとパスワードなどが挙げられる。
S606にて、IdP240は、Webクライアント201からクレデンシャル情報を受け付けると、これを用いて認証およびログイン処理を実行する。IdP240側では、クレデンシャル情報に対応付けてユーザーの管理が行われており、管理している情報と、Webクライアント201から受信した情報とに基づいて認証処理が行われる。
S607にて、IdP240は、認証およびログイン処理の結果に基づきSAMLレスポンスを作成し、Webクライアント201にSAMLレスポンスを送信するためのHTMLページを返す。より具体的には、IdP240は、ACS URLに対してformを使ってPOSTリクエストを送信するHTMLページを返す。formのパラメータには、SAMLレスポンスを示すSAMLResponseおよびRelayStateが設定される。RelayStateは、S603で受信した値がそのまま設定される。
S608にて、Webクライアント201は、IdP240から受信したHTMLページをロードすることにより、formによるPOSTリクエストの送信がSrcSP213に対して実行される。ACS URLは移動元SPのURLが設定されているため、送信先はSrcSP213となる。ここでのSAMLレスポンスには、S607にて受信したRelayStateの値がそのまま設定される。
S609にて、SrcSP213は、SAMLレスポンスを受信したことに応じて、テナントの存在チェックを行う。S609の詳細は図7を用いて後述するが、ここではデータセンター内にテナントが存在するか否かを確認し、存在しない場合は他のデータセンター内に存在するか否かを確認する。つまり、SAMLレスポンスに対応するテナントの位置を特定する。
DestSP223にテナントが存在する場合、S610にて、SrcSP213は、DestSP223のACS URLを取得し、Webクライアント201に転送するように指定して返す。このときのHTTPステータスは“308”あるいは“307”を用いる。HTTPステータスコード”307”は、一時的リダイレクトを示し、この場合、ヘッダに移動先のURLが示される。また、HTTPステータスコード”308”は恒久的リダイレクトを示す。
S611にて、Webクライアント201は、SrcSP213から受信したSAMLレスポンスをDestSP223へリダイレクトする。ここでのSAMLレスポンスには、S607にて受信したRelayStateの値がそのまま設定される。
S612にて、DestSP223は、Webクライアント201から受信したSAMLレスポンスにて示されるIdP側のユーザーIDと、SP側のユーザーIDとを用いてログイン処理を行う。
S613にてDestSP223は、ログイン処理の結果に基づき、ログイン応答をWebクライアント201へ返す。そして、本シーケンスを終了する。
(テナントの存在チェック処理)
図7は、図6のS609で示したテナントの存在チェックのフローチャートである。本処理フローは、例えば、SrcSP213が備えるCPU102が記憶装置104に保持されたプログラムを読み出して実行することにより実現される。
S701にて、SrcSP213は、Webクライアント201から受信したSAMLレスポンスにて示されるRelayStateに設定されたテナントIDを取得する。なお、テナントIDは全データセンターで一意に識別できるようになっている。
S702にて、SrcSP213は、自データセンター内に、RelayStateに設定されたテナントIDに対応するテナントが存在するか否かの確認を行う。ここでの確認は、ユーザー管理部501やテナント管理部503等にて管理している情報に基づいて行われる。自データセンターにテナントが存在した場合は(S702にてYES)S703へ進み、存在しない場合は(S702にてNO)S704へ進む。
S703にて、SrcSP213は、自データセンター内のテナントに対し、マッピングされたユーザーでログイン処理を行う。そして、本処理フローを終了し、図6のS610の処理へ進む。
S704にて、SrcSP213は、他のデータセンターに、RelayStateに設定されたテナントが存在するか否かを確認する。この確認処理はグローバルテナントロケーション管理部504で実施される。他データセンターにテナントが存在する場合は(S704にてYES)S705へ進み、存在しない場合は(S704にてNO)S706へ進む。
S705にて、SrcSP213は、テナントが存在するデータセンターへリダイレクトするように処理を行う。ここでの処理の結果、図6のS610の処理において、リダイレクト先がレスポンスとして返される。そして、本処理フローを終了する。
S706にて、SrcSP213は、RelayStateに設定されたテナントが他データセンターにも存在しないものとして、エラー処理を行う。ここでの処理の結果、図6のS610の処理において、エラーがレスポンスとして返される。そして、本処理フローを終了する。
以上、本実施形態により、SP側の変更が行われ、認証応答を受信するエンドポイントのURLが変わった場合であっても、シングルサインオンができるようになる。
[ACS URLの更新を含むシングルサインオン]
次に、本実施形態に係るACS URL更新を含むシングルサインオンの機能について説明する。図6を用いて述べた方法により、移動元サイトから移動先サイトへ転送することでシングルサインオンができる。一方、移動元のサイトあるいはURLが今後も稼動し続けるとは限らない。また、移動後もシングルサインオンができるようになったことで、利用者がACS URL変更の必要性を認識しづらくなることも考えられる。従って、できるだけ速やかにACS URLを変更する必要がある。そこで、本実施形態では以下のシーケンスを用いる。
図8は、本実施形態に係るACS URL更新を含むシングルサインオンのシーケンス図である。S601からS609までの流れは図6と同じであるため説明を省略する。
S609にてDestSP223にテナントが存在すると判定された場合、S810にて、SrcSP213は、DestSP223のACS URLを取得し、Webクライアント201に対して、そのACS URLへ転送するように指定して返す。このとき、転送するACS URLにクエリパラメータが設定される。例えば、本例のように転送元がSrcSP213の場合、from=srcspのように転送元のデータセンターがわかるような情報が設定される。
S811にて、Webクライアント201は、SrcSP213から受信したACS URLに基づいて、SAMLレスポンスをDestSP223へリダイレクトする。ここでのSAMLレスポンスには、S607にて受信したRelayStateの値がそのまま設定される。
S812にて、DestSP223は、受信したSAMLレスポンスにて示されるIdP側のユーザーIDと、SP側のユーザーIDとを用いてログイン処理を行う。
S813にて、DestSP223は、S811で受信したクエリパラメータをチェックし、他のデータセンターから転送されたか否かを判別する。転送されている場合は、更に、DestSP223は、SAMLレスポンスを送信したWebクライアント201がIdP側のACS URLを変更できるユーザーか否かのチェックを行う。チェック処理の詳細は図9を用いて後述する。SAMLレスポンスを送信したWebクライアント201がACS URLを変更できるユーザーである場合は、S814〜S823の処理にてOAuthによるユーザーからの権限委譲を受けてユーザーの代わりにACS URLの変更を行う。
S814にて、DestSP223は、IdPに対する認可リクエストをWebクライアント201へ送信する。
S815にて、Webクライアント201は、DestSP223から認可リクエストを受け付けたことに応じて、認可リクエストをIdP240へ送信する。
S816にて、IdP240は、Webクライアント201から認可リクエストを受け付けたことに応じて、ACS URL変更のための認可確認ページをWebクライアント201へ送信する。
S817にて、Webクライアント201は、IdP240から受信した認可確認ページを表示し、これを介してユーザーから認可の指示(承諾)を受け付けたことに応じて、認可結果をIdP240へ送信する。
S818にて、IdP240は、Webクライアント201から受け付けた認可結果に基づいて認可コードを発行し、DestSP223のエンドポイントに対して認可コードを送信するためのページをWebクライアント201へ送信する。
S819にて、Webクライアント201は、IdP240から受け付けたページに基づき、認可コードをDestSP223へ送信する。なお、認可コードを受信するDestSP223のエンドポイントは、ACS URLと同様にIdP240に予め登録されている。
S820にて、DestSP223は、Webクライアント201から受信した認可コードを使って、直接API(Application Programming Interface:不図示)によりIdP240に認可トークンの取得を要求する。ここでの要求方法は、公知の方法を用いるものとし、ここでの詳細な説明は省略する。
S821にて、IdP240は、DestSP223からの要求に応じて認可トークンを発行し、DestSP223へ返す。
S822にて、DestSP223は、IdP240から受信した認可トークンを使って、APIでIdP240にACS URLの変更を要求する。
S823にて、IdP240は、認可トークンに基づくDestSP223からのACS URLの変更の要求に基づき、ACS URLの変更を行う。更に、IdP240は、変更処理の結果をDestSP223へ返す。
S824にて、DestSP223は、変更処理の結果をIdP240から受信すると、本処理シーケンスのS601にて行われたログイン要求に対するログイン応答をWebクライアント201へ返す。そして、本処理シーケンスを終了する。
(ACS URL更新対象者チェック処理)
図9は、図8のS813で示したACS URL更新対象者チェックフローチャートである。本処理フローは、例えば、DestSP223が備えるCPU102が記憶装置104に保持されたプログラムを読み出して実行することにより実現される。
S901にて、DestSP223は、図8のS811で受信したSAMLレスポンスにて示されるクエリパラメータを取得する。
S902にて、DestSP223は、SAMLレスポンスが他のデータセンターからリダイレクトされたものか否かを判定する。ここでは、SAMLレスポンスにクエリパラメータが設定されていれば、他のデータセンターからリダイレクトされたものとして判定し、設定されていなければリダイレクトされずにIdP240からSAMLレスポンスを受信したと判定する。リダイレクトされたと判定した場合は(S902にてYES)S903へ進み、そうでないと判定した場合は(S902にてNO)本処理フローを終了する。
S903にて、DestSP223は、ログインユーザーが管理者権限を有するユーザーか否かを判定する。SP側で管理しているユーザーには、管理者と一般者の区別が設けられており、SPのユーザー管理部501ではユーザーごとにその属性を保管している。SP側でIdPに関する設定をできるのは管理者だけであり、管理者権限のあるユーザーか否かを判定することでACS URLを変更できるユーザーの絞込みを行う。ただし、これは、SAMLの信頼関係構築の設定はIdP側もSP側も同ユーザーが実施するという推測の元に行われるものであり、SP側のユーザーとして管理者であるからといって、IdP側のACS URLを変更できるとは限らない。従って、S903の処理を行わない実装であってもよい。管理者権限を有するユーザーであると判定された場合は(S903にてYES)S904へ進み、そうでないと判定された場合は(903にてNO)本処理フローを終了する。
S904にて、DestSP223は、ACS URLを更新するか否かの確認ダイアログを操作者に対して表示する。確認ダイアログの詳細は図10を用いて後述する。ここでの操作者とは、例えば、Webクライアント201のユーザーが該当する。
S905にて、DestSP223は、確認ダイアログを介して操作者がACS URLの更新を承諾したか否かを判定する。承諾された場合は(S905にてYES)S906へ進み、承諾されなかった場合は(S905にてNO)本処理フローを終了する。
S906にて、DestSP223は、Webクライアント201を介してIdP240へ認可リクエストを送信させる(図8のS814〜S815)。そして、本処理フローを終了する。
(確認ダイアログ)
図10は、図9のS904で表示される、ACS URL更新の確認ダイアログの構成例を示す図である。確認ダイアログ1000において、ACS URLを変更する必要があることと、更新を行うかどうかを操作者に確認している。なお、図10に示すメッセージは一例であり、これに限定するものではない。はいボタン1001が押下されると、ACS URLの変更を了承する指示を行う。いいえボタン1002が押下されると、ACS URLの変更を却下(承諾しない)する指示を行う。
以上、本実施形態により、SP側の変更が行われ、認証応答を受信するエンドポイントのURLが変わった場合であっても、シングルサインオンができるようになり、ACS URLの更新も促進されるようになる。
<第2の実施形態>
第1の実施形態では、図2に示す統合エントランスサーバー230を利用しない例を述べたが、統合エントランスサーバー230を利用した実施形態について説明する。統合エントランスサーバー230はワールドワイドで共通のURLを受け付けるために用意されたサーバーである。
[処理シーケンス]
図11は、統合エントランスを利用する場合のシングルサインオンのシーケンス図である。ここでは、第1の実施形態にて述べた図3(A)の処理フローに、統合エントランスサーバー230が加わっている。
S1101にて、Webクライアント201は、統合エントランスサーバー230に対してIdP認証でのログイン要求を行う。ここで指定されるURLは、データセンターに依存しない(つまり、データセンターの位置に依存しない)ワールドワイドで共通のURLとなる。
S1102にて、統合エントランスサーバー230は、Webクライアント201からのログイン要求にてターゲットリソースとして指定されたテナントIDに基づいて、テナントの存在チェックを行う。ここでのテナント存在のチェック方法は、第1の実施形態にて図7のS704等で説明した内容と同じである。
S1103にて、統合エントランスサーバー230は、テナントが存在するデータセンターへリダイレクトするように、Webクライアント201に対して応答する。この後のシーケンスに関しては、第1の実施形態にて図3(A)で示した通りとなる。
図12は、ACS URLに統合エントランスを指定した場合のシーケンス図である。図6および図11で説明した内容との差異のみを説明し、同じ処理については同じ参照番号を付している。ここでは、IdP240に予め設定されたACS URLが統合エントランスサーバー230のURLとなっている。そのため、S607でIdP240にて指定されるエンドポイントが統合エントランスサーバー230となり、S608でWebクライアント201から統合エントランスサーバー230にSAMLレスポンスが送信される。
S1201にて、統合エントランスサーバー230は、S1102と同じように、S608で受信したRelayStateの値(テナントID)からテナントが存在するデータセンターを判定する。そして、S610にて、統合エントランスサーバー230は、データセンターのエンドポイントを取得し、Webクライアント201に転送するように指定して返す。
以上、本実施形態では、予め統合エントランスサーバーのURLを使うことで、テナントが移動した場合でもACS URLが変更されないため、継続してシングルサインオンができるようになる。
<その他の実施形態>
本発明は上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
200…インターネット、201…Webクライアント、210、220…データセンター、230…統合エントランスサーバー、240…認証サーバー(IdP)、212、222…リバースプロキシサーバー、213、223…認証・認可サーバー(SP)、214、224…リソースサーバー

Claims (12)

  1. シングルサインオン連携を行うための情報処理システムであって、
    サービスプロバイダのアドレスが変更になった後に、前記サービスプロバイダの変更前のアドレスに対して送信された認証応答を受信する受信手段と、
    前記サービスプロバイダの変更後のアドレスを特定する特定手段と、
    前記認証応答の送信元に、前記特定手段にて特定された変更後のアドレスに対する前記認証応答のリダイレクトを指示するリダイレクト手段と
    を有することを特徴とする情報処理システム。
  2. 前記認証応答は、アドレスが変更された後のサービスプロバイダから発行された認証要求に対応する認証応答であり、
    前記認証応答は、アイデンティティプロバイダに設定されている前記サービスプロバイダの変更前のアドレスに基づいて送信されていることを特徴とする請求項1に記載の情報処理システム。
  3. 前記認証応答を受信した際に、当該認証応答が前記リダイレクトにより行われたものか否かを判定する判定手段と、
    前記判定手段にて前記認証応答が前記リダイレクトにより行われたものであると判定された場合、前記アイデンティティプロバイダに設定されている前記サービスプロバイダのアドレスの変更の要求を行う要求手段と
    を更に有することを特徴とする請求項2に記載の情報処理システム。
  4. 前記判定手段にて前記認証応答が前記リダイレクトにより行われたものであると判定された場合、前記アイデンティティプロバイダに設定されている前記サービスプロバイダのアドレスの変更を行うか否かの指示を受け付ける受け付け手段を更に有し、
    前記要求手段は、前記受け付け手段にて前記アイデンティティプロバイダに設定されているアドレスの変更を行うとの指示を受け付けた場合、前記アイデンティティプロバイダに設定されているアドレスの変更の要求を行う要求手段と
    を更に有することを特徴とする請求項3に記載の情報処理システム。
  5. 前記リダイレクト手段は、前記リダイレクトの指示を行う際に、前記リダイレクトが行われる認証応答に前記リダイレクトが行われたことを示す情報を含ませ、
    前記判定手段は、前記情報に基づいて、前記認証応答がリダイレクトにより行われたものか否かを判定することを特徴とする請求項3または4に記載の情報処理システム。
  6. 前記受信手段、前記特定手段、および、前記リダイレクト手段は、前記変更前のアドレスに対応するサービスプロバイダとして機能する情報処理装置が有し、
    前記判定手段、および、前記要求手段は、前記変更後のアドレスに対応するサービスプロバイダとして機能する情報処理装置が有する
    ことを特徴とする請求項3乃至5のいずれか一項に記載の情報処理システム。
  7. 前記アイデンティティプロバイダに設定されるサービスプロバイダのアドレスは、当該サービスプロバイダが前記アイデンティティプロバイダから応答を受け付けるACS(Assertion Consumer Service) URL(Uniform Resource Locator)であることを特徴とする請求項3乃至6のいずれか一項に記載の情報処理システム。
  8. クライアントからサービスプロバイダに対する要求を受け付ける手段と、
    前記クライアントの位置に応じて、前記クライアントに、複数のサービスプロバイダのうちのいずれかへ前記要求のリダイレクトを指示する手段と
    を更に有することを特徴とする請求項1乃至7のいずれか一項に記載の情報処理システム。
  9. 前記シングルサインオン連携は、SAML(Security Assertion Markup Language)を用いることを特徴とする請求項1乃至8のいずれか一項に記載の情報処理システム。
  10. シングルサインオン連携を行うための情報処理システムに含まれる情報処理装置であって、
    サービスプロバイダのアドレスが変更になった後に、前記サービスプロバイダの変更前のアドレスに対して送信された認証応答を受信する受信手段と、
    前記サービスプロバイダの変更後のアドレスを特定する特定手段と、
    前記認証応答の送信元に、前記特定手段にて特定された変更後のアドレスに対する前記認証応答のリダイレクトを指示するリダイレクト手段と
    を有することを特徴とする情報処理装置。
  11. シングルサインオン連携を行うための情報処理方法であって、
    サービスプロバイダのアドレスが変更になった後に、前記サービスプロバイダの変更前のアドレスに対して送信された認証応答を受信する受信工程と、
    前記サービスプロバイダの変更後のアドレスを特定する特定工程と、
    前記認証応答の送信元に、前記特定工程にて特定された変更後のアドレスに対する前記認証応答のリダイレクトを指示するリダイレクト工程と
    を有することを特徴とする情報処理方法。
  12. シングルサインオン連携を行うための情報処理システムに含まれるコンピュータを、
    サービスプロバイダのアドレスが変更になった後に、前記サービスプロバイダの変更前のアドレスに対して送信された認証応答を受信する受信手段、
    前記サービスプロバイダの変更後のアドレスを特定する特定手段、
    前記認証応答の送信元に、前記特定手段にて特定された変更後のアドレスに対する前記認証応答のリダイレクトを指示するリダイレクト手段
    として機能させるためのプログラム。
JP2018202078A 2018-10-26 2018-10-26 情報処理システム、情報処理装置、情報処理方法、およびプログラム Pending JP2020067967A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018202078A JP2020067967A (ja) 2018-10-26 2018-10-26 情報処理システム、情報処理装置、情報処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018202078A JP2020067967A (ja) 2018-10-26 2018-10-26 情報処理システム、情報処理装置、情報処理方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2020067967A true JP2020067967A (ja) 2020-04-30

Family

ID=70388531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018202078A Pending JP2020067967A (ja) 2018-10-26 2018-10-26 情報処理システム、情報処理装置、情報処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2020067967A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021159728A (ja) * 2020-04-04 2021-10-11 株式会社三洋物産 遊技機
JP2021159729A (ja) * 2020-04-04 2021-10-11 株式会社三洋物産 遊技機
JP2021164495A (ja) * 2020-04-04 2021-10-14 株式会社三洋物産 遊技機
JP2021164497A (ja) * 2020-04-04 2021-10-14 株式会社三洋物産 遊技機
JP2022073773A (ja) * 2020-11-02 2022-05-17 株式会社三洋物産 遊技機
JP2022073771A (ja) * 2020-11-02 2022-05-17 株式会社三洋物産 遊技機

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021159728A (ja) * 2020-04-04 2021-10-11 株式会社三洋物産 遊技機
JP2021159729A (ja) * 2020-04-04 2021-10-11 株式会社三洋物産 遊技機
JP2021164495A (ja) * 2020-04-04 2021-10-14 株式会社三洋物産 遊技機
JP2021164497A (ja) * 2020-04-04 2021-10-14 株式会社三洋物産 遊技機
JP2022073773A (ja) * 2020-11-02 2022-05-17 株式会社三洋物産 遊技機
JP2022073771A (ja) * 2020-11-02 2022-05-17 株式会社三洋物産 遊技機

Similar Documents

Publication Publication Date Title
JP2020067967A (ja) 情報処理システム、情報処理装置、情報処理方法、およびプログラム
JP5744656B2 (ja) シングルサインオンを提供するシステムおよびその制御方法、サービス提供装置、中継装置、並びにプログラム
US20190173871A1 (en) Using application level authentication for network login
JP4729651B2 (ja) 認証装置,認証方法およびその方法を実装した認証プログラム
JP5614340B2 (ja) システム、認証情報管理方法、およびプログラム
EP2550791B1 (en) System and method for secure multi-client communication service
JP5289480B2 (ja) 情報処理システム、情報処理装置の制御方法、およびそのプログラム。
JP2018163616A (ja) 認証認可サーバー、リソースサーバー、認証認可システム、認証方法及びプログラム
JP5662507B2 (ja) 認証方法、認証システム、および、サービス提供サーバ
JP5988699B2 (ja) 連携システム、その連携方法、情報処理システム、およびそのプログラム。
JP6198507B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
JP2002334056A (ja) ログイン代行システム及びログイン代行方法
JPH11212912A (ja) セッション管理システム及び管理方法
US10375073B2 (en) Configuration based client for OAuth authorization with arbitrary services and applications
US20200153814A1 (en) Method for authentication with identity providers
US9137094B1 (en) Method for setting DNS records
JP6949688B2 (ja) システムおよびその制御方法
JP2006031064A (ja) セッション管理システム及び管理方法
JP5903004B2 (ja) 情報処理装置及び認可情報管理方法
JP2005346570A (ja) 認証システム、認証方法及びコンピュータプログラム
US20130318590A1 (en) Information processing system, control method thereof, and storage medium thereof
EP3188438B1 (en) Maintaining session across plural providing devices
JP2005267529A (ja) ログイン認証方式、ログイン認証システム、認証プログラム、通信プログラムおよび記憶媒体
JP6041537B2 (ja) システムおよび制御方法およびプログラム
JP6840505B2 (ja) システム、サービス提供装置、システムの制御方法およびプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113