JP6840505B2 - システム、サービス提供装置、システムの制御方法およびプログラム - Google Patents

システム、サービス提供装置、システムの制御方法およびプログラム Download PDF

Info

Publication number
JP6840505B2
JP6840505B2 JP2016201635A JP2016201635A JP6840505B2 JP 6840505 B2 JP6840505 B2 JP 6840505B2 JP 2016201635 A JP2016201635 A JP 2016201635A JP 2016201635 A JP2016201635 A JP 2016201635A JP 6840505 B2 JP6840505 B2 JP 6840505B2
Authority
JP
Japan
Prior art keywords
service
providing device
service providing
tenant
information indicating
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
JP2016201635A
Other languages
English (en)
Other versions
JP2018063580A (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 JP2016201635A priority Critical patent/JP6840505B2/ja
Priority to US15/728,404 priority patent/US10735399B2/en
Publication of JP2018063580A publication Critical patent/JP2018063580A/ja
Application granted granted Critical
Publication of JP6840505B2 publication Critical patent/JP6840505B2/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/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、サービス提供システム、サービス提供装置、システムの制御方法およびプログラムに関する。
クラウドプラットフォームサービス上で業務データの管理や各種処理を行う形態が普及し始めている。ユーザは、クライアントコンピュータ(以下、クライアントPC)上のWebブラウザ(以下、ブラウザ)からインターネットを介してクラウドプラットフォームサービスのWebページにアクセスし、そのWebページ上で閲覧したい業務データを表示する。表示された画面から文書作成指示を行うと、文書生成サービスにリダイレクトされ、文書生成サービスがクラウドプラットフォームサービスにある業務データを取得して文書を生成し、文書をクライアントPCやクラウドプラットフォームサービスに送信する。クラウドプラットフォームサービスの代表例として、例えば、Salesforce.com社のSalesforce.com(登録商標)がある。
クラウドプラットフォームサービスや文書生成サービスはマルチテナントで動作する。テナントとは、クラウドプラットフォームサービスや文書生成サービスを使用する契約を締結した企業や組織の単位である。マルチテナントで動作するサービスは、1つのシステムで複数のテナントのデータを管理し、あるテナントのデータが別のテナントから参照できないよう各テナントのデータを分離して管理する。ユーザに自身のテナントのデータのみを参照させるため、クラウドプラットフォームサービスや文書生成サービスはユーザ認証を行う。
クラウドプラットフォームサービスと文書生成サービスが連携を行う場合、ユーザがそれぞれのサービスで認証を行うことなくサービス間で認証を連携させることが考えられる。複数のサービス間で認証を連携させる技術として、例えば、SAML(Security Assertion Markup Language)によるシングルサインオン(以下、SSO)の仕組みがある。特許文献1は、複数台の認証サーバでSAMLによるSSOを行う方法を開示している。
特開2005−301424号公報
クラウドプラットフォームサービスと文書生成サービスは、それぞれ異なるテナント情報を有する。また、クラウドプラットフォームサービスは、あるコミュニティにログイン後にログアウトすることなくコミュニティを切り替える機能がある。SSO実施後にクラウドプラットフォームサービスのコミュニティの切り替えを行い、文書生成サービスを利用しようとすると、切り替え後のテナントではSSOしていないため、文書生成サービスは切り替え前のテナントとして動作してしまう。クラウドプラットフォームサービスの各コミュニティと文書生成サービスがそれぞれ異なるテナントでSSOを行い、かつ各テナントのデータを分離するためには、クラウドプラットフォームサービスと文書生成サービスがお互いのテナントを把握する必要がある。しかし、特許文献1の方法では、クラウドプラットフォームサービスと文書生成サービスがお互いのテナントを把握することができない。
本発明は、SSO連携設定がなされたログイン先のコミュニティを切り替えてサービスを受ける場合に、意図しないテナントのデータを参照することを抑制するシステムを提供することを目的とする。
上記課題を解決するために、本発明のシステムは、第1のサービス提供装置と第2のサービス提供装置とがシングルサインオンによる連携が行われ、クライアント端末へサービスの提供を行うシステムであって、前記第2のサービス提供装置は、前記第1のサービス提供装置のテナントと、前記第2のサービス提供装置のテナントの下位のグループとして作成されるコミュニティとを紐付けて管理する管理手段を備え、前記クライアント端末は、前記第2のサービス提供装置によるサービスの提供を受けたユーザが前記第1のサービス提供装置によるサービスの提供を要求する指示を行ったことに応じて、前記ユーザが属するコミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する第1の取得手段と、取得した前記第1のサービス提供装置のテナントを示す情報を含むサービスの提供要求を前記第1のサービス提供装置に送信する要求手段と、を備え、前記第1のサービス提供装置は、前記第2のサービス提供装置にて認証済みのアクセスを受け付けた場合に、認証セッションIDに紐付くユーザ情報に含まれる前記第1のサービス提供装置のテナントを示す情報を取得する第2の取得手段と、前記第2の取得手段において取得した前記第1のサービス提供装置のテナントを示す情報と、前記クライアント端末から受信した前記提供要求に含まれる前記第1のサービス提供装置のテナントを示す情報とを比較する比較手段と、前記比較手段における比較の結果、テナントを示す情報が一致しなかった場合に前記クライアント端末に対してエラー画面を返却する報知手段と、前記比較手段における比較の結果、テナントを示す情報が一致した場合に前記第1のサービス提供装置によるサービスを提供する提供手段と、を備え、前記第2のサービス提供装置によるサービスの提供を受けるユーザが属するコミュニティは、前記クライアント端末において切り替え可能である。
本発明によれば、SSO連携設定がなされたログイン先のコミュニティを切り替えてサービスを受ける場合に、意図しないテナントのデータを参照することを抑制するシステムを提供することができる。
システムの構成を示す図である。 クライアントPCの構成を示す図である。 認証サービス決定装置及び認証サービスのモジュール構成を示す図である。 サービスAの認証画面の一例を示す図である。 サービスAのモジュール構成図である。 サービスBのモジュール構成図である。 企業ID管理テーブルの一例を示す図である。 企業ID保存画面の一例を示す図である。 ボタン設定の一例を示す図である。 認証サービス決定サービスのモジュール構成図である。 クライアントPCのブラウザが実行する処理のフローチャートである。 サービスBが実行する処理のフローチャートである。 サービスAが実行する処理のフローチャートである。 決定サービスが実行する処理のフローチャートである。 認証サービスBが実行する処理のフローチャートである。 サービスBの認証画面の一例を示す図である。 認証サービスAが実行する処理のフローチャートである。 サービスAが実行する処理のフローチャートである。 決定サービスが実行する処理のフローチャートである。 サービスAが実行する処理のフローチャートである。
(実施例1)
図1は、本発明の実施例のシステム構成を示すブロック図である。
WAN100は、Wide Area Networkであり、本実施例ではWorld Wide Web(WWW)システムが構築されている。LAN101は、各構成要素を接続するLocal Area Networkである。LAN101は、WAN100を介することで互いの装置は通信可能になる。
クライアントPC200は、ユーザが操作する情報処理装置(クライアント端末)である。クライアントPC200サービス提供サービスA(第1のサービス提供装置。以下、サービスA)500やサービス提供サービスB(第2のサービス提供装置。以下、サービスB)550に対してリクエストを発行する。
認証サービス決定サービス(以下、決定サービス)300は、ユーザのアクセスを適切な認証サービス提供装置(Identity Provider、以下IdP若しくは認証装置)へと誘導する認証サービス決定サービスである。
認証サービスA400および認証サービスB450は、それぞれ認証を行う認証サービスであり、ともにIdPとして動作する。なお認証サービスの数は、2つに限定されるものではない。どのIdPが実際の認証を行うかは、アクセスしてきたユーザによって異なる。
サービスA500、サービスB550は、サービスを提供するサービス提供サービスであり、認証されたユーザに対してサービスを提供する。本実施例において、サービスA500は、クライアントPC200からのリクエストを受信して文書生成を行う。また、サービスB550は、クライアントPC200やサービスA500からのリクエストに応じて保持するデータの表示・更新等を行う。なお、サービスA500、サービスB550は文書生成サービスやクラウドプラットフォームサービスに限定されるものではなく、別のサービスであってもよい。
本実施例において、サービスA500及びサービスB550は、ユーザがそれぞれのサービスで認証を行うことなくサービス間で認証を連携させるシングルサインオン(SSO)を実施可能である。
クライアントPC200、決定サービス300、認証サービスA400、認証サービスB450、サービスA500、サービスB550はそれぞれWAN100およびLAN101を介して接続されている。なお、クライアントPC200およびそれぞれのサービスは、それぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また、同一のPC上に構成されていてもよい。決定サービス300、認証サービスA400、サービスA500は同じネットワーク内(イントラネット内)に構築されたサーバ群である。また、認証サービスB450、サービスB550は同じネットワーク内(イントラネット内)に構築されたサーバ群である。
クライアントPC200は、まず、サービスを受けるためサービスB550にアクセスする。サービスB550は、未認証のユーザアクセスを受け付けると不図示の認証画面を表示し、ユーザ認証を行う。ユーザを認証すると、サービスB550は業務データの画面を表示する。業務データの画面には、サービスA500へリダイレクトを行うための設定がなされたボタンが表示されている。ボタンが押下されると、クライアントPC200はサービスA500へリダイレクトを行う。
サービスA500は、未認証のユーザアクセスを受け付けると、アクセスを決定サービス300にリダイレクトさせる。決定サービス300は、未認証アクセスを適切な認証サービスA400または認証サービスB450にリダイレクトさせる。認証サービスA400または認証サービスB450はユーザを認証すると、再度ユーザをサービスA500にリダイレクトさせ、サービスA500がユーザにサービスを提供する。
図2は、本実施の形態に係るクライアントPC200の構成を示す図である。
なお、決定サービス300、認証サービスA400、認証サービスB450、サービスA500、サービスB550を提供するサーバコンピューターの構成も同様である。これらサービスは、サーバとして構成され、図2に示されるハードウェアブロック図の構成を有する。このように、本実施例のクライアントPC200及びサーバには、一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、または外部メモリ(ハードディスク)211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。ここで、OSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理は、上述したプログラムの実行により実現できる。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
なお、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211にインストールされたアプリケーションプログラムである。
図3は、本実施の形態に係るモジュール構成図である。図3(A)に決定サービス300、図3(B)に認証サービスA400、図3(C)に認証サービスB450をそれぞれ示している。
図3(A)は、決定サービス300のモジュール構成を示す図である。
決定サービス300は、管理モジュール301、キー取り出しモジュール302、取得モジュール303、アクセス誘導モジュール304を備える。管理モジュール301は、認証装置を決定するキーとなる情報と、認証装置の情報とを紐付けて記憶する。キー取り出しモジュール302は、決定サービス300が未認証のユーザからのアクセスを受け付けると、認証装置を決定するキーとなる情報をユーザがアクセスした際に提供される情報から取り出す。取得モジュール303は、取り出したキーとなる情報を用いて管理モジュール301から認証装置の情報を取得する。アクセス誘導モジュール304は、取り出した認証装置の情報に従い、ユーザを適切な認証サービスにアクセスするように誘導する。
図3(B)は、認証サービスA400のモジュール構成を示す図である。
認証サービスA400は、サービスA認証モジュール401とアサーション検証モジュール402を備える。サービスA認証モジュール401は、認証サービスA400が未認証のアクセスを受け付けると、ユーザにユーザIDとパスワードの入力を促し認証を行う。図4は、このとき表示される認証画面を示した図である。ユーザは、認証画面1000にユーザIDとパスワードを入力し、ログインボタンを押下する。アサーション検証モジュール402は、SSOを実現させるために認証サービスA400が他認証サービスにより提供された認証の証拠をユーザのアクセスから受け取ると、証拠即ち認証結果の妥当性を検証し、ユーザのアクセスを承認するか否かを決定する。
なお本実施例において、認証結果としての情報(認証の証拠)は、SAMLアサーションを想定するが、本実施例のSSOはSAMLおよびSAMLアサーションを用いたものに限定されるものではない。なお、アサーションとは、認証結果に応じて発行され、サービス間でやり取りされる認証情報を指す。
図3(C)は、認証サービスB450のモジュール構成を示す図である。
認証サービスB450は、サービスB認証モジュール451とアサーション発行モジュール452を備える。サービスB認証モジュール451は、認証サービスB450が未認証のアクセスを受け付けると、ユーザにユーザIDとパスワードの入力を促し認証を行う。認証に成功すると、アサーション発行モジュール452が、認証の証拠となるSAMLアサーションを生成し、アサーションの検証を行うことが可能な認証サービスへユーザのアクセスをリダイレクトさせる。
図5は、サービスA500のモジュール構成を示す図である。
サービスA500は、アクセス拒否モジュール501、企業ID保存判断モジュール502、企業ID取得モジュール503、企業ID保存モジュール504を備える。また、サービスA500は、データ取得モジュール505、文書生成モジュール506、及びページ生成モジュール507を備える。
サービスA500は、ユーザからのアクセスを受け付けると、そのアクセスが認証済みであるか否かをアクセス拒否モジュール501が判断する。未認証のアクセスである場合には、アクセス拒否モジュール501は、そのアクセスを決定サービス300へリダイレクトさせる。また、アクセスが認証済みである場合には、サービスA500は、文書生成モジュール506によりユーザに対してサービスを提供する。
企業ID保存判断モジュール502は、認証サービスA400からのリダイレクトのURLパラメータに企業IDが含まれるかを判断する。企業IDとは、本システムを利用する組織や法人単位に一意に割り当てられた固有の所属情報であり、テナントIDとも称する。例えば、ユーザやユーザが用いるクライアント端末はいずれかのテナントに属しているものとし、その所属先を一意に特定することができる。ここで、アクセス先の位置情報であるURL(Uniform Resource Locator)に各種属性情報(設定値)を含めた情報をまとめて、URLパラメータと記載する。
ユーザがアクセスする際に取得されるURLパラメータに企業IDが含まれない場合、企業ID取得モジュール503が何らかの方法で企業IDを取得する。企業ID取得モジュール503が企業IDを取得する方法は、例えば、認証サービスA400が企業IDをHTTPヘッダに設定するようにし、企業ID取得モジュール503がHTTPヘッダから取得することが考えられる。企業ID保存モジュール504は、取得した企業IDをユーザ(もしくはセッション等)に対応付けてサービスB550に保存する。
データ取得モジュール505は、サービスB550から業務データを取得する。文書生成モジュール506は、不図示のフォーム管理モジュールが管理するフォームを取得して、データ取得モジュール505が取得した業務データとフォームから文書データを生成する。ページ生成モジュール507は、レスポンスページを生成してクライアントPC200に返す。
図6は、サービスB550のモジュール構成を示す図である。
サービスB550は、アクセス拒否モジュール551、企業ID管理モジュール5531、5541、企業ID取得モジュール5532、5542を備える。また、サービスB550は、業務データ管理モジュール5533、5543、設定管理モジュール5534、5544、コミュニティ名取得モジュール5535、5545、を備える。
サービスB550において、企業ID管理モジュール、企業ID取得モジュール、業務データ管理モジュール、設定管理モジュール、コミュニティ名取得モジュールはそれぞれ、テナント(企業もしくは契約)ごとに提供される。つまり、自身が属するテナントに割り当てられた各種モジュールを利用することとなる。図6には、2つのテナント(企業11111111及び企業22222222)が示されている。それぞれのモジュールは各テナントに関する要求に応じて動作するものとする。なお、これらテナント毎に割り当てられるモジュールは、同一のハードディスク(HD)211に記憶されてテナント毎のデータを論理的に分離して管理するようにしてもよい。または、ハードディスク(HD)211を分けて物理的に分離して管理するようにしてもよい。
ここで、コミュニティについて説明する。コミュニティとは、テナント(親テナント)内に作成される別の組織(子テナント)のことであり、コミュニティはテナントの下位の層に作成されるグループである。コミュニティは、テナント(親テナント)内に別の組織(子テナント)を1つ以上作成され、別企業や別組織に所属するユーザのうち許可したユーザを子テナントのデータにアクセス可能にするものである。すなわち、異なる企業や組織に所属するユーザを1つの仮想的な組織(子テナント)に所属させ、その組織(子テナント)内で情報共有やコラボレーションを促進することを目的とする。
以下の説明において、1つの仮想的な組織(子テナント)をコミュニティと呼ぶ。また、従来の(コミュニティではない)テナントを、以降、便宜的に親テナントと呼ぶ。コミュニティにログインしたユーザは、親テナントの領域にあるデータのうち、予めそのコミュニティに対してアクセス許可されたデータにのみアクセスできる。
コミュニティは、コミュニティIDおよびコミュニティ名を持つ。コミュニティIDは、コミュニティを一意に識別する識別子であり、コミュニティを作成した際に自動的に付与される値である。なお、コミュニティは、サービスB550の管理者権限を有するユーザにより作成される。コミュニティ名は、サービスB550の管理者権限を有するユーザが任意に設定可能な名称である。コミュニティ名は、サービスB550の管理者権限を有するユーザが後から変更することが可能である。
サービスB550において親テナントのアカウントを有するユーザが少なくとも2つ以上のコミュニティのアカウントを有している場合、ユーザは親テナントにログインした後、ログアウトすることなくコミュニティにログイン先を切り替えることが可能である。また、あるコミュニティ「community1」にログイン先を切り替えた後で、さらに、別のコミュニティ「community2」にログイン先を切り替えることも可能である。
サービスA500とサービスB550は、それぞれ異なるテナント情報(例えば、企業IDとコミュニティ)を有する。SSO実施後にサービスB550のコミュニティの切り替えを行い、サービスA500を利用しようとすると、切り替え後のテナントではSSOしていないため、サービスA500は切り替え前のテナントとして動作してしまう。
ここで、本実施例におけるSSO連携の設定について説明する。
図7は、企業ID管理モジュール5531または企業ID管理モジュール5541が管理する、企業ID管理テーブル650の例である。企業ID管理テーブル650において、企業IDはサービスA500における企業IDであり、コミュニティIDはサービスB550におけるコミュニティIDである。なお、空のコミュニティIDは親テントであることを示しており、対応するコミュニティIDが空である企業IDは、親テナントとSSO連携することとなる。
本実施例では、次のようにSSO連携の設定がなされているものとする。すなわち、親テナントは、文書生成サービスの企業ID「1002AA」とSSO連携設定がなされている。コミュニティ「communityId1」は、文書生成サービスのテナント「1003AA」とSSO連携設定がなされている。
図6の説明に戻る。
サービスB550がアクセスを受け付けると、アクセス拒否モジュール551は、ユーザのアクセスが認証済みであるか否かを判断する。未認証であると判断した場合は、ページ生成モジュール552が認証画面を生成し、クライアントPC200の画面に表示する。一方、認証済みであると判断した場合は、サービスB550がサービスを提供する。
サービスB550が、業務データ表示のリクエストを受け付けると、業務データ管理モジュール5533または業務データ管理モジュール5543が、業務データを取得する。業務データを表示する画面にボタンが含まれる場合、設定管理モジュール5534または設定管理モジュール5544がボタン設定を取得する。
サービスB550が、企業ID保存画面表示のリクエストを受け付けると、コミュニティ名取得モジュール5535またはコミュニティ名取得モジュール5545が、親テナント内に存在するコミュニティ名を取得する。コミュニティ名を取得する方法として、例えば、親テナント内に存在するコミュニティの一覧を取得するAPIを利用する。ページ生成モジュール552はレスポンスページを生成してクライアントPC200に返す。
図8は、企業ID保存画面の一例を示す図である。
企業ID保存画面800は、企業IDを入力するテキストボックス、企業IDに紐付けるコミュニティ名を指定するコンボボックス、および、保存を実行するためのボタンを備える。保存を実行するボタンが押下された場合、コミュニティ名取得モジュール5535またはコミュニティ名取得モジュール5545が、企業ID保存画面800で指定されたコミュニティ名をもとにコミュニティIDを特定する。そして、企業ID管理モジュール5531または企業ID管理モジュール5541が、企業IDと特定したコミュニティIDを紐付けて保存する。コミュニティ名を指定する方法は、コミュニティ名の一覧から選択する方法以外に、ユーザが直接コミュニティ名を入力する方法であってもよい。また、コミュニティ名は空であってもよい。親テナントでSSOを行う場合には、コミュニティIDを空にして保存する。
なお、本実施例では、サービスB550のテナントの管理者権限を有するユーザが企業ID保存画面800にアクセスすることを想定している。また、後述の図12のフローを開始するよりも前に、企業ID保存画面800にアクセスして企業IDとコミュニティIDを紐付けて保存されているものとする。
図9は、本実施の形態に係るボタン設定の例を示す図であり、例えば、サービスBが提供する業務データを表示する画面に配置される。
ボタンの表示名901が「文書作成」と設定され、このボタンを押下した場合の動作902として、クライアントPC200のブラウザ上でJavaScript(登録商標)を実行するよう定義されている。また、実行するJavaScript(登録商標)の内容903が図9に示す記述例の中に定義されている。
企業IDを取得するよう定義されている部分は、後述の企業ID取得モジュールから企業IDを取得する。企業IDを取得する方法として、例えば、企業IDを取得するWebサービスAPIが公開されており、そのWebサービスAPIを呼び出す方法が考えられる。{!$Api.Session_ID}とは、認証したユーザのセッションIDをサービスB550の不図示のセッション管理モジュールから取得することを意味している。{!$Api.Server_URL}とは、サービスA500がサービスB550にアクセスするためのURLを取得することを意味している。{!Opportunity.Id}とは、画面に表示した商談レコードのレコードIDを取得することを意味している。
図9のように設定されたボタンを押下すると、クライアントPC200のブラウザ上でJavaScript(登録商標)が実行され、別ウィンドウが表示されて「http://service_a/service」にリダイレクトする。リダイレクトのURLパラメータとしてパラメータ「TENANT_ID」に企業ID、パラメータ「sessionid」に認証したユーザのセッションID、パラメータ「serverurl」にサービスB550にアクセスするためのURLが含まれる。なお、本実施例においては、特に断りの無い限りURLパラメータに含まれる企業IDとは、パラメータ「TENANT_ID」の値のことを指す。
サービスB550が企業IDを保存するリクエストを受け付けると、企業ID管理モジュール5531または企業ID管理モジュール5541が、企業IDを保存する。サービスB550が企業ID取得のリクエストを受け付けると、企業ID取得モジュール5532または企業ID取得モジュール5542は、企業ID管理モジュール5531または企業ID管理モジュール5541から企業IDを取得して返す。企業ID取得モジュール5532または企業ID取得モジュール5542は、クライアントPC200のブラウザから企業ID取得リクエストを受け付けられるよう、例えばWebサービスAPIとして公開されている。
図10は、本実施例における決定サービス300のモジュール構成の詳細を示す図である。
決定サービス300は、第3の管理モジュール1221、キー取り出しモジュール302、取得モジュール303、アクセス誘導モジュール304を備える。また、決定サービス300は、判断モジュール1231、要求モジュール1232、第2のキー取り出しモジュール1233、第2の取得モジュール1234、第2のアクセス誘導モジュール1235を備える。
第3の管理モジュール1221は、企業IDと、そのユーザが認証を受ける認証装置の情報とを紐付けて記憶する。第3の管理モジュール1221は、図3(A)における管理モジュール301に対応している。
判断モジュール1231は、決定サービス300が未認証のユーザからのアクセスを受け付けると、ユーザアクセスのパラメータに企業IDが含まれるか否かを判断する。企業IDが含まれない場合は、要求モジュール1232が企業IDを要求する画面を表示させる。第2のキー取り出しモジュール1233は、画面で入力された企業IDを取り出す。第2の取得モジュール1234は、取り出した企業IDを用いて、第3の管理モジュール1221から認証装置の情報を取得する。第2のアクセス誘導モジュール1235は、取り出した認証装置の情報に従い、決定サービス300に対するユーザのアクセスを適切な認証サービスに誘導する。なお、認証サービスB450は、認証サービスA400とSSOを実現していることを想定している。
なお、ユーザのグループ識別子として企業IDを用いているが、ユーザのグループ識別子は企業IDに限定されるものではない。また、本実施例においては、第3の管理モジュール1221を用い、認証装置を決定するキーとなる情報として企業IDを用いている。しかし認証装置を決定するキーとなる情報は、企業IDに限定されるものではない。
図11は、クライアントPC200のブラウザが実行するフローである。
本フローは、ユーザがサービスB550にアクセスしてクライアントPC200のブラウザに表示される不図示の業務データの画面において、ユーザが文書作成ボタンを押下し、文書作成サービスの提供を受ける指示をすることによって開始する。そして、ボタンの押下時に、ブラウザがJavaScript(登録商標)を実行することで本フローが実行される。なお、文書作成ボタンとは、サービスB550のテナントの管理者権限を有するユーザが図9の設定がなされたボタンを業務データの画面に予め配置したものであり、文書作成ボタンを押下することでサービスA500に対しサービスの提供要求を行うこととなる。
ステップS1001で、クライアントPC200のブラウザは、サービスB550に対して企業IDを取得するリクエストを行う。サービスB550は、企業IDを取得するためのWebサービスAPIを公開しており、WebサービスAPIはユーザがログインしている組織に紐付けられた企業IDを返す。
ステップS1002で、クライアントPC200のブラウザは、企業IDの取得処理がエラーなく終了したかを判断する。エラーにならずに終了した場合は、ステップS1003に遷移する。一方、エラーとなった場合は、ステップS1007に遷移する。
ステップS1003で、クライアントPC200のブラウザは、取得した企業IDが空かどうかを判断する。取得した企業IDが空の場合、ステップS1004に遷移する。一方、取得した企業IDが空でなかった場合は、ステップS1005に遷移する。
ステップS1004で、クライアントPC200のブラウザは、企業IDを空としてURLパラメータに設定する。
ステップS1005で、クライアントPC200のブラウザは、取得した企業IDをURLパラメータに設定する。
そして、ステップS1006で、クライアントPC200のブラウザは、企業IDを含んだURLをリダイレクトすることでサービスA500にサービスの提供要求を行う。
ステップS1002でエラーとなった場合、ステップS1007で画面をリロードする。エラーとなるケースとして、例えば、サービスB550で認証済のユーザのセッションが切れてしまった場合があり、画面をリロードすることで再び認証画面が表示され、認証成功後、直前に表示していた画面に戻ることができる。なお、ステップS1007で画面をリロードせずにエラー画面を表示するようにしてもよい。
以上で、クライアントPC200のブラウザが実行するフローが終了する。
図12は、サービスB550が実行するフローである。
本フローは、ステップS1001において、クライアントPC200のブラウザがサービスB550に対して企業ID取得リクエストを行うことによって始まる。
ステップS1101で、サービスB550は、企業ID取得リクエストを受け付ける。
ステップS1102で、コミュニティ名取得モジュール5535またはコミュニティ名取得モジュール5545は、ユーザが現在ログインしている組織のコミュニティIDを取得する。現在ログインしている組織のコミュニティIDを取得する方法は、例えば、ログインしている組織の情報を取得するAPIをあらかじめ用意し、それを利用する。ユーザが親テナントにログインしている場合、ログインしている組織のコミュニティIDはnullとなる。
ステップS1103で、企業ID取得モジュール5532または企業ID取得モジュール5542は、ステップS1102で取得したコミュニティIDを指定して、企業ID取得をリクエストする。企業ID取得のリクエストは、企業ID管理モジュール5531または企業ID管理モジュール5541に対して行われる。
ステップS1104で、企業ID取得のリクエストを受けた企業ID管理モジュール5531または企業ID管理モジュール5541は、企業ID管理テーブル650を検索する。そして、「コミュニティID」の値が指定されたコミュニティIDと一致するレコードを取得し、そのレコードの企業IDを返却する。指定されたコミュニティIDがnullである場合は、コミュニティIDが空であるレコードの企業IDを返す。
ステップS1105において、企業ID取得モジュール5532または企業ID取得モジュール5542は、取得した企業IDが空か判断する。企業IDが空と判断された場合はステップS1109に遷移し、空でないと判断された場合はステップS1106に遷移する。
ステップS1106で、企業ID取得モジュール5532または企業ID取得モジュール5542は、企業IDが複数含まれているかを判断する。企業IDが単数と判断された場合はステップS1107に遷移し、企業IDが複数と判断された場合はステップS1108に遷移する。
ステップS1107で、企業ID取得モジュール5532または企業ID取得モジュール5542は、取得した企業IDをレスポンスとしてクライアントPC200に返す。
ステップS1108で、企業ID取得モジュール5532または企業ID取得モジュール5542は、取得した企業IDのうち、1つ目の企業IDをレスポンスとしてクライアントPC200に返す。なおステップS1108において取得した企業IDは、企業ID管理モジュール5531または企業ID管理モジュール5541から、企業IDを保存した時刻の古い順に取得されるものとする。ただし、取得される順は企業IDを保存した時刻の古い順に限定されるものではない。
ステップS1105において、企業IDが空と判断された場合、ステップS1109で企業ID取得モジュール5532または企業ID取得モジュール5542は、企業IDが空であることをレスポンスとしてクライアントPC200に返す。
以上でサービスB550が実行するフローが終了する。
図13は、サービスA500が実行するフローである。本フローは、ステップS1006において、クライアントPC200のブラウザがサービスA500にアクセスすることによって開始される。
ステップS701で、サービスA500は、ユーザのアクセスを受け付ける。
ステップS702で、アクセス拒否モジュール501は、ステップS701で受け付けたアクセスが認証済みであるか否かを判断する。本実施例では、HTTPヘッダに認証セッションIDが付加されている場合に認証済みであると判断する。認証済みであればステップS703に遷移し、未認証であればステップS704に遷移する。
ステップS703で、サービスA500は、後述の図18のフローのサービスを提供し、フローを終了する。
ステップS704でアクセス拒否モジュール501は、ステップS702で未認証と判断されたアクセスを、決定サービス300へとリダイレクトさせる。なおその際、認証の完了後に再度、サービスA500にアクセスするよう情報を付加しておく。情報を付加してリダイレクトが済むと、フローが終了する。
図14は、決定サービス300が実行するフローである。本フローは、ユーザが、直接、決定サービス300にアクセスするか、ステップS704においてユーザのアクセスがサービスA500からリダイレクトされることによって開始される。
ステップS1301で、決定サービス300は、未認証のユーザアクセスを受け付ける。
ステップS1302で、判断モジュール331は、未認証のユーザアクセスのURLパラメータに企業IDが含まれるか判断する。企業IDが含まれていると判断された場合はステップS1212に遷移し、含まれていないと判断された場合はステップS1303に遷移する。
ステップS1303で、要求モジュール332は、不図示の企業ID入力画面をクライアントPC200に表示させる。
ステップS1304で、第2の取り出しモジュール333は、企業ID入力画面で入力された企業IDを取り出す。
ステップS1305で、第2の取得モジュール334は、ステップS1304で取得した企業IDを用い、第3の管理モジュール1221から、前記企業IDに紐付けられた認証装置の情報を取得する。ここでたとえば、ステップS1304で取り出した企業IDが「11111111」であれば、取得できる装置情報は認証サービスB450のURL「http://service_b/?sp=http%3A%2F%2Fservice_a%2F」である。このURLは、認証サービスB450と認証サービスA400がSSOする場合を想定している。
ステップS1306で、第2のアクセス誘導モジュール1235は、ステップS1305で取得した装置情報に従い、未認証のユーザアクセスを認証装置にリダイレクトさせる。なおその際、ステップS1301で認証完了後のアクセス先情報を受け取っていれば、ここでもそのアクセス先情報を付加してリダイレクトさせる。このとき、取得した企業IDは、アクセス先情報のパラメータ「TENANT_ID」に付加しない。本実施例では、取得した企業IDをHTTPヘッダに付加してリダイレクトさせる。
ステップS1212で、キー取り出しモジュール302は、未認証のユーザアクセスのURLパラメータから企業IDを抽出する。
ステップS1213で、取得モジュール303は、ステップS1212で取得した企業IDを用い、第3の管理モジュール1221から、企業IDに紐付けられた認証装置の情報を取得する。ここで例えば、ステップS1212で取り出した企業IDが「11111111」であれば、取得できる装置情報は認証サービスB450のURL「http://service_b/?sp=http%3A%2F%2Fservice_a%2F」である。このURLは、認証サービスB450と認証サービスA400がSSOする場合を想定している。
ステップS1214で、アクセス誘導モジュール304は、ステップS1213で取得した装置情報に従い、未認証のユーザアクセスをリダイレクトさせる。なおその際、ステップS1211で認証完了後のアクセス先情報を受け取っていれば、ここでも前記情報を付加してリダイレクトさせる。リダイレクトが済むとフローが終了する。
図15は、SSOを実現する際の認証サービスB450におけるフローである。本フローは、S1214またはS1306において、ユーザのアクセスが決定サービス300からリダイレクトされることによって開始される。
ステップS1501で、認証サービスB450は、決定サービス300からリダイレクトされた認証要求を受け付ける。また認証成功時のリダイレクト先をURLから取得する。本実施例においては、例えば、「?sp=http%3A%2F%2Fservice_a%2F」の部分がリダイレクト先を表している。
ステップS1502で、サービスB認証モジュール451は、認証画面を表示させる。図16に認証画面の一例を示す。認証画面1050には、認証を行うユーザ名とパスワードを入力するよう表示されている。
ステップS1503で、サービスB認証モジュール451は、認証画面1050で入力された認証情報が正しいか確認する。認証情報が正しければステップS1504に遷移し、正しくなければステップS1551に遷移する。
ステップS1504で、アサーション発行モジュール452は、ステップ1503で正しいと判断された認証情報に対応するアサーションを発行する。なお、アサーションをクレデンシャルと称する場合もある。アサーションを発行すると、ステップS1501で取得したリダイレクト先URLにユーザのアクセスをリダイクトさせる。なおその際、ステップS1501で認証完了後のアクセス先情報を受け取っていれば、ここでも前記情報を付加してリダイレクトさせる。リダイレクトが済むとフローが終了する。
ステップS1551で、サービスB認証モジュール451は、認証画面1050で入力された認証情報が正しくないため認証失敗した旨を通知する画面を表示させ、フローを終了する。ここでクライアントPC200は、サービスB認証モジュール451から送信された認証失敗画面を表示する。この画面は、再度ステップS1502に遷移させユーザから認証情報を受け付ける画面であってもよく、また単に認証に失敗したことを示すだけの画面であってもよい。また、そのいずれかに限定されるものでもない。この時点では、ユーザのアクセスは未認証状態であるため、ユーザが継続してサービスA500にアクセスしようとしても、アクセスできない。その場合は、図13に示されるフローが実施される。
図17は、SSOを実現する際の認証サービスA400におけるフローである。本フローは、ユーザのアクセスが認証サービスB450で認証に成功し、S1504においてリダイレクトされることによって開始される。
ステップS1601で、認証サービスA400は、認証サービスB450からのリダイレクトを受け付ける。
ステップS1602で、アサーション検証モジュール402は、ステップS1601で受け付けたリダイレクトに含まれるアサーションが妥当なものか検証する。検証の結果、妥当であると判断された場合はステップS1603に遷移する。また妥当でないと判断された場合はステップS1651に遷移する。
ステップS1603で、サービスA認証モジュール401は、ステップS1601で受け付けたリダイレクトを認証し、サービスへのアクセスを許可する。ここで、ステップS1601で認証完了後のアクセス先情報を受け取っていれば、その情報にもとづいてユーザのアクセスをリダイレクトさせる。たとえば認証完了後のリダイレクト先としてサービスA500が指定されていた場合は、ユーザのアクセスをサービスA500にリダイレクトさせる。このとき、すでにユーザのアクセスは認証が済んでいるため、ユーザはサービスA500が提供するサービスを受けることができる。リダイレクトが済むとフローが終了する。
ステップS1651で、サービスA認証モジュール401は、アサーションが妥当でなかったため認証失敗した旨を通知する画面を表示させ、フローを終了する。
図18は、サービスA500が実行するフローである。本フローは、ステップS1006においてクライアントPC200のブラウザがサービスA500にアクセスする、または、ステップS1603で認証サービスA400がユーザのアクセスをサービスA500にリダイレクトすることにより開始される。
ステップS701で、サービスA500は、ユーザのアクセスを受け付ける。
ステップS702で、アクセス拒否モジュール501は、ステップS701で受け付けたアクセスが認証済みであるか否かを判断する。本実施例では、HTTPヘッダに認証セッションIDが付加されている場合に認証済みであると判断する。認証済みであればステップS1701に遷移し、未認証であればステップS704に遷移する。
ステップS1701で、アクセス拒否モジュール501は、HTTPヘッダから認証セッションIDを取り出す。
ステップS1702で、アクセス拒否モジュール501は、S1701で取り出した認証セッションIDが有効であるかを認証サービスA400に問い合わせる。取り出した認証セッションIDが有効であればステップS1703に遷移し、有効でなければステップS704に遷移する。
ステップS1703で、アクセス拒否モジュール501は、有効な認証セッションIDに紐付いたユーザ情報を認証サービスA400から取得する。取得するユーザ情報には、テナントIDが含まれる。
次に、ステップS1704で、アクセス拒否モジュール501は、URLパラメータに含まれるテナントIDと、取得したユーザ情報に含まれるテナントIDを比較し、一致するかを判断する。一致した場合、ステップS1705において、サービスA500はサービスを提供する。
ステップS1706における比較結果が、テナントIDが一致しないとの判断であった場合、サービスA500は認証失敗した旨を報知するエラー画面をクライアントPC200に返却し表示させ、フローを終了する。
以上のフローが実行されることにより、次の動作となる。すなわち、サービスB550の親テナントにログインしたユーザが文書作成ボタンを押下すると、URLパラメータでテナントID「1002AA」がサービスA500に送信される。サービスA500の企業ID「1002AA」に紐付くユーザとのSSOが行われ、サービスA500がサービスを提供する。次に、該ユーザがサービスB550のコミュニティ「communityId1」にログイン先を切り替えて文書作成ボタンを押下すると、URLパラメータでテナントID「1003AA」がサービスA500に送信される。URLパラメータに含まれるテナントID(「1003AA」)と、認証セッションIDに紐付いたユーザ情報に含まれるテナントID(「1002AA」)が一致しない(ステップS1704のNO)。そのため、サービスA500は認証失敗した旨を通知する画面を表示する。
以上説明したように、本実施例によれば、SSO連携設定がなされたユーザがサービスB550のログイン先組織を切り替えて文書生成を行う場合に、意図しないテナントのデータを参照することを防止できる。
(実施例2)
実施例1では、サービスB550の親組織あるいはコミュニティにログインしたユーザとサービスA500の企業IDに紐付くユーザとのSSOを行うことを想定していた。本実施例では、SSOを行わずに認証サービスA400が表示する認証画面で認証情報を入力して認証を行いログインすることを想定している。
なお、本実施例の説明において実施例1と共通の部分については説明を省略し、以下では差異部分のみ説明する。
図19は、決定サービス300が実行するフローである。本フローは、ユーザが直接認証サービス決定サービスにアクセスするか、ユーザのアクセスがサービスA500からリダイレクトされることによって開始される。
ステップS1301で、決定サービス300は、未認証のユーザアクセスを受け付ける。
ステップS1302で、判断モジュール331は、未認証のユーザアクセスのURLパラメータに企業IDが含まれるか判断する。企業IDが含まれていると判断された場合はステップS1212に遷移し、含まれていないと判断された場合はステップS1303に遷移する。
ステップS1303で、要求モジュール332は、不図示の企業ID入力画面を表示させる。
ステップS1304で、第2の取り出しモジュール333は、不図示の企業ID入力画面で入力された企業IDを取り出す。
ステップS1305で、第2の取得モジュール334は、ステップS1304で取得した企業IDを用い、第3の管理モジュール1221から、前記企業IDに紐付けられた認証装置の情報を取得する。
ステップS1801で、判断モジュール331は、ステップS1305で取得した装置情報が認証サービスA400のURLであるかどうかを判断する。認証サービスA400のURLである場合(ステップS1801のYES)、ステップS1802に遷移する。一方、認証サービスA400のURLでない場合(ステップS1801のNO)、ステップS1802を飛ばしてステップ1306に遷移する。
ステップS1802で、第2のアクセス誘導モジュール1235は、ステップS1301で認証完了後のアクセス先情報を受け取っていれば、前記情報のクエリパラメーターに「CAMS_LOCAL=true」付加する。
その後、ステップS1306で第2のアクセス誘導モジュール1235は、ステップS1305で取得した装置情報に従い、未認証のユーザアクセスをリダイレクトさせる。なおその際前記情報を付加してリダイレクトさせる。
ステップS1212で、キー取り出しモジュール302は未認証のユーザアクセスのURLパラメータから企業IDを抽出する。
ステップS1213で、取得モジュール303は、ステップS1212で取得した企業IDを用い、第3の管理モジュール1221から、企業IDに紐付けられた認証装置の情報を取得する。
ステップS1803で、判断モジュール331は、ステップS1213で取得した装置情報が認証サービスA400のURLであるかどうかを判断する。認証サービスA400のURLである場合(ステップS1803のYES)、ステップS1804に遷移する。一方、認証サービスA400のURLでない場合(ステップS1803のNO)ステップS1214に遷移する。
ステップS1804で、第2のアクセス誘導モジュール1235は、ステップS1301で認証完了後のアクセス先情報を受け取っていれば、前記情報のクエリパラメーターに「CAMS_LOCAL=true」を付加する。
その後、ステップS1214で第2のアクセス誘導モジュール1235は、ステップS1213で取得した装置情報に従い、未認証のユーザアクセスをリダイレクトさせる。なおその際前記情報を付加してリダイレクトさせる。リダイレクトが済むとフローが終了する。
図20は、サービスA500が実行するフローである。本フローは、ステップS1006において、クライアントPC200のブラウザがサービスA500にアクセスする、または、ステップS1603で認証サービスA400がユーザのアクセスをサービスA500にリダイレクトすることにより開始される。
ステップS701でサービスA500はユーザのアクセスを受け付ける。ステップS702でアクセス拒否モジュール501はステップS701で受け付けたアクセスが認証済みであるか否かを判断する。本実施例では、HTTPヘッダに認証セッションIDが付加されている場合に認証済みであると判断する。認証済みであればステップS1701に遷移し、未認証であればステップS704に遷移する。
ステップS1701で、アクセス拒否モジュール501は、HTTPヘッダから認証セッションIDを取り出す。
ステップS1702で、アクセス拒否モジュール501は、取り出した認証セッションIDが有効であるかを認証サービスA400に問い合わせる。取り出した認証セッションIDが有効であればステップS1703に遷移し、有効でなければステップS704に遷移する。
ステップS1703で、アクセス拒否モジュール501は、前記有効な認証セッションIDに紐付いたユーザ情報を認証サービスA400から取得する。取得するユーザ情報には、テナントIDが含まれる。ステップS1901でアクセス拒否モジュール501は、ユーザアクセスのURLパラメータに「CAMS_LOCAL=true」が含まれるかを判断する。「CAMS_LOCAL=true」が含まれると判断された場合、ステップS1902に遷移し、含まれなければステップS1704に遷移する。
ステップS1902で、アクセス拒否モジュール501は、URLパラメータに含まれるテナントIDをCookie「IN_TENANT_ID」に設定する。
その後、ステップS1705において、サービスA500はサービスを提供する。Cookie「IN_TENANT_ID」を設定したレスポンスをブラウザに返すことで、以降、ブラウザがサービスA500にアクセスする際、リクエストにCookie「IN_TENANT_ID」が自動的に付加される。
ステップS1704で、アクセス拒否モジュール501は、URLパラメータに含まれるテナントIDと、ステップ1703で取得したユーザ情報に含まれるテナントIDを比較し、一致するかを判断する。一致すればステップS1705に遷移し、一致しなければステップS1903に遷移する。
ステップS1903で、アクセス拒否モジュール501は、URLパラメータ「TENANT_ID」の値と、Cookie「IN_TENANT_ID」の値を比較し、一致するかを判断する。一致した場合、ステップS1705において、サービスA500はサービスを提供する。
ステップS1903における比較結果が、テナントIDが一致しないとの判断であった場合、ステップS1706において、サービスA500は認証失敗した旨を報知するエラー画面をクライアントPC200に返却し表示させ、フローを終了する。
以上のフローが実行されることにより、次の動作が実行される。すなわち、サービスB550の親テナントにログインしたユーザが文書作成ボタンを押下すると、URLパラメータ「TENANT_ID」でテナントID「1002AA」がサービスA500に送信される。認証サービスA400が認証画面を表示する。ユーザは表示された認証画面で企業ID「1004AA」のユーザ認証情報を入力し、認証に成功するとサービスA500はサービスを提供する。このとき、認証セッションIDに紐付いたユーザ情報に含まれるテナントIDは「1004AA」であり、サービスA500はテナントID「1004AA」のデータを参照する。
該ユーザがサービスB550の親テナントにログインしている状態で文書作成ボタンを押下した場合、URLパラメータ「TENANT_ID」の値(「1002AA」)と、Cookie「IN_TENANT_ID」の値(「1002AA」)が一致する。ステップS1903のYESである。そのため、サービスA500はサービスを提供する。
その後、該ユーザがサービスB550のコミュニティ「communityId1」にログイン先を切り替えて文書作成ボタンを押下した場合、URLパラメータ「TENANT_ID」でテナントID「1003AA」がサービスA500に送信される。URLパラメータ「TENANT_ID」の値(「1003AA」)と、Cookie「IN_TENANT_ID」の値(「1002AA」)が一致しない(ステップS1903のNO)ため、サービスA500は認証失敗した旨を通知する画面を表示する。
以上説明したように、本実施の形態によれば、SSOを行わずに認証画面で認証情報を入力して認証されたユーザがサービスB550のログイン先組織を切り替えて文書生成を行う場合に、意図しないテナントのデータを参照することを防止できる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。

Claims (9)

  1. 第1のサービス提供装置と第2のサービス提供装置とがシングルサインオンによる連携が行われ、クライアント端末へサービスの提供を行うシステムであって、
    前記第2のサービス提供装置は、
    前記第1のサービス提供装置のテナントと、前記第2のサービス提供装置のテナントの下位のグループとして作成されるコミュニティとを紐付けて管理する管理手段を備え、
    前記クライアント端末は、
    前記第2のサービス提供装置によるサービスの提供を受けたユーザが前記第1のサービス提供装置によるサービスの提供を要求する指示を行ったことに応じて、前記ユーザが属するコミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する第1の取得手段と、
    取得した前記第1のサービス提供装置のテナントを示す情報を含むサービスの提供要求を前記第1のサービス提供装置に送信する要求手段と、を備え、
    前記第1のサービス提供装置は、
    前記第2のサービス提供装置にて認証済みのアクセスを受け付けた場合に、認証セッションIDに紐付くユーザ情報に含まれる前記第1のサービス提供装置のテナントを示す情報を取得する第2の取得手段と、
    前記第2の取得手段において取得した前記第1のサービス提供装置のテナントを示す情報と、前記クライアント端末から受信した前記提供要求に含まれる前記第1のサービス提供装置のテナントを示す情報とを比較する比較手段と、
    前記比較手段における比較の結果、テナントを示す情報が一致しなかった場合に前記クライアント端末に対してエラー画面を返却する報知手段と、
    前記比較手段における比較の結果、テナントを示す情報が一致した場合に前記第1のサービス提供装置によるサービスを提供する提供手段と、を備え、
    前記第2のサービス提供装置によるサービスの提供を受けるユーザが属するコミュニティは、前記クライアント端末において切り替え可能であることを特徴とするシステム。
  2. 前記第2の取得手段は、前記クライアント端末から受信した前記提供要求に含まれるHTTPヘッダから前記認証セッションIDを取得することを特徴とする請求項1に記載のシステム。
  3. 前記第2の取得手段は、前記第1のサービス提供装置のユーザ認証を行う第1の認証装置に前記認証セッションIDが有効であるか問い合わせ、有効である場合に、前記第1の認証装置から、前記認証セッションIDに紐付いた前記ユーザ情報を取得することを特徴とする請求項1または請求項2に記載のシステム。
  4. 前記クライアント端末から受信した前記提供要求に含まれる前記第1のサービス提供装置のテナントを示す情報は、前記提供要求のURLパラメータに含まれることを特徴とする請求項1乃至3のうちいずれか1項に記載のシステム。
  5. 前記第1のサービス提供装置は、前記第2のサービス提供装置とのシングルサインオンによる連携を行わずにユーザの認証を行った場合に、前記提供要求に含まれる前記第1のサービス提供装置のテナントを示す情報をCookieに設定する設定手段を備えることを特徴とする請求項1乃至4のうちいずれか1項に記載のシステム。
  6. 前記第1のサービス提供装置の前記比較手段は、前記比較手段において比較した前記第1のサービス提供装置のテナントを示す情報が一致しない場合に、前記クライアント端末から受信した前記提供要求に含まれる前記第1のサービス提供装置のテナントを示す情報と前記Cookieに設定された前記第1のサービス提供装置のテナントを示す情報とをさらに比較し、
    前記報知手段は、前記比較手段において比較した前記第1のサービス提供装置のテナントを示す情報が一致しない場合に、前記クライアント端末に対してエラー画面を返却することを特徴とする請求項5に記載のシステム。
  7. ログインするコミュニティを切り替え可能な他のサービス提供装置とシングルサインオンによる連携を行い、クライアント端末へサービスの提供を行うサービス提供装置であって、
    前記他のサービス提供装置にて認証済みのアクセスを受け付けた場合に、認証セッションIDに紐付くユーザ情報に含まれる前記サービス提供装置のテナントを示す情報を取得する取得手段と、
    前記取得手段において取得した前記サービス提供装置のテナントを示す情報と、前記クライアント端末から受信した前記サービスの提供要求に含まれる前記サービス提供装置のテナントを示す情報とを比較する比較手段と、
    前記比較手段における比較の結果、テナントを示す情報が一致しなかった場合に前記クライアント端末に対してエラー画面を返却する報知手段と、
    前記比較手段における比較の結果、テナントを示す情報が一致した場合に前記サービス提供装置によるサービスを提供する提供手段と、を備え、
    前記クライアント端末では、前記他のサービス提供装置によるサービスの提供を受けたユーザが前記サービス提供装置によるサービスの提供を要求する指示を行ったことに応じて、前記ユーザが属するコミュニティに紐付く前記サービス提供装置のテナントを示す情報を前記他のサービス提供装置から取得し、取得した前記サービス提供装置のテナントを示す情報を含むサービスの提供要求を前記サービス提供装置に送信することを特徴とするサービス提供装置。
  8. 第1のサービス提供装置と第2のサービス提供装置とがシングルサインオンによる連携が行われ、クライアント端末へサービスの提供を行うシステムの制御方法であって、
    前記第2のサービス提供装置において、前記第1のサービス提供装置のテナントと、前記第2のサービス提供装置のテナントの下位のグループとして作成されるコミュニティとを紐付けて管理する管理工程と、
    前記クライアント端末において、前記第2のサービス提供装置によるサービスの提供を受けたユーザが前記第1のサービス提供装置によるサービスの提供を要求する指示を行ったことに応じて、前記ユーザが属するコミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する第1の取得工程と、
    前記クライアント端末において、取得した前記第1のサービス提供装置のテナントを示す情報を含むサービスの提供要求を、前記第1のサービス提供装置に送信する要求工程と、
    前記第1のサービス提供装置において、前記第2のサービス提供装置にて認証済みのアクセスを受け付けた場合に、認証セッションIDに紐付くユーザ情報に含まれる前記第1のサービス提供装置のテナントを示す情報を取得する第2の取得工程と、
    前記第1のサービス提供装置において、前記第2の取得工程において取得した前記第1のサービス提供装置のテナントを示す情報と、前記クライアント端末から受信した前記提供要求に含まれる前記第1のサービス提供装置のテナントを示す情報とを比較する比較工程と、
    前記第1のサービス提供装置において、前記比較工程における比較の結果、テナントを示す情報が一致しなかった場合に、前記クライアント端末に対してエラー画面を返却する報知手段と、
    前記比較工程における比較の結果、テナントを示す情報が一致した場合に、前記第1のサービス提供装置によるサービスを提供する提供工程を有し、
    前記第2のサービス提供装置によるサービスの提供を受けるユーザが属するコミュニティは、前記クライアント端末において切り替え可能であることを特徴とする制御方法。
  9. コンピュータを請求項7に記載のサービス提供装置が備える各手段として機能させることを特徴とするプログラム。
JP2016201635A 2016-10-13 2016-10-13 システム、サービス提供装置、システムの制御方法およびプログラム Active JP6840505B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016201635A JP6840505B2 (ja) 2016-10-13 2016-10-13 システム、サービス提供装置、システムの制御方法およびプログラム
US15/728,404 US10735399B2 (en) 2016-10-13 2017-10-09 System, service providing apparatus, control method for system, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016201635A JP6840505B2 (ja) 2016-10-13 2016-10-13 システム、サービス提供装置、システムの制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2018063580A JP2018063580A (ja) 2018-04-19
JP6840505B2 true JP6840505B2 (ja) 2021-03-10

Family

ID=61904688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016201635A Active JP6840505B2 (ja) 2016-10-13 2016-10-13 システム、サービス提供装置、システムの制御方法およびプログラム

Country Status (2)

Country Link
US (1) US10735399B2 (ja)
JP (1) JP6840505B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7206070B2 (ja) * 2018-08-09 2023-01-17 株式会社エヌケービー 広告配信システム、コンピュータの動作方法、及びクラウドサーバ
JP7470633B2 (ja) 2020-12-28 2024-04-18 株式会社オービック アプリケーション内会社切替装置、アプリケーション内会社切替プログラム、およびアプリケーション内会社切替方法
CN112967790A (zh) * 2021-04-02 2021-06-15 北京声智科技有限公司 创建服务点的方法、服务管理方法及相关设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4573559B2 (ja) 2004-04-07 2010-11-04 エヌ・ティ・ティ・コミュニケーションズ株式会社 分散認証システム、負荷分散装置及び認証サーバ、並びに負荷分散プログラム及び認証プログラム
EP2838239A1 (en) * 2013-08-13 2015-02-18 News UK & Ireland Limited Access control system
US9774586B1 (en) * 2015-08-31 2017-09-26 EMC IP Holding Company LLC Dynamic authorization of users in a multi-tenant environment using tenant authorization profiles
US9503452B1 (en) * 2016-04-07 2016-11-22 Automiti Llc System and method for identity recognition and affiliation of a user in a service transaction

Also Published As

Publication number Publication date
US20180109515A1 (en) 2018-04-19
US10735399B2 (en) 2020-08-04
JP2018063580A (ja) 2018-04-19

Similar Documents

Publication Publication Date Title
JP5744656B2 (ja) シングルサインオンを提供するシステムおよびその制御方法、サービス提供装置、中継装置、並びにプログラム
US9210160B2 (en) Establishing and maintaining an improved single sign-on (SSO) facility
WO2018095416A1 (zh) 信息处理方法、装置及系统
US20030226036A1 (en) Method and apparatus for single sign-on authentication
JP5289480B2 (ja) 情報処理システム、情報処理装置の制御方法、およびそのプログラム。
JP5988699B2 (ja) 連携システム、その連携方法、情報処理システム、およびそのプログラム。
CN102638454A (zh) 一种面向http身份鉴别协议的插件式单点登录集成方法
KR20110009129A (ko) 통합 인증을 위한 시스템, 방법 및 프로그램 제품
CN112468481A (zh) 一种基于CAS的单页和多页web应用身份集成认证方法
US11153293B1 (en) Identity information linking
JP6840505B2 (ja) システム、サービス提供装置、システムの制御方法およびプログラム
JP2020067967A (ja) 情報処理システム、情報処理装置、情報処理方法、およびプログラム
CN116170234B (zh) 一种基于虚拟账号认证的单点登录方法和系统
CN102064953A (zh) ldap服务器的用户权限信息配置系统、装置和方法
JP2016115260A (ja) 権限移譲システム、権限移譲システムに用いられる認可サーバー、リソースサーバー、クライアント、媒介装置、権限移譲方法およびプログラム
JP5955106B2 (ja) マッピングサーバーとシングルサインオンシステム、マッピング機能提供方法
US10623396B2 (en) System and method for controlling system
JP2013250875A (ja) システムおよび制御方法およびプログラム
CN113973017B (zh) 一种商业智能平台数据处理系统及方法
KR20040053720A (ko) 복수의 웹서버로의 사용자 인증 처리 방법과 그 시스템
CN117097540A (zh) 一种基于智能网联的校园身份验证安全管理方法
CN117097631A (zh) 一种批量管理bmc用户信息的方法及装置
CN117596015A (zh) 一种网络资源的访问方法及装置
CN116996232A (zh) 一种基于端口复用与路由转发的统一数字身份认证方法
Jianpeng et al. Study of single sign-on model within URP architecture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200917

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210217

R151 Written notification of patent or utility model registration

Ref document number: 6840505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151