JP2021196908A - サーバ装置、システム、制御方法及びプログラム - Google Patents

サーバ装置、システム、制御方法及びプログラム Download PDF

Info

Publication number
JP2021196908A
JP2021196908A JP2020103346A JP2020103346A JP2021196908A JP 2021196908 A JP2021196908 A JP 2021196908A JP 2020103346 A JP2020103346 A JP 2020103346A JP 2020103346 A JP2020103346 A JP 2020103346A JP 2021196908 A JP2021196908 A JP 2021196908A
Authority
JP
Japan
Prior art keywords
information
service
user
communication device
authorization
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
JP2020103346A
Other languages
English (en)
Inventor
涼 岸本
Ryo Kishimoto
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 JP2020103346A priority Critical patent/JP2021196908A/ja
Publication of JP2021196908A publication Critical patent/JP2021196908A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】サービス提供期間が制限されているデバイスの使用後に、サービス提供用の認可情報を適切に破棄する。【解決手段】サーバ装置は、サービス提供用の認可情報を取得する認可情報取得部と、デバイスからデバイス情報を受信して管理するデバイス管理部と、デバイスを使用するユーザに関するユーザ情報、認可情報、デバイス情報を関連付けて管理するユーザ情報管理部と、デバイスがサービスのサービス提供期間が制限されている制限付きデバイスであるか否かを判定するデバイス判別部と、を有する。ユーザ情報管理部は、デバイスが制限付きデバイスであり且つ制限付きデバイスへのサービス提供期間の開始から一定期間が経過した場合に、デバイス情報に関連する前記認可情報の無効化及び削除を行う。【選択図】図9

Description

本発明は、サービス提供サーバから通信装置へのサービスの提供を仲介するサーバ装置、システム、制御方法及びプログラムに関する。
OAuth2.0で定められている権限委譲のフローにおいて、クライアントは、リソースオーナーが認可に同意したことを証明する認可コードを受け取る。これにより、クライアントは、Webサービスを提供するサービス提供サーバに対して、アクセストークンの発行を要求することができる。特許文献1に開示される技術では、サービス提供サーバから取得したアクセストークンが、クラウド上のクライアント(仲介サーバ)で管理される。そして、リソースオーナーが使用する通信装置が、仲介サーバからアクセストークンを取得する。これにより、複数の通信装置が、同一のアクセストークンを共用し、サービス提供サーバからサービスの提供を受けることが可能となる。
特開2017−184118
ところで、通信装置を提供する企業がユーザに対し一時的に通信装置を試用機として貸与し、一定期間試用させた後に、試用機を回収するというビジネスモデルが存在する。ユーザは、通信装置の試用により購入を検討し、試用機を返却した後に改めて通信装置の購入に至る。ここで、試用機は企業への返却後別のユーザに貸与されるため、試用機と購入通信装置は別の端末となる。
試用機でサービス提供サーバのアクセストークンを取得した場合、仲介サーバにアクセストークンが保存される。サービス提供サーバへの認可の解除を行わずに試用機を返却した場合、仲介サーバにアクセストークンが残り続けてしまう。不要なアクセストークンを所持し続けると、万が一仲介サーバからアクセストークンが漏洩した場合に第三者がユーザの権限でサービス提供サーバにアクセスできてしまう。このため、不要になったアクセストークンは破棄しておきたい。また、サービス提供サーバ上には仲介サーバとの認可情報が残ったままになり、ユーザは通信装置を既に使用していないのに仲介サーバがサービス提供サーバに対してユーザの権限でアクセスしているように見えてしまう。従って、仲介サーバがユーザのあずかり知らぬところでサービス提供サーバへとアクセスしていないことを誇示するために、不要な認可情報は解除しておく必要がある。
本発明は、前述の課題を鑑みてなされたもので、サービス提供期間が制限されているデバイスの使用後に、サービス提供用の認可情報を適切に破棄することを目的とする。
上記の目的を達成するために、本発明におけるサーバ装置は、デバイスに対するサービスの提供を仲介するサーバ装置であって、前記サービスの提供用の認可情報を取得する認可情報取得部と、前記デバイスからデバイス情報を受信して管理するデバイス管理部と、前記デバイスを使用するユーザに関するユーザ情報と、前記認可情報と、前記デバイス情報とを関連付けて管理するユーザ情報管理部と、前記デバイスが、前記サービスのサービス提供期間が制限されている制限付きデバイスであるか否かを判定するデバイス判別部と、を有し、前記ユーザ情報管理部は、前記デバイスが前記制限付きデバイスであり且つ前記制限付きデバイスへの前記サービス提供期間の開始から一定期間が経過した場合に、前記デバイス情報に関連する前記認可情報の無効化及び削除を行うことを特徴とする。
本発明によれば、サービス提供期間が制限されているデバイスの使用後に、サービス提供用の認可情報を適切に破棄することができる。
ネットワーク構成を示す図。 第1実施形態に係る、仲介サーバの構成を示す図。 第1実施形態に係る、モジュール構成を示す図。 第1実施形態に係る、通信装置登録フローを示す図。 第1実施形態に係る、サービス登録フローを示す図。 第1実施形態に係る、認可フローを示す図。 第1実施形態に係る、サービス登録画面を示す図。 第1実施形態に係る、サービス利用フローを示す図。 第1実施形態に係る、認可情報自動削除フローを示す図。 第2実施形態に係る、通信装置登録フローを示す図。 第3実施形態に係る、認可情報削除フローを示す図。
[第1実施形態]
以下、本発明の第1実施形態について図面を用いて説明する。第1実施形態に係るシステムは、図1に示すような構成のネットワーク上に実現される。図1は、ネットワーク構成を示す図である。WAN100は、Wide Area Networkの略語である。本実施形態のWAN100では、World Wide Web(WWW)システムが構築される。LAN110、LAN120、LAN130は、各構成要素に対して接続される。LANは、Local Area Networkの略語である。LAN110は、WAN100と仲介サーバ111(サーバ装置)とを接続する。LAN120は、WAN100と通信装置121及び通信装置122(デバイス)とを接続する。LAN130は、WAN100とサービス提供サーバ131及びサービス提供サーバ132とを接続する。
仲介サーバ111は、サービス提供サーバ131、132から、アクセストークン(認可情報)を取得するクライアントであり、取得したアクセストークンを通信装置121、122へと送信する。仲介サーバ111がアクセストークンを取得するためには、ユーザからの権限委譲が必要である。本実施形態では、ユーザは、通信装置121、122のいずれかを介してサービス提供サーバに対して権限委譲への同意を行う。しかしながら、これに限るものではなく、ユーザが所有するパーソナルコンピュータ(不図示)やスマートフォン(不図示)などから行うようにしてもよい。
サービス提供サーバ131、132は、ユーザにWebサービスの提供をするとともに、ユーザが所有者となるリソースを管理する。前記Webサービスは、前記リソース、もしくは前記リソースを利用した機能群を提供する。サービス提供サーバ131、132は、ユーザが第三者(クライアント)に対してユーザが所有するリソースへのアクセスを許可する手続きを行い、許可の証拠となるアクセストークンを発行する認可サーバとしての役割も有する。なお、サービス提供サーバ131、132は、それぞれ個別のLAN上に構成されていてもよいし、同一のLAN上に構成されていてもよい。また、本実施形態では通信装置およびサービス提供サーバを2台ずつ例示しているが、それぞれ3台以上の構成でもよい。
第1実施形態に係る仲介サーバ111は、図2に示すような構成のPCから成るシステム上に実現される。図2は、第1実施形態に係る、仲介サーバ111の構成を示す図である。なお、仲介サーバ111の構成は、通信装置121、122、サービス提供サーバ131,132の構成と同様である。また、図2に示されるハードウェアブロック図は、一般的な情報処理装置のハードウェアブロック図に相当する。このため、本実施形態のサーバコンピュータ及び端末には、一般的な情報処理装置のハードウェア構成を適用することができる。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、又はハードディスク211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。ここで、OSとは、コンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。
後述する各フローチャートの処理は、プログラムの実行により実現できる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。ディスプレイコントローラ(DPC)206は、外部ディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
なお、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211やROM203にインストールされたOSやアプリケーション等のプログラムである。ソフトウェア上の主体は、CPU201がそれらプログラムを実行することで実現する。
図3は、第1実施形態に係る、モジュール構成を示す図であり、仲介サーバ111、通信装置121、122、サービス提供サーバ131、132のモジュール構成を示す。図3(A)は、仲介サーバ111のモジュール構成を示す。図3(B)は、通信装置121、122のモジュール構成を示す。図3(C)は、サービス提供サーバ131、132のモジュール構成を示す。
仲介サーバ111は、通信装置情報判別モジュール311、通信装置情報管理モジュール312、サービス登録モジュール313、ユーザ情報管理モジュール314、アクセストークン管理モジュール315を持つ。通信装置121、122は、サービス連携モジュール321、サービス管理モジュール322、アップロード機能モジュール323を持つ。サービス提供サーバ131および132は、認可処理モジュール331、アクセストークン発行モジュール332、サービス提供モジュール333を持つ。
仲介サーバ111の通信装置情報判別モジュール311は、通信装置が保持する機種情報を受け取り、通信装置121、122が、「レンタル機」であるか「販売機」であるかを判別する。ここで、レンタル機とは、試用機として利用され、サービス提供期間が制限されている制限付きデバイスであり、特に、ユーザに対して所定の期間だけ貸与した後返却されることが想定される貸与デバイスを示す。一方、販売機とは、一般の小売店等で販売し、ユーザへの販売後にはユーザが所有し続けることが想定される通信機器を示す。本実施形態においては、通信装置がレンタル機であるか否かの情報は、通信装置が持つメタ情報に含まれているとする。これ以外に、ユーザに何らかの特定の文字列を通信装置にインプットしてもらうことで判別する方法や、特定のアプリケーションが通信装置にインストールされているか否かをもとに判別するなどの方法で実現してもよい。
仲介サーバ111の通信装置情報管理モジュール312は、仲介サーバ111上に登録された通信装置情報を管理する。また、通信装置情報管理モジュール312は、通信装置121、122からの要求に従って、通信装置121、122の登録処理を行う。このように、通信装置情報管理モジュール312は、通信装置からデバイス情報を受信して管理するデバイス管理部として機能する。
表1は、通信装置121、122の情報を記憶する場合の、通信装置管理テーブルの例である。各通信装置は、通信装置を一意に識別するためのデバイスIDで管理される。表1の例では、通信装置121が、“deviceA”のデバイスIDを保持し、通信装置122が、”deviceB”というデバイスIDを保持しているとする。なお、表1では、2台の通信装置を管理していることを示すが、3台以上管理していてもよい。
Figure 2021196908
表1において、通信装置121は、デバイスIDが“deviceA”として管理され、機種がレンタル機であり、使用開始時刻が“2020/5/23 17:04”であり、自動削除判定が“オン”であることが特定できる。同様に、通信装置122は、デバイスIDが“deviceB”として管理され、機種が販売機であり、使用開始時刻が“2020/8/1 15:00”であり、自動削除判定が“オフ”であることが特定できる。
図4は、第1実施形態に係る、通信装置登録フローを示す図であり、通信装置121が仲介サーバ111に対し通信装置登録リクエストを行うフローである。本フローは、通信装置情報管理モジュール312が、通信装置121、122のいずれかから通信装置登録リクエストを受け付けることで開始される。以下の説明では、前記リクエストを送信したのは通信装置121であるとして説明する。
ステップS401で、通信装置情報管理モジュール312は、通信装置121から通信装置登録リクエストを受け取る。通信装置登録リクエストには、通信装置121のデバイスIDや、機種情報などのメタ情報が含まれる。通信装置情報管理モジュール312は、受け取った情報からデバイスIDである”deviceA”を取得し、通信装置管理テーブルへデバイスIDを登録する。
ステップS402で、通信装置情報管理モジュール312は、ステップS401で受信した通信装置121の機種情報を通信装置情報判別モジュール311に送信し、通信装置121の機種を特定する。通信装置情報判別モジュール311への問い合わせの結果、通信装置121がレンタル機であると判別された場合は、ステップS403へ遷移し、販売機であると判別された場合は、ステップS406へ遷移する。このように、通信装置情報判別モジュール311は、通信装置121が、レンタル機か否かを判定するデバイス判別部として機能する。
ステップS403で、通信装置情報管理モジュール312は、通信装置管理テーブルに登録されている”deviceA”のレコードに対し、機種が“レンタル機”である情報を書き込む。
ステップS404で、通信装置情報管理モジュール312は、通信装置管理テーブルに登録されている”deviceA”のレコードに対し、自動削除判定が“オン”である情報を書き込む。
ステップS405で、通信装置情報管理モジュール312は、通信装置管理テーブルに登録されている”deviceA”のレコードに対し、使用開始時刻に現在の日時を記録し、フローが終了する。
ステップS406で、通信装置情報管理モジュール312は、通信装置管理テーブルに登録されている”deviceA”のレコードに対し、機種が“販売機”である情報を書き込む。
ステップS407で、通信装置情報管理モジュール312は、通信装置管理テーブルに登録されている”deviceA”のレコードに対し、自動削除判定が“オフ”である情報を書き込み、ステップS405へ遷移する。ステップS405の処理を実行した後、フローが終了する。
仲介サーバ111のサービス登録モジュール313は、通信装置121、122からのサービス登録要求を受け付ける。そして、サービス登録モジュール313は、サービス提供サーバ131、132が提供する認可エンドポイントと認可リクエストを通信装置121、122に対して返却する。また、サービス登録モジュール313は、認可処理を終えた通信装置121、122から認可レスポンスを取得し、サービス提供サーバ131、132に対してアクセストークンの発行を要求する。取得したアクセストークンをアクセストークン管理モジュール315へ送信し、ユーザ情報及びサービス情報と紐付けて保存する。このように、サービス登録モジュール313は、サービス提供サーバ131からサービスの提供用の認可情報を取得する認可情報取得部として機能する。
表2は、サービス識別子と、サービスが提供するエンドポイントを記憶するためのサービス情報テーブルである。
Figure 2021196908
表2から、サービス識別子”serviceA”に対応するサービスは、認可エンドポイントとして、“https://aaa/authz”を持つことが特定できる。また、サービス識別子”serviceA”に対応するサービスは、トークンエンドポイントとして、“https://aaa/token”を持つことが特定できる。
仲介サーバ111のユーザ情報管理モジュール314は、仲介サーバ111上に登録されたユーザ情報を管理し、通信装置121、122からの要求に従ってユーザ情報を登録する。ユーザ情報管理モジュール314は、アクセストークン管理モジュール315とともに、通信装置を使用するユーザに関するユーザ情報と、認可情報と、デバイス情報とを関連付けて管理するユーザ情報管理部として機能する。
表3は、ユーザとユーザが使用している通信装置の情報を記憶するユーザ情報管理テーブルの例である。各ユーザは、ユーザを一意に識別するためのユーザIDで管理される。表3では、3人のユーザを管理していることを示すが、3人以上管理していてもよい。
Figure 2021196908
表3から、例えば、ユーザID“userA”に対応するユーザは、“deviceA”で表される通信装置で使用されているユーザであることが特定できる。パスワードは、ユーザが自身の情報を仲介サーバ111上に登録する際に保存した秘匿情報である。パスワードをユーザIDと合致させることで、ユーザ認証を行うことができる。
仲介サーバ111のアクセストークン管理モジュール315は、サービス提供サーバ131、132から取得したアクセストークン及びリフレッシュトークンを登録する。また、アクセストークン及びリフレッシュトークンを登録する際、アクセストークン及びリフレッシュトークンは、ユーザ情報管理テーブルに記録されているユーザ情報と紐付けて登録される。また、アクセストークン管理モジュール315は、後述するトークン自動削除処理を行う。
表4は、ユーザが使用しているサービスと、前記サービスに対応するサービス提供サーバが発行するアクセストークンとリフレッシュトークンを管理するアクセストークン管理テーブルの例である。ユーザが使用する各サービスは、サービスを一意に識別するためのサービス識別子で管理される。表4の例では、サービス提供サーバ131が提供するサービスに対して“serviceA”が割り当てられられる。また、サービス提供サーバ132が提供するサービスに対して、“serviceB”というサービス識別子が割り当てられる。
Figure 2021196908
表4から、ユーザID“userA”に対応するサービス識別子は、”serviceA”と”serviceB”であることが特定できる。また、ユーザIDが“userA”であり且つサービス識別子が”serviceA”である場合のアクセストークンは、”aaaa”であり、リフレッシュトークンは、“AAAA”であることが特定できる。また、また、ユーザIDが“userA”であり且つサービス識別子が”serviceB”である場合のアクセストークンは、”bbbb”であり、リフレッシュトークンは、“BBBB”であることが特定できる。
通信装置121、122のサービス連携モジュール321は、仲介サーバ111に対し、サービス提供サーバ131、132が提供するサービスの登録要求を行う。また、サービス連携モジュール321は、サービス提供サーバ131、132との間で認可処理による権限委譲のやりとりを行う。サービス連携モジュール321は、認可処理に必要なWebブラウザ機能を備える。Webブラウザ機能により、仲介サーバ111及びサービス提供サーバ131、132から取得した静的なコンテンツ(HTMLページ)は、通信装置121、122のディスプレイに表示される。
通信装置121、122のサービス管理モジュール322は、仲介サーバ111に登録されているユーザ情報と、ユーザが使用しているサービスおよびサービスが発行しているアクセストークンを取得し、管理する。
表5は、ユーザ情報とサービス情報を紐付けて保存するサービス管理テーブルの一例である。
Figure 2021196908
表5では、ユーザID“userA”に対応するサービス識別子は”serviceA”と”serviceB”であることが特定できる。また、ユーザIDが“userA”であり且つサービス識別子が”serviceA”である場合のアクセストークンは、”aaaa”であることが特定できる。また、ユーザIDが“userA”であり且つサービス識別子が”serviceB”である場合のアクセストークンは、”bbbb”であることが特定できる。サービス管理テーブルに保存される情報は、仲介サーバ111のアクセストークン管理テーブルに記録されている情報を取得して保存される。
通信装置121、122のアップロード機能モジュール323は、通信装置121、122の内部ストレージに保存されたデータを、外部ストレージにアップロードする。本実施形態においては、サービス提供サーバ131のストレージ機能を使用するものとする。
サービス提供サーバ131、132の認可処理モジュール331は、認可のためのエンドポイントを提供し、通信装置121、122からの認可リクエストを受けて、仲介サーバ111への権限委譲の処理を行う。
サービス提供サーバ131、132のアクセストークン発行モジュール332は、アクセストークン取得のためのエンドポイントを提供する。また、アクセストークン発行モジュール332は、仲介サーバ111からのトークンリクエストを受けて、アクセストークン及びリフレッシュトークンを発行する。アクセストークン発行モジュール332は、トークンリクエストに対して、ユーザからの権限委譲を受けたことの証左となる認可コードを含めることで、アクセストークンを発行する。また、リフレッシュトークンとサービス提供サーバ131、132が予め仲介サーバ111に対して発行しているクライアントクレデンシャルをトークンリクエストに含めることで、アクセストークンを発行する。
サービス提供サーバ131、132のサービス提供モジュール333は、各サービス提供サーバが提供するリソースやAPIを利用するためのエンドポイントを提供している。ここで、APIとは、Application Programming Interfaceの略語である。アクセストークンを所有している通信装置121、122又は仲介サーバ111が、前記エンドポイントに対してアクセストークンを含めてリクエストを送る。これにより、サービス提供サーバ131、132が提供する機能を利用することができる。本実施形態において、サービス提供サーバ131は、外部からのリクエストを受けて、サービス提供サーバ131の内部ストレージにデータを格納するストレージ機能を提供していることとする。
図5は、第1実施形態に係る、サービス登録フローを示す図であり、通信装置121が仲介サーバ111に対し、サービス提供サーバ131が提供するサービスの登録リクエストを行うフローである。なお、通信装置121とサービス提供サーバ131をそれぞれ通信装置122、サービス提供サーバ132に置き換えた場合も同様のフローとなる。
ステップS501で、サービス連携モジュール321が提供するユーザインタフェースをユーザが操作することにより、本フローは、開始する。図7は、第1実施形態に係る、サービス登録画面を示す図であり、図7(A)は、サービス連携モジュール321が提供する画面701の一例である。ユーザは、画面701に表示されているサービス登録ボタンを押下することで、サービス登録のフローを開始することができる。
ステップS502で、サービス連携モジュール321は、サービス登録モジュール313が提供するサービス登録エンドポイントへサービス登録開始リクエストを送信する。
ステップS503で、サービス登録モジュール313は、通信装置121に対し、ユーザログインのためのログイン画面702のHTMLページを送信する。図7(B)は、サービス登録モジュール313が提供するログイン画面702の一例である。ここで、ユーザが既に仲介サーバ111に対してユーザ登録を行っている場合は、ステップS504へ遷移し、ユーザ未登録であれば、ステップS507へ遷移する。
ステップS504〜ステップS506は、ユーザが既に仲介サーバ111に対してユーザ登録を行っている場合のログインフローである。
ステップS504で、ユーザは、自身のユーザIDとパスワードをログイン画面702に入力する。そして、ユーザは、ログイン画面702のログインボタンを押下する。
ステップS505で、ユーザからの入力を受けたサービス登録モジュール313は、仲介サーバ111に対して、入力されたユーザIDとパスワードを送信する。
ステップS506で、ユーザIDとパスワードを受け取ったサービス登録モジュール313は、ユーザ情報管理モジュール314へと問合せ、ユーザの認証を行う。ユーザ情報管理モジュール314は、ユーザ情報管理テーブルに登録されているユーザIDとパスワードを受け取った情報と照合する。そして、ユーザ情報管理モジュール314は、一致するユーザが存在すれば、サービス登録モジュール313に対して認証成功のレスポンスを返す。なお、一致するユーザが存在しない場合は、ユーザ情報管理モジュール314は、認証失敗のレスポンスを返す。この場合、サービス登録モジュール313は、通信装置121に対し、ログイン失敗のエラー画面(不図示)を送信する。
ステップS507〜ステップS512は、ユーザが仲介サーバ111に対してユーザ登録を行っていない場合のログインフローである。ステップS507で、ユーザは、ログイン画面702のユーザ登録ボタンを押下する。
ステップS508で、ユーザからの入力を受けたサービス連携モジュール321は、仲介サーバ111に対してユーザ登録リクエストを送信する。
ステップS509で、ユーザ登録リクエストを受け取ったサービス連携モジュール321は、通信装置121に対してユーザ登録画面のHTMLページを返却する。図7(C)は、サービス連携モジュール321が提供するサービス登録モジュール313が提供するユーザ登録画面703の一例である。ユーザ登録画面703のHTMLページを受け取ったサービス連携モジュール321は、通信装置121のディスプレイにユーザ登録画面703を表示する。
ステップS510で、ユーザは表示されたユーザ登録画面に登録したいユーザIDとパスワードを入力し、登録ボタンを押下する。
ステップS511で、ユーザからの入力を受けたサービス連携モジュール321は、入力されたユーザIDとパスワード、デバイスIDを仲介サーバ111へ送信する。
ステップS512で、ユーザIDとパスワードを受信したサービス登録モジュール313は、ユーザ情報管理モジュール314へユーザIDとパスワードを送信する。ユーザIDとパスワードを受け取ったユーザ情報管理モジュール314は、ユーザ情報管理テーブルにユーザID、パスワード、デバイスIDを登録する。
ステップS513で、サービス登録モジュール313は、通信装置121に対してユーザの認証、もしくは登録が成功した旨とサービス登録画面のHTMLページを送信する。図7(D)は、サービス登録モジュール313が提供するサービス登録画面704の一例である。サービス登録画面704のHTMLページを受け取ったサービス連携モジュール321は、サービス登録画面を通信装置121の画面に表示する。
ステップS516で、ユーザは、表示されたサービス登録画面704から登録したいサービスを選択する。本フローでは、サービス提供サーバ131が提供するサービスを選択したものとする。
ステップS517で、ユーザからの入力を受けたサービス連携モジュール321は、仲介サーバ111に対して選択されたサービスの登録リクエストを開始する。サービス登録モジュール313がサービス登録リクエストを受信したことで、サービス提供サーバ131に対する認可処理が行われる。
認可処理に関しては図6を用いて後述する。図6の認可処理では、ユーザとサービス提供サーバ131の間で仲介サーバ111に対する権限委譲の対話が行われる。この対話の結果により、サービス提供サーバ131から仲介サーバ111に対してユーザが権限委譲を行った証左となる認可コードが送信される。
ステップS518で、サービス登録モジュール313は、受け取った認可コードとともにアクセストークンを発行するためのトークンリクエストを送信する。ここで、トークンリクエストは、アクセストークン発行モジュール332が提供するトークンエンドポイントに送信される。
ステップS519で、トークンリクエストを受信したアクセストークン発行モジュール332は、受信した認可コードが正しいか否かの検証を行う。検証に成功した場合、認可コードに紐付くリソースのアクセスを許可するアクセストークンと、アクセストークンを更新するためのリフレッシュトークンを発行し、仲介サーバ111に返却する。
ステップS520で、サービス登録モジュール313は、アクセストークン管理モジュール315に対し、受信したトークン等の情報を送信する。この情報は、受信したアクセストークンとリフレッシュトークン、アクセストークンのリソース所有者であるユーザのID、サービス提供サーバ131のサービスIDである。アクセストークン管理モジュール315は、受信した情報をアクセストークン管理テーブルに保存する。
ステップS521で、サービス登録モジュール313は、通信装置121に対し、ユーザ登録完了画面のHTMLページを送信する。図7(E)は、サービス登録モジュール313が提供するサービス登録完了画面705の一例である。サービス連携モジュール321は、受信したページ、を通信装置121の画面に表示し、フローが終了する。
図6は、第1実施形態に係る、認可フローを示す図であり、ユーザ、通信装置121、仲介サーバ111、サービス提供サーバ131の間で行われる権限委譲処理を表したフローである。本フローは、ステップS517で、サービス連携モジュール321が仲介サーバ111に対してサービス登録リクエストを送信したことで開始される。
ステップS601で、まず、サービス登録モジュール313は、サービス登録リクエストを受信する。サービス登録モジュール313は、サービス登録リクエストに含まれるサービス識別子を用いて、サービス情報テーブルに登録されているサービスから、サービス提供サーバ131の認可エンドポイントを取得する。次に、サービス登録モジュール313は、認可リクエストのフォーマットに従って認可リクエストを生成する。認可リクエストには、仲介サーバ111の情報、後述するリダイレクト先のURL、権限委譲してほしいリソースの情報などを含める。サービス登録モジュール313は、サービス提供サーバ131の認可エンドポイントのURLと前記認可リクエストを連結したパラメータ付URLを、通信装置121に対して返却する。こうして、サービス登録モジュール313は、通信装置121に対し、前記パラメータ付URLに対しリダイレクトするよう指示する。
ステップS602で、サービス連携モジュール321は、受信したパラメータ付URLに接続する。
ステップS603で、認可処理モジュール331は、通信装置121から受信した認可リクエストを受けて、通信装置121に対してユーザ認証画面のHTMLページを送信する。図7(F)は、認可処理モジュール331が提供するユーザ認証画面706の一例である。ユーザ認証画面706を受信したサービス連携モジュール321は、通信装置121の画面にユーザ認証画面を表示する。
ステップS604で、ユーザは、ユーザ認証画面にユーザ認証に必要なIDとパスワードを入力する。ここで、必要なユーザIDとパスワードは、ユーザ情報管理モジュール314の登録されているユーザ情報とは異なり、ユーザがサービス提供サーバ131に対して予め登録していたアカウントユーザIDとパスワードとなる。
ステップS605で、サービス連携モジュール321は、ユーザが入力したユーザIDとパスワードをサービス提供サーバ131に送信する。
ステップS606で、認可処理モジュール331は、受信したユーザIDとパスワードが、サービス提供サーバ131に登録されているユーザ情報と一致するか否かの認証を行う。
ステップS607で、認可処理モジュール331は、通信装置121に対して、同意画面のHTMLページを送信する。図7(G)は、認可処理モジュール331が提供する同意画面707の一例である。同意画面707を受信したサービス連携モジュール321は、通信装置121の画面に、同意画面を表示する。同意画面707には、認可リクエストに含まれる仲介サーバ111の情報と、仲介サーバ111がアクセスしたいリソースの情報が含まれる。ユーザは、仲介サーバ111に対して前記リソースのアクセスを許可する場合は、同意画面707の同意ボタン(許可ボタン)を押下し、拒否する場合には、拒否ボタンを押下する。
ステップS608で、ユーザは、仲介サーバ111に対して、リソースにアクセスすることを許可するために、同意画面707の同意ボタンを押下する。
ステップS609で、通信装置121の画面に表示された同意画面から、サービス提供サーバ131に対して認可の同意情報が送信される。
ステップS610で、同意情報を取得した認可処理モジュール331は、ユーザが仲介サーバ111からのリソースへのアクセス許可に同意したことを示す認可コードを発行する。ステップS601で認可リクエストに含まれたリダイレクト先のURLと認可コードを連結し、通信装置121へ返却する。この時、通信装置121に対して即座に返却したURLへ接続するよう指示する。
ステップS611で、サービス連携モジュール321は、認可処理モジュール331から受け取ったURLへとアクセスする。前記URLは、サービス登録モジュール313が発行したURLである。サービス登録モジュール313は、URLに連結された認可コードを受け取ることができる。サービス登録モジュール313は、受け取った認可コードを、ROM203のデータROMに保存し、本フローが終了する。
図8は、第1実施形態に係る、サービス利用フローを示す図であり、通信装置121が、仲介サーバ111に保存されているアクセストークンを用いて、サービス提供サーバ131が提供するサービスを、利用するフローである。本フローは、ユーザが通信装置121の画面に表示されるユーザインタフェースを操作することで開始される。本フローでは、画面701上の「アップロード」機能ボタンを押下することで、通信装置121内のアップロード機能モジュール323が、サービス提供サーバ131のサービスを利用する例を説明する。
ステップS801で、ユーザは、通信装置121の画面701に表示されているアップロードボタンを押下する。
ステップS802で、アップロード機能モジュール323は、サービス提供サーバ131のアクセストークンを要求する。これは、アップロード機能モジュール323が、通信装置121の内部ストレージに保存されたデータを、サービス提供サーバ131にアップロードするために行われる。
ステップS503〜ステップS506で、仲介サーバ111上に保存されているユーザ情報に対して認証処理を行う。詳細は前述のステップS503からステップS506の説明と同様なので割愛する。
ステップS506で、認証処理を終え、認証成功のレスポンスを受け取ったアップロード機能モジュール323は、ステップS803で、アクセストークンを取得する。具体的には、アップロード機能モジュール323は、仲介サーバ111上のアクセストークン管理テーブルに保存されている、前記ログインユーザに紐付けられている”serviceA”のアクセストークンを取得する。
ステップS804で、アップロード機能モジュール323は、取得したアクセストークンを用いて、サービス提供モジュール333に対して画像アップロードURLを要求する。
ステップS805で、サービス提供モジュール333は、受け取ったアクセストークンを検証し、検証に成功するとアップロードURLを返却する。
ステップS806で、アップロード機能モジュール323は、受け取ったアップロードURLに対し、通信装置121の内部ストレージからデータを送信し、フローが終了する。
このように、仲介サーバ111が取得、管理しているアクセストークンを通信装置121へと渡すことで、通信装置121は、サービス提供サーバ131の機能を使用することが可能となる。
図9は、第1実施形態に係る、認可情報自動削除フローを示す図であり、アクセストークン管理モジュール315が、アクセストークン管理テーブルに保存されているアクセストークンを自動削除処理をするフローである。この処理は、ある一定の間隔で定期的に実行される。このため、本フローは、スケジューリングされたイベントを受けて、開始される。
ステップS901で、アクセストークン管理モジュール315は、通信装置情報管理モジュール312に対して、通信装置管理テーブルに保存されている通信装置情報を取得するよう要求する。取得した通信装置情報の中で、自動削除設定がオンになっている通信装置が存在するか確認する。1つでも存在する場合はステップS902へ、1つも存在しない場合は、本フローが終了する。
ステップS902で、アクセストークン管理モジュール315は、ステップS901で取得した自動削除対象通信装置が、使用開始時刻から現在時刻の間までに一定期間経過しているか否かを判定する。ここで一定期間とは、レンタル機の貸与期間より少し多めの時刻を設定する。例えば、貸与期間が2週間であれば、貸与期間よりも長く設定された1月程度の期間を一定期間であると想定する。使用開始から一定期間経過している自動削除対象通信装置が1つでも存在する場合は、ステップS903へ、1つも存在しない場合は、本フローが終了する。なお、使用開始の基準となるタイミングは、必ずしも開始時刻ではなく、開始日等、他のタイミングでもよい。
ステップS903で、アクセストークン管理モジュール315は、前ステップまでに取得した通信装置情報から削除対象のアクセストークンの特定を行う。アクセストークン管理モジュール315は、ユーザ情報管理モジュール314に対して、前記自動削除対象通信装置と紐付けられたユーザ一覧を取得するよう要求する。アクセストークン管理テーブルに保存されているアクセストークン情報の中で、取得したユーザと紐付けられているアクセストークン情報を削除対象として決定する。以下、ステップS904、ステップS905を全ての削除対象アクセストークンに対して繰り返し行う。
ステップS904で、アクセストークン管理モジュール315は、削除対象のアクセストークンを用いて、認可処理モジュール331が提供する認可無効化エンドポイントに無効化リクエストを送信する。無効化リクエストを受けた認可処理モジュール331は、アクセストークンに紐付けられたユーザが仲介サーバ111に対して権限委譲の情報を削除し、新規にアクセストークンが発行できないように無効化する。
ステップS905で、アクセストークン管理モジュール315は、削除対象のアクセストークンに係る情報をアクセストークン管理テーブルから削除する。
ステップS906で、全ての削除対象アクセストークンに対してステップS904、ステップS905が終了したことをもって、本フローが終了する。
第1実施形態によれば、レンタル機として登録され、予め一定期間でユーザが使用を中止するとわかっている通信装置に対して、使用開始からの期限を確認し、係る認可情報を自動的に無効化及び削除できるようにする。これにより、通信装置を使用するユーザが認可情報を無効化及び削除せずに通信装置を手放した場合にも、認可情報を適切に無効化及び削除することが可能となる。
[第2実施形態]
以下、本発明の第2実施形態について図面を用いて説明する。上記第1実施形態において、レンタル機として仲介サーバ111に登録された通信装置に関する認可情報は、一定期間経過した後に全て自動的に削除していた。第2実施形態では、レンタル機を使用していたユーザが、販売機に買い替えることで、通信装置の置き換えを行った場合、ユーザが使用していたレンタル機で登録された認可情報を自動削除しないようにする実施形態を説明する。
図10は、第2実施形態に係る、通信装置登録フローを示す図であり、通信装置121が、仲介サーバ111に対し通信装置登録リクエストを行うフローである。本フローは、通信装置情報管理モジュール312が、通信装置情報管理テーブルに未登録の通信装置から通信装置登録リクエストを受け付けることで開始される。なお、既に説明済みのステップS401からステップS405に関しては説明を省略もしくは簡略化する。
ステップS401〜ステップ402までは図4での説明と同様の遷移となる。ステップS402で、登録リクエストを送信した通信装置がレンタル機であると判断された場合は、ステップS403へ遷移し、レンタル機ではないと判断された場合は、ステップS1001へ遷移する。
ステップS1001で、通信装置情報管理モジュール312は、通信装置登録リクエストを送信した通信装置が、通信装置情報管理テーブルに登録済みのレンタル機からの置き換え機(置換デバイス)であるか否かを判定する。置き換えか否かの判定は、通信装置登録リクエストに含まれるデバイスIDが、通信装置情報管理テーブルに登録されており、且つ、当該デバイスIDがレンタル機のものである場合に、置き換えであると判断する。置き換えであると判断された場合は、ステップS1002へ遷移し、置き換えではないと判断された場合は、ステップS1003へ遷移する。
ステップS1002で、通信装置情報管理モジュール312は、通信装置情報管理テーブルに登録されている置き換え対象通信装置の機種情報を「販売機」へ変更し、自動削除設定を「オフ」へと変更する。その後、ステップS405へ遷移する。
ステップS1003で、通信装置情報管理モジュール312は、通信装置登録リクエストを送信した通信装置を、通信装置情報管理テーブルに新規に登録する。この時、機種情報は「販売機」となる。
ステップS1004で、通信装置情報管理モジュール312は、ステップS1003で登録した通信装置情報の自動削除設定をオフに設定し、ステップS405へ遷移する。
第2実施形態によれば、仲介サーバ111に対して登録される通信装置が通信装置情報管理テーブルに登録済みのレンタル機であった場合に、テーブルのレコードを更新し、自動削除設定をオフにする。これにより、元は自動削除対象の通信装置であっても、利用を継続しているユーザに対しては、認可情報を削除せずに、使用し続けることが可能となる。
[第3実施形態]
以下、本発明の第3実施形態について図面を用いて説明する。第1実施形態では、通信装置121、122からサービス提供サーバ131の提供するサービスを利用するために、通信装置内にアクセストークンを保持する構成となっている。ユーザからの通信装置の操作により、通信装置内のアクセストークンを削除するケースが考えられる。第3実施形態では、通信装置内に登録されたアクセストークンを削除すると同時に、仲介サーバ111上に登録されたアクセストークンを削除する実施形態について説明する。
図11は、第3実施形態に係る、認可情報削除フローを示す図である。具体的には、アクセストークン管理モジュール315及びサービス管理モジュール322が、それぞれアクセストークン管理テーブルとサービス管理テーブルに登録されているアクセストークンを削除するフローである。
ステップS1101で、通信装置が提供するユーザインタフェースを操作することで、ユーザが保持するアクセストークンの削除要求を開始する。前記ユーザインタフェースは、サービス管理モジュール322が提供しても良いし、アップロード機能モジュール323やその他不図示の機能モジュールが提供していてもよい。サービス管理モジュール322以外のモジュールがユーザインタフェースを提供する場合、要求を受けたモジュールは、サービス管理モジュール322に対して削除開始リクエストを送信する。
ステップS1102で、トークン削除開始リクエストを受けたサービス管理モジュール322は、仲介サーバ111に対してユーザ認証のリクエストを送信する。以下、ステップS503〜ステップS506まで、ユーザ認証に係る処理を実行する。
ステップS1103で、ユーザ認証に成功した場合サービス管理モジュール322は、サービス管理テーブルに保存されている削除対象のアクセストークンを削除する。
ステップS1104で、サービス管理モジュール322は、仲介サーバ111に対して、ステップS1103で削除したアクセストークンと同一のアクセストークンを削除するよう、リクエストを送信する。リクエストを受けたアクセストークン管理モジュール315は、該当するアクセストークンが存在しない場合は、エラーレスポンスを返しフローを終了する。該当するアクセストークンが存在する場合は、ステップS904の認可情報の無効化処理を行った後に、ステップS905のアクセストークン削除処理を行い、成功レスポンスを返す。
第3実施形態によれば、ユーザからのアクセストークン削除リクエストを受けて、通信装置121と仲介サーバ111上に存在する同一のアクセストークンを合わせて削除することが可能となる。第1実施形態で記載したトークンの自動削除処理と合わせて、任意のタイミングでトークンを削除する機能を提供することで、より安全なシステムとなる。
以上、本発明をその好適な実施形態に基づいて詳述したが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施形態の一部を適宜組み合わせてもよい。
上述の実施形態では、通信装置の種類について、サービス提供期間が制限されている制限付きデバイスがレンタル機であるとして説明したが、これに限るものではなく、制限付きデバイスは、必ずしも貸与を伴うものでなくともよい。また、上述の実施形態では、サービス提供期間が制限されていないデバイスを販売機として説明したが、これに限るものではなく、必ずしもデバイスの販売を伴うものでなくともよい。また、置換デバイスを販売機であるとして説明したが、置換デバイスは、必ずしも販売を伴って利用可能となったものに限られない。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
111…仲介サーバ
121…通信装置
131…サービス提供サーバ
311…通信装置情報判別モジュール
312…通信装置情報管理モジュール
313…サービス登録モジュール
321…サービス連携モジュール

Claims (7)

  1. デバイスに対するサービスの提供を仲介するサーバ装置であって、
    前記サービスの提供用の認可情報を取得する認可情報取得部と、
    前記デバイスからデバイス情報を受信して管理するデバイス管理部と、
    前記デバイスを使用するユーザに関するユーザ情報と、前記認可情報と、前記デバイス情報とを関連付けて管理するユーザ情報管理部と、
    前記デバイスが、前記サービスのサービス提供期間が制限されている制限付きデバイスであるか否かを判定するデバイス判別部と、を有し、
    前記ユーザ情報管理部は、前記デバイスが前記制限付きデバイスであり且つ前記制限付きデバイスへの前記サービス提供期間の開始から一定期間が経過した場合に、前記デバイス情報に関連する前記認可情報の無効化及び削除を行う
    ことを特徴とするサーバ装置。
  2. 前記デバイス判別部は、前記デバイスが前記制限付きデバイスから置き換わった置換デバイスであるかを判定し、
    前記ユーザ情報管理部は、前記デバイスが前記置換デバイスであった場合に、前記デバイス情報に関連する前記認可情報の前記無効化及び前記削除を行うことを中止する
    ことを特徴とする請求項1に記載のサーバ装置。
  3. 前記ユーザ情報管理部は、前記デバイスから前記認可情報の前記無効化及び前記削除の要求を受けた場合、前記デバイス情報に関連する前記認可情報の前記無効化及び前記削除を行う
    ことを特徴とする請求項1又は2に記載のサーバ装置。
  4. 前記制限付きデバイスは、貸与期間の間だけ前記ユーザへの貸与がなされる貸与デバイスであり、
    前記一定期間は、前記貸与期間よりも長く設定されている
    ことを特徴とする請求項1乃至3のいずれか1項に記載のサーバ装置。
  5. デバイスと、前記デバイスに対してサービスの提供をさせるためのサーバ装置とを有するシステムであって、
    前記サーバ装置は、
    前記サービスの提供用の認可情報を取得する認可情報取得部と、
    前記デバイスからデバイス情報を受信して管理するデバイス管理部と、
    前記デバイスを使用するユーザに関するユーザ情報と、前記認可情報と、前記デバイス情報とを関連付けて管理するユーザ情報管理部と、
    前記デバイスが、前記サービスのサービス提供期間が制限されている制限付きデバイスであるか否かを判定するデバイス判別部と、を有し、
    前記ユーザ情報管理部は、前記デバイスが前記制限付きデバイスであり且つ前記制限付きデバイスへの前記サービス提供期間の開始から一定期間が経過した場合に、前記デバイス情報に関連する前記認可情報の無効化及び削除を行う
    ことを特徴とするシステム。
  6. デバイスに対してサービスの提供をさせるためのサーバ装置の制御方法であって、
    前記サービスの提供用の認可情報を取得する工程と、
    前記デバイスからデバイス情報を受信して管理する工程と、
    前記デバイスを使用するユーザに関するユーザ情報と、前記認可情報と、前記デバイス情報とを関連付けて管理する工程と、
    前記デバイスが、前記サービスのサービス提供期間が制限されている制限付きデバイスであるか否かを判定する工程と、
    前記デバイスが前記制限付きデバイスであり且つ前記制限付きデバイスへの前記サービス提供期間の開始から一定期間が経過した場合に、前記デバイス情報に関連する前記認可情報の無効化及び削除を行う工程と、を有する
    ことを特徴とする制御方法。
  7. コンピュータに請求項6に記載の制御方法を実行させることを特徴とするプログラム。

JP2020103346A 2020-06-15 2020-06-15 サーバ装置、システム、制御方法及びプログラム Pending JP2021196908A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020103346A JP2021196908A (ja) 2020-06-15 2020-06-15 サーバ装置、システム、制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020103346A JP2021196908A (ja) 2020-06-15 2020-06-15 サーバ装置、システム、制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2021196908A true JP2021196908A (ja) 2021-12-27

Family

ID=79195631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020103346A Pending JP2021196908A (ja) 2020-06-15 2020-06-15 サーバ装置、システム、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2021196908A (ja)

Similar Documents

Publication Publication Date Title
JP6166596B2 (ja) 認可サーバーシステムおよびその制御方法、並びにプログラム
US9571494B2 (en) Authorization server and client apparatus, server cooperative system, and token management method
JP4892093B1 (ja) 認証連携システム及びidプロバイダ装置
JP6425738B2 (ja) 情報処理装置、情報処理装置の制御方法、情報処理システム、およびコンピュータプログラム
JP5814639B2 (ja) クラウドシステム、クラウドサービスのライセンス管理方法、およびプログラム
US7330971B1 (en) Delegated administration of namespace management
JP2018163616A (ja) 認証認可サーバー、リソースサーバー、認証認可システム、認証方法及びプログラム
US20150365348A1 (en) System, method, server system, and storage medium
JP2015001974A (ja) 認証システム、その制御方法、サービス提供装置およびコンピュータプログラム
JP5383838B2 (ja) 認証連携システム、idプロバイダ装置およびプログラム
TW201141159A (en) Securing asynchronous client server transactions
JP2728033B2 (ja) コンピュータネットワークにおけるセキュリティ方式
JP2011034462A (ja) 情報処理装置及びその処理方法
JP7262378B2 (ja) 認証認可システムおよび認証認可方法
JP5179298B2 (ja) アクセス認可システム、アクセス制御サーバ、およびビジネスプロセス実行システム
JP6459270B2 (ja) 情報処理装置及びプログラム
JP2019139621A (ja) 認証認可情報統合装置及び認証認可情報統合方法
JP2016224684A (ja) サーバーシステム、サーバーシステムの制御方法、およびプログラム
JP2016009466A (ja) Webサービスシステム、認証認可装置、情報処理装置、情報処理方法及びプログラム
JP2020030759A (ja) 権限委譲システム、情報処理装置およびその制御方法、並びにプログラム。
JP6807239B2 (ja) タイムスタンプ管理システム、タイムスタンプ管理方法、およびタイムスタンプ管理プログラム
JP6303312B2 (ja) サービス提供システム及び画像提供方法
JP2019036245A (ja) 情報処理装置
JP2006260123A (ja) 債権管理システム、債権管理方法及びプログラム
JP6205946B2 (ja) サービス提供システム、情報収集方法及びプログラム