[go: up one dir, main page]

JP2017091221A - 権限委譲システム、その制御方法、認可サーバ及びプログラム - Google Patents

権限委譲システム、その制御方法、認可サーバ及びプログラム Download PDF

Info

Publication number
JP2017091221A
JP2017091221A JP2015220663A JP2015220663A JP2017091221A JP 2017091221 A JP2017091221 A JP 2017091221A JP 2015220663 A JP2015220663 A JP 2015220663A JP 2015220663 A JP2015220663 A JP 2015220663A JP 2017091221 A JP2017091221 A JP 2017091221A
Authority
JP
Japan
Prior art keywords
client
authorization
authority
user
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
Application number
JP2015220663A
Other languages
English (en)
Inventor
奨 ▲浜▼渦
奨 ▲浜▼渦
Susumu Hamauzu
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 JP2015220663A priority Critical patent/JP2017091221A/ja
Publication of JP2017091221A publication Critical patent/JP2017091221A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】ユーザの権限を委譲されたクライアントから、さらに別のクライアントに権限を委譲するシステムを提供する。
【解決手段】権限委譲システムは、第1、第2のクライアントおよびサービス提供装置と、認可サーバとを含む。第1のクライアントは、ユーザから第1のクライアントに対し特定の権限が委譲されたことを示す第1の認可情報を基に第2のクライアントのサービスを利用する。認可サーバは、利用に伴い送信される第1の認可情報から第1のクライアントを特定し、特定された第1のクライアントと第2のクライアントが関連付いているか否かを確認し、関連付いていると確認されたことに応じ、第2のクライアントに対し特定の権限が委譲されたことを示す第2の認可情報を発行する。第2のクライアントは、提供された第2の認可情報を基に、サービス提供装置のサービスを利用する。
【選択図】図7

Description

本発明は、権限委譲システム、その制御方法、認可サーバ及びプログラムに関する。
近年、クラウドサービスと呼ばれるインターネットを介してソフトウェアの機能を提供するサービスの利用が拡大している。例えば、インターネット上でPDF形式の電子文書を作成するサービスや電子文書を蓄積するサービスがある。このようなサービスを利用することでユーザは、自身が所有する端末自体にPDF作成機能がない場合でもPDFを作成できるようになる他、端末の記憶容量以上に電子文書を保管できるようにもなる。さらに、クラウドサービスを連携させて付加価値を高めることができる。例えば、前述のクラウドサービスでPDF形式の電子文書を作成し、さらに作成した電子文書をユーザの所有する端末を経由することなく、直接インターネット上の電子文書を蓄積するサービスに保管できる、といったことが、サービス連携により実現できる。
従来、このようなサービス連携を実現するために、OAuthと呼ばれる、権限委譲の標準プロトコルが広く利用されている。OAuthについては以降で説明する。
クラウドサービスの利用が増加する中で、3つ以上のクラウドサービスを連携させたサービスを提供したいという要求がある。そのために、ユーザの権限を委譲されたクライアントが第1のリソースサービスを利用し、さらに第1のリソースサービスがクライアントとなって第2のリソースサービスを利用したい。そこで特許文献1は、アプリケーションを追加・削除可能なデバイスにおいて、ユーザがデバイスに権限委譲し、さらにデバイスがデバイス内アプリケーションに権限委譲するという、デバイス内で2段階の権限委譲をする技術を開示している。このOAuthを拡張した技術では、ユーザが認可確認をしてデバイスに権限委譲すると、その後は認可操作なしでデバイスからデバイス内のアプリケーションに権限委譲できる。
特開2014−099030号公報
しかしながら、特許文献1では、最初の権限委譲はデバイスに対して行うことしかできず、また2段階目の権限委譲もデバイス内のアプリケーションにしか行うことができない。
本発明は、ユーザの権限を委譲されたクライアントから、さらに別のクライアントに権限を委譲するシステムを提供することを目的とする。
上記課題を解決するために、本発明は、ネットワークを介してサービスを提供する第1のクライアントおよび第2のクライアントおよびサービス提供装置と、認可サーバとを含む権限委譲システムを提供する。第1のクライアントは、ユーザから前記第1のクライアントに対し特定の権限が委譲されたことを示す第1の認可情報を基に、前記第2のクライアントのサービスを利用する第1の利用手段を有する。認可サーバは、前記第1の利用手段による利用に伴い送信される前記第1の認可情報から前記第1のクライアントを特定し、特定された前記第1のクライアントと前記第2のクライアントが関連付いているか否かを確認する確認手段と、前記確認手段により関連付いていると確認されたことに応じ、前記第2のクライアントに対し特定の権限が委譲されたことを示す第2の認可情報を発行する発行手段とを有する。第2のクライアントは、前記発行手段から提供された前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する第2の利用手段を有する。
本発明によれば、ユーザの権限を委譲されたクライアントから、さらに別のクライアントに権限委譲できる。
システム構成図である。 各装置のハードウェア構成図である。 各装置のソフトウェアモジュール構成図である。 3つのサービスを連携したサービスの処理シーケンス図である。 3つのサービスを連携したサービスの処理シーケンス図である。 認可処理に関連する画面の例である。 第2の認可トークン発行時の信頼関係確認処理のフローチャートである。 3つのサービスを連携したサービスの処理シーケンス図である。 クライアントの信頼関係確認処理のフローチャートである。 ユーザ管理テーブル及びクライアント管理テーブルを示す図である。 認可トークン管理テーブルを示す図である。 クライアント信頼関係管理テーブルを示す図である。
(第1実施形態)
まず、権限委譲システムの標準プロトコルであるOAuthについて説明する。OAuthによれば、例えば、ユーザから権限委譲されたサービスAが、サービスBの管理するユーザのデータにアクセスできる。サービスAのように、ユーザの権限を委譲されてユーザの代わりにサービスBにアクセスするものをクライアントと呼ぶ。サービスBのように、ユーザのデータを管理するものをリソースサーバ(サービス提供装置)と呼ぶ。クライアントがリソースサーバにアクセスする際、クライアントはアクセスするリソースの範囲を明らかにした上で、ユーザからアクセスに対する明示的な認可を得ることになっている。ユーザが明示的に認可を行うことを認可操作と称する。
ユーザが認可操作を行うと、クライアントはリソースサーバへのアクセスを認められたことを証明するトークン(以下、認可トークンと称する)を受け取る。以降、クライアントはその認可トークンを用いてリソースサーバにアクセスできるようになる。
認可トークンを用いるとクライアントは、ユーザの認証情報なしに、認可を行ったユーザの権限でリソースサーバにアクセスできる。そのため、OAuthでは、セキュリティの観点から、クライアント・リソースサーバが認可トークンを外部に漏洩させてはいけないことを規定している。各クラウドサービスは、認可トークンを外部に漏洩しないように厳重かつ適正に管理する責務を負う。
OAuthの認可トークンを利用して3つ以上のサービスを連携する方法として考えられる方法は、複数のサービスを利用するための認可トークンを取得して、この認可トークンをサービス間で受け渡していく方法である。しかしながら、OAuthでは、セキュリティの観点から、認可トークンの受け渡しをクライアントとサービスの間のみに制限し、外部に認可トークンを漏らすことを禁止している。リソースサービスが別の外部リソースサービスに認可トークンを受け渡しすると、認可トークンの漏洩リスクが生じる。認可トークンを詐取した第三者は、ユーザの認証情報なしに、認可を行ったユーザの権限で複数のリソースサービスを利用できるようになってしまう。
そこで、本実施形態においては、サービス間で権限委譲する際に、ある認可トークンから権限を引き継ぐ新たな認可トークンを発行して、その認可トークンを受け渡すことで、ユーザの権限をサービス間で委譲させていく手段をとる。こうすることで、OAuthの規定を遵守しながら、サービス間での権限委譲が実現できる。
また、3つ以上のサービス間での権限委譲では、ユーザの知らないところで、サービスから別のサービスに権限委譲がなされてしまう可能性がある。そこで、本実施形態においては、認可トークンの漏洩リスクを低減し、かつ、サービスが別のサービスに権限委譲することについてユーザの同意を得た上で、3つ以上のサービスの連携を実現するようにする。
本実施形態においては、オフィスフロアのプリンタを管理するフロア機管理サービス、帳票データを生成する帳票サービス、データを取得して印刷する印刷サービスが、インターネット上のサーバに設置されていることを想定している。以降、フロア機管理サービス、帳票サービス、印刷サービスのように、インターネット上で機能を提供しているサービスを、リソースサービスと呼ぶ。本実施形態においては、前述のフロア機管理サービス、帳票サービス、印刷サービスを連携することで、フロア機の利用状況のデータを帳票データに加工し、さらに、その帳票データを印刷するサービスを説明する。
また本実施の形態においては、PC、携帯端末のようなユーザ端末上のWebブラウザーやネィティブアプリケーションから上記サービスを利用することを想定している。ユーザ端末上のWebブラウザーやアプリケーションをサービス連携アプリケーションと呼ぶ。なお、本願発明を適用できるリソースサービスは、フロア機管理サービス、帳票サービス、印刷サービスには限られるものではない。
本実施形態に係る権限委譲システムは、図1に示すような構成のネットワーク上に実現される。
WAN100は、Wide Area Network(WAN)であり、本実施形態ではWorld Wide Web(WWW)システムが構築されている。LAN101は各構成要素を接続するLocal Area Network(LAN)である。
認可サーバ200はOAuthを実現するための認可サーバである。フロア機管理サーバ220、帳票サーバ240、印刷サーバ260はリソースサーバとして、認可サーバ200と連携してユーザに各々のサービスを提供する。フロア機管理サーバ220は第1のクライアントであり、帳票サーバ240は第2のクライアントであり、印刷サーバ260はサービス提供装置に該当する。なお1台のリソースサーバに設置されるリソースサービスは1つでもよく、複数でもよい。また、認可サーバ、および、リソースサーバは1台ではなく複数台で構成されるサーバ群であってもよい。
ユーザ端末300はパソコン、スマートフォンなどの情報機器であり、Webブラウザーやアプリケーションがインストールされている。ユーザはWebブラウザーやアプリケーションを用いてリソースサーバのサービスを利用する。また認可サーバ200、フロア機管理サーバ220、帳票サーバ240、印刷サーバ260、ユーザ端末300はそれぞれWAN100およびLAN101を介して接続されている。なお認可サーバ200、リソースサーバであるフロア機管理サーバ220、帳票サーバ240、印刷サーバ260、ユーザ端末300はそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また認可サーバ200、リソースサーバであるフロア機管理サーバ220、帳票サーバ240、印刷サーバ260は同一のサーバ上に構成されていてもよい。
本実施形態に係る権限委譲システムは、図2に示すような構成の情報処理装置から成るシステム上に実現される。図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものである。本実施形態の認可サーバ200、フロア機管理サーバ220、帳票サーバ240、印刷サーバ260、ユーザ端末300のハードウェア構成を適用できる。
図2において、CPU201は、OSやアプリケーション等のプログラムを実行しシステムバス204に接続される各ブロックを制御する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各シーケンスの処理はこのプログラムの実行により実現できる。OSやアプリケーションは、ROM203のプログラム用ROMやハードディスク(HD)等の外部メモリ211に記憶され、RAM202にロードされる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。DSPコントローラ(DSPC)206は、ディスプレイ(DSP)210の表示を制御する。ディスクコントローラ(DKC)207は、各種データを記憶するハードディスク(HD)等の外部メモリ211におけるデータアクセスを制御する。ネットワークコントローラ(NC)208は、WAN100もしくはLAN101を介して接続されたユーザ端末300や他の機器との通信制御処理を実行する。
なお、後述の全ての説明においては、特に断りのない限りサーバにおける実行のハード上の主体はCPU201であり、ソフトウェア上の主体は外部メモリ211にインストールされたアプリケーションプログラムである。
図3は本実施の形態に係る、認可サーバ200、フロア機管理サーバ220、帳票サーバ240、印刷サーバ260、ユーザ端末300のそれぞれのモジュール構成を示す図である。図3に示す何れのモジュールも、図2で示した各装置のCPUが外部メモリにインストールされたアプリケーションプログラムをRAM上で実行することで実現されるモジュールである。
認可サーバ200は認可サービスモジュール212を備える。認可サービスモジュール212は、ユーザ認証機能、クライアント認証機能、認可トークン発行機能、認可トークン検証機能を有する。フロア機管理サーバ220はフロア機管理サービスモジュール221を備える。フロア機管理サービスモジュール221はフロア機の利用状況をデータ出力する機能を有する。帳票サーバ240は帳票サービスモジュール241を備える。帳票サービスモジュール241は受領データから帳票データを生成する機能を有する。印刷サーバ260は印刷サービスモジュール261を備える。印刷サービスモジュール261は取得したデータを印刷する機能を有する。
ユーザ端末300は、CPUがOS302あるいは外部メモリに記憶されたOSを実行する事で各アプリケーションを制御する。OS302は、一般的にはWindows(登録商標)、Linux(登録商標)等の汎用OSやAndroid(登録商標)、iOS(登録商標)などのモバイル端末用OSが使用される。
ユーザ端末300は、サービス連携アプリケーション301を持つ。サービス連携アプリケーション301はWWWを利用するためのユーザエージェントである。このサービス連携アプリケーション301はWWWを利用できる一般的なWebブラウザーでもよいし、組込ブラウザーを内包するネィティブアプリケーションでもよい。なお、サービス連携アプリケーション301におけるサービス利用のシーケンスについては後述する。
図10(A)、図10(B)、図11、図12(A)は認可サーバ200が外部メモリに記憶するデータテーブルである。データテーブルは、認可サーバ200の外部メモリではなく、LAN101を介して通信可能に構成された別のサーバに記憶するよう構成する事も出来る。
図10(A)はユーザ管理テーブル1200である。ユーザ管理テーブル1200は、ユーザID1201、パスワード1202、ユーザ種別1203から成る。認可サービスモジュール212は、ユーザID1201、パスワード1202の情報の組を検証し、正しければ認証情報を生成することで、各ユーザもしくはクライアントを認証する機能を備える。
図10(B)はクライアント管理テーブル1300である。クライアント管理テーブル1300はクライアントID1301、クライアント名1302、リダイレクトURL1303、アプリケーションID1304から成る。クライアントID1301は、ユーザ管理テーブル1200のユーザID1201と関連付いており、互いに参照可能となっている。クライアント名1302、リダイレクトURL1303は後述のOAuthのシーケンスで利用される値である。そして、アプリケーションID1304はクライアントがどのサービスで利用されるものかを特定するため値である。
図11は認可トークン管理テーブル1400である。認可トークン管理テーブル1400は、認可トークンID1401、トークン種別1402、有効期限1403、スコープ1404、クライアントID1407、ユーザID1408、アプリケーションID1409から成る。さらに、認可トークン管理テーブル1400は、リフレッシュトークンID1405、リフレッシュ期限1406も含む。これら認可トークン管理テーブル1400の処理詳細については後述する。
図12(A)はクライアント信頼関係管理テーブル1500である。クライアント信頼関係管理テーブル1500は、トークン発行クライアント1501、権限委譲可能クライアント1502から成る。トークン発行クライアント1501、権限委譲可能クライアント1502は、クライアント管理テーブル1300のアプリケーションID1304と関連付いており、互いに参照可能となっている。
クライアント信頼関係管理テーブル1500は、サービス間で権限委譲する際にクライアント間での権限引き継ぎの可否判定に利用される。クライアント間の権限引継の可否判定の処理詳細は後述する。
図4及び図5を用いて、フロア機管理サービス、帳票サービス、印刷サービスの3つのサービスを連携したサービスを提供する処理を説明する。
図4及び図5は、3つのサービスを連携したサービスの処理のシーケンス図である。まず、ユーザがサービス連携アプリケーション301において、フロア機利用状況を帳票データ化して印刷するサービスの利用操作をする(S401)。すると、サービス連携アプリケーション301がフロア機管理サービスモジュール221にリソースサービス利用のリクエストを送信する(S402)。フロア機管理サービスモジュール221は、リソースサービス利用のリクエストを受け付けると、認可サービスモジュール212の認可エンドポイントに認可リクエストを送信する(S403)。これにより、フロア機管理サービスモジュール221をクライアントとする、OAuthのフローが開始する。
このときフロア機管理サービスモジュール221は、送信する認可リクエストに、クライアントID、リクエストスコープ、リダイレクトURIをリクエストに含める。ここで、クライアントIDは、cli_000000001を指定する。クライアントID「cli_000000001」は、認可サーバのクライアント管理テーブル1300に事前登録済みのフロア機管理サービスモジュール221のクライアントのクライアントIDである。リクエストスコープは、OAuthで認可を受けたい権限範囲を示す値である。本実施形態では、3つのサービスを連携するために、リクエストスコープとして、フロア機利用状況出力、帳票、印刷の3つのスコープ値を指定したとして説明する。
認可サービスモジュール212は認可リクエストを受けると、フロア機管理サービスモジュール221を介してサービス連携アプリケーション301にログイン要求をする(S404)。この際、認可サービスモジュール212は、ユーザを認証するために、図6(A)に示す認証画面であるログイン画面601をサービス連携アプリケーション301に表示する。
ユーザは、サービス連携アプリケーション301に示されたログイン画面601に対して、ユーザID、パスワードを入力して、ログインする(S405)。ここで、ユーザは図10(A)のユーザID「user001」のユーザID1201、パスワード1202の組を使ってログイン操作をする。すると、サービス連携アプリケーション301はフロア機管理サービスモジュール221を介して、認可サービスモジュール212にユーザが入力したユーザID、パスワードを含むログインリクエストを送信する(S406)。認可サービスモジュール212は、受信したユーザID、パスワードの情報の組を、ユーザ管理テーブル1200に登録されている情報と合っているか検証する。登録されている情報と合っていれば、ログインしたユーザが正規のユーザであるとして、すなわち、認証成功として認証情報を生成する。もし、ユーザID、パスワードの情報の組が一致しなければ、認証エラーとして、認可サービスモジュール212がフロア機管理サービスモジュール221に再度S404のログイン要求を送信する。なお、S401の操作をする前にログイン済みの場合は、S404からS406の処理をスキップする。
認証が成功すれば、次に、認可リクエストに含まれているリダイレクトURLがフロア機管理サービスモジュール221のクライアントのリダイレクトURLかを検証する。その際、認可サービスモジュール212は、認可リクエストに含まれているクライアントIDとリダイレクトURLの組みが、クライアント管理テーブル1300に登録されている情報と合っているか検証する(S407)。もし認可リクエストのリダイレクトURLとクライアントに登録されているリダイレクトURLが一致しない場合は、フロア機管理サービスモジュール221にリダイレクトURLのエラーレスポンスを返却する。なお、フロア機管理サービスモジュール221はリダイレクトのエラーをリダイレクトしてはいけない。
認可リクエストのリダイレクトURLとクライアントに登録されているリダイレクトURLが一致し、リダイレクトURL検証が成功した場合、認可サービスモジュール212はクライアントが権限委譲可能なクライアントのリストを取得する(S408)。この処理では、まず、クライアント管理テーブル1300から、フロア機管理サービスのクライアントのアプリケーションID1304を取得する。次に、クライアント信頼関係管理テーブル1500で、前処理で取得したクライアントのアプリケーションID1304とトークン発行クライアント1501が一致するレコードの権限委譲可能クライアント1502を取得する。そして、クライアント管理テーブル1300から、前処理で取得した権限委譲可能クライアント1502の値とアプリケーションID1304の値が一致するレコードを取得する。取得したレコードのリストが、フロア機管理サービスの権限委譲可能なクライアントのリストとなる。
そして、図6(B)に示す認可画面602を生成しサービス連携アプリケーション301に応答する(S409)。その際、S408で取得したフロア機管理サービスの権限委譲可能なクライアントのリストが認可確認画面に表示される。なお、認可確認画面には、本実施形態で説明した情報以外に、ここにクライアントの詳細な説明を追加して表示する事や、ログインしているユーザの情報を表示するよう構成する事もできる。また、認可リクエストにスコープを含む場合は、当該スコープの範囲を説明するアクセスするリソースに関する情報を認可画面602に表示するよう構成する事も出来る。また、認証情報をサービス連携アプリケーション301に対してCookie情報として格納して応答する。
次に、ユーザはサービス連携アプリケーション301に表示された認可画面602で権限委譲を許可する指示を行う(S410)。ユーザの指示を受けたサービス連携アプリケーション301は、認可サービスモジュール212に認可操作の結果である指示を返却する(S411)。
許可する指示を受けた認可サービスモジュール212は、次の処理を実行する。認可トークン管理テーブル1400に認可コードを発行し、登録する。その際、認可トークンID1401に発行したトークンのID、トークン種別1402に認可コード、有効期限1403、および、認可リクエスト時に受け付けたクライアントIDをクライアントID1407に登録する。さらに、サービス連携アプリケーション301からCookieとして送信された認証情報に紐づくユーザIDをユーザID1408に登録する(S412)。そして、認可コード応答として、サービス連携アプリケーション301のリダイレクトURLに対して認可コードの認可トークンIDを返却する(S413)。
認可コード応答を受けたフロア機管理サービスモジュール221は、認可サービスモジュール212に対して認可トークン要求を行う(S414)。この認可トークン要求には、認可コード応答で取得した認可コードの認可トークンID、フロア機管理サービスモジュールのクライアントID1301、クライアント名1302、リダイレクトURL1303を含む。
認可トークン要求を受けた認可サービスモジュール212は以下の検証を行い、正しい場合は、第1の認可トークン(第1の認可情報)を生成する(S415)。認可サービスモジュール212は、トークン要求で受けつけたクライアントID、クライアント名の組が、ユーザ管理テーブル1200に登録されているユーザID1201、パスワード1202の組と合っているか検証する。次に、トークン要求で受けつけた認可コードの認可トークンIDが、認可トークン管理テーブル1400に登録されているか、有効期限内かを検証する。そして、トークン要求で受けつけたクライアントIDが、認可トークン管理テーブル1400の認可トークンIDで特定されるクライアントID1407と合っているか検証する。さらに、トークン要求で受けつけたリダイレクトURLが、クライアント管理テーブル1300のリダイレクトURL1303と合っているかを検証する。ここで、リダイレクトURL1303は、クライアント管理テーブル1300ではなく、認可トークン管理テーブル1400にカラムを追加し、認可コード発行時に登録して、該追加カラムと検証するよう構成する事もできる。
これらすべての検証が正しい場合に、認可サービスモジュール212は、認可トークンを生成する。その際、認可サービスモジュール212は認可トークン管理テーブル1400に第1の認可トークンの情報を保存する。第1の認可トークンには、認可トークンID1401に発行したトークンのID、トークン種別1402に認可トークン、有効期限1403を登録する。第1の認可トークンにはさらに、認可コードから引き継ぐ情報として、クライアントID1407、ユーザID1408、アプリケーションID1409を登録する。この際登録されるアプリケーションIDは、クライアント管理テーブル1300のクライアントID1301がクライアントID1407と一致するクライアントのアプリケーションID1304の値である。また、認可トークンをリフレッシュするためのリフレッシュトークンを発行し、リフレッシュトークンID1405、リフレッシュ期限1406を登録する。その後、生成した第1の認可トークンの認可トークンID1401をフロア機管理サービスモジュール221に応答する。この際、応答内容として同時に発行したリフレッシュトークンIDも含む(S416)。
フロア機管理サービスモジュール221はフロア機の利用状況のデータを出力する(S417)。そして、フロア機管理サービスモジュール221はS416で取得した第1の認可トークンとS417で出力したフロア機利用状況のデータを帳票サービスモジュール241に渡し、リソース要求として帳票出力を依頼する(S418)。リソース要求を受けた帳票サービスモジュール241は、要求に含まれる第1の認可トークンの認可トークンIDのトークン検証を認可サービスモジュール212に対して要求する(S419)。この認可トークン検証要求には、スコープを含める事ができる。
第1の認可トークン検証要求を受けた認可サービスモジュール212は、受け付けた認可トークンIDが、認可トークン管理テーブル1400に登録されているか、有効期限内か、および、受け付けたスコープがスコープ1404の範囲内かを検証する。そして、検証結果を帳票サービスモジュール241に応答する(S420)。
検証の結果、アクセス許可と判断された場合は、帳票サービスモジュール241がフロア機の利用状況のデータを帳票出力する(S421)。
続いて、帳票サービスモジュール241が、認可サーバ200に第2の認可トークン取得要求を行う(S422)。第2の認可トークン取得要求には、S418で受け取った認可トークンの認可トークンIDと、クライアント管理テーブル1300に登録されている帳票サービスのクライアントのクライアントID、クライアント名、アプリケーションが含まれる。
第2の認可トークン取得要求を受けた認可サービスモジュール212は以下の処理を実行する。まず、第2の認可トークン取得要求に含まれるクライアントID、クライアント名の組がユーザ管理テーブル1200のユーザID1201とパスワード1202の組と合っているかを検証する。正しい場合は、第2の認可トークン取得要求に含まれる認可トークンIDが認可トークン管理テーブル1400に登録されており、有効期限内か確認する(S423)。
さらに、第2の認可トークン発行要求をしたクライアントが、第1の認可トークンの権限を委譲してよいクライアントか確認する(S424)。
この確認処理は、図7を用いて詳しく説明する。図7は、第2の認可トークン発行時の信頼関係確認処理のフローチャートである。
まず、認可サービスモジュール212が、認可トークン管理テーブル1400を参照し、S422で受け取った第1の認可トークンを発行したクライアントを特定する情報を取得する(S701)。本実施形態では、第1の認可トークンを発行したクライアントを特定する情報として、第1の認可トークンのアプリケーションID1409を取得する。
次に、認可サービスモジュール212がクライアント管理テーブル1300を参照し、第2の認可トークンの発行を要求したクライアントを特定する情報を取得する(S702)。本実施形態では、S422で受け取ったクライアントIDが一致するクライアントのアプリケーションID1304を取得する。
そして、認可サービスモジュール212は、第1の認可トークンを発行したクライアントと第2の認可トークン発行要求をしているクライアントが信頼関係にあるかどうかを確認するために、次の処理を行う。まず、認可サービスモジュール212は、クライアント信頼関係管理テーブル1500を参照し、S701で取得した第1の認可トークンのアプリケーションIDとトークン発行クライアント1501が一致するレコードを取得する。次に、取得したレコードの権限委譲可能クライアント1502とS702で取得した第2の認可トークンを発行要求したクライアントのアプリケーションIDが一致するかどうか確認する(S703)。
S703でアプリケーションIDの値が一致しない場合は、信頼できないクライアントと判断し、エラーレスポンスを返却する(705)。
S703でアプリケーションIDの値が一致すれば、第1の認可トークンを発行したクライアントが、第2の認可トークン発行要求をしているクライアントを信頼していると判断する。その場合、認可サービスモジュール212は、第2の認可トークンを生成する(S704)。なお、本実施形態では、クライアントの信頼関係を確認するために、認可トークンのアプリケーションID属性とクライアントのアプリケーションIDを比較した。しかし、他にクライアントを特定できて、かつ、認可トークンとクライアントが共通にもつ属性があれば、その属性を使ってクライアントの信頼関係を確認してもよい。
第2の認可トークンは、新たに認可トークンIDを発行してそのIDを認可トークンID1401に、権限引継トークンをトークン種別1402に、第2の認可トークンの有効期限を有効期限1403に登録する。クライアントID1407には、第2の認可トークン発行要求をしたクライアントのクライアントIDを登録する。スコープ1404、ユーザID1408は、第2の認可トークン取得要求で受けつけた認可トークンIDによって特定されるレコードから値を引き継ぐ。アプリケーションID1409には、レコードのアプリケーションID1409に、第2の認可トークン発行要求で受け付けたクライアントのアプリケーションID1304の値を結合した値を保存する。レコードのアプリケーションID1409は、第2の認可トークン発行要求で受けつけた認可トークンIDによって特定されるレコードのアプリケーションID1409である。第2の認可トークンのアプリケーションID1409は、認可トークン発行時に経由したクライアントの特定に利用できる。そして、認可サービスモジュール212は、帳票サービスモジュール241に、生成した第2の認可トークンの認可トークンID1401を応答する(S425)。なお、第1の認可トークンから第2の認可トークンを発行する際の権限委譲については、S410で事前にユーザからの認可確認済みである。よって、改めてユーザに権限委譲することを通知しユーザの認可を受ける必要はないため、認可確認画面は表示しない。
その後、フロア機管理サービスモジュール221はS425で取得した第2の認可トークンとS421で出力したフロア機利用状況の帳票データを印刷サービスモジュール261に渡し、リソース要求として印刷を依頼する(S426)。
リソース要求を受けた印刷サービスモジュール261は、要求に含まれる第2の認可トークンの認可トークンIDの認可トークン検証を認可サービスモジュール212に対して要求する(S427)。認可トークン検証要求を受けた認可サービスモジュール212は、受け付けた認可トークンIDが、認可トークン管理テーブル1400に登録されているか、有効期限内か、および、受け付けたスコープがスコープ1404の範囲内かを検証する。そして、検証結果を印刷サービスモジュール261に応答する(S428)。
検証の結果、アクセス許可と判断された場合は、印刷サービスモジュール261がフロア機の利用状況の帳票データを印刷する(S429)。
以上により、フロア機管理サービス、帳票サービス、印刷サービスを連携することで、フロア機の利用状況のデータを帳票データに加工し、さらに、その帳票データを印刷するサービスを実現できる。なお、本実施形態では、3つのサービスを連携したサービスの提供の例を説明したが、S418からS429の処理を繰り返すことで、3つ以上のサービスを連携したサービスも実現できる。
本実施形態によれば、認可トークンの漏洩リスクを低減し、かつ、ユーザの同意を得て、3つ以上のサービスに権限委譲することで、3つ以上のサービスの連携を実現できるようになる。
(第2実施形態)
第1実施形態では、権限委譲可能なクライアントが増減すると、その都度、クライアント信頼関係管理テーブル1500にそのクライアントを追加する必要がある。また、ユーザに権限委譲するクライアントが増えることに同意してもらう必要がある。そこで、第2実施形態では、3つ以上のサービスを連携したサービスも実現する際に、権限委譲可能なクライアントが増減の度にクライアント信頼関係テーブルの情報をメンテナンスせずにすむようにすることを目的とする。
なお、第2実施形態は、第1実施形態とほぼ同様のため、異なる部分について以下、説明する。
図12(B)は認可サーバ200が外部メモリに記憶するクライアント信頼関係管理テーブル1600である。クライアント信頼関係管理テーブル1600は、第1実施形態の図12(A)と同様に、第1の認可トークンを発行したクライアントと第2の認可トークン発行要求をしているクライアントの信頼関係を確認するために用いる。クライアント信頼関係管理テーブル1600において、権限委譲可能クライアント1602は、クライアントのアプリケーションIDと比較するための文字列である。権限委譲可能クライアント1602には、正規表現を含む文字列を設定できる。
図8は、第2実施形態におけるフロア機管理サービス、帳票サービス、印刷サービスの3つのサービスを連携したサービスを提供する処理シーケンスである。次のS801の処理が、第1実施形態の図4及び図5の処理シーケンスと異なる部分である。以下、処理内容を説明する。
認可サービスモジュール212はクライアントが権限委譲可能なクライアントのリストを取得する(S801)。この処理では、まず、クライアント管理テーブル1300から、フロア機管理サービスのクライアントのアプリケーションID1304を取得する。次に、クライアント信頼関係管理テーブル1600で、前処理で取得したクライアントのアプリケーションID1304とトークン発行クライアント1601が一致するレコードの権限委譲可能クライアント1602を取得する。そして、クライアント管理テーブル1300から、前処理で取得した権限委譲可能クライアント1602の正規表現の値にマッチするアプリケーションID1304をもつクライアントのレコードを取得する。取得したリストが、フロア機管理サービスの権限委譲可能なクライアントのリストとなる。
図9は、第2の実施形態におけるクライアントの信頼関係確認処理を示す図である。次のS901の処理が第1実施形態と異なる部分である。以下、処理内容を説明する。
図8のクライアントの信頼関係確認処理では、図12(A)の代わりに図12(B)を参照して、次の処理を行う。S702で第2の認可トークンを発行要求したクライアントのアプリケーションIDが、S801で取得したクライアント信頼関係管理テーブル1600のレコードの権限委譲可能クライアント1602の正規表現にマッチするかどうかを確認する。(S901)。
第2実施形態では、クライアントのアプリケーションIDがcom.example.*またはjp.example.*に一致するクライアント全てに対する権限委譲について、ユーザの許可をあらかじめ取得しておくことができる。そのため、権限委譲可能なクライアントが増減にも対応できる。また、3つ以上のサービスを連携したサービスも実現する際に、権限委譲可能なクライアントが増減の度にクライアント信頼関係テーブルの情報をメンテナンスせずにすむようになる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。

Claims (11)

  1. ネットワークを介してサービスを提供する第1のクライアントおよび第2のクライアントおよびサービス提供装置と、認可サーバとを含む権限委譲システムであって、
    前記第1のクライアントは、
    ユーザから前記第1のクライアントに対し特定の権限が委譲されたことを示す第1の認可情報を基に、前記第2のクライアントのサービスを利用する第1の利用手段を有し、
    前記認可サーバは、
    前記第1の利用手段による利用に伴い送信される前記第1の認可情報から前記第1のクライアントを特定し、特定された前記第1のクライアントと前記第2のクライアントが関連付いているか否かを確認する確認手段と、
    前記確認手段により関連付いていると確認されたことに応じ、前記第2のクライアントに対し特定の権限が委譲されたことを示す第2の認可情報を発行する発行手段と、を有し、
    前記第2のクライアントは、
    前記発行手段から提供された前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する第2の利用手段と、を有する
    ことを特徴とする権限委譲システム。
  2. 前記認可サーバは、
    ユーザが操作する端末にて表示される認証画面を介して入力された認証情報を基に、前記ユーザが正規のユーザであるか否かを判断する認証手段と、
    前記発行手段は、さらに、前記認証手段により正規のユーザであると判断された前記ユーザが前記端末にて表示される認可画面を介し、前記第2のクライアントのサービスにおける前記ユーザの権限を前記第1のクライアントへ委譲することを許可する指示をした場合、前記ユーザの権限が前記第1のクライアントへ委譲されたことを示す前記第1の認可情報を発行する
    ことを特徴とする請求項1に記載の権限委譲システム。
  3. 前記認可画面には、前記第2のクライアントのサービスにおける前記ユーザの権限を委譲する前記第1のクライアント、及び、前記第1のクライアントが権限委譲可能なクライアントのリストが表示されている
    ことを特徴とする請求項2に記載の権限委譲システム。
  4. 前記認可サーバは、
    前記第1の利用手段による利用に伴い送信される前記第1の認可情報を基に、前記第1の利用手段が前記ユーザの権限で前記第2のクライアントのサービスを利用することを認可するか否かを検証する第1の認可手段と、
    前記第2の利用手段による利用に伴い送信される前記第2の認可情報を基に、前記第2の利用手段が前記ユーザの権限で前記サービス提供装置のサービスを利用することを認可するか否かを検証する第2の認可手段と、を有する
    ことを特徴とする請求項1乃至3のいずれか1項に記載の権限委譲システム。
  5. 前記認可サーバは、
    クライアント間の権限引継の可否の情報を記憶する記憶手段を有し、
    前記確認手段は、前記記憶手段が記憶する前記クライアント間の権限引継の可否の情報に基づき、特定された前記第1のクライアントと前記第2のクライアントが関連付いているか否かを確認する
    ことを特徴とする請求項1乃至4のいずれか1項に記載の権限委譲システム。
  6. 前記クライアント間の権限引継の可否の情報は、前記第1の認可情報に含まれるアプリケーションIDと前記第2のクライアントのアプリケーションIDの組み合わせである
    ことを特徴とする請求項1乃至5のうちいずれか1項に記載の権限委譲システム。
  7. 前記クライアント間の権限引継の可否の情報は、前記第1の認可情報に含まれるアプリケーションIDと、前記第2のクライアントのアプリケーションIDと比較するための文字列の組み合わせである
    ことを特徴とする請求項1乃至5のうちいずれか1項に記載の権限委譲システム。
  8. 前記第1の認可情報は、認可トークンID、トークン種別、有効期限、スコープ、クライアントID、ユーザID、アプリケーションID、リフレッシュトークンID、リフレッシュ期限のうち少なくとも1つ以上を含み、
    前記スコープは、前記第2のクライアント及び前記サービス提供装置で利用できるサービスの範囲であり、
    前記第2の認可情報は、認可トークンID、トークン種別、有効期限、スコープ、クライアントID、ユーザID、アプリケーションIDのうち少なくとも1つ以上を含む
    ことを特徴とする請求項1乃至7のうちいずれか1項に記載の権限委譲システム。
  9. ネットワークを介してサービスを提供する第1のクライアントおよび第2のクライアントおよびサービス提供装置と、認可サーバとを含む権限委譲システムの制御方法であって、
    前記第1のクライアントは、
    ユーザから前記第1のクライアントに対し特定の権限が委譲されたことを示す第1の認可情報を基に、前記第2のクライアントのサービスを利用する第1の利用工程を有し、
    前記認可サーバは、
    前記第1の利用工程において利用に伴い送信される前記第1の認可情報から前記第1のクライアントを特定し、特定された前記第1のクライアントと前記第2のクライアントが関連付いているか否かを確認する確認工程と、
    前記確認工程において関連付いていると確認されたことに応じ、前記第2のクライアントに対し特定の権限が委譲されたことを示す第2の認可情報を発行する発行工程と、を有し、
    前記第2のクライアントは、
    前記発行工程より提供された前記第2の認可情報を基に、前記サービス提供装置のサービスを利用する第2の利用工程と、を有する
    ことを特徴とする権限委譲システムの制御方法。
  10. ネットワークを介してサービスを提供する第1のクライアントおよび第2のクライアントおよびサービス提供装置と接続された認可サーバであって、
    ユーザが操作する端末にて表示される認証画面を介して入力された認証情報を基に、前記ユーザが正規のユーザであるか否かを判断する認証手段と、
    前記認証手段により正規のユーザであると判断された前記ユーザが前記端末にて表示される認可画面を介し、前記第2のクライアントのサービスにおける前記ユーザの権限を前記第1のクライアントへ委譲することを許可する指示をした場合、前記ユーザの権限が前記第1のクライアントへ委譲されたことを示す前記第1の認可情報を発行する第1の発行手段と、
    前記第1のクライアントから送信される前記第1の認可情報を基に、前記第1の利用手段が前記ユーザの権限で前記第2のクライアントのサービスを利用することを認可するか否かを検証する認可手段と、
    前記第1のクライアントから送信される前記第1の認可情報から前記第1のクライアントを特定し、特定された前記第1のクライアントと前記第2のクライアントが関連付いているか否かを確認する確認手段と、
    前記確認手段により関連付いていると確認されたことに応じ、前記第2のクライアントに対し特定の権限が委譲されたことを示す第2の認可情報を発行する第2の発行手段と、
    前記第2クライアントから送信される前記第2の認可情報を基に、前記第2のクライアントが前記ユーザの権限で前記サービス提供装置のサービスを利用することを認可するか否かを検証する第2の認可手段と、を有する
    ことを特徴とする認可サーバ。
  11. コンピュータを請求項10に記載の認可サーバが備える各手段として機能させるためのプログラム。
JP2015220663A 2015-11-10 2015-11-10 権限委譲システム、その制御方法、認可サーバ及びプログラム Pending JP2017091221A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015220663A JP2017091221A (ja) 2015-11-10 2015-11-10 権限委譲システム、その制御方法、認可サーバ及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015220663A JP2017091221A (ja) 2015-11-10 2015-11-10 権限委譲システム、その制御方法、認可サーバ及びプログラム

Publications (1)

Publication Number Publication Date
JP2017091221A true JP2017091221A (ja) 2017-05-25

Family

ID=58768649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015220663A Pending JP2017091221A (ja) 2015-11-10 2015-11-10 権限委譲システム、その制御方法、認可サーバ及びプログラム

Country Status (1)

Country Link
JP (1) JP2017091221A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023151912A (ja) * 2022-04-01 2023-10-16 株式会社ジェーシービー プログラム、情報処理装置および情報処理方法
KR102829660B1 (ko) * 2024-10-31 2025-07-04 체인트리 주식회사 블록체인 기반 제로 트러스트 기밀 파일 접근 권한 관리 서비스 제공 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023151912A (ja) * 2022-04-01 2023-10-16 株式会社ジェーシービー プログラム、情報処理装置および情報処理方法
JP7542030B2 (ja) 2022-04-01 2024-08-29 株式会社ジェーシービー プログラム、情報処理装置および情報処理方法
KR102829660B1 (ko) * 2024-10-31 2025-07-04 체인트리 주식회사 블록체인 기반 제로 트러스트 기밀 파일 접근 권한 관리 서비스 제공 방법 및 장치

Similar Documents

Publication Publication Date Title
US12500760B2 (en) Method, apparatus and device for constructing token for cloud platform resource access control
JP6066647B2 (ja) デバイス装置、その制御方法、およびそのプログラム
US9043591B2 (en) Image forming apparatus, information processing method, and storage medium
JP6061633B2 (ja) デバイス装置、制御方法、およびそのプログラム。
US9985962B2 (en) Authorization server, authentication cooperation system, and storage medium storing program
JP6643373B2 (ja) 情報処理システムと、その制御方法とプログラム
JP6124687B2 (ja) 画像形成装置、サーバー装置、情報処理方法及びプログラム
JP6198477B2 (ja) 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
US9401911B2 (en) One-time password certificate renewal
JP6929181B2 (ja) デバイスと、その制御方法とプログラム
US9185102B2 (en) Server system and control method
US9686257B2 (en) Authorization server system, control method thereof, and storage medium
CN106856475A (zh) 授权服务器以及认证协作系统
CN108259438A (zh) 一种基于区块链技术的认证的方法和装置
JP2018092446A (ja) 認証認可システム及び情報処理装置と認証認可方法とプログラム
JP2016009466A (ja) Webサービスシステム、認証認可装置、情報処理装置、情報処理方法及びプログラム
JP2017120502A (ja) クラウドサービスへのIoT機器の登録方法
JP2017091221A (ja) 権限委譲システム、その制御方法、認可サーバ及びプログラム
JP2019128858A (ja) 機器認可システム
JP2016085638A (ja) サーバー装置、端末装置、システム、情報処理方法及びプログラム
CN103118025A (zh) 基于入网认证的单点登录方法、装置及认证服务器
JP2014142732A (ja) 権限委譲システム
JP2017126191A (ja) 権限委譲システム、情報処理装置、及び制御方法
JP5860421B2 (ja) 復号方法、復号システム