JP2016057737A - サービス提供システム及びこれに用いる管理サーバー及び管理方法 - Google Patents
サービス提供システム及びこれに用いる管理サーバー及び管理方法 Download PDFInfo
- Publication number
- JP2016057737A JP2016057737A JP2014182056A JP2014182056A JP2016057737A JP 2016057737 A JP2016057737 A JP 2016057737A JP 2014182056 A JP2014182056 A JP 2014182056A JP 2014182056 A JP2014182056 A JP 2014182056A JP 2016057737 A JP2016057737 A JP 2016057737A
- Authority
- JP
- Japan
- Prior art keywords
- account
- management server
- tenant
- information
- service
- 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
- 238000007726 management method Methods 0.000 title claims description 125
- 230000004044 response Effects 0.000 claims description 18
- 230000008520 organization Effects 0.000 abstract description 5
- 238000000034 method Methods 0.000 description 43
- 230000008569 process Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 24
- 238000013475 authorization Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 10
- 238000013523 data management Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】 クラウドサービスで連携元サービスのアカウントが初めて連携を行う時、両サービス共に複数組織のユーザーに利用されていると、連携先のどの組織にアカウントを作成してよいか判別出来ない。
【解決手段】 第一サービスシステムで、認証したユーザーのテナント情報を取得し、第二サービスシステムにクライアント登録を要求し、第二サービスシステムで、該要求に従うクライアント登録と、認証したユーザーのグループ情報とを含む登録結果を第一サービスシステムに送り、第一サービスシステムで、該グループ情報と、認証したユーザーのテナント情報を対応付けて記憶し、第二サービスシステムで、登録クライアントからの認証要求に応じて認証したユーザーのグループ情報を含むID情報を第一サービスシステムに送り、第一サービスシステムで、該ID情報が示すアカウントに対応するアカウントの存在を判定し、存在しない場合に新たにアカウントを生成する。
【選択図】 図1
【解決手段】 第一サービスシステムで、認証したユーザーのテナント情報を取得し、第二サービスシステムにクライアント登録を要求し、第二サービスシステムで、該要求に従うクライアント登録と、認証したユーザーのグループ情報とを含む登録結果を第一サービスシステムに送り、第一サービスシステムで、該グループ情報と、認証したユーザーのテナント情報を対応付けて記憶し、第二サービスシステムで、登録クライアントからの認証要求に応じて認証したユーザーのグループ情報を含むID情報を第一サービスシステムに送り、第一サービスシステムで、該ID情報が示すアカウントに対応するアカウントの存在を判定し、存在しない場合に新たにアカウントを生成する。
【選択図】 図1
Description
本発明は、複数のサービスが連携しており、連携元サービスにはアカウントがあるが、連携先サービスには連携対応するアカウントがない、という場合に、自動で連携先サービスに連携用アカウントを作成し、サービス連携を提供するシステム及び方法に関する。
近年、クラウドサービスと呼ばれるインターネットを介してソフトウェアの機能を提供するシステムが注目を集めている。最近では、個々のクラウドサービスが連携して、新しいシステムを提供するケースが増えている。また、クラウドサービス同士だけではなく、企業内に設置された端末、例えばPC、タブレットや画像形成装置が、インターネット上のクラウドサービスと連携し、ユーザーに機能を提供するケースも増えている。
ここで、企業内端末やクラウドサービスを利用する際には、不正利用の防止やユーザー識別のために、通常、ユーザー認証が必要となる。そのため、ユーザーが企業内端末とクラウドサービスを連携させる場合や、クラウドサービス同士を連携させる場合には、複数回認証情報の入力を求められ、利便性にかけるという課題がある。
この課題を解決する手段として、複数の認証システム間で連携することで、1度の認証の結果によって複数の認証を受けることができるシングルサインオン技術の利用が広まっている。例えば、Security Assertion Markup Language(SAML)プロトコルや、OpenID Foundationが規定しているOpenID Connectといった技術(非特許文献1)が知られている。
また、ユーザーの認証情報によって連携するのではなく、連携先のシステムのアクセス権に限り、連携元のシステムに対してユーザーのアクセス権限を委譲してサービス連携を行う、認可連携という方式も利用されている。認可連携としては、OAuthプロトコルや、前述のOpenID Connectといった技術が知られている。
ここで、認証連携、認可連携のどちらの場合でも、連携を行うためには連携元サービスと連携先サービスの両方に連携用アカウントが必要となる。そのため、連携元のユーザーが増える度に、連携先のクラウドサービス側にアカウントを作成する必要があり、管理者の負担が大きくなるという課題がある。
この課題を解決する手段として、ユーザーが初めてサービスを利用する時に、自動でアカウントを作成し、連携を行うJust−In−Timeプロビジョニング(以下「JITプロビジョニング」)という技術が知られている。このJITプロビジョニングの実現方法として、特許文献1の方法が提案されている。これら従来技術では、前もって管理者が連携元サービスの属性と連携先サービスの属性との対応付けを行っておき、JITプロビジョニング時にはこの属性対応付け情報に従い、連携先サービスにアカウントを作成する。
"OpenID Connect Core 1.0"、N.Sakimura、J.Bradley、M.Jones、B.de Medeiros、C.Mortimore、2014年2月25日、<URL http://openid.net/specs/openid−connect−core−1_0.html>
クラウドサービスでは、共有のサーバー上に展開した同一のWebアプリケーションを複数の企業や組織に提供する「マルチテナントサービス」という形態をとっている。ここで「テナント」とは、従来の専用サーバーを用いてサービスを提供していた企業や組織の単位を意味する。また、クラウドサービスと連携する企業内端末も、複数のグループや組織のユーザーが利用する場合がある。ここで、連携元の企業内端末が複数組織によって利用されており、連携先のクラウドサービスがマルチテナントサービスであった場合、連携先のクラウドサービスがユーザーをどのテナントに作成すればよいか判断出来ない、という課題がある。もしユーザーがアクセス時にアカウントを作成するテナントを指定出来ると、連携先サービスの好きなテナントにアカウントを作成出来てしまうため、セキュリティ的に問題となる。また、管理者が企業内端末とクラウドサービスとの連携を設定する際に、企業内の組織とクラウドサービスのテナントとの対応付けを行っておく場合にも、設定が誤っていた場合には関係の無いテナントにアカウントが作成されてしまう。この場合にも、管理者が好きなテナントにアカウントを作成する設定が行えてしまうため、セキュリティ的に問題となる。
本願発明は、上述した課題を解決するJITプロビジョニングシステムを提供することを目的とする。
本願発明は、上述した課題を解決するJITプロビジョニングシステムを提供することを目的とする。
上記課題を解決するため、本発明は、第一の管理サーバーを備える第一のサービスシステムと、第二の管理サーバーを備える第二のサービスシステムとが互いに連携してサービスを提供するシステムであって、第一管理サーバーは、ユーザー認証を行ない、認証したユーザーが所属するテナントを示すテナント情報を取得する手段と、第二サービスシステムに対してクライアント登録要求を行なう手段とを備え、第二管理サーバーは、前記クライアント登録要求に従うクライアント登録と、前記認証したユーザーが所属するグループを示すグループ情報とを含む登録結果を第一管理サーバーに送る手段を備え、第一管理サーバーは、前記グループ情報を受け取り、受け取ったグループ情報と、前記認証したユーザーのテナント情報を対応付けて記憶する手段を備え、第二管理サーバーは、前記登録したクライアントからの認証要求に応じて認証したユーザーのグループ情報を含むID情報を第一管理サーバーに送る手段を備え、第一管理サーバーは、前記ID情報を受け取り、受け取ったID情報が示すアカウントに対応するアカウントの存在を判定する手段と、前記判定する手段により当該アカウントが存在しないと判定された場合に、新たにアカウントを生成する手段とを備えるサービス提供システムを提供する。
本発明により、管理者のログイン情報から自動で連携元の組織と連携先サービスのテナントとの紐付けが行われるため、連携先サービスがJITプロビジョニング時に、セキュアに連携用のアカウントを作成するテナントを判定できる。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
<実施例1>
インターネット上で、様々なサービス提供者が様々なオンラインサービスを提供している。ここで、複数のサービス提供者が運営している複数のオンラインサービスを組み合わせ、1つのソリューションを実現するという手法が存在する。この手法はマッシュアップと呼ばれ、表向きはあたかも1つのWebサイトあるいはWebサービスとして見える。しかしながら、マッシュアップサービスは実際にはバックエンドで、複数のオンラインサービスが連携・連動して、必要な機能を組み合わせてソリューションを実現する。また、企業内端末がインターネット上のオンラインサービスと連携して、ユーザーに機能を提供する形態も広がっている。なお、ここで言うオンラインサービスとは、Webサイト、Webアプリケーション、Webサービスなどが提供する機能群のことである。Webサイト、Webアプリケーション、Webサービスなどは、サーバーコンピューターで実行されるソフトウェアである。
インターネット上で、様々なサービス提供者が様々なオンラインサービスを提供している。ここで、複数のサービス提供者が運営している複数のオンラインサービスを組み合わせ、1つのソリューションを実現するという手法が存在する。この手法はマッシュアップと呼ばれ、表向きはあたかも1つのWebサイトあるいはWebサービスとして見える。しかしながら、マッシュアップサービスは実際にはバックエンドで、複数のオンラインサービスが連携・連動して、必要な機能を組み合わせてソリューションを実現する。また、企業内端末がインターネット上のオンラインサービスと連携して、ユーザーに機能を提供する形態も広がっている。なお、ここで言うオンラインサービスとは、Webサイト、Webアプリケーション、Webサービスなどが提供する機能群のことである。Webサイト、Webアプリケーション、Webサービスなどは、サーバーコンピューターで実行されるソフトウェアである。
ここで、インターネット上のサービスと連携を行うための手法として、OpenID Conncetという技術がある。OpenID Conncetを利用することで、複数サービス間でシングルサインオンによる連携や、認可連携が実現できる。
図1は、各種オンラインサービスが存在するサービス提供システムのネットワーク構成を示す図である。インターネット100は、外部から接続可能なパブリックなネットワークである。イントラネット101は、外部から接続不可能なプライベートなネットワーク(例えばLAN)である。
RPアクセス管理サーバー102は、ユーザーの認証情報および認可情報を管理するサービスシステムである。OpenID Connectにおいては、Relying Party(以下「RP」)と呼ばれる。リソースサーバー103は、印刷サービスや帳票サービスといったリソースサービスを提供しているオンラインサービスシステムである。リソースサーバー103は、インターネット100を介したクライアント端末106あるいは不図示の外部サービスシステムからの要求に応じて、リソースサービスを提供する。なおリソースサーバー103に設置されるリソースサービスは1つでもよく、複数でもよい。
ここで、RPアクセス管理サーバー102とリソースサーバー103が連携し、RPサービスシステム104を提供する。なお、RPアクセス管理サーバー102とリソースサーバー103は同一のサーバー上に構成されていてもよいし、同一のLAN上に構成されてもよいし、それぞれ個別のLAN上に構成されてもよい。また、実施例1において各サーバーは1台ずつ設置されているが、複数台で構成されていてもよい。
イントラネット105は、外部から接続不可能なプライベートなネットワーク(例えばLAN)である。クライアント端末106は、PCや、スマートフォンやタブレットと呼ばれる携帯端末や、画像形成装置であり、Webブラウザーがインストールされている。
OPアクセス管理サーバー107は、企業内ユーザーの認証情報および認可情報を管理するサービスシステムである。OpenID Conncetにおいては、OpenID Provider(以下「OP」)と呼ばれる。なお、端末106とOPアクセス管理サーバー107は同一のサーバー上に構成されてもよいし、同一のLAN上に構成されてもよい。また、OPアクセス管理サーバー107は、RPサービスシステム104に対して、OPサービスシステム108を提供する。なお、OPサービスシステム108は、不図示のリソースサーバーを含んでもよく、端末106を含んでもよい。また、実施例1において各サーバーは1台ずつ設置されているが、複数台で構成されてもよい。
図2は、図1に示した各種サービスが配置されているサーバーの論理構成を示す図である。ユーザーインターフェース201は、ディスプレイ、キーボード、マウスなどによる、情報の入出力を行うハードウェアである。これらのハードウェアを備えないコンピューターは、リモートデスクトップなどにより、他のコンピューターから接続・操作することも可能である。ネットワークインターフェース202は、LANなどのネットワークに接続して、他のコンピューターやネットワーク機器との通信を行うハードウェアである。
CPU203は、ROM204、RAM205、二次記憶装置206などから読み込んだプログラムを実行し、各種サービスを実現する。ROM204は、組込済みプログラムおよびデータが記録されている記憶装置である。RAM205は、一時メモリ領域である。二次記憶装置206は、HDDに代表されるような外部記憶装置である。各部は入出力インターフェース207を介して接続されている。
図3は、RPアクセス管理サーバー102およびOPアクセス管理サーバー107の内部構造を示すブロック図である。図3Aに示すRPアクセス管理サーバー102において、要求処理部300は、RPアクセス管理サーバー102がインターネット100及びイントラネット101を経由して受信したRPアクセス管理サーバーへの要求を処理する処理部である。また、要求処理部300は、アクセス制御部301から返される応答データを呼び出し元に返す。アクセス制御部301は、データ管理部302から取得するデータに基づき、各サービスシステムからの認証および認可要求を処理する処理部である。また、アクセス制御部301はJITプロビジョニングのためにデータ管理部302に対して、アカウント追加を行う。データ管理部302は、ユーザーアカウントのデータや、認可情報を管理する。
図3Bに示すOPアクセス管理サーバー107において、要求処理部310は、OPアクセス管理サーバーがイントラネット105を経由して受診したOPアクセス管理サーバーへの要求を処理する処理部である。また、要求処理部310は、アクセス制御部311から返される応答データを呼び出し元に返す。アクセス制御部311は、データ管理部312から取得するデータに基づき、各サービスシステムからの認証および認可要求を処理する処理部である。データ管理部312は、ユーザーアカウントのデータや、認可情報を管理する。
図4は、リソースサーバー103の内部構造を示すブロック図である。要求処理部400は、インターネット100を経由してリソースサービスへの要求を処理する処理部である。例えばリソースサービスが帳票サービスの場合、帳票データ生成要求及び帳票データ取得要求を受信する。また、要求処理部400は、機能制御部401から返される処理結果を呼び出し元に返す。機能制御部401は、要求処理部400が受信した要求に応じて必要な処理を行い、応答データを呼び出し元に返す。また、機能制御部401はイントラネット101経由でOPアクセス管理サーバー102に対して認証要求を送信し、認証結果を受信する。処理部402は、機能制御部401からの要求を受信して、要求に応じた処理を行い、機能制御部401に返す。例えば帳票サービスの場合、帳票データ生成要求を受信して、帳票データを生成する。
図5は、OPサービスシステム108とRPサービスシステム104を連携させるために、OPアクセス管理サーバー107にRPアクセス管理サーバー102の情報を登録する登録処理(以下「クライアント登録処理」)のフローである。なお本登録フロー実施時には、OPサービスシステムおよびRPサービスシステムの両方にアカウントが用意されているものとする。
ステップS501において、端末106上のWebブラウザー(不図示)を用いて、RPアクセス管理サーバー102にアクセスを行う。アクセスされたRPアクセス管理サーバー102は、ステップS502において認証処理を行う。ここでRPアクセス管理サーバー102は、RPアクセス管理サーバー102のアカウントテーブルから、認証したアカウントの所属テナント情報を取得する。
表1AにRPアクセス管理サーバー102が管理しているアカウント情報の例を示す。本実施例では、ユーザーID「admin@1002AA」で認証したものとする。この場合RPアクセス管理サーバー102は、登録実行者の所属テナントとして「1002AA」を取得する。なお、データ未格納のカラムについては後述する。
ステップS503において、RPアクセス管理サーバー102は、後述のOP登録画面600から、登録先OP情報を受け付ける。ここで登録先OP情報には、必須情報としてOPアクセス管理サーバーのRP登録エンドポイントのURIが含まれる。また、任意情報としてOP名と認証エンドポイントURIが含まれる。本実施例では、RP登録エンドポイントURIとして「https://localhost/reg」、OP名として「OP1」、認証エンドポイントURIとして「https://localhost/auth」を指定したものとする。
ステップS504において、RPアクセス管理サーバー102は、自身のRP情報からなるRPメタデータを用意し、RP登録エンドポイントURIへのリダイレクト指示と共に、端末106にクライアント登録要求を返す。このRPメタデータには、RPアクセス管理サーバー102がOpenID Connect連携時のレスポンスを受け取るURIである、リダイレクトURIを含んでいる。本実施例では、リダイレクトURI「https://001.xx/res」を指定したものとする。
ステップS505において、端末106上のWebブラウザーは、RPアクセス管理サーバー102から受け取ったRPメタデータと共に、クライアント登録要求をリダイレクトする。ステップS506において、OPアクセス管理サーバー107は認証処理を行う。ここでOPアクセス管理サーバー107は、OPアカウント管理サーバー107のアカウントテーブルから、認証したアカウントの所属組織情報(以下、「グループ情報」)を取得する。
表2にOPアクセス管理サーバー107が管理しているアカウントの例を示す。本実施例では、ユーザーID「admin2」で認証したものとする。この場合OPアクセス管理サーバー107は、グループ情報として「グループB」を取得する。
ステップS507において、OPアクセス管理サーバー107はクライアント登録を行い、登録結果をステップS506で受け取ったクライアント登録要求のレスポンスとして端末106に返す。OPアクセス管理サーバー107は、クライアント登録時に、指定されたリダイレクトURIが登録済みかを確認し、未登録の場合にはクライアントIDを発行し、OPアクセス管理サーバー107のRPテーブルに登録を行う。さらに、X.509標準仕様の秘密鍵と公開鍵の鍵ペアを生成して格納する。その上でOPアクセス管理サーバー107は、クライアント登録結果として登録情報をクライアント登録要求のレスポンスとして返す。具体的には、発行したクライアントIDと、X.509形式の証明書から抽出した公開鍵と、登録したリダイレクトURIと、ステップS506で取得したグループ情報をレスポンスとして返す。なお受け取ったリダイレクトURIが登録済みだった場合には、新規登録を行わずに登録済みのクライアント情報を利用してもよく、未登録の場合と同様に新規登録を行ってもよい。
表3にOPアクセス管理サーバー107のRPテーブルに登録する情報の例を示す。本実施例では、指定されたリダイレクトURI「https://001.xx/res」が登録済みであるため、クライアントの新規登録は行わず、登録済みのクライアントID「ID001」を利用するものとする。この場合、OPアクセス管理サーバー107はクライアントID「ID001」と、リダイレクトURI「https://001.xx/res」と、公開鍵「001.cer」と、グループ情報「グループB」をレスポンスとして返す。
ステップS508において、端末106上のWebブラウザーは、RPアクセス管理サーバー102から受け取ったレスポンスを、RPアクセス管理サーバー102に対してリダイレクトする。ステップS509において、RPアクセス管理サーバー102は、受け取ったクライアント登録結果を元に、RPアクセス管理サーバー102のOPテーブルにOP情報を登録する。その際、OPへの認証要求を行う認証エンドポイントURIをOPIDとして登録する。認証エンドポイントURIは、ステップS503で受け付けてもよく、端末106のブラウザーを介してOPアクセス管理サーバーのホストに問い合わせを行って取得してもよい。さらに、受け取ったクライアント登録結果に含まれるグループ情報と、ステップS502で取得した取得したテナント情報を、RPアクセス管理サーバー102のテナントマッピングテーブルに登録する。
表4にRPアクセス管理サーバー102のOPテーブルの例を示し、表5Aにテナントマッピングテーブルに登録する情報の例を示す。本実施例では、認証エンドポイントURIが「https://localhost/auth」、OP名が「OP1」、クライアントIDが「ID001」、リダイレクトURIが「https://001.xx/res」となる。RPアクセス管理サーバー102のOPテーブルにはこのOPが登録済みであるため、新規登録は行わない。一方でクライアントID「ID001」、グループ情報「グループB」、テナント情報「1002AA」はRPアクセス管理サーバー102のテナントマッピングテーブルに登録されていないため、この情報を新規登録する。
本実施例におけるクライアント追加後のテナントマッピングテーブルの情報の例を表5Bに示す。
図6は本実施例におけるOP登録画面の例を示す図である。OP登録画面600は、OP名入力部601、RP登録エンドポイントURI入力部602、認証エンドポイントURI入力部603、登録ボタン604、登録キャンセルボタン605から構成される。OP名入力部601および認証エンドポイントURI入力部603は必須ではなく、項目が存在しなくてもよいし、空を指定してもよい。
図7は、クライアント登録処理が完了しているOPとRP間で、JITプロビジョニングを行う際のフローを示す図である。ステップS701において、端末106上のWebブラウザー(不図示)を用いて、RPアクセス管理サーバー102にアクセスを行う。アクセスされたRPアクセス管理サーバー102は、ステップS702において、後述のOP選択画面800を表示し、認証要求を行うOPの選択を行う。OP選択画面では、前述のRPアクセス管理サーバー102のOPテーブルに登録されているOPから、認証先のOPが選択される。
ステップS703において、RPアクセス管理サーバーは、選択されたOPのOPIDが示す認証エンドポイントURIへのリダイレクト指示と共に、端末106に認証要求を送る。認証要求には、登録されているクライアントIDと、登録されているリダイレクトURIと、OpenID Connectを示すスコープ「OpenID」が含まれる。本実施例では、OPID「https://localhost/auth」、OP名「OP1」を選択したものとする。この場合、認証エンドポイント「https://localhost/auth」に対して、クライアントID「ID001」、リダイレクトURI「https://001.xx/res」、スコープ「OpenID」を含む認証要求を送る。
ステップS704において、端末106上のWebブラウザーは、RPアクセス管理サーバー102から受け取った認証要求をリダイレクトする。ステップS705において、OPアクセス管理サーバー107は、認証要求のパラメーターを確認した上で、後述の認証画面810を表示してユーザー認証を行う。その上で、後述の認可確認画面820を表示してRPサービスへのユーザー情報提供の認可を行う。本実施例では、認証要求で受け取ったクライアントID「ID001」、リダイレクトURI「https://001.xx/res」であるクライアントが、OPアクセス管理サーバー107のRPテーブルに登録されているため、認証を行う。その上で、「user1」で認証し、認可を行ったものとする。
ステップS706において、OPアクセス管理サーバー107はIDトークン(ID情報)を生成し、X.509形式の証明書から抽出した秘密鍵を利用して署名を行う。その上でOPアクセス管理サーバー107は、リダイレクトURIへのリダイレクト指示と共に、ステップS705で受けた認証要求のレスポンスとして、端末106に作成したIDトークンを送る。このIDトークンは、発行者情報iss、Subject識別子sub、IDトークンの対象を示すaud、IDトークン有効期限exp、IDトークン発行時刻iat、グループ情報からなる。なおSubject識別子subには、ステップS706で認証したアカウントのUUIDが設定される。
表7にOPアクセス管理サーバー107のIDトークンテーブルに登録する情報の例を示す。本実施例では、subには「user1」のUUIDである「00000003」を設定したIDトークンが発行され、リダイレクトURI「https://001.xx/res」にIDトークンが返される。
ステップS707において、端末106上のWebブラウザーは、OPアクセス管理サーバー107から受け取ったレスポンスを、指定されたリダイレクトURIに対してリダイレクトする。ステップS708において、RPアクセス管理サーバー102は、RPアクセス管理サーバー102のOPテーブルに登録されている公開鍵を利用し、IDトークンの検証を行う。
ステップS709において、RPアクセス管理サーバー102は、IDトークンを発行したOPのアカウントに対応するアカウントが登録されているかどうかを確認する。まずRPアクセス管理サーバー102のテナントマッピングテーブルから、IDトークンのaudと一致するクライアントIDかつ、IDトークンのグループと一致するOPグループとなる情報を検索し、RPテナントIDを取得する。その上で、RPアクセス管理サーバー102のアカウントテーブルから、取得したRPテナントIDに一致するテナント、かつ、IDトークンのsubと一致するOP側UUIDとなるアカウントが存在するかどうかを確認する。もし対応するアカウントが登録されていた場合には、ステップS710に進み、そのアカウントが実行しているものとしてRPサービスを提供する。もしアカウントがなかった場合には、ステップS711に進む。
本実施例では、RPアクセス管理サーバー102のテナントマッピングテーブルから、aud「ID001」、グループ「グループB」と一致するRPテナントID「1002AA」が取得される。そしてRPアクセス管理サーバー102のアカウントテーブルから、テナント「1002AA」、OP側UUID「00000003」と一致するアカウントは存在しないと判断され、ステップS711へと進む。
ステップS711において、RPアクセス管理サーバー102は、IDトークンを発行したOPのアカウントに対応するアカウントを作成する。この場合、ステップS710で取得したテナントに対し、システムが自動で決定したユーザーIDとパスワードでアカウントを作成する。その上で、RPアクセス管理サーバー102のアカウントテーブルのOP側UUIDに、IDトークンのsubの値を保存する。その後、ステップS710に進み、作成したアカウントが実行しているものとしてRPサービスを提供する。
本実施例では、テナント「1002AA」にユーザーID「auto1@1002AA」、パスワード「12345」のアカウントを作成し、OP側UUIDに「00000003」を登録する。アカウント追加後のアカウントテーブルの例を表1Bに示す。
図8は、本実施例におけるJITプロビジョニングを行う際に利用する画面を示す図である。図8Aに示すOP選択画面800は、OP選択部801、選択ボタン802から構成される。OP選択部801には、RPアクセス管理サーバー102のOPテーブルに登録されているOP一覧が表示され、1つのOPが選択される。図8Bに示す認証画面810は、ユーザーID入力部811と、パスワード入力部812、認証ボタン813、認証キャンセルボタン814から構成される。図8Cに示す認可確認画面820は、認可内容表示部821と、認可ボタン822、認可キャンセルボタン823から構成される。
上に記載した実施例1のサービス連携方法により、管理者の認証情報からOPのグループとRPのテナントが自動で対応付けられ、JITプロビジョニング時にRPのアカウントを作成するテナントが自動で決定される。これにより、複数組織のユーザーが利用するOPとマルチテナントサービスのRPとでJITプロビジョニングを行う際に、セキュアにRPの所属テナントを決定できる。
<実施例2>
次に、RPにおいてテナント単位でアカウント数の上限が管理されている場合の処理について説明する。クラウドサービスにおいて、アカウント数で契約を行い、サービス提供を行う形態が知られている。このような形態の場合、JITプロビジョニングによって自動でアカウントを作成しようとした際に、アカウント数が上限に達していてアカウントが作成できない、という場合が考えられる。実施例2では、テナント単位でアカウント数の管理をしている場合のJITプロビジョニングを実現する方式について説明する。
次に、RPにおいてテナント単位でアカウント数の上限が管理されている場合の処理について説明する。クラウドサービスにおいて、アカウント数で契約を行い、サービス提供を行う形態が知られている。このような形態の場合、JITプロビジョニングによって自動でアカウントを作成しようとした際に、アカウント数が上限に達していてアカウントが作成できない、という場合が考えられる。実施例2では、テナント単位でアカウント数の管理をしている場合のJITプロビジョニングを実現する方式について説明する。
図9は、アカウント数の上限管理を行っているRPにおいて、JITプロビジョニングを行う際のフローを示す図である。ステップS701からステップS710までは、図7で説明したフローと同じである。
ステップS901において、RPアクセス管理サーバー102は、RPアクセス管理サーバー102のアカウント数管理テーブルから、対象テナントの現在の利用アカウント数を確認する。もし利用アカウント数が上限未満だったならば、ステップS711に進み、アカウントを作成してOP側UUIDを設定する。もし利用アカウント数が上限に達していたならば、ステップS902に進む。
表8にRPアクセス管理サーバー102のアカウント数テーブルに登録する情報の例を示す。本実施例では、OPアクセス管理サーバー102のアカウントテーブルに登録されている「user2」で認証を行い、IDトークンを発行したものとする。ステップS709において、RPテナントが「1002AA」と判断され、RPアクセス管理サーバー102のアカウント数テーブルから、「1002AA」は契約アカウント数「10」、利用アカウント数「10」と判定される。アカウント数が上限に達していたため、ステップS902に進む。
ステップS902において、RPアクセス管理サーバー102は、アカウント作成の判定を行う。本実施例では、アカウント数上限時の対応について、RPアクセス管理サーバー102上で事前に設定を行い、テナント単位で管理する。アカウント数が上限に達していた場合の対応としては、利用されていないアカウントを削除または無効化して新アカウントを作成する、新アカウントを作成せずに処理を失敗させる、といった内容が選択できる。もし既存のアカウントを操作して新アカウントを作成する場合には、ステップS903に進む。もし新アカウントを作成しない場合には、ステップS904に進む。
なお、アカウントを削除または無効化する場合には、アカウントが利用されていないと判断する期間を合わせて設定できる。アカウントが利用されていないかどうかの判断は、最後にログインした時刻が設定された期間より前か否かで判断する。もしこの期間が設定されていた場合には、対象テナントの各ユーザーが最後にログインした時刻から、削除または無効化するアカウントが存在するかどうかを確認する。削除または無効化するアカウントが存在しなかった場合には、アカウントが作成出来ないので、ステップS904に進む。
表9にアカウント数上限管理時のテナントマッピングテーブル、表10Aにアカウント数上限管理時のアカウントテーブルに登録する情報の例を示す。本実施例では、アカウント数上限管理時のテナントマッピングテーブルにRPテナントID「1002AA」は上限時「無効化」、期間「30日」が設定されているので、アカウント無効化と判定される。続いてアカウント上限時のアカウントテーブルから、テナント「1002AA」で最終ログイン日時が30日以上前のアカウントが存在するかどうか確認する。現在日時が「2014/5/1 0:00」とすると、アカウント「auto1@1002AA」と「auto2@1002AA」が、最終ログイン日時が30日以上前となっている。
ステップS903において、RPアクセス管理サーバー102は、ステップS902で判定した内容に従ってアカウントの操作を行う。アカウント数上限管理時のアカウントテーブルから、対象となるアカウントを判定し、削除または無効化を行う。その後、ステップS711において、アカウントを作成してOP側UUIDの値を設定する。
本実施例では、テナント「1002AA」で最終ログイン日時が30日より前のアカウントの内、最終ログイン日時が最も古いアカウントである「auto2@1002AA」が無効化対象アカウントとなる。RPアクセス管理サーバー102は「auto2@1002AA」を無効にし、アカウントテーブルのアカウント状態を無効にする。表10Bにアカウント無効化後のアカウントテーブルに登録する情報の例を示す。
ステップS904において、RPアクセス管理サーバー102は、アカウント数が上限に達していたためアカウントが作成出来ず、サービスが利用できないといったエラーを生成する。
実施例2の方法により、アカウント数が管理されているクラウドサービスにおいて、ユーザーが手動で処理することなく、利用していないアカウントをなくし、利用できるアカウント数を最適化できる。
<実施例3>
次に、OPにおいてユーザーの所属グループが変更になった場合の処理について説明する。例えば、OPが企業のイントラネット上にあり、組織単位でアカウントを管理している場合には、アカウントの所属グループが変更されることが考えられる。もしOPで認証したアカウントの所属グループが変更になったならば、RP側のアカウントが所属するテナントも、OPの新グループに対応するテナントに変更される。このような場合に、JITプロビジョニングでは、OPの新グループに対応するテナントにアカウントがないと判断され、新たなアカウントが生成される。そのため、古いグループに対応するテナントにアカウントが残ったままになってしまう。実施例3では、アカウントのOP所属グループが変更になった場合のJITプロビジョニングを実現する方式について説明する。
次に、OPにおいてユーザーの所属グループが変更になった場合の処理について説明する。例えば、OPが企業のイントラネット上にあり、組織単位でアカウントを管理している場合には、アカウントの所属グループが変更されることが考えられる。もしOPで認証したアカウントの所属グループが変更になったならば、RP側のアカウントが所属するテナントも、OPの新グループに対応するテナントに変更される。このような場合に、JITプロビジョニングでは、OPの新グループに対応するテナントにアカウントがないと判断され、新たなアカウントが生成される。そのため、古いグループに対応するテナントにアカウントが残ったままになってしまう。実施例3では、アカウントのOP所属グループが変更になった場合のJITプロビジョニングを実現する方式について説明する。
図10は、OPのユーザーアカウントの所属グループが変更になった場合に対応する、JITプロビジョニングのフローを示す図である。ステップS701からステップS710までは、図7で説明したフローと同じである。
ステップS1001において、RPアクセス管理サーバー102は、アカウント作成の対象となるテナント以外のテナントに、対応するアカウントが存在するかどうか確認する。RPアクセス管理サーバー102は、ステップS709で判定したテナント以外のテナントに、IDトークンのsubと一致するOP側UUIDが登録されているアカウントが存在するかどうかを確認する。もしOP側UUIDが一致するアカウントが存在した場合、ステップS1002に進む。もしOP側UUIDが一致するアカウントが存在しなかった場合、ステップS711に進み、アカウントを作成してOP側UUIDの値を設定する。
表11Aにグループ変更時のアカウントテーブルに登録する情報の例を示す。本実施例では、OPアクセス管理サーバー102のアカウントテーブルに登録されているユーザーID「user2」、UUID「00000004」の所属グループを、「グループB」から「グループA」に変更したものとする。RPアクセス管理サーバー102は、ステップS709にてRPテナントが「1001AA」と判断されているので、「1001AA」以外にOP側UUID「00000004」となるアカウントが登録されているかどうかを確認する。この場合、テナント「1002AA」のユーザーID「auto2@1002AA」に、OP側UUID「00000004」が登録されているので、ステップS1002に進む。
ステップS1002において、RPアクセス管理サーバー102は、アカウントの操作を行う。本実施例では、OPグループ変更時の対応について、RPアクセス管理サーバー102上で事前に設定を行い、テナント単位で管理する。グループ移動時の対応としては、アカウントを削除する、アカウントを無効化する、といった内容が選択できる。RPアクセス管理サーバー102は、テナント単位で設定されている内容に従い、古いアカウントの削除または無効化を行う。なおアカウントを無効化した場合には、そのアカウントに設定されているOP側UUIDの値を削除する。
表12にグループ変更時のテナントマッピングテーブルに登録する情報の例を示す。本実施例では、グループ変更時のテナントマッピングテーブルから、OP側UUID「00000004」が登録されていたアカウントの所属テナント「1002AA」の移動時の処理を確認する。ここではテナント「1002AA」は移動時に「無効化」となっているため、ユーザーID「auto2@1002AA」を無効化し、アカウントテーブルの更新を行う。また、表11Bにグループ変更後のアカウントテーブルの情報の例を示す。
実施例3の方法により、OPのアカウントの所属グループが変更になった場合に、RP上に無駄なアカウントを残すことなく、JITプロビジョニングが行える。
<その他の実施例>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
102 RPアクセス管理サーバー
106 端末
107 OPアクセス管理サーバー
301 アクセス制御部
302 データ管理部
311 アクセス制御部
312 データ管理部
106 端末
107 OPアクセス管理サーバー
301 アクセス制御部
302 データ管理部
311 アクセス制御部
312 データ管理部
Claims (10)
- 第一の管理サーバーを備える第一のサービスシステムと、第二の管理サーバーを備える第二のサービスシステムとが互いに連携してサービスを提供するシステムであって、
前記第一の管理サーバーは、ユーザー認証を行ない、認証したユーザーが所属するテナントを示すテナント情報を取得する手段と、前記第二のサービスシステムに対してクライアント登録要求を行なう手段とを備え、
前記第二の管理サーバーは、前記クライアント登録要求に従うクライアント登録と、前記認証したユーザーが所属するグループを示すグループ情報とを含む登録結果を前記第一の管理サーバーに送る手段を備え、
前記第一の管理サーバーは、前記グループ情報を受け取り、受け取ったグループ情報と、前記認証したユーザーのテナント情報を対応付けて記憶する手段を備え、
前記第二の管理サーバーは、前記登録したクライアントからの認証要求に応じて認証したユーザーのグループ情報を含むID情報を前記第一の管理サーバーに送る手段を備え、
前記第一の管理サーバーは、前記ID情報を受け取り、受け取ったID情報が示すアカウントに対応するアカウントの存在を判定する手段と、前記判定する手段により当該アカウントが存在しないと判定された場合に、新たにアカウントを生成する手段とを備えることを特徴とするサービス提供システム。 - 前記第一の管理サーバーは、
前記生成する手段によりアカウントを生成する場合に、テナントのアカウント数の上限に達しているかどうかを確認する手段と、
前記確認する手段によりアカウント数が上限に達していると確認された場合に、既存のアカウントを操作するかどうかを判断する手段と、
前記判断する手段により操作すると判断された場合、既存のアカウントを削除または無効化する手段と、
をさらに備えることを特徴とする、請求項1に記載のサービス提供システム。 - 前記第一の管理サーバーは、前記無効化する手段により既存のアカウントを削除または無効化してアカウントを生成するか、あるいはアカウントを作成しないかを、テナント単位で判断することを特徴とする、請求項2に記載のサービス提供システム。
- 前記無効化する手段は、既存のアカウントを削除または無効化する場合、当該アカウントが利用されていない期間に応じて当該アカウントを削除または無効化することを特徴とする、請求項2に記載のサービス提供システム。
- 前記第一の管理サーバーは、
前記判定する手段により、前記ID情報が示すアカウントが当該アカウントに対応するテナントに存在しないと判定された場合、当該アカウントが当該テナントとは別のテナントに存在するかどうかを確認する手段と、
前記確認する手段により、当該アカウントが前記別のテナントに存在すると確認された場合に、当該アカウントを削除または無効化する手段と、
をさらに備えることを特徴とする、請求項1に記載のサービス提供システム。 - 前記第一の管理サーバーは、前記無効化する手段により当該アカウントを削除するか無効化するかを、テナント単位で判断することを特徴とする、請求項5に記載のサービス提供システム。
- 前記第一のサービスシステムは、RP(Relying Party)サービスシステムであり、前記第二のサービスシステムは、OP(OpenID Provider)サービスシステムであることを特徴とする、請求項1乃至6のいずれか1項に記載のサービス提供システム。
- 第一のサービスシステムにおいて用いられる管理サーバーであって、前記第一のサービスシステムは第二のサービスシステムと互いに連携してサービスを提供し、
前記管理サーバーは、
ユーザー認証を行ない、認証したユーザーが所属するテナントを示すテナント情報を取得する手段と、
前記第二のサービスシステムに対してクライアント登録要求を行なう手段と、
前記第二のサービスシステムより、前記クライアント登録要求に従うクライアント登録と、前記認証したユーザーが所属するグループを示すグループ情報とを含む登録結果を受け取る手段と、
前記受け取ったグループ情報と、前記認証したユーザーのテナント情報を対応付けて記憶する手段と、
前記第二のサービスシステムより、前記登録したクライアントからの認証要求に応じて認証したユーザーのグループ情報を含むID情報を受け取る手段と、
前記受け取ったID情報が示すアカウントに対応するアカウントの存在を判定する手段と、
前記判定する手段により当該アカウントが存在しないと判定された場合に、新たにアカウントを生成する手段と、
を備えることを特徴とする管理サーバー。 - 第一のサービスシステムにおいて管理サーバーにより実行される管理方法であって、前記第一のサービスシステムは第二のサービスシステムと互いに連携してサービスを提供し、
前記管理方法は
ユーザー認証を行ない、認証したユーザーが所属するテナントを示すテナント情報を取得し、
前記第二のサービスシステムに対してクライアント登録要求を行ない、
前記第二のサービスシステムより、前記クライアント登録要求に従うクライアント登録と、前記認証したユーザーが所属するグループを示すグループ情報とを含む登録結果を受け取り、
前記受け取ったグループ情報と、前記認証したユーザーのテナント情報を対応付けて記憶し、
前記第二のサービスシステムより、前記登録したクライアントからの認証要求に応じて認証したユーザーのグループ情報を含むID情報を受け取り、
前記受け取ったID情報が示すアカウントに対応するアカウントの存在を判定し、
前記判定により当該アカウントが存在しないと判定された場合に、新たにアカウントを生成することを特徴とする管理方法。 - コンピュータを、請求項1〜7のいずれか1項に記載のサービス提供システム、または請求項8に記載の管理サーバーに記載の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014182056A JP2016057737A (ja) | 2014-09-08 | 2014-09-08 | サービス提供システム及びこれに用いる管理サーバー及び管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014182056A JP2016057737A (ja) | 2014-09-08 | 2014-09-08 | サービス提供システム及びこれに用いる管理サーバー及び管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016057737A true JP2016057737A (ja) | 2016-04-21 |
Family
ID=55758367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014182056A Pending JP2016057737A (ja) | 2014-09-08 | 2014-09-08 | サービス提供システム及びこれに用いる管理サーバー及び管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016057737A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019046186A (ja) * | 2017-09-01 | 2019-03-22 | ヤフー株式会社 | アクセス制御装置、アクセス制御方法、およびアクセス制御プログラム |
JP2020112886A (ja) * | 2019-01-08 | 2020-07-27 | 株式会社リコー | サービスシステム、クラウドサービス、ユーザ登録方法、プログラム |
CN112241525A (zh) * | 2019-07-19 | 2021-01-19 | 株式会社理光 | 云系统、信息处理系统和用户注册方法 |
CN113596960A (zh) * | 2021-08-06 | 2021-11-02 | 松下电器研究开发(苏州)有限公司 | 语音交互设备的配网方法、配网系统及计算机可读存储介质 |
-
2014
- 2014-09-08 JP JP2014182056A patent/JP2016057737A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019046186A (ja) * | 2017-09-01 | 2019-03-22 | ヤフー株式会社 | アクセス制御装置、アクセス制御方法、およびアクセス制御プログラム |
JP2020112886A (ja) * | 2019-01-08 | 2020-07-27 | 株式会社リコー | サービスシステム、クラウドサービス、ユーザ登録方法、プログラム |
JP7222246B2 (ja) | 2019-01-08 | 2023-02-15 | 株式会社リコー | サービスシステム、クラウドサービス、ユーザ登録方法、プログラム |
CN112241525A (zh) * | 2019-07-19 | 2021-01-19 | 株式会社理光 | 云系统、信息处理系统和用户注册方法 |
CN113596960A (zh) * | 2021-08-06 | 2021-11-02 | 松下电器研究开发(苏州)有限公司 | 语音交互设备的配网方法、配网系统及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9311469B2 (en) | Authorization server system, control method thereof, and non-transitory computer-readable medium | |
JP6643373B2 (ja) | 情報処理システムと、その制御方法とプログラム | |
US9288213B2 (en) | System and service providing apparatus | |
WO2018113690A1 (zh) | 登录授权方法和装置、登录方法和装置 | |
RU2678428C2 (ru) | Устройство обработки информации, способ управления для устройства обработки информации, система обработки информации и компьютерная программа | |
JP6120650B2 (ja) | コンテンツ管理装置、コンテンツ管理方法及びプログラム | |
JP6323994B2 (ja) | コンテンツ管理装置、コンテンツ管理方法及びプログラム | |
JP2019096076A (ja) | アクセス制御システム、その制御方法およびプログラム | |
AU2019222893A1 (en) | Document management system and processing apparatus | |
JP2017033339A (ja) | サービス提供システム、情報処理装置、プログラム及びサービス利用情報作成方法 | |
JP2019086937A (ja) | 画像処理装置、画像処理装置の制御方法、プログラム、システム、およびシステムの制御方法 | |
CN109428725B (zh) | 信息处理设备、控制方法和存储介质 | |
JP2016057737A (ja) | サービス提供システム及びこれに用いる管理サーバー及び管理方法 | |
JP2006031064A (ja) | セッション管理システム及び管理方法 | |
JP2019101668A (ja) | システムおよびその制御方法 | |
JP6303312B2 (ja) | サービス提供システム及び画像提供方法 | |
JP6197286B2 (ja) | 通信装置、情報処理システム及び情報処理システムの制御方法 | |
JP2017049745A (ja) | 認証サーバ、認証方法およびプログラム | |
US9350724B2 (en) | Authentication server system for performing control of notifications during service use, control method, and storage medium | |
JP2017084378A (ja) | クラウドサービス提供システム及びクラウドサービス提供方法 | |
JP6205946B2 (ja) | サービス提供システム、情報収集方法及びプログラム | |
JP2016085638A (ja) | サーバー装置、端末装置、システム、情報処理方法及びプログラム | |
JP2014241113A (ja) | コンテンツ管理装置、コンテンツ管理システム、コンテンツ管理方法及びプログラム | |
US20130340062A1 (en) | System, control method, and storage medium | |
JP2016206971A (ja) | 連携システム、連携システムの制御方法、及びプログラム |