IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

<>
  • 特許-情報処理装置、認証方法、プログラム 図1
  • 特許-情報処理装置、認証方法、プログラム 図2
  • 特許-情報処理装置、認証方法、プログラム 図3
  • 特許-情報処理装置、認証方法、プログラム 図4
  • 特許-情報処理装置、認証方法、プログラム 図5
  • 特許-情報処理装置、認証方法、プログラム 図6
  • 特許-情報処理装置、認証方法、プログラム 図7
  • 特許-情報処理装置、認証方法、プログラム 図8
  • 特許-情報処理装置、認証方法、プログラム 図9
  • 特許-情報処理装置、認証方法、プログラム 図10
  • 特許-情報処理装置、認証方法、プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-12
(45)【発行日】2022-09-21
(54)【発明の名称】情報処理装置、認証方法、プログラム
(51)【国際特許分類】
   G06F 21/44 20130101AFI20220913BHJP
   G06F 21/31 20130101ALI20220913BHJP
   G06F 21/62 20130101ALI20220913BHJP
   B41J 29/00 20060101ALI20220913BHJP
【FI】
G06F21/44
G06F21/31
G06F21/62
B41J29/00 Z
【請求項の数】 9
(21)【出願番号】P 2018141843
(22)【出願日】2018-07-27
(65)【公開番号】P2020017235
(43)【公開日】2020-01-30
【審査請求日】2021-05-20
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】南 広一郎
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2016-018331(JP,A)
【文献】国際公開第2013/108377(WO,A1)
【文献】特開2014-211857(JP,A)
【文献】特開2016-181200(JP,A)
【文献】特開2017-038515(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/44
G06F 21/31
G06F 21/62
B41J 29/00
(57)【特許請求の範囲】
【請求項1】
ユーザが操作を入力する操作部と、
前記操作部と通信する本体装置と、を有し、
前記操作部では、ユーザからの認証情報を受け付け前記本体装置に送信する第2のアプリケーションソフトと、ユーザが操作しなくても動作する第1のアプリケーションソフトが動作しており、
前記本体装置は、
ユーザが前記第2のアプリケーションソフトに入力した第1の認証情報に基づいて前記ユーザの認証を行う認証手段と、
前記第1のアプリケーションソフトが生成する認証要求を受信する認証要求受信手段と、
前記認証要求受信手段が受信した前記認証要求に第2の認証情報が含まれている場合、前記第2の認証情報に基づいて前記第1のアプリケーションソフトを認証し、前記認証要求に前記第2の認証情報が含まれていない場合、前記認証手段から前記ユーザの認証結果を取得する認証制御手段と、
前記第2の認証情報に基づく認証結果又は前記ユーザの認証結果に基づいて処理を行う処理手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記ユーザが前記第1の認証情報を入力していないため前記認証手段が前記第1の認証情報に基づいて前記ユーザの認証を行っておらず、前記認証要求に第2の認証情報が含まれている場合、
前記認証制御手段は、前記第2の認証情報に基づいて前記第1のアプリケーションソフトを認証し、
前記処理手段は、前記第2の認証情報に基づく認証結果に基づいて処理を行うことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記認証要求に第2の認証情報が含まれ、前記第2の認証情報に基づく認証結果に管理者権限が含まれており、
前記認証手段による前記ユーザの認証結果に一般ユーザの権限が含まれている場合、
前記処理手段は管理者権限に基づいて処理を行うことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記認証要求に第2の認証情報が含まれ、前記第2の認証情報に基づく認証結果に一般ユーザの権限が含まれており、
前記認証手段による前記ユーザの認証結果に管理者権限が含まれている場合、
前記処理手段は一般ユーザの権限に基づいて処理を行うことを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
記第1のアプリケーションソフトは、前記本体装置に送信するリクエストに前記第2の認証情報を含めるか含めないかを切り替え、前記リクエストを前記認証要求として前記本体装置に送信することを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
【請求項6】
前記リクエストのヘッダ情報に前記第2の認証情報が含まれることを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記認証制御手段は、ネットワークを介して通信する外部装置から前記第2の認証情報が含まれている前記認証要求を前記認証要求受信手段が受信した場合、
前記認証要求に前記第2の認証情報が含まれていないとみなすことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
ユーザが操作を入力する操作部と、
前記操作部と通信する本体装置と、を有する情報処理装置が行う認証方法であって、
前記操作部では、ユーザからの認証情報を受け付け前記本体装置に送信する第2のアプリケーションソフトと、ユーザが操作しなくても動作する第1のアプリケーションソフトが動作しており、
前記本体装置は、
認証手段が、ユーザが前記第2のアプリケーションソフトに入力した第1の認証情報に基づいて前記ユーザの認証を行うステップと、
認証要求受信手段が、第1のアプリケーションソフトが生成する認証要求を受信するステップと、
認証制御手段が、前記認証要求受信手段が受信した前記認証要求に第2の認証情報が含まれている場合、前記第2の認証情報に基づいて前記第1のアプリケーションソフトを認証し、前記認証要求に前記第2の認証情報が含まれていない場合、前記認証手段から前記ユーザの認証結果を取得するステップと、
処理手段が、前記第2の認証情報に基づく認証結果又は前記ユーザの認証結果に基づいて処理を行うステップと、
を有することを特徴とする認証方法。
【請求項9】
情報処理装置が、ユーザが操作を入力する操作部と、
前記操作部と通信する本体装置と、を有し、
前記操作部では、ユーザからの認証情報を受け付け前記本体装置に送信する第2のアプリケーションソフトと、ユーザが操作しなくても動作する第1のアプリケーションソフトが動作しており、
前記本体装置を、
ユーザが前記第2のアプリケーションソフトに入力した第1の認証情報に基づいて前記ユーザの認証を行う認証手段と、
第1のアプリケーションソフトが生成する認証要求を受信する認証要求受信手段と、
前記認証要求受信手段が受信した前記認証要求に第2の認証情報が含まれている場合、前記第2の認証情報に基づいて前記第1のアプリケーションソフトを認証し、前記認証要求に前記第2の認証情報が含まれていない場合、前記認証手段から前記ユーザの認証結果を取得する認証制御手段と、
前記第2の認証情報に基づく認証結果又は前記ユーザの認証結果に基づいて処理を行う処理手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、認証方法、及び、プログラムに関する。
【背景技術】
【0002】
ユーザが情報処理装置を使用する際にログインを求められる場合がある。例えば、画像形成装置の場合、認証情報に基づいてログインしたユーザの権限(一般ユーザ権限又は管理者権限など)で画像形成装置の情報の取得又は設定が可能であり、印刷ジョブなどを実行できる。
【0003】
また、例えば画像形成装置が他の機器と連携して一連の処理を行うことができるようになったが、この場合、ユーザは一の機器と他の機器との両方にログインしなければならなかった。このような不都合に対し、ユーザが利用できる機能を制限しつつ一の機器を他の機器と連携させて一連の処理を行う技術が知られている(例えば、特許文献1参照。)。特許文献1には、チケットの署名情報及び他の機器の証明書情報に基づくチケットの検証が成功すると、チケットに含まれるユーザ識別子情報及びアクセス制御情報を登録し、他の機器からのリクエストの処理を実行するか否かをユーザ識別子情報及びアクセス制御情報に基づいて判断する画像形成装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の認証方法では、ユーザが誰もログインしていない場合にアプリケーションソフトが動作することができないという問題があった。まず、ユーザが操作しなくても動作するアプリケーションソフトを画像形成装置等にインストールしたいという要請がある。例えば、深夜など人のいない時間帯に画像形成装置の本体装置が受信したファクスを、外部サーバへ転送するような処理を行うアプリケーションソフトが想定されている。アプリケーションソフトが動作する操作部が本体装置から文書を引き取る必要があるため、一般ユーザ権限(又は文書管理者権限)が必要になるが、誰もログインしていないため文書を引き取ることができない。このように、従来は、ユーザがログインしていない場合、アプリケーションソフトに所望の動作を行わせることが困難であった。
【0005】
本発明は、上記課題に鑑み、ユーザがログインしていない場合にアプリケーションソフトが動作することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題に鑑み、本発明は、ユーザが操作を入力する操作部と、前記操作部と通信する本体装置と、を有し、前記操作部では、ユーザからの認証情報を受け付け前記本体装置に送信する第2のアプリケーションソフトと、ユーザが操作しなくても動作する第1のアプリケーションソフトが動作しており、前記本体装置は、ユーザが前記第2のアプリケーションソフトに入力した第1の認証情報に基づいて前記ユーザの認証を行う認証手段と、前記第1のアプリケーションソフトが生成する認証要求を受信する認証要求受信手段と、前記認証要求受信手段が受信した前記認証要求に第2の認証情報が含まれている場合、前記第2の認証情報に基づいて前記第1のアプリケーションソフトを認証し、前記認証要求に前記第2の認証情報が含まれていない場合、前記認証手段から前記ユーザの認証結果を取得する認証制御手段と、前記第2の認証情報に基づく認証結果又は前記ユーザの認証結果に基づいて処理を行う処理手段と、を有することを特徴とする情報処理装置を提供する。
【発明の効果】
【0007】
本発明は、ユーザがログインしていない場合にアプリケーションソフトが動作することができる情報処理装置を提供することができる。
【図面の簡単な説明】
【0008】
図1】画像形成装置における認証と認証によりどのような権限で動作するかの関係を説明する図の一例である。
図2】画像形成装置のハードウェア構成例を示す図である。
図3】画像形成装置のソフトウェア構成の一例を示す模式図である。
図4】画像形成装置が有する機能をブロック状に示す機能ブロック図の一例である。
図5】リクエスト送信部が送信するリクエストの一例を示す図である。
図6】認証成功時のレスポンスの一例を示す図である。
図7】認証失敗時のレスポンスの一例を示す図である。
図8】権限なしを示すレスポンスの一例を示す図である。
図9】主に本体装置の処理手順を示す一例のフローチャート図である。
図10】画像形成装置と外部装置を有するシステムの概略構成図の一例である。
図11】外部装置からのリクエストを処理する手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【0009】
<課題の補足>
まず、課題について補足する。上記のように、ユーザが誰もログインしていない場合にアプリケーションソフトが動作することができないという課題があった。
【0010】
また、一方、画像形成装置では、ユーザが一般ユーザでログインしている場合、管理者権限が必要な情報を取得できず、ユーザが管理者権限でログインしている場合、ジョブを実行できないという制限がある。しかし、ユーザが一般ユーザでログインしている場合に、バックグラウンドで動作するアプリケーションソフトが必要とする管理者権限の情報を取得したい場合がある(ユーザは特に管理者権限の情報を使用しない)。あるいは、ユーザが管理者権限でログインしている場合に、バックグラウンドで動作するアプリケーションソフトがジョブを実行する必要がある場合もある。これらの不都合を解決するために、従来は、アプリケーションソフトが必要に応じて管理者権限でのログイン又は一般ユーザでのログインに切り替える必要があるという課題がある。
【0011】
なお、バックグラウンドで動作するアプリケーションソフトとは、ユーザがジョブの実行に使用するアプリケーションソフトとは別に動作するアプリケーションソフトである。ユーザはバックグラウンドで動作するアプリケーションソフトが動作していることを意識しない場合が多い。
【0012】
<本実施形態の画像形成装置の動作の概略>
まず、図1を用いて、本実施形態の画像形成装置の概略的な動作を説明する。図1は、本実施形態の画像形成装置100における認証と認証によりどのような権限で動作するかの関係を説明する図の一例である。図1に示すように、本実施形態の画像形成装置100は操作部80と本体装置90が別々の装置に分かれており、操作部80と本体装置90は互いに通信する。また、操作部80ではユーザログインアプリ40と操作部アプリ50が動作する。ユーザログインアプリ40はユーザのログインを受け付けるアプリケーションソフトであり、操作部アプリ50はバックグラウンドで動作する。
【0013】
画像形成装置100は、操作部アプリ50が本体装置90に送信するリクエスト(HTTPリクエスト)に認証用ヘッダがあるか否かによって、認証用ヘッダの認証で許可された権限で動作するか、操作部80からログインしたユーザの権限で動作するかを判断する。
【0014】
まず、図1(a)はリクエストに認証用ヘッダがある場合を示す。ユーザログインアプリ40はユーザのログイン操作を受け付け、本体装置90に認証要求を送信する。ただし、本実施形態ではユーザのログイン操作はあってもなくてもよい(ユーザが操作部80を操作しているか否かは関係がない。)。また、操作部アプリ50が認証用ヘッダを含むリクエストを本体装置90に送信する。この場合、本体装置90は認証用ヘッダで操作部アプリ50を認証するので、操作部アプリ50の権限で動作する。
【0015】
次に、図1(b)はリクエストに認証用ヘッダがない場合を示す。同様に、ユーザログインアプリ40はユーザのログイン操作を受け付け、本体装置90に認証要求を送信する。ユーザのログイン操作はあってもなくてもよい。また、操作部アプリ50が認証用ヘッダのないリクエストを本体装置90に送信する。この場合、画像形成装置100は、ユーザがログインしていればユーザの権限で動作し、ユーザがログインしていなければ何ら権限がないので原則的にエラーを返す(権限が必要ない処理要求に対してはリクエストが認められる場合があってよい)。
【0016】
以上のような構成によれば、操作部アプリ50は、ユーザがログインしていなくても本体装置90に処理を要求でき、操作部アプリ50はユーザの操作に関係なく所望の処理を行うことができる。
【0017】
また、一般ユーザがユーザログインアプリ40でログインしており、操作部アプリ50が認証用ヘッダのあるリクエストを本体装置90に送信した場合、操作部アプリ50の権限で動作するので、操作部アプリ50が管理者権限でログインすれば、操作部アプリ50が動作するために必要な例えば管理者権限の情報を取得できる。管理者がユーザログインアプリ40でログインしており、操作部アプリ50が認証用ヘッダのあるリクエストを送信した場合、操作部アプリ50の権限で動作するので、操作部アプリ50の権限が一般ユーザであれば操作部アプリ50がジョブを実行できる。
【0018】
このように、本実施形態の画像形成装置100の操作部アプリ50は、ユーザが一般ユーザでログインしている場合でも管理者権限が必要な情報を取得でき、ユーザが管理者権限でログインしている場合でもジョブを実行できる。また、画像形成装置100のリソースに対するアクセスポリシーを維持した状態で(アクセスポリシーを変更せずに)、異なる権限の情報を取得できる。
【0019】
<用語について>
認証とは、画像形成装置のユーザが本人かどうかを確認することをいう。また、認証に使用される情報を認証情報という。認証情報は、ユーザを識別する情報と、識別する情報を確認する情報の組み合わせである。識別する情報を確認する情報は、例えばパスワード、ICカード番号、又は生体認証情報などが使用される。認証情報はアカウント情報、証明書、トークンなどと呼ばれてもよい。認証が成功するとユーザがログインできる。ログインとは、コンピュータの利用開始時にユーザの身元や妥当性を識別してさまざまなリソースへのアクセスに必要な資格情報を取得するための操作のことをいう。ユーザの権限に応じてアクセスできるリソースが制限される場合がある。なお、ログインをログオン、サインイン、又は、サインオンという場合がある。
【0020】
認証結果とはユーザが本人であると確認できたこと(認証が成功したこと)、又は、ユーザが本人であると確認できないこと(認証が失敗したこと)をいう。また、認証結果にはユーザがどのような権限を有するかを含んでよい。権限とは正式に行為し得る権利の範囲であり、画像形成装置では操作できる範囲をいう。
【0021】
ユーザには権限が異なる一般ユーザと管理者がある。一般ユーザは画像形成装置100を使用する一般的なユーザであり、管理者は画像形成装置100の設定を変更する権限を有するなど、画像形成装置100を管理するユーザである。
【0022】
<構成例>
続いて、図2を用いて画像形成装置100のハードウェア構成例を説明する。図2(a)は、画像形成装置100の構成を模式的に示す図の一例である。本体装置90は、操作部80と通信可能に接続される。本体装置90と操作部80との通信は、例えば、USB(Universal Serial Bus)、近距離無線通信(Bluetooth(登録商標)又は赤外線等)、又は、LAN(有線又は無線の別は問わない)等のネットワークを介して行われる。
【0023】
本体装置90は、画像形成機能、スキャナ機能、ファクス機能、及び、コピー機能などの機能のうち少なくとも1つ以上を有する。これらのうち複数の機能を有する画像形成装置100は、複合機又はMFP(Multifunction Peripheral/Printer/Product)と呼ばれる場合がある。また、画像形成装置100は、印刷装置又はプリンタと呼ばれていてもよい。
【0024】
本体装置90は画像形成装置100の主な機能を提供するのに対し、操作部80ではアプリケーションソフトが動作して種々の画面を表示して画面に対する入力を受け付け、また、処理結果を出力(表示)する。つまり、操作部80は画像形成装置100におけるユーザインタフェースとなる。
【0025】
操作部80は、例えば、スマートフォンやタブレット型端末等、単独で完結した情報処理を実行可能な情報処理装置である。操作部80は、従来、画像形成装置100の専用の操作部80として設置されていた操作パネルの代わりに、本体装置90に接続される。操作部80と本体装置90とは、一台の装置として把握されてもよい。また、操作部80は画像形成装置100から取り外しができなくてもよいし、取り外しができてもよい。
【0026】
次に、図2(b)を用いて、画像形成装置100のハードウェア構成について説明する。図2(b)は、画像形成装置100のハードウェアブロック図の一例を示す。画像形成装置100の本体装置90と操作部80は、通信路300を介して相互に通信可能に接続されている。
【0027】
本体装置90は、操作部80が受け付けた操作に応じた動作を行うことができる。また、本体装置90は、クライアントPC(パーソナルコンピュータ)やサーバ等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
【0028】
まず、本体装置90のハードウェア構成について説明する。本体装置90は、CPU11と、ROM12と、RAM13と、HDD(ハードディスクドライブ)14と、通信I/F(インタフェース)15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
【0029】
CPU11は、本体装置90の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12又はHDD14等に格納されたプログラム90pを実行しエンジン部17を制御することで、本体装置90全体の動作を制御する。また、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
【0030】
通信I/F15は、ネットワーク501と接続するためのインタフェースである。接続I/F16は、通信路300を介して操作部80と通信するためのインタフェースである。
【0031】
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、及び、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(スキャナ機能)、用紙等のシート材への印刷を行うプロッタ(印刷機能)、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿搬送装置)のような特定のオプションを備えることもできる。
【0032】
次に、操作部80のハードウェア構成について説明する。操作部80は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、ディスプレイ27と、外部接続I/F28と、ホームキー29とを備える。これらがシステムバス30を介して相互に接続されている。
【0033】
CPU21は、操作部80の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22又はフラッシュメモリ24等に格納されたプログラム80pを実行することで、操作部80全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
【0034】
通信I/F25は、ネットワーク501と接続するためのインタフェースである。接続I/F26は、通信路300を介して本体装置90と通信するためのインタフェースである。
【0035】
ディスプレイ27は、ユーザの操作に応じた各種の入力を受け付けると共に、各種の情報(例えば受け付けた操作に応じた情報、画像形成装置100の動作状況を示す情報、設定状態などを示す情報など)を画面として表示する。ディスプレイ27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。また、操作部80はディスプレイ27に加えて、ハードウェアキーやランプ表示などを有していてもよい。例えば、ホームキーと呼ばれるハードウェアキーとして装備していることで、ユーザはホームキーを押下することで利用可能なアプリの一覧を表示できる。
【0036】
外部接続I/F28は、外部の装置と通信するためのインタフェースであり、例えばICカードリーダー/ライターと接続することができる。
【0037】
<ソフトウェア構成例>
次に、図3を用いて画像形成装置100のソフトウェア構成について説明する。図3は、画像形成装置100のソフトウェア構成の一例を示す模式図である。図3に示すように、本体装置90は、アプリ層101と、サービス層102と、OS層103とを有する。アプリ層101、サービス層102、及び、OS層103の実体は、ROM12やHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
【0038】
アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトである。例えばアプリケーションソフトとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリ、画像形成装置100の情報を通知する機器情報通知アプリなどが挙げられる。
【0039】
サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリに対し、本体装置90が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受付、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
【0040】
なお、サービス層102によるインタフェースの機能は、本体装置90のアプリ層101だけではなく、操作部80のアプリ層201に対しても提供される。すなわち、操作部80のアプリ層201のアプリケーションソフトも、サービス層102のインタフェース機能を介して、本体装置90のハードウェア資源(例えばエンジン部17)を利用した機能を実現することができる。例えばサービス層102のインタフェース機能は、WebAPIで提供される。操作部80と本体装置90は、通信路300をネットワークとして通信することができる。
【0041】
OS層103のソフトウェアは、本体装置90が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム(OS))である。サービス層102のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
【0042】
同様に、操作部80は、アプリ層201と、サービス層202と、OS層203とを有する。操作部80が備えるアプリ層201、サービス層202及びOS層203も、階層構造については本体装置90側と同様である。ただし、アプリ層201のアプリケーションソフトにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体装置90側とは異なる。アプリ層201のアプリケーションソフトは、操作部80が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体装置90が備える機能(コピー機能、スキャナ機能、ファクス機能、プリンタ機能、初期設定機能)に関する操作や表示を行うためのUI(ユーザインタフェース)の機能(コピーのUI機能、スキャナのUI機能、ファクスのUI機能、プリンタのUI機能、初期設定のUI機能等)やブラウザ機能を提供するためのソフトウェアである。
【0043】
なお、本実施形態では、機能の独立性を保つために、本体装置90側のOS層103のソフトウェアと操作部80側のOS層203のソフトウェアが互いに異なる。つまり、本体装置90と操作部80は、別々のオペレーティングシステムで互いに独立して動作する。例えば本体装置90側のOS層103のソフトウェアとしてNetBSD(登録商標)を用い、操作部80側のOS層203のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
【0044】
以上のように、本実施形態の画像形成装置100において、本体装置90と操作部80は別々のオペレーティングシステムで動作するため、本体装置90と操作部80との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部80が受け付けた情報(ユーザからの指示内容)を本体装置90へ伝達する動作(コマンド通信)や、本体装置90が操作部80へイベントを通知する動作などがこれに該当する。ここでは、操作部80が本体装置90へコマンド通信を行うことにより、本体装置90の機能を使用することができる。また、本体装置90から操作部80に通知するイベントには、本体装置90における動作の実行状況、本体装置90側で設定された内容などが挙げられる。
【0045】
また、本実施形態では、操作部80に対する電力供給は、本体装置90から通信路300を経由して行われているので、操作部80の電源制御を、本体装置90の電源制御とは別に(独立して)行うことができる。
【0046】
<機能について>
次に、図4を用いて画像形成装置100の機能について説明する。図4は、画像形成装置100が有する機能をブロック状に示す機能ブロック図の一例である。
【0047】
<<操作部>>
操作部80では操作部アプリ50とユーザログインアプリ40が動作している。図4では本実施形態の主要なアプリケーションソフトのみを示している。操作部アプリ50は、操作部80においてバックグラウンドで動作するアプリケーションソフトの総称である。したがって、複数あってもよい。例えば、深夜など人のいない時間帯に本体装置90がファクスで文書を受信し、操作部80で動作する操作部アプリ50が本体装置90から引き取って外部サーバへ転送するような処理を行う。このように操作部アプリ50はユーザが操作しなくても動作するアプリケーションソフトである。ただし、ユーザが操作することで動作してもよい。このようなアプリケーションソフトを常駐アプリという場合がある。
【0048】
ユーザログインアプリ40は、ユーザのログインを受け付けるアプリケーションソフトである。ユーザログインアプリ40はログインを受け付けるためのロック画面を表示して、ロック画面に対する認証情報の入力を受け付ける。ユーザログインアプリ40はユーザがログインする前から使用可能である。認証情報は、例えばユーザIDとパスワード、ICカードのカード番号、又は、生体認証情報などでよい。
【0049】
操作部アプリ50はリクエスト送信部31を有し、ユーザログインアプリ40は操作受付部32とログイン要求部33を有している。操作部80が有するこれらの機能は、図2に示された各構成要素のいずれかが、フラッシュメモリ24からRAM23に展開されたプログラム(操作部アプリ50とユーザログインアプリ40)に従ったCPU21からの命令により動作することで実現される機能又は手段である。このプログラムは、プログラム配信用のサーバから配信されるか又は記憶媒体に記憶された状態で配布される。
【0050】
リクエスト送信部31は、本体装置90のサービス層102が有するWebAPIを呼び出すHTTP(HyperText Transfer Protocol)通信によって本体装置90と通信する。ただし、操作部80と本体装置90との間において利用される通信プロトコルは、HTTPに限定されなくてもよい。例えば、HTTPs、WevDAV等でもよい。何らかの処理を本体装置90に要求する場合、リクエスト送信部31はHTTPリクエスト(以下、単にリクエストという)を生成して送信する。リクエスト送信の契機は操作部アプリ50によって様々であるが、例えば、ファクスによる文書の受信、所定の時刻になったこと、外部からデータを受信したこと、又は、ユーザが操作したことなどである。
【0051】
リクエスト送信部31はリクエストを送信する際、ヘッダ情報の1つに操作部アプリ50の認証情報を生成して含めることができる。ヘッダ情報とはHTTPメッセージのパケットのヘッダ部分の情報のことをいう。ヘッダ情報の一例を図5に示す。例えば、1行目(リクエスト行)にはGETなどのメソッド、リクエスト先のURL、及びHTTPバージョンが設定される。2行目以降(ヘッダ行)には種々の情報が存在する。本実施形態ではヘッダ情報の1つに設定される認証情報を「認証用ヘッダ」という。認証情報は一例として、操作部アプリ50のIDとパスワードであるが、認証情報はこれらには限られない。例えば、トークンや証明書などでもよい。
【0052】
リクエスト送信部31は、リクエストに認証用ヘッダを設定するか否かを切り替える。例えば、管理者権限に基づく情報取得が必要な場合、又は、一般ユーザ権限に基づくジョブの実行が必要な場合、リクエストに認証用ヘッダを設定する。例えば、ユーザがログインしている場合、又は、所定の権限以上のユーザがログインしている場合、ユーザの操作を優先するため、リクエストに認証用ヘッダを設定しない。また、あるいは、操作部アプリ50の種類によって、リクエストに認証用ヘッダを設定するか否かを切り替える場合がある。一般ユーザ又は管理者権限が必要な操作部アプリ50はリクエストに認証用ヘッダを設定し、そうでない操作部アプリ50はリクエストに認証用ヘッダを設定しない。
【0053】
なお、リクエスト送信部31は本体装置90からリクエストに対するHTTPレスポンスを受信する(以下、単にレスポンスという)。
【0054】
操作受付部32は、ユーザから操作部80に対する各種の操作を受け付ける。本実施形態では認証情報の入力を受け付ける。ログイン要求部33は認証情報を含む認証要求を本体装置90に送信する。ログイン要求部33が認証成功を受信すると、ユーザログインアプリ40はロック画面を消去して、ディスプレイにはユーザが利用できるアプリケーションソフトの一覧が表示される。なお、ログイン要求部33もHTTP等のリクエストによって本体装置90と通信するが、本体装置90との通信に適切なリクエストが使用されるものとする。
【0055】
<<本体装置>>
本体装置90は、SDK(Software Development Kit)制御部41、認証制御部43、及び、サービス部42を有している。本体装置90が有するこれらの機能は、図2に示された各構成要素のいずれかが、HDD14からRAM13に展開されたプログラムに従ったCPU11からの命令により動作することで実現される機能又は手段である。このプログラムは、プログラム配信用のサーバから配信されるか又は記憶媒体に記憶された状態で配布される。
【0056】
サービス部42は、各種のハードウェアリソース等を制御するための機能を有し、その機能を上位アプリケーション(SDK制御部41)等に利用させるためのインタフェースを提供するソフトウェアモジュール群である。サービス部42は、例えば、コピーを制御する機能、スキャナを制御する機能、プリンタを制御する機能、ファクスの送受信を制御する機能、アドレス帳を管理する機能、及び、ログを記録する機能等を有する。
【0057】
認証制御部43はユーザログインアプリ40から認証情報を含む認証要求を受信して、認証情報保存領域47に該当ユーザがいるか否か(同じ認証情報があるか否か)を確認して認証結果をユーザログインアプリ40に送信する。また、認証制御部43は認証結果を、SDK制御部41内のリソース制御部45に通知する。認証結果には認証の成功又は失敗だけでなく、ユーザの権限(例えば、一般ユーザ権限又は管理者権限など)が含まれる。ユーザの権限とリクエストがどの権限を必要とするかに応じて、リクエストが許可されたり制限されたりする。
【0058】
SDK制御部41は、SDKに対応したアプリケーションソフト(以下、SDKアプリという)を開発するためのAPI(Application Program Interface)を備えると共に、SDKアプリの実行環境を提供する。更に、SDKアプリがサービス部42を利用することを可能にする。APIの形態は、例えば、関数であってもよいし、オブジェクト指向のクラス及びクラスのメソッド等であってもよい。例えば、SDK制御部41は、コピー機能に関するSDKAPI、スキャナ機能に関するSDKAPI、プリンタ機能に関するSDKAPI等をSDKアプリに提供する。SDK制御部41は、Java(登録商標)VM(Virtual Machine)を含んでいてもよい。この場合、SDKアプリは、Java(登録商標)言語によって実装される。ただし、本体装置90にインストール可能なプログラムはSDKアプリに限定されない。
【0059】
SDKアプリは、画像形成装置100の出荷後において、画像形成装置100の機能拡張を図るために追加的にインストールされるプログラム(又はプラグインともいう。)である。図4では、SDKアプリとして、リクエスト管理部44、リソース制御部45、及び、結果応答部46が例示されている。ただし、SDKを用いずに開発されたネイティブアプリでもよい。
【0060】
リクエスト管理部44は、操作部アプリ50からのリクエストを受信し、リクエストに含まれるヘッダ情報をリソース制御部45に送出する(図5参照)。ヘッダ情報には認証用ヘッダが含まれる場合と含まれない場合がある。
【0061】
リソース制御部45はヘッダ情報に認証用ヘッダがあるか否かを判断して、認証用ヘッダがある場合は、認証制御部43に認証用ヘッダの認証情報を送出して認証してもらう。リソース制御部45は認証結果を認証制御部43から取得する。認証結果には操作部アプリ50の権限が含まれる。
【0062】
認証が成功し操作部アプリ50の権限がリクエストを実行できる権限である場合、リソース制御部45はリクエスト行のURLに基づいてリクエストをサービス部42のサービスに振り分ける。サービス部42はリクエストに応じた処理を行い、設定情報やジョブの実行結果などの処理結果をSDK制御部41の結果応答部46に送出する。結果応答部46はレスポンスを作成して操作部アプリ50にレスポンスを送信する(返却する)。
【0063】
認証が失敗するか又は操作部アプリ50の権限がリクエストを実行できる権限でない場合、リソース制御部45は認証失敗又は権限なしを結果応答部46に通知する。結果応答部46はレスポンスを作成して操作部アプリ50にレスポンスを送信する(返却する)。
【0064】
<リクエスト例とレスポンス例>
図5図8を用いてリクエスト例とレスポンス例について説明する。まず、図5は、リクエスト送信部31が送信するリクエストの一例である。まず、記述1~記述3がヘッダ情報である。記述1はリクエスト行と呼ばれる。記述1はGETメソッドを使って、「192.168.1.100」というURL(アドレス)に対してdevicelogというAPIを呼び出している。このAPIはあくまで一例であるが、ログ情報を返送するAPIである。「HTTP/1.1」はHTTPのバージョンである。
【0065】
記述2の「Host 192.168.1.30」はリクエストの送信先のサーバ名である。仮想サーバ等を指定する場合に設定されるが、HTTP/1.1では必須である。
【0066】
記述3の「OneShotAuthorization」が認証用ヘッダである。「Basic」は認証方法を示している。「aaa」はユーザ名、「bbb」はパスワードである。図5ではユーザ名とパスワードが平文になっているが、符号化や暗号化して容易に解読できないようにすることも考えられる。
【0067】
図6は、結果応答部46が送信する認証成功時のレスポンスの一例である。記述4の「HTTP /1.1 200 OK」の「200」はステータスコードであり200番はリクエストが成功し、レスポンスと共に要求に応じた情報が返されることを意味している。記述4のその他は書誌的な情報である。記述5はdevicelogというAPIが取得して結果応答部46に返却したログ情報の一例である。図示するJSON形式の他、XML形式などで送信されてよい。
【0068】
図6のようなレスポンスを返却する場合、本体装置90は次のように動作する。まず、リソース制御部45が認証用ヘッダに基づく認証が成功した旨の認証結果を認証制御部43から取得するとサービス部42が呼び出され、サービス部42が処理結果を結果応答部46に送出する。結果応答部46は記述4のようにリクエストが受け付けられた旨と、記述5のログ情報を含むレスポンスを生成する。
【0069】
図7は、結果応答部46が送信する認証失敗時のレスポンスの一例である。記述6の「HTTP /1.1 401 Unauthorized」の「401」というステータスコードは、認証エラーを示す。つまり、リクエストの認証用ヘッダに追加されたユーザ名/パスワードの組み合わせが認証情報保存領域47に記憶されていないこと(ユーザ名/パスワードの組み合わせが間違っていること)を意味する。ユーザが入力したユーザ名/パスワードの組み合わせが間違っていた場合も同様である。記述7は、認証失敗を表すエラーメッセージである。
【0070】
図7のようなレスポンスを返却する場合、本体装置90は次のように動作する。結果応答部46はリソース制御部45から認証失敗の通知を受けると、記述6のように認証失敗でリクエストが拒否された旨と、記述7のようにユーザ名/パスワードの組み合わせが間違っている旨を示すエラーメッセージを含むレスポンスを生成する。
【0071】
図8は、結果応答部46が送信する権限なしを示すレスポンスの一例である。記述8の「HTTP /1.1 403 Forbidden」の「403」というステータスコードは、リクエスト先のURLは存在するが、情報を表示する権限が付与されず、アクセスが拒否されたことを示す。つまり、認証用ヘッダのユーザ名/パスワードは正しいが情報へのアクセス権がない場合、権限なし表すステータスコード403が返却される。情報へのアクセス権がないとは、例えば、管理者権限が必要なAPIに対して一般ユーザがリクエストした場合などである。記述9は、権限なしを表すエラーメッセージである。
【0072】
図8のようなレスポンスを返却する場合、本体装置90は次のように動作する。結果応答部46は、リソース制御部45から権限なしの通知を受けると、記述8のように権限なしでリクエストが拒否された旨と、記述9のように情報を表示する権限が付与されなかった旨を示すエラーメッセージを含むレスポンスを生成する。
【0073】
<動作手順>
図9は、主に本体装置90の処理手順を示す一例のフローチャート図である。図9の処理は例えば画像形成装置100が起動中にスタートする。
【0074】
まず、リクエスト管理部44は操作部80からリクエストを受信する(S101)。リクエスト管理部44は、ヘッダ情報をリソース制御部45に送出する。
【0075】
リソース制御部45は、ヘッダ情報に基づいてシステム権限に対するリクエストか否かを判断する(S102)。システム権限とは操作部80が非同期でイベントを受け取る場合に必要になる特別な権限である。管理者権限や一般ユーザの権限とは異なる権限である。システム権限へのリクエストか否かは、例えばヘッダ情報のリクエスト行のURLに基づいて判断される。
【0076】
ステップS102でYesと判断された場合、認証用ヘッダ又はユーザが入力した認証情報に基づく認証は行われないので、処理はステップS105に進み、ステップS102でNoと判断された場合、S103に進む。
【0077】
ステップS103では、リソース制御部45はリクエストに認証用ヘッダがあるか否かを判断する(S103)。つまり、ヘッダ情報にOneShotAuthorizationというヘッダ行があるか否かを判断する。
【0078】
認証用ヘッダがある場合(S103のYes)、リソース制御部45は認証用ヘッダのユーザ名とパスワードを利用して認証制御部43に認証を依頼し、認証結果を取得する(S104)。これにより、操作部アプリ50の権限を含む認証結果が取得される。
【0079】
認証用ヘッダがない場合(S103のNo)、リソース制御部45は認証制御部43からユーザログインアプリ40が送信したユーザの認証結果を取得する(S108)。これにより、操作部80のユーザログインアプリ40からログインしているユーザの権限を含む認証結果が取得される。ユーザがログインしていなければその旨が通知される。
【0080】
次に、リソース制御部45は要求元(操作部アプリ50又はユーザ)がリクエストに対する権限を有するか否かを判断する(S105)。認証結果には要求元の権限が入っており、この権限とリクエスト行のURLのAPIに必要な権限を比較する。認証用ヘッダがある場合は、認証用ヘッダの認証結果を利用し、認証用ヘッダがない場合はユーザの認証結果を利用する。すなわち、操作部アプリ50の権限とリクエスト行のURLのAPIに必要な権限を比較するか、又は、ユーザの権限とリクエスト行のURLのAPIに必要な権限を比較する。
【0081】
なお、システム権限に対するリクエストの場合、要求元は一般ユーザでも管理者でもないが、同様にリクエストのヘッダ情報には要求元が操作部80であることを意味する情報が含まれているものとする。これにより、リクエストに対し要求元がシステム権限を有するか否かが判断される。
【0082】
リクエストに対して要求元が権限を有する場合(S105のYes)、リソース制御部45はサービス部42に対し処理要求を行う(S106)。サービス部42はリクエスト内容に応じて処理を実行する。処理が完了したらサービス部42はSDK制御部41の結果応答部46に処理結果を渡す。結果応答部46は処理内容を含むレスポンスを作成する。
【0083】
リクエストに対して権限がない場合(S105のNo)、リソース制御部45は認証失敗又は権限なしを結果応答部46に通知する。結果応答部46は認証失敗又は権限なしのレスポンスを作成する(S109)。
【0084】
以上により、ステップS107では、結果応答部46が操作部80から送信されたリクエストに対してレスポンスを送信する(S107)。
【0085】
したがって、図9の処理によれば、リクエストに認証用ヘッダがある場合は、操作部アプリ50の権限でサービス部42を利用できる。この場合、ユーザがログインしていてもしていなくてもよい。したがって、操作部アプリ50は、ユーザがログインしていなくても本体装置90に処理を要求できる。
【0086】
また、一般ユーザがログインしていても、操作部アプリ50が管理者権限でログインすれば、操作部アプリ50が動作するために必要な例えば管理者権限の情報を取得できる。管理者がログインしているが、操作部アプリ50が認証用ヘッダのあるリクエストを送信した場合、操作部アプリ50の権限で動作するので、操作部アプリ50の権限が一般ユーザであれば操作部アプリ50がジョブを実行できる。
【0087】
<外部装置からリクエスト>
以上の実施形態では、画像形成装置という1台の装置の中で認証情報が送信され、処理結果が返却される実施例を説明したが、以下では、別々の装置間における認証について説明する。
【0088】
図10は、画像形成装置と外部装置を有するシステムの概略構成図の一例である。画像形成装置100と外部装置70はネットワークを介して通信することができる。画像形成装置100は外部装置70に対しWeb APIを提供しており、外部装置70はWeb APIを介して画像形成装置100と通信することができる。例えば、外部装置70としてPCで動作するプリンタドライバやブラウザソフトウェアは画像形成装置100に関する情報を取得して表示できる。また、外部装置70として任意のサーバが画像形成装置100の情報を取得して異常を監視するような使い方もある。
【0089】
しかし、外部装置70が送信するリクエストに認証用ヘッダが存在することで、外部装置70が一般ユーザ権限又は管理者権限を変更できてしまうと、セキュリティ上、好ましくないおそれがある。このため、ネットワークを介して送信された外部装置70からのリクエストに認証用ヘッダが含まれていても画像形成装置100は無視することが好ましい。
【0090】
図10では、外部装置70が送信したリクエストに認証用ヘッダ(OneShotAuthorization)が存在するが、画像形成装置100は認証用ヘッダを無視する。このため、一般の外部装置70からリクエストしたことになる。したがって、上記した図9の処理は実行されない。つまり、認証失敗か、又は、認証用ヘッダ以外に認証情報があり認証成功しても、devicelogのように管理者権限が必要なリクエストは権限なしと判断される。
【0091】
なお、外部装置70に対応するための機能ブロック図は図4と同じでよく、リクエスト管理部44は外部装置70が送信したリクエストを受信する。また、外部装置70としては一般的なPC、タブレット型端末、スマートフォン、及び、ウェアラブルPCなどでよい。
【0092】
図11は、外部装置70からのリクエストを処理する手順を示すフローチャート図の一例である。
【0093】
まず、リクエスト管理部44がリクエストを受信する(S201)。リクエスト管理部44はヘッダ情報をリソース制御部45に送出する。
【0094】
リソース制御部45は外部装置70から受信したか否かを判断する(S202)。判断方法としては、リクエストの送信元のIPアドレスを確認する方法がある。この場合、操作部80のIPアドレスが予めリソース制御部45により把握されており、このIPアドレスと送信元のIPアドレスを比較する。あるいは、リソース制御部45がトークンのような識別情報を操作部80に予め渡しておき、そのトークンがヘッダ情報に含まれているか否かにより判断してもよい。
【0095】
ステップS202の判断がYesの場合、リソース制御部45は認証用ヘッダを削除する(S203)。あるいは、認証用ヘッダを無視するか又は認証用ヘッダがないものとみなす。
【0096】
ステップS202の判断がNoの場合、リソース制御部45は認証用ヘッダを削除しなせず、図9の処理が実行される。
【0097】
認証用ヘッダを削除した場合、リソース制御部45は外部装置からの認証要求に対する従来と同様の認証処理を行う(S205)。
【0098】
したがって、外部装置70からのリクエストは認証用ヘッダが削除されるので、外部装置70からの従来のリクエストと判断され、認証と権限に基づく処理を行うことができ、セキュリティが低下することはない。
【0099】
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【0100】
例えば、本実施形態では画像形成装置100を例にして説明したが、画像形成装置100に限られず認証する機能を有する情報処理装置に適用できる。情報処理装置の例としては、例えば電子黒板、プロジェクタ、テレビ会議端末、などでもよい。
【0101】
また、図4などの構成例は、画像形成装置100による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本発明が制限されることはない。また、画像形成装置100の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
【0102】
なお、認証制御部43は認証手段の一例であり、リクエスト管理部44は認証要求受信手段の一例であり、リソース制御部45は認証制御手段の一例であり、サービス部42は処理手段の一例である。ユーザログインアプリ40が入力を受け付ける認証情報は第1の認証情報の一例であり、認証用ヘッダは第2の認証情報の一例であり、操作部アプリ50は第1のアプリケーションソフトの一例であり、ユーザログインアプリ40は第2のアプリケーションソフトの一例である。
【符号の説明】
【0103】
40 ユーザログインアプリ
50 操作部アプリ
70 外部装置
80 操作部
90 本体装置
100 画像形成装置
【先行技術文献】
【特許文献】
【0104】
【文献】特開2010-072760号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11