JP2017134535A - システム、及びシステムの制御方法 - Google Patents
システム、及びシステムの制御方法 Download PDFInfo
- Publication number
- JP2017134535A JP2017134535A JP2016012782A JP2016012782A JP2017134535A JP 2017134535 A JP2017134535 A JP 2017134535A JP 2016012782 A JP2016012782 A JP 2016012782A JP 2016012782 A JP2016012782 A JP 2016012782A JP 2017134535 A JP2017134535 A JP 2017134535A
- Authority
- JP
- Japan
- Prior art keywords
- service
- service providing
- providing apparatus
- tenant
- community
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
【課題】一方のサービス提供装置においてテナントごとに作成されるコミュニティと他方のサービス提供装置のテナントとのシングルサインオンによる連携を可能にするシステムを提供する。
【解決手段】サービス提供サービスA500は、サービス提供サービスA500のテナントと、サービス提供サービスB550のテナントごとに作成されるコミュニティとを紐付けてサービス提供サービスB550に保存する。クライアントPC200のブラウザは、ユーザがサービス提供サービスB550のコミュニティにログインしている際に、サービス提供サービスA500のサービスの提供を指示したことに応じて、アクセス先のURLからコミュニティ名を取得し、当該コミュニティ名に対応するサービス提供サービスA500の企業IDをサービス提供サービスB550から取得し、取得したコミュニティ名をURLパラメータに含めてサービス提供サービスA500にアクセスする。
【選択図】図1
【解決手段】サービス提供サービスA500は、サービス提供サービスA500のテナントと、サービス提供サービスB550のテナントごとに作成されるコミュニティとを紐付けてサービス提供サービスB550に保存する。クライアントPC200のブラウザは、ユーザがサービス提供サービスB550のコミュニティにログインしている際に、サービス提供サービスA500のサービスの提供を指示したことに応じて、アクセス先のURLからコミュニティ名を取得し、当該コミュニティ名に対応するサービス提供サービスA500の企業IDをサービス提供サービスB550から取得し、取得したコミュニティ名をURLパラメータに含めてサービス提供サービスA500にアクセスする。
【選択図】図1
Description
本発明は、システム、及びシステムの制御方法に関する。
クラウドプラットフォームサービス上で業務データの管理や各種処理を行う形態が普及し始めている。ユーザは、クライアントコンピュータ上のWebブラウザ(以下、ブラウザ)からインターネットを介してクラウドプラットフォームサービスのWebページにアクセスし、そのWebページ上で閲覧したい業務データを表示する。また、その画面からユーザが文書生成指示を行うと、文書生成サービスにリダイレクトされる。そして、文書生成サービスがクラウドプラットフォームサービスにある業務データを取得して文書を生成し、生成した文書をクライアントコンピュータやクラウドプラットフォームサービスに送信する。クラウドプラットフォームサービスの代表例として、例えば、Salesforce.com社のSalesforce CRM(登録商標)がある。
クラウドプラットフォームサービスや文書生成サービスは、マルチテナントで動作する。テナントとは、クラウドプラットフォームサービスや文書生成サービスを使用する契約を締結した企業や組織の単位である。マルチテナントで動作するサービスは、1つのシステムで複数のテナントのデータを管理し、あるテナントのデータが別のテナントから参照できないように各テナントのデータを分離して管理する。ユーザに自身のテナントのデータのみを参照させるため、クラウドプラットフォームサービスや文書生成サービスは、ユーザ認証を行う。
クラウドプラットフォームサービスと文書生成サービスとが連携する場合、ユーザがそれぞれのサービスで認証を行うことなくサービス間で認証を連携させることが考えられる。複数のサービス間で認証を連携させる技術として、例えば、SAML(Security Assertion Markup Language)によるシングルサインオン(以下、SSO)の仕組みがある。特許文献1は、複数台の認証サーバでSAMLによるSSOを行う方法を開示している。
クラウドプラットフォームサービスと文書生成サービスは、それぞれ異なるテナント情報を有する。SSOを行うには、クラウドプラットフォームサービスと文書生成サービスとがお互いのテナントを把握する必要がある。なぜなら、どのテナントがSSOを行い、他方のサービスのどのテナントと対応してSSOを行うのかを知る必要があるためである。さらに、一方のサービスを利用するテナント内に作成されるコミュニティごとに、他方のサービスとSSOを行うことが考えられる。しかし、特許文献1の方法では、他方のサービスにおいてどの組織と対応してSSOを行うのかを知ることができない。
本発明は、一方のサービス提供装置においてテナントごとに作成されるコミュニティと他方のサービス提供装置のテナントとのシングルサインオンによる連携を可能にするシステムを提供することを目的とする。
本発明の一実施形態に係るシステムは、第1のサービス提供装置と第2のサービス提供装置とが連携して、クライアント端末を介してシングルサインオンによるサービスの提供を行うシステムである。前記第1のサービス提供装置は、前記第1のサービス提供装置のテナントと、前記第2のサービス提供装置のテナントごとに作成されるコミュニティとを紐付けて前記第2のサービス提供装置に登録する登録手段を備える。前記クライアント端末は、前記第2のサービス提供装置によるサービスの提供を受けているユーザが前記第1のサービス提供装置によるサービスの提供を指示したことに応じて、前記クライアント端末のアクセス先の情報から前記コミュニティを示す情報を取得する第1の取得手段と、前記コミュニティを示す情報を前記第2のサービス提供装置に送信し、当該コミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する第2の取得手段と、取得した前記第1のサービス提供装置のテナントを示す情報を含むサービスの提供要求を、前記第1のサービス提供装置に行う要求手段と、を備える。
本発明のシステムによれば、一方のサービス提供装置においてテナントごとに作成されるコミュニティと他方のサービス提供装置のテナントとのシングルサインオンによる連携が可能となる。
以下、本発明を実施するための形態について図面などを参照して説明する。
(第1実施形態)
図1は、本発明の第1実施形態に係るシステムの構成を示す図である。
WAN100は、Wide Area Networkである。すなわち、本実施形態では、World Wide Web(WWW)システムが構築されている。LAN101は、各構成要素を接続するLocal Area Network(LAN101)である。
(第1実施形態)
図1は、本発明の第1実施形態に係るシステムの構成を示す図である。
WAN100は、Wide Area Networkである。すなわち、本実施形態では、World Wide Web(WWW)システムが構築されている。LAN101は、各構成要素を接続するLocal Area Network(LAN101)である。
クライアントPC200は、ユーザが操作する情報処理装置であり、後述するサービス提供サービスA500やサービス提供サービスB550に対してリクエストを発行する。認証サービス決定サービス300は、ユーザのアクセスを適切な認証サービス提供装置(Identity Provider、以下IdP)へと誘導する。認証サービスA400、認証サービスB450は、ともにIdPとして動作し、認証を行う。なお、認証サービスは、2つに限定されるものではない。どのIdPが実際の認証を行うかは、アクセスしたユーザにより異なる。
サービス提供サービスA(第1のサービス提供装置)500、サービス提供サービスB(第2のサービス提供装置)550は、認証されたユーザに対してサービスを提供する。サービス提供サービスA500は、クライアントPC200からのリクエストを受信して文書生成を行う。サービス提供サービスB550は、クライアントPC200やサービス提供サービスA500からのリクエストに応じて保持するデータの表示や更新等を行う。なお、サービス提供サービスA500、サービス提供サービスB550は、文書生成サービスやクラウドプラットフォームサービスに限定されるものではなく、別のサービスであってもよい。
クライアントPC200、認証サービス決定サービス300、認証サービスA400、認証サービスB450、サービス提供サービスA500、サービス提供サービスB550は、それぞれWAN100及びLAN101を介して接続され相互に通信可能である。なお、クライアントPC200及び各サービスは、それぞれ別個のLAN上に構成されていてもよく、同一のLAN上に構成されていてもよい。また、各サービスは、同一の装置にて提供されるように構成されていてもよい。認証サービス決定サービス300、認証サービスA400、サービス提供サービスA500は、同じネットワーク内(イントラネット内)に構築されたサーバ群である。また、認証サービスB450、サービス提供サービスB550は、同じネットワーク内(イントラネット内)に構築されたサーバ群である。
クライアントPC200は、サービスを受けるためにまず、サービス提供サービスB550にアクセスする。サービス提供サービスB550は、未認証のユーザのアクセスを受け付けると、認証画面(不図示)を表示し、ユーザ認証を行う。サービス提供サービスB550は、ユーザを認証すると、業務データの表示を行うためのデータをクライアントPC200に提供する。そして、クライアントPC200は、提供されたデータを画面に表示する。
クライアントPC200が表示する業務データの画面(不図示)には、サービス提供サービスA500へリダイレクトを行うための設定がなされたボタンが表示されている。ボタンが押下されると、クライアントPC200は、サービス提供サービスA500へアクセスのリダイレクトを行う。すなわち、サービス提供サービスB550が提供するサービスと連携した、サービス提供サービスA500によるサービスの提供を指示することができる。
サービス提供サービスA500は、未認証のユーザアクセスを受け付けると、アクセスを認証サービス決定サービス300にリダイレクトさせる。認証サービス決定サービス300は、未認証のアクセスを適切な認証サービスA400または認証サービスB450にリダイレクトさせる。認証サービスA400または認証サービスB450は、ユーザの認証を行うと、再度ユーザのアクセスをサービス提供サービスA500にリダイレクトさせ、サービス提供サービスA500がユーザにサービスを提供する。
図2は、本実施形態に係るクライアントPC(クライアント端末)200の構成を示す図である。
なお、認証サービス決定サービス300、認証サービスA400、認証サービスB450、サービス提供サービスA500、サービス提供サービスB550を提供するサーバコンピュータの構成も同様である。これらサービスは、サーバとして構成され、図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、図3(B)に認証サービスA400、図3(C)に認証サービスB450をそれぞれ示している。
図3(A)は、本実施形態に係る認証サービス決定サービス300のモジュール構成を示す図である。
認証サービス決定サービス300は、管理モジュール301、キー取り出しモジュール302、取得モジュール303、及びアクセス誘導モジュール304を備える。管理モジュール301は、認証サービスを決定するキーとなる情報と、認証サービスの情報とを紐付けて記憶する。認証サービス決定サービス300が未認証のユーザからのアクセスを受け付けると、キー取り出しモジュール302は、ユーザがアクセスした際に提供される情報から認証サービスを決定するキーとなる情報を取り出す。取得モジュール303は、取り出したキーとなる情報を用いて、管理モジュール301から認証サービスの情報を取得する。アクセス誘導モジュール304は、管理モジュール301から取得した認証サービスの情報に従い、ユーザを適切な認証サービスにアクセスするように誘導する。
認証サービス決定サービス300は、管理モジュール301、キー取り出しモジュール302、取得モジュール303、及びアクセス誘導モジュール304を備える。管理モジュール301は、認証サービスを決定するキーとなる情報と、認証サービスの情報とを紐付けて記憶する。認証サービス決定サービス300が未認証のユーザからのアクセスを受け付けると、キー取り出しモジュール302は、ユーザがアクセスした際に提供される情報から認証サービスを決定するキーとなる情報を取り出す。取得モジュール303は、取り出したキーとなる情報を用いて、管理モジュール301から認証サービスの情報を取得する。アクセス誘導モジュール304は、管理モジュール301から取得した認証サービスの情報に従い、ユーザを適切な認証サービスにアクセスするように誘導する。
図3(B)は、本実施形態に係る認証サービスA400のモジュール構成を示す図である。認証サービスA400は、サービスA認証モジュール401及びアサーション検証モジュール402を備える。認証サービスA400が未認証のアクセスを受け付けると、ユーザにユーザIDとパスワードの入力を促し認証を行う。また、SSOを実現させるために、認証サービスA400が他認証サービスにより提供された認証結果をユーザのアクセスから受け取ると、アサーション検証モジュール402がその認証結果の妥当性を検証し、ユーザのアクセスを承認するか否かを決定する。
なお、本実施形態において認証結果としての情報は、SAMLアサーションを想定するが、本発明に係るSSOは、SAML及びSAMLアサーションを用いたものに限定するものではない。なお、アサーションとは、認証結果に応じて発行され、サービス間でやり取りされる認証情報を指す。
図3(C)は、本実施形態に係る認証サービスB450のモジュール構成を示す図である。認証サービスB450は、サービスB認証モジュール451及びアサーション発行モジュール452を備える。認証サービスB450が未認証のアクセスを受け付けると、そのアクセスを行っているユーザにユーザIDとパスワードの入力を促し認証を行う。認証に成功するとアサーション発行モジュール452が認証結果としてのSAMLアサーションを生成し、アサーションの検証を行うことが可能な認証サービスへ、ユーザのアクセスをリダイレクトさせる。
図4は、本実施形態に係るサービス提供サービスA500のモジュール構成を示す図である。
サービス提供サービスA500は、アクセス拒否モジュール501、企業ID保存判断モジュール502、企業ID取得モジュール503、企業ID保存モジュール504を備える。また、サービス提供サービスA500は、データ取得モジュール505、文書生成モジュール506、及びページ生成モジュール507を備える。
サービス提供サービス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保存モジュール504が取得した企業IDをユーザ(もしくはセッション等)に対応付けてサービス提供サービスB550に保存する。
企業ID取得モジュール503が企業IDを取得する方法は、例えば、認証サービスA400が企業IDをHTTPヘッダに設定するようにし、企業ID取得モジュール503がHTTPヘッダから取得することが考えられる。データ取得モジュール505は、サービス提供サービスB550から業務データを取得する。文書生成モジュール506は、フォーム管理モジュール(不図示)が管理するフォームを取得して、データ取得モジュール505が取得した業務データとフォームから文書データを生成する。ページ生成モジュール507は、レスポンスページを生成してクライアントPC200に返す。
図5は、本実施形態に係るサービス提供サービスB550のモジュール構成を示す図である。
サービス提供サービスB550は、アクセス拒否モジュール551、企業ID管理モジュール5531、5541、企業ID取得モジュール5532、5542を備える。また、サービス提供サービスB550は、業務データ管理モジュール5533、5543、設定管理モジュール5534、5544、コミュニティ名取得モジュール5535、5545、を備える。
サービス提供サービスB550は、アクセス拒否モジュール551、企業ID管理モジュール5531、5541、企業ID取得モジュール5532、5542を備える。また、サービス提供サービスB550は、業務データ管理モジュール5533、5543、設定管理モジュール5534、5544、コミュニティ名取得モジュール5535、5545、を備える。
ここで、サービス提供サービスB550において、企業ID管理モジュール、企業ID取得モジュール、業務データ管理モジュール、設定管理モジュール、コミュニティ名取得モジュールはそれぞれ、テナント(企業もしくは契約)ごとに提供される。つまり、自身が属するテナントに割り当てられた各種モジュールを利用することとなる。図5には、2つのテナント(企業11111111及び企業22222222)が示されている。それぞれのモジュールは各テナントに関する要求に応じて動作するものとする。なお、これらテナント毎に割り当てられるモジュールは、同一のハードディスク(HD)211に記憶されてテナント毎のデータを論理的に分離して管理するようにしてもよい。または、ハードディスク(HD)211を分けて物理的に分離して管理するようにしてもよい。
以下、コミュニティについて説明する。コミュニティとは、テナント(親テナント)内に作成される別の組織(子テナント)のことであり、テナント内に1つ以上作成され、別企業や別組織に所属するユーザのうち許可したユーザを子テナントのデータにアクセス可能にするものである。すなわち、異なる企業や組織に所属するユーザを1つの仮想的な組織(子テナント)に所属させ、その組織(子テナント)内で情報共有やコラボレーションを促進することを目的とする。
以下の説明において、1つの仮想的な組織(子テナント)をコミュニティと呼ぶ。また、従来の(コミュニティではない)テナントを、便宜的に親テナントと呼ぶ。ユーザは、コミュニティ専用のログイン画面からコミュニティ専用のアカウントでコミュニティにログインする。コミュニティにログインしたユーザは、親テナントの領域にあるデータのうち、予めそのコミュニティに対してアクセス許可されたデータにのみアクセスできる。
サービス提供サービスB550は、ユーザからアクセスを受け付けると、そのアクセスが認証済みであるか否かをアクセス拒否モジュール551が判断する。未認証のアクセスである場合には、ページ生成モジュール552が認証画面を表示する。認証済みのアクセスである場合には、サービス提供サービスB550は、ユーザに対してサービスを提供する。サービス提供サービスB550が業務データ表示のリクエストを受け付けると、業務データ管理モジュール5533または5543が業務データを取得する。業務データを表示する画面にボタンが含まれる場合、設定管理モジュール5534または5544がボタン設定を取得する。ここで取得されるボタン設定については、図9を用いて後述する。
また、サービス提供サービスB550が企業ID保存画面表示のリクエストを受け付けると、コミュニティ名取得モジュール5535または5545が親テナント内に存在するコミュニティ名を取得する。企業ID保存画面については、図8を用いて後述する。コミュニティ名を取得する方法として、例えば、親テナント内に存在するコミュニティの一覧を取得するAPIを利用する。ページ生成モジュール552は、レスポンスページを生成してクライアントPC200に返す。
図8は、本実施形態に係る企業ID保存画面の一例を示す図である。
企業ID保存画面800は、企業IDを入力するテキストボックス、企業IDに紐付けるコミュニティ名を指定するコンボボックス、及び保存を実行するためのボタンから構成される。保存を実行するボタンが押下された場合、企業ID管理モジュール5531または5541は、企業ID及びコミュニティ名を紐付けて保存する。コミュニティ名を指定する方法は、コンボボックスに表示されるコミュニティ名の一覧から選択する方法以外に、ユーザが直接コミュニティ名を入力する方法であってもよい。
企業ID保存画面800は、企業IDを入力するテキストボックス、企業IDに紐付けるコミュニティ名を指定するコンボボックス、及び保存を実行するためのボタンから構成される。保存を実行するボタンが押下された場合、企業ID管理モジュール5531または5541は、企業ID及びコミュニティ名を紐付けて保存する。コミュニティ名を指定する方法は、コンボボックスに表示されるコミュニティ名の一覧から選択する方法以外に、ユーザが直接コミュニティ名を入力する方法であってもよい。
また、コミュニティ名は、空であってもよい。親テナントでSSO連携を行う場合に、コミュニティ名は空で保存される。なお、本実施形態では、サービス提供サービスB550のテナントの管理者権限を有するユーザが、企業ID保存画面800にアクセスすることを想定している。また、後述する図11の処理フローを開始するよりも前に、企業ID保存画面800にて企業IDとコミュニティ名を紐づけて保存する作業が行われているものとする。
図6は、本実施形態に係る企業ID管理モジュール5531または5541が管理する企業ID管理テーブル650の一例を示す図である。
企業ID管理テーブル650は、企業ID及びコミュニティ名を紐付けて保存する。図8に示した企業ID保存画面において入力された企業IDとコミュニィティ名は、保存を実行するボタンを押下することにより企業ID管理テーブル650に保存される。コミュニティ名が空の企業IDは、親テナントでSSO連携することとなる。
企業ID管理テーブル650は、企業ID及びコミュニティ名を紐付けて保存する。図8に示した企業ID保存画面において入力された企業IDとコミュニィティ名は、保存を実行するボタンを押下することにより企業ID管理テーブル650に保存される。コミュニティ名が空の企業IDは、親テナントでSSO連携することとなる。
図9は、本実施形態に係るボタン設定の記述例を示す図であり、例えば、サービス提供サービスBが提供する業務データを表示する画面に配置される。
ここで、ボタンに対応する表示名901が「文書作成」と設定され、ボタンを押下した場合の動作902として、クライアントPC200のブラウザ上でJavaScript(登録商標)を実行するよう定義されている。また、実行するJavaScriptの内容903が図9に示す記述例の中に定義されている。
ここで、ボタンに対応する表示名901が「文書作成」と設定され、ボタンを押下した場合の動作902として、クライアントPC200のブラウザ上でJavaScript(登録商標)を実行するよう定義されている。また、実行するJavaScriptの内容903が図9に示す記述例の中に定義されている。
図9において、{!$Site.Prefix}とは、クライアントPC200のブラウザがアクセスしているURLからユーザがログインしている組織(親テナントまたはコミュニティ)を取得することを意味している。
図7は、クライアントPC200のブラウザがアクセスするサービス提供サービスB550のURLの一例を示す図である。
図7(A)は、ユーザが親テナントにログインした場合のURLの例である。図7(B)は、ユーザが「community1」という名前のコミュニティにログインした場合のURLの例である。クライアントPC200のブラウザは、このようにURLの所定の箇所からユーザがログインしている組織を表す文字列を取得する。詳細は後述する。
図7(A)は、ユーザが親テナントにログインした場合のURLの例である。図7(B)は、ユーザが「community1」という名前のコミュニティにログインした場合のURLの例である。クライアントPC200のブラウザは、このようにURLの所定の箇所からユーザがログインしている組織を表す文字列を取得する。詳細は後述する。
図9において、企業IDを取得するよう定義されている部分は、後述する企業ID取得モジュール5532または5542から企業IDを取得する。企業IDを取得する方法として、例えば、企業IDを取得するWebサービスAPIが公開されており、クライアントPC側からそのWebサービスAPIを呼び出す方法が考えられる。このとき、クライアントPC200は、ログインしている組織を指定してWebサービスAPIを呼び出す。
図9において、{!$Api.Session_ID}とは、認証したユーザのセッションIDをサービス提供サービスB550のセッション管理モジュール(不図示)から取得することを意味している。図9において、{!$Api.Server_URL}とは、サービス提供サービスA500がサービス提供サービスB550にアクセスするためのURLを取得することを意味している。図9において、{!Opportunity.Id}とは、画面に表示した商談レコードのレコードIDを取得することを意味している。
図9のように設定されたボタンを押下すると、クライアントPC200のブラウザ上でJavaScriptが実行され、別ウィンドウが表示されて「http://service_a/service」にリダイレクトする。ここでは、「http://service_a/service」は、サービス提供サービスA500のURLを示すものとする。リダイレクトのURLパラメータとして、上記URLに加え、「TENANT_ID」、「sessionid」、「serverurl」を含む。
パラメータ「TENANT_ID」は企業IDを指す。パラメータ「sessionid」は認証したユーザのセッションIDを指す。パラメータ「serverurl」は、サービス提供サービスB550にアクセスするためのURLを指す。なお、以降、本実施形態においては、特に断りの無い限りURLパラメータに含まれる企業IDとは、パラメータ「TENANT_ID」の値のことを指す。
サービス提供サービスB550は、企業IDを保存するリクエストを受け付けると、企業ID管理モジュール5531または5541が記憶部に企業IDを保存する。サービス提供サービスB550が企業ID取得のリクエストを受け付けると、企業ID取得モジュール5532または5542は、企業ID管理モジュール5531または5541から企業IDを取得して返す。企業ID取得モジュール5532または5542は、クライアントPC200のブラウザから企業ID取得リクエストを受け付けられるよう、例えば、WebサービスAPIとして公開されている。
図10は、本実施形態に係るクライアントPC200のブラウザが実行するフローである。
本フローは、ユーザがサービス提供サービスB550にアクセスしたことによりクライアントPC200のブラウザに表示される業務データの画面(不図示)において、ユーザが「文書作成」ボタンを押下することによって開始する。そして、ボタンの押下時に、ブラウザがボタンに設定されているJavaScriptを実行することで本フローが実行される。
本フローは、ユーザがサービス提供サービスB550にアクセスしたことによりクライアントPC200のブラウザに表示される業務データの画面(不図示)において、ユーザが「文書作成」ボタンを押下することによって開始する。そして、ボタンの押下時に、ブラウザがボタンに設定されているJavaScriptを実行することで本フローが実行される。
なお、「文書作成」ボタンは、サービス提供サービスB550のテナントの管理者権限を有するユーザが、図9の設定がなされたボタンを業務データの画面(不図示)に予め配置したものである。
ステップS1001でクライアントPC200のブラウザは、アクセスしているURLからユーザがログインしている組織(親テナントまたはコミュニティ)を表す文字列を取得する。ユーザが親テナントにログインしている場合には、クライアントPC200のブラウザは、文字列null(空文字)を取得する。ユーザがコミュニティにログインしている場合には、クライアントPC200のブラウザは、そのコミュニティ名を取得できる。
ステップS1002でクライアントPC200のブラウザは、サービス提供サービスB550から企業IDを取得するリクエストを行う。サービス提供サービスB550は、企業IDを取得するためのWebサービスAPIを公開しており、WebサービスAPIのパラメータ「loginOrg」に組織名を指定することで、WebサービスAPIはその組織に紐付けられた企業IDを返す。ここでは、パラメータ「loginOrg」にS1001で取得した文字列を指定する。
ステップS1003でクライアントPC200のブラウザは、企業IDの取得処理がエラーなく終了したか否かを判断する。エラーにならずに終了した場合は、ステップS1004に遷移し、エラーとなった場合は、ステップS1008に遷移する。ステップS1004でクライアントPC200のブラウザは、サービス提供サービスB550から取得した企業IDが空か否かを判断する。
取得した企業IDが空の場合、ステップS1005でクライアントPC200のブラウザは、企業IDを空としてURLパラメータに設定する。取得した企業IDが空でなかった場合、ステップS1006でクライアントPC200のブラウザは、取得した企業IDをURLパラメータに設定する。そして、ステップS1007でクライアントPC200のブラウザは、サービス提供サービスA500にアクセスし、サービスの提供要求を行う。
ステップS1008でクライアントPC200のブラウザは、画面をリロードする。ステップS1003でエラーとなるケースとして、例えば、サービス提供サービスB550で認証済のユーザのセッションが切れてしまった場合が挙げられる。この場合、ブラウザは、画面をリロードすることで再び認証画面を表示し、認証成功後、直前に表示していた画面に戻ることができる。なお、ブラウザは、ステップS1008で画面をリロードせずにエラー画面を表示するようにしてもよい。以上でクライアントPC200のブラウザによるフローが終了する。
図11は、本実施形態に係る、サービス提供サービスB550が実行するフローである。
本フローは、図10のステップS1002に示した、クライアントPC200のブラウザがサービス提供サービスB550に対して企業ID取得リクエストを行うことに起因して開始される。
本フローは、図10のステップS1002に示した、クライアントPC200のブラウザがサービス提供サービスB550に対して企業ID取得リクエストを行うことに起因して開始される。
ステップS1101でサービス提供サービスB550は、クライアントPC200から企業ID取得リクエストを受け付ける。ステップS1102で企業ID取得モジュール5532または5542は、企業ID取得リクエストからパラメータ「loginOrg」の値を取得する。ステップS1103で企業ID取得モジュール5532または5542は、ステップS1102で取得したloginOrgの値を指定して企業ID管理モジュール5531または5541から企業IDを取得するリクエストを行う。
ステップS1104で企業ID管理モジュール5531または5541は、企業ID管理テーブル650を検索し、カラム「コミュニティ名」の値がリクエストで指定されたloginOrgの値と一致するレコードを取得する。そして、企業ID管理モジュール5531または5541は、取得したレコードの企業IDを企業ID取得モジュール5532または5542に返却する。loginOrgの値がnullである場合は、コミュニティ名が空であるレコードの企業IDを返す。例えば、図6に示した企業ID管理テーブル650の場合、コミュニティ名が空である企業ID「1002AA」を企業IDとして返す。すなわち、loginOrgの値がnullである場合は、親テナントとSSO連携することになる。
ステップS1105で企業ID取得モジュール5532または5542は、企業ID管理モジュール5531または5541から返却された企業IDの値が空か否かを判断する。企業IDが空と判断された場合は、ステップS1109に遷移し、空でないと判断された場合は、ステップS1106に遷移する。ここで企業IDが空とは、その時点で企業ID管理モジュールが要求を受けたユーザもしくはクライアントPCに対応する企業IDを保持していないことを意味する。
ステップS1106で企業ID取得モジュール5532または5542は、取得した企業IDが複数含まれているか否かを判断する。企業IDが単数と判断された場合は、ステップS1107に遷移し、企業IDが複数と判断された場合はステップS1108に遷移する。ステップS1107で企業ID取得モジュール5532または5542は、取得した企業IDをレスポンスとしてクライアントPC200へ返す。ステップS1108で企業ID取得モジュール5532または5542は、取得した企業IDのうち、1つ目の企業IDをレスポンスとしてクライアントPC200へ返す。
なお、ステップS1108において、取得した企業IDは、企業ID管理モジュール5531または5541から企業IDを保存した時刻の古い順に取得されるものとする。ただし、取得される順は企業IDを保存した時刻の古い順に限定されるものではなく、他の基準に従って順序付けをされてもよい。ステップS1109で企業ID取得モジュール5532または5542は、企業IDが空であることをレスポンスとしてクライアントPC200へ返す。以上でフローを終了する。
クライアントPC200のブラウザがサービス提供サービスA500にアクセスする(図10のS1007)ことに起因して開始されるサービス提供サービスA500が実行するフローについては、その詳細な説明を省略する。また、SAMLによりSSOを実現する際の認証サービスA400及び認証サービスB450におけるフローについても、その詳細な説明を省略する。ここでは、クライアントPC200のブラウザがサービス提供サービスA500にアクセスした際に、そのアクセスが未認証であった場合の動作についてのみ説明する。
図10に示すステップS1007においてアクセスがリダイレクトされた結果、クライアントPC200のブラウザがサービス提供サービスA500にアクセスする。そして、そのアクセスが認証済みであるか否かを判定され、認証済みであればサービス提供サービスA500はサービスを提供し、未認証の場合に、認証サービスA400及び認証サービスB450においてSSOを実現する処理が実行される。認証サービスA400は、そのアクセスが未認証である場合に、URLパラメータに企業IDが含まれるか否かを判断する。
URLパラメータに企業IDが含まれる場合に、その企業IDとSSO設定されたサービス提供サービスB550のURLにリダイレクトする。認証サービスB450は、認証情報に対応するアサーションを発行して、アクセスを認証サービスA400にリダイレクトする。認証サービスA400は、受け付けたリダイレクトに含まれるアサーションが妥当なものかを検証し、妥当であると判断した場合に、サービス提供サービスA500は、サービスを提供する。以上のフローが実行されることにより、サービス提供サービスB550のコミュニティにログインしたユーザとサービス提供サービスA500の企業IDに紐づくユーザとのSSOが行われる。
以上のように、本実施形態によれば、ユーザが第1のサービス提供装置においてログインした組織(親テナントまたはコミュニティ)に対応する適切な第2のサービス提供装置のテナントとシングルサインオンによる連携を行うことができる。。
(第2実施形態)
本発明に係る第2実施形態について図面を用いて説明する。なお第1実施形態と共通の部分については説明を省略し、以下では差異部分についてのみ説明する。第1実施形態では、事前に企業ID保存画面800にアクセスして企業IDとコミュニティ名を紐付けて保存することを想定していた。すなわち、コミュニティにログインしている場合には、企業ID管理テーブル650に当該コミュニティと紐付く企業IDのレコードが存在していた。一方、本実施形態では、事前に企業IDと紐付けていないコミュニティにログインしている場合について説明する。
本発明に係る第2実施形態について図面を用いて説明する。なお第1実施形態と共通の部分については説明を省略し、以下では差異部分についてのみ説明する。第1実施形態では、事前に企業ID保存画面800にアクセスして企業IDとコミュニティ名を紐付けて保存することを想定していた。すなわち、コミュニティにログインしている場合には、企業ID管理テーブル650に当該コミュニティと紐付く企業IDのレコードが存在していた。一方、本実施形態では、事前に企業IDと紐付けていないコミュニティにログインしている場合について説明する。
図12は本実施形態に係る、サービス提供サービスB550が実行するフローである。
なお、図11と同様の処理においては同じ符号を付与しており、以下では差異部分についてのみ説明する。ユーザは、サービス提供サービスB550のコミュニティ「community3」にログインしているものとする。また、企業ID管理テーブル650には図6に示すレコードが保存されているものとする。
なお、図11と同様の処理においては同じ符号を付与しており、以下では差異部分についてのみ説明する。ユーザは、サービス提供サービスB550のコミュニティ「community3」にログインしているものとする。また、企業ID管理テーブル650には図6に示すレコードが保存されているものとする。
ステップS1103で企業ID取得モジュール5532または5542は、ステップS1102で取得したloginOrgの値「community3」を指定して企業ID管理モジュール5531または5541から企業IDを取得するリクエストを行う。ステップS1201で企業ID管理モジュール5531または5541は、企業ID管理テーブル650を検索し、カラム「コミュニティ名」の値がリクエストで指定されたloginOrgの値「community3」と一致するレコードを検索する。
ステップS1202で企業ID管理モジュール5531または5541は、「コミュニティ名」の値が「community3」と一致するレコードが存在するか否かを判断する。一致するレコードが存在すると判断された場合は、ステップS1203に遷移し、存在しないと判断された場合は、ステップS1204に遷移する。ステップS1203で企業ID管理モジュール5531または5541は、企業ID管理テーブル650から取得したレコードの企業IDを企業ID取得モジュール5532または5542に返却する。ステップS1204で企業ID管理モジュール5531または5541は、空を企業ID取得モジュール5532または5542に返却する。
クライアントPC200のブラウザがサービス提供サービスA500にアクセスする(図10のS1007)ことに起因して開始されるサービス提供サービスA500が実行するフローについては、その詳細な説明を省略する。ここでは、クライアントPC200のブラウザがサービス提供サービスA500にアクセスした際に、そのアクセスが未認証であった場合の動作についてのみ説明する。
ユーザは、サービス提供サービスB550のコミュニティ「community3」にログインしている。このとき、クライアントPC200のブラウザがサービス提供サービスA500にアクセスすると、上述したようにそのアクセスのURLパラメータには企業IDが含まれない。このため、認証サービスA400は、企業ID入力画面(不図示)を表示する。ユーザは、企業ID入力画面において、自身が所属する企業の企業IDを入力する。企業ID入力画面において企業IDが入力されると、認証サービスA400は、アクセスを企業IDとSSO設定されたサービス提供サービスB550のURLにリダイレクトする。
認証サービスB450は、認証情報に対応するアサーションを発行して、アクセスを認証サービスA400にリダイレクトする。認証サービスA400は、受け付けたリダイレクトに含まれるアサーションが妥当なものかを検証し、妥当であると判断した場合に、サービス提供サービスA500は、サービスを提供する。以上のフローが実行されることにより、サービス提供サービスB550のコミュニティ「community3」にログインしたユーザとサービス提供サービスA500の企業IDに紐づくユーザとのSSOが行われる。
以上のように、本実施形態によれば、事前に企業IDと紐付けられていないコミュニティにユーザがログインしている場合に、ユーザに企業IDを入力させることでSAMLによるSSOを行う。それによりコミュニティごとのSSOを適切なテナントで行えるようになる。
(第3実施形態)
本発明に係る第3実施形態について図面を用いて説明する。なお第1及び第2実施形態と共通の部分については説明を省略し、以下では差異部分についてのみ説明する。本実施形態では、第2実施形態と同様に、事前に企業IDと紐付けていないコミュニティにログインしている場合について説明する。
本発明に係る第3実施形態について図面を用いて説明する。なお第1及び第2実施形態と共通の部分については説明を省略し、以下では差異部分についてのみ説明する。本実施形態では、第2実施形態と同様に、事前に企業IDと紐付けていないコミュニティにログインしている場合について説明する。
図13は、本実施形態に係る、サービス提供サービスB550が実行するフローである。
なお、図12と同様の処理においては同じ符号を付与しており、以下では差異部分についてのみ説明する。ユーザは、サービス提供サービスB550のコミュニティ「community3」にログインしているものとする。また、企業ID管理テーブル650には図6に示すレコードが保存されているものとする。
なお、図12と同様の処理においては同じ符号を付与しており、以下では差異部分についてのみ説明する。ユーザは、サービス提供サービスB550のコミュニティ「community3」にログインしているものとする。また、企業ID管理テーブル650には図6に示すレコードが保存されているものとする。
ステップS1103で企業ID取得モジュール5532または5542は、ステップS1102で取得したloginOrgの値「community3」を指定して企業ID管理モジュール5531または5541から企業IDを取得するリクエストを行う。ステップS1201で企業ID管理モジュール5531または5541は、企業ID管理テーブル650を検索し、カラム「コミュニティ名」の値がリクエストで指定されたloginOrgの値「community3」と一致するレコードを検索する。
ステップS1202で企業ID管理モジュール5531または5541は、カラム「コミュニティ名」の値が「community3」と一致するレコードが存在するか否かを判断する。一致するレコードが存在すると判断された場合は、ステップS1203に遷移し、存在しないと判断された場合は、ステップS1301に遷移する。ステップS1203で企業ID管理モジュール5531または5541は、企業ID管理テーブル650から取得したレコードの企業IDを企業ID取得モジュール5532または5542に返却する。ステップS1301で企業ID管理モジュール5531または5541は、企業ID管理テーブル650を検索し、カラム「コミュニティ名」の値が空であるレコードを取得し、そのレコードの企業IDを企業ID取得モジュール5532または5542に返す。
クライアントPC200のブラウザがサービス提供サービスA500にアクセスする(図10のS1007)ことに起因して開始されるサービス提供サービスA500が実行するフローについては、その詳細な説明を省略する。ここでは、クライアントPC200のブラウザがサービス提供サービスA500にアクセスした際に、そのアクセスが未認証であった場合の動作についてのみ説明する。
ユーザは、サービス提供サービスB550のコミュニティ「community3」にしている。このとき、クライアントPC200のブラウザがサービス提供サービスA500にアクセスすると、上述した処理によりそのアクセスのURLパラメータには企業ID「1002AA」が含まれる。この企業IDとSSO設定されたサービス提供サービスB550のURLにリダイレクトする。
認証サービスB450は、認証情報に対応するアサーションを発行して、アクセスを認証サービスA400にリダイレクトする。認証サービスA400は、受け付けたリダイレクトに含まれるアサーションが妥当なものかを検証し、妥当であると判断した場合に、サービス提供サービスA500は、サービスを提供する。以上のフローが実行されることにより、サービス提供サービスB550のコミュニティ「community3」にログインしたユーザとサービス提供サービスA500の企業ID「1002AA」に紐づくユーザとのSSOが行われる。
以上のように、本実施形態によれば、事前に企業IDと紐付けられていないコミュニティにユーザがログインしている場合に、親テナントに紐付けられた企業IDでSAMLによるSSOを行う。すなわち、ユーザが事前に親テナントにログインしており、クライアントPC200のブラウザが親テナントの有効なセッションIDを有している場合に、親テナントでSSOが行われ、サービス提供サービスA500からサービスの提供を受けることができる。なお、ユーザが親テナントにログインしていない場合には、第2実施形態と同様に、企業ID入力画面が表示される。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
200 クライアントPC
500 サービス提供サービスA
550 サービス提供サービスB
500 サービス提供サービスA
550 サービス提供サービスB
Claims (9)
- 第1のサービス提供装置と第2のサービス提供装置とが連携して、クライアント端末を介してシングルサインオンによるサービスの提供を行うシステムであって、
前記第1のサービス提供装置は、
前記第1のサービス提供装置のテナントと、前記第2のサービス提供装置のテナントごとに作成されるコミュニティとを紐付けて前記第2のサービス提供装置に登録する登録手段を備え、
前記クライアント端末は、
前記第2のサービス提供装置によるサービスの提供を受けているユーザが前記第1のサービス提供装置によるサービスの提供を指示したことに応じて、前記クライアント端末のアクセス先の情報から前記コミュニティを示す情報を取得する第1の取得手段と、
前記コミュニティを示す情報を前記第2のサービス提供装置に送信し、当該コミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する第2の取得手段と、
取得した前記第1のサービス提供装置のテナントを示す情報を含むサービスの提供要求を、前記第1のサービス提供装置に行う要求手段と、を備える
ことを特徴とするシステム。 - 前記クライアント端末の第1の取得手段は、ブラウザのアクセスしているURLの所定の箇所から前記コミュニティを示す情報を取得する
ことを特徴とする請求項1に記載のシステム。 - 前記登録手段は、前記コミュニティが属する親テナントに対応する前記第1のサービス提供装置のテナントには、空文字を紐付けて登録し、
前記第1の取得手段は、前記ユーザが前記親テナントにログインして前記第2のサービス提供装置によるサービスの提供を受けている場合に、前記コミュニティを示す情報として空文字を取得し、
前記第2の取得手段は、前記空文字と紐付く前記第1のサービス提供装置のテナントを示す情報を取得する
ことを特徴とする請求項1または2に記載のシステム。 - 前記第1のサービス提供装置は、前記クライアント端末の要求手段から受け付けたサービスの提供要求に、前記テナントを示す情報が含まれていない場合に、前記テナントを示す情報を入力する画面を表示する表示手段を備え、
前記第1のサービス提供装置は、前記入力されたテナントを示す情報に基づき前記第2のサービス提供装置とシングルサインオンによる連携を実現する、
ことを特徴とする請求項1ないし3のいずれか1項に記載のシステム。 - 前記第2のサービス提供装置は、
前記クライアント端末の第2の取得手段から受け付けたコミュニティを示す情報に基づき、当該コミュニティと紐付く前記第1のサービス提供装置のテナントを検索する検索手段を備え、
前記検索手段は、前記コミュニティと紐付く前記第1のサービス提供装置のテナントが存在しない場合に、当該コミュニティが属する親テナントを示す情報を前記第2の取得手段に返却する
ことを特徴とする請求項1ないし4のいずれか1項に記載のシステム。 - 前記クライアント端末が備える各手段は、前記ユーザが前記第1のサービス提供装置によるサービスの提供を指示したことに応じて実行されるJavaScriptにより実現される、
ことを特徴とする請求項1ないし5のいずれか1項に記載のシステム。 - 第1のサービス提供装置と第2のサービス提供装置とが連携して、クライアント端末を介してシングルサインオンによるサービスの提供を行うシステムを制御する方法であって、
前記第1のサービス提供装置が、前記第1のサービス提供装置のテナントと、前記第2のサービス提供装置のテナントごとに作成されるコミュニティとを紐付けて前記第2のサービス提供装置に登録する工程と、
前記クライアント端末が、前記第2のサービス提供装置によるサービスの提供を受けているユーザが前記第1のサービス提供装置によるサービスの提供を指示したことに応じて、前記クライアント端末のアクセス先の情報から前記コミュニティを示す情報を取得する工程と、
前記クライアント端末が、取得した前記コミュニティを示す情報を前記第2のサービス提供装置に送信する工程と、
前記第2のサービス提供装置が、前記送信されたコミュニティを示す情報に基づき、当該コミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する工程と、
前記第2のサービス提供装置が、取得した前記テナントを示す情報を前記クライアント端末に送信する工程と、
前記クライアント端末が、送信された前記テナントを示す情報を含むサービスの提供要求を、前記第1のサービス提供装置に行う工程と、
前記第1のサービス提供装置が、前記テナントを示す情報に基づき、前記アクセスされたクライアント端末のユーザにシングルサインによるサービスの提供を行うサービス提供工程と、を有する
ことを特徴とする制御方法。 - 第1のサービス提供装置と第2のサービス提供装置とが連携したシングルサインオンによるサービスの提供を受けるクライアント端末であって、
前記第2のサービス提供装置によるサービスの提供を受けているユーザが前記第1のサービス提供装置によるサービスの提供を指示したことに応じて、前記クライアント端末のアクセス先の情報から前記第2のサービス提供装置のテナントごとに作成されるコミュニティを示す情報を取得する第1の取得手段と、
前記コミュニティを示す情報を前記第2のサービス提供装置に送信し、当該コミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する第2の取得手段と、
取得した前記第1のサービス提供装置のテナントを示す情報を含むサービスの提供要求を、前記第1のサービス提供装置に行う要求手段と、を備える
ことを特徴とするクライアント端末。 - 第1のサービス提供装置と第2のサービス提供装置とが連携したシングルサインオンによるサービスの提供を受けるクライアント端末を制御するプログラムであって、
前記プログラムは、前記第2のサービス提供装置によるサービスの提供を受けているユーザが前記第1のサービス提供装置によるサービスの提供を指示したことに応じて前記クライアント端末に送信され、
前記クライアント端末を、
前記クライアント端末のアクセス先の情報から前記第2のサービス提供装置のテナントごとに作成されるコミュニティを示す情報を取得する第1の取得手段と、
前記コミュニティを示す情報を前記第2のサービス提供装置に送信し、当該コミュニティに紐付く前記第1のサービス提供装置のテナントを示す情報を取得する第2の取得手段と、
取得した前記第1のサービス提供装置のテナントを示す情報を含むサービスの提供要求を、前記第1のサービス提供装置に行う要求手段として機能させる
ことを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016012782A JP2017134535A (ja) | 2016-01-26 | 2016-01-26 | システム、及びシステムの制御方法 |
US15/414,393 US10623396B2 (en) | 2016-01-26 | 2017-01-24 | System and method for controlling system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016012782A JP2017134535A (ja) | 2016-01-26 | 2016-01-26 | システム、及びシステムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017134535A true JP2017134535A (ja) | 2017-08-03 |
Family
ID=59359895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016012782A Pending JP2017134535A (ja) | 2016-01-26 | 2016-01-26 | システム、及びシステムの制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10623396B2 (ja) |
JP (1) | JP2017134535A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11606361B2 (en) * | 2019-07-19 | 2023-03-14 | Ricoh Company, Ltd. | Cloud system, information processing system, and user registration method |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636941B2 (en) * | 2004-03-10 | 2009-12-22 | Microsoft Corporation | Cross-domain authentication |
JP4573559B2 (ja) | 2004-04-07 | 2010-11-04 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 分散認証システム、負荷分散装置及び認証サーバ、並びに負荷分散プログラム及び認証プログラム |
EP2425341B1 (en) * | 2009-05-01 | 2018-07-11 | Citrix Systems, Inc. | Systems and methods for establishing a cloud bridge between virtual storage resources |
JP5061167B2 (ja) * | 2009-09-08 | 2012-10-31 | 株式会社野村総合研究所 | クラウドコンピューティングシステム |
US8583587B2 (en) * | 2010-03-08 | 2013-11-12 | Salesforce.Com, Inc. | System, method and computer program product for performing one or more actions utilizing a uniform resource locator |
US9578014B2 (en) * | 2011-09-29 | 2017-02-21 | Oracle International Corporation | Service profile-specific token attributes and resource server token attribute overriding |
US9003141B2 (en) * | 2011-11-14 | 2015-04-07 | Ca, Inc. | Enhanced software application platform |
JP5921469B2 (ja) * | 2013-03-11 | 2016-05-24 | 株式会社東芝 | 情報処理装置、クラウドプラットフォーム、情報処理方法およびそのプログラム |
JP2015059984A (ja) * | 2013-09-17 | 2015-03-30 | 株式会社日立システムズ | クラウドコンピューティングでの情報秘匿方法 |
WO2015089171A1 (en) * | 2013-12-11 | 2015-06-18 | Intralinks, Inc. | Customizable secure data exchange environment |
US9613190B2 (en) * | 2014-04-23 | 2017-04-04 | Intralinks, Inc. | Systems and methods of secure data exchange |
US9721117B2 (en) * | 2014-09-19 | 2017-08-01 | Oracle International Corporation | Shared identity management (IDM) integration in a multi-tenant computing environment |
-
2016
- 2016-01-26 JP JP2016012782A patent/JP2017134535A/ja active Pending
-
2017
- 2017-01-24 US US15/414,393 patent/US10623396B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170214685A1 (en) | 2017-07-27 |
US10623396B2 (en) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11968209B2 (en) | Hybrid authentication systems and methods | |
JP5744656B2 (ja) | シングルサインオンを提供するシステムおよびその制御方法、サービス提供装置、中継装置、並びにプログラム | |
US9401910B2 (en) | Establishing and maintaining an improved single sign-on (SSO) facility | |
JP5289480B2 (ja) | 情報処理システム、情報処理装置の制御方法、およびそのプログラム。 | |
JP5988699B2 (ja) | 連携システム、その連携方法、情報処理システム、およびそのプログラム。 | |
JP2017107342A (ja) | 認証連携システム及び認証連携方法、認可サーバー、アプリケーションサーバー及びプログラム | |
JP5342020B2 (ja) | グループ定義管理システム | |
JP2002334056A (ja) | ログイン代行システム及びログイン代行方法 | |
US20170026361A1 (en) | Federated Single Sign-On to Hadoop Cluster | |
JP2016115260A (ja) | 権限移譲システム、権限移譲システムに用いられる認可サーバー、リソースサーバー、クライアント、媒介装置、権限移譲方法およびプログラム | |
JP5732732B2 (ja) | 認証サーバ装置、プログラム、および方法 | |
US10735399B2 (en) | System, service providing apparatus, control method for system, and storage medium | |
JP2017134535A (ja) | システム、及びシステムの制御方法 | |
JP2005293161A (ja) | 認証システム、認証方法及びコンピュータプログラム | |
JP2017004296A (ja) | 認証システムおよび認証方法 | |
Lakshmiraghavan et al. | Building RESTful Services |