以下、図面を参照して、本開示を実施するための一実施形態について説明する。なお、以下の実施形態は、本開示を説明するための一例であり、特許請求の範囲に記載した発明の技術的範囲が、以下の記載に限定されるものではない。
[1.第1実施形態]
[1.1 全体構成]
図1を参照して、本実施形態におけるシステム1の全体構成を説明する。図1に示すように、システム1は、端末装置10と、画像形成装置20と、認証サーバ30と、IdPサーバ40とを備えて構成される。
端末装置10と、画像形成装置20と、認証サーバ30と、IdPサーバ40とは、ネットワークを介して接続される。例えば、図1に示すように、端末装置10と、画像形成装置20と、認証サーバ30とは、第1のネットワークであるNW1を介して接続される。また、NW1に接続されたそれぞれの装置と、IdPサーバ40とは、第2のネットワークであるNW2を介して接続される。ここで、NW1は、例えば、所定の施設内にある装置を相互に接続するネットワークであるLAN(Local Area Network)である。また、NW2は、インターネット等の外部ネットワークである。なお、システム1を構成する装置が相互に接続する方法は、図1に示した方法に限られない。例えば、システム1を構成するそれぞれの装置が、インターネットに接続されていてもよい。
端末装置10は、ユーザが使用する装置である。例えば、本実施形態の端末装置10は、一般的な端末装置にアプリケーションをインストールすることにより実現される。端末装置10は、スマートフォン、スマートウォッチ、タブレット、PC(Personal Computer)といった情報処理装置である。
画像形成装置20は、画像を記録用紙等の記録媒体に形成(印刷)することが可能な装置である。例えば、画像形成装置20は、コピー機能、印刷機能、スキャン機能、メール送信機能等を有するデジタル複合機(MFP;Multi-Function Printer/Peripheral)である。
認証サーバ30は、画像形成装置20を使用するユーザを認証する情報処理装置(第1のサーバ装置)である。また、IdPサーバ40は、ウェブサービスやクラウドサービスを利用するユーザを認証するサービスや、当該ユーザの情報の管理を行うためのサービスを提供する情報処理装置(IdP;Identity Provider)(第2のサーバ装置)である。IdPサーバ40は、例えば、クラウド上(インターネット上)に存在する装置である。
IdPサーバ40は、他の装置(例えば、端末装置10)から、ユーザの認証に必要な情報を取得し、ユーザの認証を行う。IdPサーバ40は、ユーザの認証ができた場合、アクセストークンといったセキュリティ情報を発行する。つまり、セキュリティ情報(例えば、アクセストークン)は、ユーザの認証ができたことを示す情報である。IdPサーバ40は、ユーザの認証に必要な情報を送信した装置に対して、認証したユーザの情報や、アクセストークンを送信する。ユーザの認証に必要な情報を送信した装置は、アクセストークンを受信することで、ユーザが認証されたことを判定できる。本実施形態では、セキュリティ情報はアクセストークンであるとして説明する。
認証サーバ30及びIdPサーバ40は、例えば、PCやサーバといったコンピュータといった情報処理装置である。なお、認証サーバ30及びIdPサーバ40は、それぞれ、複数の情報処理装置によって構成されていてもよいし、任意の情報処理装置上で実現される仮想サーバであってもよい。また、ネットワークNW2にはサービス毎に、複数のIdPサーバ40(40a、40b)が接続されていてもよい。例えば、A社のクラウドサービスを利用するためのユーザを認証するサービスを提供するIdPサーバ40aと、B社のクラウドサービスを利用するためのユーザを認証するサービスを提供するIdPサーバ40bとが、ネットワークNW2に接続されていてもよい。
[1.2 機能構成]
[1.2.1 端末装置]
図2を参照して、端末装置10の機能構成について説明する。図2に示すように、端末装置10は、制御部100と、表示部140と、操作部150と、記憶部160と、通信部190とを備えて構成される。
制御部100は、端末装置10の全体を制御する。制御部100は、記憶部160に記憶されている各種プログラムを読み出して実行することにより各種機能を実現しており、1又は複数の演算装置(例えば、CPU(Central Processing Unit))により構成されている。
表示部140は、各種情報を表示する。表示部140は、例えば、LCD(Liquid crystal display)、有機EL(electro-luminescence)ディスプレイ、マイクロLED(Light Emitting Diode)ディスプレイ等の表示装置により構成される。
操作部150は、端末装置10を使用するユーザの操作を受け付ける。操作部150は、タッチセンサ等の入力装置によって構成される。タッチセンサにおいて入力を検出する方式は、例えば、抵抗膜方式、赤外線方式、電磁誘導方式、静電容量方式といった、一般的な検出方式であればよい。なお、端末装置10には、表示部140と、操作部150とが一体に形成されたタッチパネルが搭載されてもよい。
記憶部160は、端末装置10の動作に必要な各種プログラムや、各種データを記憶する。記憶部160は、例えば、半導体メモリであるSSD(Solid State Drive)や、HDD(Hard Disk Drive)等の記憶装置により構成される。
記憶部160は、操作アプリ162を記憶する。操作アプリ162は、画像形成装置20の操作を行うためのアプリである。例えば、操作アプリ162は、制御部100に、画像データや実行させる処理の内容を示す情報を画像形成装置20に送信する機能や、画像形成装置20の管理を行うための機能を実現させる。なお、画像データとは、画像形成装置20によって形成される画像を示すデータである。また、操作アプリ162は、画像データを送信するとき、当該画像データとともに、当該画像データに基づく画像を形成する場合における設定の情報(印刷設定)を画像形成装置20に送信してもよい。
さらに、本実施形態における操作アプリ162は、制御部100に、IdPサーバ40が提供するユーザの認証のサービスを利用するための機能として、当該ユーザの認証に用いられる情報を送受信する機能を実現させる。例えば、操作アプリ162は、制御部100に、IdPサーバ40によるユーザ認証に必要な情報(例えば、アカウント名やパスワード)をユーザに入力させるための画面を表示部140に表示させる機能を提供したり、IdPサーバ40から認証結果を受信させる機能を提供したりする。つまり、操作アプリ162は、制御部100に、IdPサーバ40のインターフェイスを実現させる。この機能により、ユーザは、操作アプリ162を介して、IdPサーバ40が提供するユーザを認証するサービスを利用することができる。
通信部190は、画像形成装置20等の外部の装置と通信を行う。通信部190は、例えば、有線/無線LANで利用されるNIC(Network Interface Card)や、LTE(Long Term Evolution)/LTE-A(LTE-Advanced)/LAA(License-Assisted Access using LTE)/5G回線に接続可能な通信モジュールにより構成される。
[1.2.2 認証サーバ]
つづいて、認証サーバ30の機能構成について説明する。本実施形態における認証サーバ30は、画像形成装置20を利用するユーザに関する情報(ユーザ情報)や、当該ユーザが使用する権限を有する画像形成装置20の機能を管理(記憶)する。また、認証サーバ30は、IdPサーバ40といった外部の装置から送信される情報(送信情報)に基づきユーザを認証する。
本実施形態における認証サーバ30は、図3に示すように、制御部300と、記憶部360と、通信部390とを備えて構成される。
制御部300は、認証サーバ30の全体を制御する。制御部300は、記憶部360に記憶されている各種プログラムを読み出して実行することにより各種機能を実現しており、1又は複数の演算装置(例えば、CPU)により構成されている。
制御部300は、記憶部360に記憶されたプログラムを実行することにより、認証部302、認可部304、履歴記憶部306として機能する。
認証部302は、画像形成装置20を利用するユーザの認証を行う。認証部302が実行する処理については後述する。
認可部304は、画像形成装置20を利用するユーザに対して、画像形成装置20が備える機能やリソースを使用するための権限を与える。認可部304が実行する処理については後述する。
履歴記憶部306は、画像形成装置20が使用されたときの情報(履歴情報)を、履歴情報記憶領域364に記憶する。履歴情報は、例えば、画像形成装置20を使用したユーザを識別するためのユーザIDや、当該ユーザによって使用された機能、画像形成時の設定、画像を形成した用紙の枚数(印刷枚数)、画像の形成を実行した時間等の情報が含まれる。
記憶部360は、認証サーバ30の動作に必要な各種プログラムや、各種データを記憶する。記憶部360は、例えば、半導体メモリであるSSDや、HDD等の記憶装置により構成される。
記憶部360は、記憶領域として、ユーザ情報記憶領域362と、履歴情報を記憶する履歴情報記憶領域364とを確保する。
ユーザ情報記憶領域362は、画像形成装置20を利用するユーザに関する情報(ユーザ情報、画像形成装置20を利用するユーザのアカウント情報)を記憶する。ユーザ情報記憶領域362に記憶されるユーザ情報には、例えば、図4に示すように、画像形成装置20を使用するユーザを識別するためのユーザID(例えば、「xxx」)と、当該ユーザの認証に用いられるパスワード(例えば、「yyy」)と、画像形成装置20を使用するユーザや当該ユーザの履歴情報を識別するための識別子(例えば、「100」)と、当該ユーザのE-Mail(電子メール)アドレス(例えば、「sb1@example.com」)と、当該ユーザに認可される権限(例えば、「スキャン、コピー」)と、IdPサーバ40によって発行されるアクセストークンが正しいか否かの検証の依頼先となるサーバ装置やサービスに関する情報である検証先(例えば、「A社、https://a-sha.com/verifytoken」)とが記憶される。
ここで、ユーザ情報記憶領域362に記憶されるユーザ情報に含まれる、ユーザID、E-Mailアドレス、識別子は、画像形成装置20を使用するユーザを識別するために用いられる識別情報である。識別情報は、認証サーバ30及び画像形成装置20において、画像形成装置20を使用するユーザを識別するために用いられる。
本実施形態におけるユーザID(第1の識別情報)は、例えば、ユーザによって設定可能な文字列である。第1の識別情報は、画像形成装置20や認証サーバ30においてユーザを識別できる情報であればよく、アカウント名、ユーザ名といった情報であってもよい。
また、認証サーバ30が管理するユーザ情報には、図4に示すように、E-Mailアドレスが含まれることとする。ここで、本実施形態では、E-Mailアドレスは、ユーザ情報記憶領域362に記憶されるユーザ情報のうち、1のユーザ情報と対応付けられる情報であるとする。つまり、本実施形態において、E-Mailアドレスは、画像形成装置20のユーザを識別するために用いることができる情報(第2の識別情報)である。
さらに、第2の識別情報は、IdPサーバ40において、ユーザに関する情報として管理されている情報であり、IdPサーバ40から他の装置に送信される情報である。例えば、E-Mailアドレスは、IdPサーバ40が提供するユーザ認証のサービスにおいて、IdPサーバ40によってユーザが認証された場合、アクセストークンとともに送信される。IdPサーバ40からE-Mailアドレスとアクセストークンとを受信した装置は、IdPサーバ40から受信したE-Mailアドレスに関係するユーザがIdPサーバ40によって認証されたことを判定することができる。ここで、E-Mailアドレスは、認証サーバ30において、ユーザ情報に記憶されている情報であり、また、IdPサーバ40から送信される情報である。したがって、E-Mailアドレスは、認証サーバ30とIdPサーバ40とにより利用可能な情報であり、相互互換性がある情報である。さらに、E-Mailアドレスは、画像形成装置20のユーザを一意に特定可能な情報であるため、認証部302は、IdPサーバ40から送信されるE-Mailアドレスと、画像形成装置20のユーザとを、関連付けることができる。
一方、ユーザID(アカウント名)やパスワードは、システム固有(サービス固有)の情報であり、認証サーバ30とIdPサーバ40とで、それぞれ記憶される情報であるため相互互換性がない。また、識別子は、本実施形態において、認証サーバ30は記憶するが、IdPサーバ40は記憶していない等、認証サーバ30以外のユーザを管理するシステムにおいて存在するか否かが不明であり、存在したとしても互換性はない。また、アクセストークンは、IdPサーバ40によって発行されるランダムな文字列であるため、認証サーバ30はアクセストークンを予め記憶することができず、互換性がない。
なお、第2の識別情報(相互互換性がある情報)は、IdPサーバ40によって、管理され、送信される情報であり、かつ、認証サーバ30においてユーザ情報として記憶される情報あれば、E-Mailアドレス以外の情報であってもよい。
識別子(第3の識別情報)は、例えば、認証サーバ30にユーザが登録されたときに、認証サーバ30によって自動的に付与される情報である。識別子は、連番、所定の規則によって構成された文字列、ユーザの情報に対応するハッシュ値といった情報であってもよい。
権限は、画像形成装置20が備える機能のうち、ユーザが使用する権限を有する画像形成装置20の機能(使用可能な機能)を示した情報である。本実施形態では、ユーザ情報の権限には、以下のような情報が記憶される。
・スキャン機能の使用権限があることを示す「スキャン」
・コピー機能の使用権限があることを示す「コピー」
・印刷機能の使用権限があることを示す「印刷」
なお、ユーザ情報には、上述した権限以外の権限を示す情報が記憶されてもよい。例えば、ユーザ情報には、記憶部360に使用可能な領域がある(記憶部360のリソースの使用権限がある)ことを示す情報が記憶されてもよい。
また、検証先は、認証サーバ30が信頼する検証先であって、アクセストークンの検証先を示す情報である。検証先として、アクセストークンを検証サーバ装置(例えば、IdPサーバ40)のアドレスや名称、アクセストークンを検証するAPI(Application Programming Interface)のエンドポイントのアドレス、アクセストークンを検証するサービスのサービス名等の属性が記憶される。本実施形態では、検証先にアクセストークンの検証依頼(アクセストークン検証依頼)を送信することにより、当該検証先によりアクセストークンが検証され、当該検証先からアクセストークンの検証結果が送信されることとして説明する。
なお、ユーザ情報記憶領域362に記憶されるユーザ情報には、図4に示した情報以外の情報が記憶されてもよい。
通信部390は、画像形成装置20やIdPサーバ40等の外部の装置と通信を行う。通信部390は、例えば、有線/無線LANで利用されるNIC等の通信装置や通信モジュールにより構成される。
[1.2.3 画像形成装置]
図5を参照して、画像形成装置20の機能構成について説明する。図5に示すように、画像形成装置20は、制御部200と、画像入力部220と、画像形成部230と、表示部240と、操作部250と、記憶部260と、通信部290とを備えて構成される。
制御部200は、画像形成装置20の全体を制御する。制御部200は、記憶部260に記憶されている各種プログラムを読み出して実行することにより各種機能を実現しており、1又は複数の演算装置(例えば、CPU)により構成されている。
制御部200は、記憶部260に記憶されたプログラムを実行することにより、画像処理部202として機能する。画像処理部202は、各種画像に関する処理を行う。例えば、画像処理部202は、画像入力部220によって読み取られた画像に対して、鮮鋭化処理や、階調変換処理を実行する。
画像入力部220は、画像形成装置20に画像データを入力する。例えば、画像入力部220は、画像を読み取って画像データを生成することが可能なスキャン装置等により構成される。スキャン装置は、例えば、CCD(Charge Coupled Device)やCIS(Contact Image Sensor)等のイメージセンサによって画像を電気信号に変換し、電気信号を量子化及び符号化することでデジタルデータを生成する。
なお、画像入力部220は、USB(Universal Serial Bus)メモリや、SDカード等の記憶媒体に記憶された画像データを読み出すためのインターフェイス(端子)により構成されてもよい。また、他の装置と接続を行う通信部290により、当該他の装置から画像データを入力してもよい。
画像形成部230は、記録用紙等の記録媒体に対して画像を形成(印刷)する。画像形成部230は、例えば、電子写真方式を利用したレーザプリンタ等により構成される。
表示部240は、各種情報を表示する。表示部240は、例えば、LCD、有機ELパネル、マイクロLEDディスプレイ等の表示装置により構成される。
操作部250は、画像形成装置20を使用するユーザの操作を受け付ける。操作部250は、タッチセンサ等の入力装置によって構成される。タッチセンサにおいて入力を検出する方式は、例えば、抵抗膜方式、赤外線方式、電磁誘導方式、静電容量方式といった、一般的な検出方式であればよい。なお、画像形成装置20には、表示部240と、操作部250とが一体に形成されたタッチパネルが搭載されてもよい。
記憶部260は、画像形成装置20の動作に必要な各種プログラムや、各種データを記憶する。記憶部260は、例えば、半導体メモリであるSSDや、HDD等の記憶装置により構成される。
記憶部260は、記憶領域として、画像データ記憶領域262と、セッション情報記憶領域264とを確保する。
画像データ記憶領域262は、画像データを記憶する。なお、画像データ記憶領域262に記憶される画像データは、当該画像データに基づく画像が形成(印刷)されるときに用いられる設定の情報と対応付けられていてもよい。
セッション情報記憶領域264は、画像形成装置20と、端末装置10とにおけるセッションを管理するために用いられる情報(セッション情報)が記憶される。セッション情報には、例えば、図6に示すように、識別情報であるユーザID(例えば、「xxx」)と、当該ユーザとの通信(セッション)を識別するためのセッションID(例えば、「session0001」)とが記憶される。
通信部290は、端末装置10や認証サーバ30等の外部の装置と通信を行う。通信部290は、例えば、有線/無線LANで利用されるNIC等の通信装置や通信モジュールにより構成される。
[1.2.4 IdPサーバ]
つづいて、IdPサーバ40の機能構成について説明する。本実施形態におけるIdPサーバ40は、図7に示すように、制御部400と、記憶部460と、通信部490とを備えて構成される。
制御部400は、IdPサーバ40の全体を制御する。制御部400は、記憶部460に記憶されている各種プログラムを読み出して実行することにより各種機能を実現しており、1又は複数の演算装置(例えば、CPU)により構成されている。
制御部400は、記憶部460に記憶されたプログラムを実行することにより、認証部402、検証部404として機能する。
認証部402は、外部の装置からユーザを認証するために用いられる情報を受信し、当該情報に基づき、ユーザを認証するサービスを提供する。例えば、認証部402は、通信部490を介して、ユーザの認証に用いられる情報を受信し、当該受信した情報に基づき、当該情報を送信したユーザが正当なユーザであるか否かを判定する。
ここで、認証部402は、ユーザの認証に用いられる情報を送信したユーザが正当なユーザであると判定した場合、当該ユーザを認証し、アクセストークンを発行する。アクセストークンは、例えば、予め定められた方法や計算式を用いて導出される文字列であったり、予め定められた形式に沿って構成された文字列であったりする。さらに、認証部402は、発行したアクセストークンと、認証したユーザに関する属性情報(例えば、当該ユーザのE-Mailアドレス)とを、送信情報として、ユーザの認証に用いられる情報を送信した装置に送信する。
検証部404は、通信部490を介して外部の装置からアクセストークンを受信し、当該アクセストークンが、正しいアクセストークンであるか否かを検証(判定)し、当該検証の結果を、当該外部の装置に送信する。
例えば、検証部404は、外部の装置から受信したアクセストークンが、認証部402によって用いられる方法や計算式で導出可能な文字列である場合、当該アクセストークンは認証部402によって発行されたアクセストークンであると判定する。なお、検証部404は、外部の装置から受信したアクセストークンが、予め定められた形式に沿って構成された文字列である場合、当該アクセストークンは認証部402によって発行されたアクセストークンであると判定してもよい。検証部404は、外部の装置から受信したアクセストークンが、認証部402によって発行されたアクセストークンであると判定した場合、外部の装置から受信したアクセストークンは正しいと判定する。
記憶部460は、IdPサーバ40の動作に必要な各種プログラムや、各種データを記憶する。記憶部460は、例えば、半導体メモリであるSSDや、HDD等の記憶装置により構成される。
記憶部460は、記憶領域として、ユーザ情報記憶領域462を確保する。ユーザ情報記憶領域462は、IdPサーバ40によって提供されるサービスを利用するユーザ(認証の対象となるユーザ)に関する情報(ユーザ情報)が記憶される。ユーザ情報記憶領域462に記憶されるユーザ情報には、例えば、図8に示すように、IdPサーバ40によって提供されるサービスを利用するユーザを識別するためのアカウント名(例えば、「sb1」)と、当該ユーザの認証に用いられるパスワード(例えば、「aaaa1234」)と、当該ユーザの属性情報であるE-Mailアドレス(例えば、「sb1@a-sha.com、sb1@example.com」)と、当該ユーザに対して発行されたアクセストークン(例えば、「!d#)O()$#(Uj)DUIDJF+JDFS`」)とが記憶される。
IdPサーバ40に記憶されるユーザ情報のうち、アカウント名とパスワードとは、IdPサーバ40において、ユーザを認証するために用いられる情報である。なお、IdPサーバ40によって提供されるサービスを利用するユーザを識別する情報は、アカウント名以外の情報であってもよく、識別子(例えば、連番や所定の規則によって構成された文字列)、ユーザ名といった情報であってもよい。また、ユーザ情報記憶領域462に記憶されるユーザ情報には、複数のE-Mailアドレスが記憶されてもよい。また、ユーザ情報記憶領域462に記憶されるユーザ情報には、図8に示した情報以外の情報が記憶されてもよい。
通信部490は、認証サーバ30等の外部の装置と通信を行う。通信部490は、例えば、有線/無線LANで利用されるNIC等の通信装置や通信モジュールにより構成される。
[1.3 処理の流れ]
[1.3.1 システム全体の流れ]
つづいて、図9を参照して、本実施形態におけるシステム1における処理の流れを説明する。なお、端末装置10の制御部100は、操作アプリ162により、所定の機能が実現されていることとして説明する。また、IdPサーバ40によってユーザ認証がされた場合にアクセストークンとともに送信される情報はE-Mailアドレスとして説明する。
はじめに、端末装置10の制御部100は、IdPサーバ40によるユーザ認証に用いられる情報であるアカウント名とパスワードとを取得し、IdPサーバ40に送信する(S1000)。例えば、制御部100は、表示部140に、アカウント名とパスワードとをユーザに入力させるための画面を表示する。そして、制御部100は、ユーザによって入力の完了が指示されたら、ユーザによって入力されたアカウント名とパスワードとを取得し、取得したアカウント名とパスワードとを通信部190を介して、IdPサーバ40に送信する。
つづいて、IdPサーバ40の制御部400(認証部402)は、受信したアカウント名及びパスワードを用いてユーザの認証を行い、正当なユーザであると判定した場合は、アクセストークンを発行する(S1002)。例えば、認証部402は、端末装置10から受信したユーザIDとパスワードとが記憶されたユーザ情報を、ユーザ情報記憶領域462から取得できた場合、当該取得したユーザ情報に対応するユーザを正当なユーザと判定し、当該ユーザを認証する。
つづいて、制御部400(認証部402)は、S1002において認証したユーザの属性情報であるE-MailアドレスとS1002において発行したアクセストークンとを含む送信情報を、端末装置10に送信する(S1004)。なお、認証部402は、S1002において取得したユーザ情報を読み出すことにより、認証したユーザのE-Mailアドレスの情報を取得すればよい。
つづいて、端末装置10の制御部100は、S1004において受信したE-Mailアドレス(ユーザの属性情報)とアクセストークンとを、通信部190を介して、画像形成装置20に送信する(S1006)。このようにして、制御部100は、画像形成装置20に対して、IdPサーバ40から受信した情報に基づく認証依頼を行う。画像形成装置20は、IdPサーバ40から送信された送信情報を取得できる。
つづいて、画像形成装置20の制御部200は、S1006において受信したE-Mailアドレス(ユーザの属性情報)とアクセストークンとを、通信部290を介して、認証サーバ30に送信する(S1008)。このようにして、端末装置10から認証依頼が行われた画像形成装置20は、認証サーバ30に、IdPサーバ40から送信された送信情報を送信する。認証サーバ30は、IdPサーバ40から送信され、画像形成装置20によって取得された送信情報を、画像形成装置20から取得(受信)する。
つづいて、認証サーバ30の制御部300(認証部302)は、受信したE-Mailアドレスが記憶されたユーザ情報をユーザ情報記憶領域362から取得し、ユーザID及び検証先を特定する(S1009)。
ここで、E-Mailアドレスは、ユーザ情報記憶領域362に記憶されているユーザ情報のうち、1のユーザ情報と対応付けられている。したがって、認証部302は、S1008において受信したE-Mailアドレスと同じ情報を含むユーザ情報をユーザ情報記憶領域362から読み出すことができれば、当該ユーザ情報に対応するユーザが画像形成装置20を使用するユーザとして管理されたユーザ(管理ユーザ)であることを判定できる。また、読み出したユーザ情報に記憶されたユーザID及び検証先の情報を取得することで、ユーザID及び検証先を特定できる。
このようにして、認証部302は、認証依頼を行った端末装置10から受信したE-Mailアドレスが記憶されたユーザ情報が記憶されているか否かを確認することで、認証サーバ30が管理する管理ユーザであるかどうかを判定する。つまり、認証部302は、E-Mailアドレスがユーザ情報記憶領域362といったユーザ情報のデータベースに存在する場合、認証依頼がされたユーザを、管理ユーザとみなす。一方、認証部302は、E-Mailアドレスがユーザ情報記憶領域362に存在しない場合、認証依頼がされたユーザを、管理ユーザとみなさない。
つづいて、アクセストークンが正しいか否かを判定するために、認証サーバ30の制御部300(認証部302)は、通信部390を介して、S1009において取得した検証先に対して、アクセストークンを送信することで、検証依頼を行う。ここで、検証先がIdPサーバ40である場合、認証部302は、アクセストークンを、IdPサーバ40に送信する(S1010)。
IdPサーバ40の制御部400(検証部404)は、S1010において受信したアクセストークンが正しいか否かを検証する(S1012)。そして、制御部400(検証部404)は、検証結果を、通信部490を介して、S1010においてアクセストークンを送信した認証サーバ30に送信する(S1014)。
認証サーバ30の制御部300(認証部302)は、検証先(例えば、IdPサーバ40)から検証結果を受信し、当該検証結果に基づきユーザを認証する(S1016)。例えば、認証部302は、IdPサーバ40からアクセストークンが正しいことを示す検証結果を受信した場合、S1009において特定したユーザIDに対応するユーザを認証する。このようにして、認証部302は、IdPサーバ40から送信されたアクセストークン(セキュリティ情報)が正しく検証できた場合に、ユーザを認証することができる。つまり、認証サーバ30は、他の装置であるIdPサーバ40による認証結果を用いて、画像形成装置20を使用するユーザを認証する。
つづいて、制御部300(認証部302)は、S1016において認証したユーザの識別情報を、通信部390を介して、E-Mailアドレス(ユーザの属性情報)及びアクセストークンを送信した画像形成装置20に送信する(S1018)。なお、本実施形態では、認証したユーザの識別情報は、ユーザID(第1の識別情報)であるとして説明する。また、画像形成装置20は、認証サーバ30からユーザIDといった識別情報を受信することにより、認証サーバ30によって画像形成装置20を使用するユーザが認証されたことを把握することができる。
つづいて、画像形成装置20の制御部200は、セッションIDを発行し、当該発行したセッションIDとS1018において受信した識別情報であるユーザIDとを含むセッション情報をセッション情報記憶領域264に記憶する。そして、画像形成装置20の制御部200は、発行したセッションIDを、通信部290を介して、S1006においてE-Mailアドレス及びアクセストークンを送信した端末装置10に送信する(S1020)。セッションIDは、端末装置10と画像形成装置20との通信において、画像形成装置20が通信相手となる端末装置10を識別するために用いられる情報(通信識別情報)である。また、セッションIDを用いて端末装置10と画像形成装置20とが通信することによって、画像形成装置20は、通信相手である端末装置10が、画像形成装置20の使用を許可したユーザ(認証したユーザ)であることを把握することができる。
つづいて、端末装置10の制御部100は、画像データと、S1020において受信したセッションIDとを、通信部190を介して、画像形成装置20に送信する(S1022)。例えば、制御部100は、ユーザによって画像が選択され、印刷の実行の指示がされたときに、当該選択された画像の画像データを、セッションIDとともに、画像形成装置20に送信する。
つづいて、画像形成装置20と認証サーバ30とにおいて、画像データを送信したユーザの権限を確認する権限確認の処理を実行する(S1024)。権限確認の処理の流れについて、図10を参照して説明する。
はじめに、画像形成装置20の制御部200は、認証サーバ30にユーザIDを送信する(S1100)。例えば、画像形成装置20の制御部200は、S1022において受信したセッションIDが保存されたセッション情報をセッション情報記憶領域264から取得する。さらに、制御部200は、取得したセッション情報に含まれるユーザIDを、通信部290を介して、認証サーバ30に送信する。
認証サーバ30の制御部300(認可部304)は、通信部390を介して、画像形成装置20から、ユーザIDを受信し、当該ユーザIDにより識別されるユーザの権限を取得する(S1102)。例えば、認可部304は、画像形成装置20から受信したユーザIDを含むユーザ情報をユーザ情報記憶領域362から取得し、当該取得したユーザ情報に含まれる権限の情報を取得する。
つづいて、制御部300(認可部304)は、S1002において取得した権限を示す情報である権限情報を、S1100においてユーザIDを送信した画像形成装置20に送信する(S1104)。権限情報には、例えば「スキャン」、「コピー」、「印刷」等の権限を示す情報が含まれる。
画像形成装置20の制御部200は、認証サーバ30から受信した権限情報を参照することにより、図9のS1022において画像データを送信したユーザが、印刷機能の使用権限を有するか否かを判定することができる。
図9に戻り、つづいて、制御部200は、S1022において画像データを送信したユーザが印刷機能の使用権限を有する場合、当該画像データに基づく画像を、画像形成部230を介して形成する画像形成処理を実行する(S1026)。なお、制御部200は、画像データに対応付けられた設定の情報がある場合、当該設定に基づき、画像を形成する制御を行う。
なお、画像形成処理が完了したら、制御部200は、ユーザIDや履歴情報を、通信部290を介して、認証サーバ30に送信する(S1028)。認証サーバ30の制御部300(履歴記憶部306)は、画像形成装置20から受信した履歴情報を、履歴情報記憶領域364に記憶する(S1030)。
[1.3.2 端末装置の処理の流れ]
つづいて、図11を参照して、端末装置10が実行する処理について説明する。なお、端末装置10の制御部100は、操作アプリ162を実行することにより、図11に示した処理を実行する。
はじめに、制御部100は、IdPサーバ40によるユーザ認証に用いられる情報であるアカウント名及びパスワードを取得したか否かを判定する(ステップS100)。例えば、制御部100は、アカウント名を入力するためのフィールドと、パスワードを入力するためのフィールドとを表示部140に表示する制御を行う。この場合、制御部100は、ユーザによって当該フィールドに情報が入力され、入力された情報を確定するための操作がされたときに、アカウント名及びパスワードを取得する。
制御部100は、アカウント名及びパスワードを取得した場合、取得したユーザID及びパスワードを、通信部190を介して、IdPサーバ40に送信する(ステップS100;Yes→ステップS102)。
つづいて、制御部100は、通信部190を介して、IdPサーバ40から、送信情報であるE-Mailアドレス及びアクセストークンを受信した場合、受信したE-Mailアドレス及びアクセストークンを画像形成装置20に送信する(ステップS106;Yes→ステップS108)。これにより、制御部100は、画像形成装置20に対して、IdPサーバ40から受信した情報に基づく認証依頼を行う。
また、制御部100は、通信部190を介して、画像形成装置20から、セッションIDを受信したか否かを判定する(ステップS110)。画像形成装置20からセッションIDが受信される場合とは、ステップS106において画像形成装置20に対して行った認証依頼に対して、ユーザの認証が行われ、画像形成装置20の使用が許可された場合である。この場合、当該セッションID及びユーザによって選択された画像データを、通信部190を介して画像形成装置20に送信する(ステップS110;Yes→ステップS112)。
なお、制御部100は、ステップS106においてIdPサーバ40からE-Mailアドレス及びアクセストークンを受信できなかった場合、エラー処理を実行する(ステップS106;No→ステップS114)。また、制御部100は、ステップS110において画像形成装置20からセッションIDを受信できなかった場合、エラー処理を実行する(ステップS110;No→ステップS114)。
IdPサーバ40からE-Mailアドレス及びアクセストークンを受信できなかった場合とは、例えば、IdPサーバ40からエラーメッセージ等を受信した場合や、IdPサーバ40との通信に失敗した場合等である。また、画像形成装置20からセッションIDを受信できなかった場合とは、例えば、画像形成装置20からエラーメッセージ等を受信した場合や、画像形成装置20との通信に失敗した場合等である。
エラー処理とは、ユーザにエラーが発生したことを通知したり、操作のやり直しを促したり、図11に示した処理を終了させたりする処理である。例えば、制御部100は、エラー処理として、エラーメッセージを表示部140に表示する処理を実行する。この場合、画像データが端末装置10から画像形成装置20に送信されないため、ユーザは、当該画像データに基づく画像を画像形成装置20に対して印刷させることができない。
なお、制御部100は、ステップS100において、アカウント名及びパスワードを取得しなかった場合、画像形成装置20を使用するユーザを識別する識別情報(例えば、ユーザID)及びパスワードを取得したか否かを判定する(ステップS100;No→ステップS104)。例えば、制御部100は、ユーザIDを入力するためのフィールドと、パスワードを入力するためのフィールドとを表示部140に表示する制御を行う。この場合、制御部100は、ユーザによって当該フィールドに情報が入力され、入力された情報を確定するための操作がされたときに、ユーザID及びパスワードを取得する。すなわち、制御部100は、従来どおりの、ユーザID及びパスワードを用いた認証依頼を行う。このように、制御部100は、ユーザID及びパスワードを用いる認証サーバ30によるユーザの認証と、アカウント名及びパスワードを用いるIdPサーバ40によるユーザの認証との何れかの認証を選択できるようにする。
制御部100は、ユーザID及びパスワードを取得した場合、当該ユーザID及びパスワードを用いた処理を実行する(ステップS104;Yes)。例えば、制御部100は、通信部190を介して、取得したユーザID及びパスワードを画像形成装置20に送信することで画像形成装置20に対して認証依頼を行い、画像形成装置20からセッションIDを受信する。さらに、制御部100は、画像形成装置20から受信したセッションIDと画像データとを通信部190を介して画像形成装置20に送信する。このような処理により、端末装置10は、ユーザID及びパスワードを用いた認証を行った上で、画像データを画像形成装置20に送信することが可能となる。
なお、制御部100は、ステップS104において、ユーザID及びパスワードを取得しなかった場合は、ステップS100に戻る(ステップS104;No→ステップS100)。
[1.3.3 画像形成装置の処理の流れ]
つづいて、図12を参照して、画像形成装置20が実行する処理について説明する。はじめに、制御部200は、通信部290を介して、端末装置10から認証依頼がされ、認証用の情報を受信したか否かを判定する(ステップS120)。認証用の情報とは、以下の何れかの情報である。
(a)アクセストークン及びE-Mailアドレス
(b)ユーザID及びパスワード
認証用の情報を受信した場合、制御部200は、ステップS120において受信した情報を用いてユーザを認証し、認証したユーザに対応するセッションIDを発行する処理(セッションID発行処理)を実行する(ステップS120;Yes→ステップS122)。セッションID発行処理については、図13を参照して説明する。
はじめに、制御部200は、認証用の情報として、IdPサーバ40から送信される送信情報であるアクセストークン及びE-Mailアドレスを受信したか否かを判定する(ステップS140)。
制御部200は、アクセストークン及びE-Mailアドレスを受信した場合、当該アクセストークン及びE-Mailアドレスを、通信部290を介して、認証サーバ30に送信する(ステップS140;Yes→ステップS142)。
つづいて、制御部200は、認証サーバ30から、図12のステップS142において送信したアクセストークン及びE-Mailアドレスに基づく認証サーバ30によるユーザ認証の認証結果として、ユーザIDを受信したか否かを判定する(ステップS144)。ここで、認証サーバ30からユーザIDを受信する場合とは、ステップS142において送信したアクセストークン及びE-Mailアドレスを用いたユーザ認証が正しく行われた場合(認証サーバ30による認証結果が正しい場合)である。
制御部200は、ユーザIDを受信した場合、ユーザを認証し、セッションIDを発行する(ステップS144;Yes→ステップS146)。つまり、制御部200は、端末装置10からの認証依頼により認証の対象となったユーザを認証し、画像形成装置20を使用する許可を与える。このとき、制御部200は、ステップS144において発行したセッションIDと、ステップS144において受信した識別情報であるユーザIDとを含むセッション情報をセッション情報記憶領域264に記憶する。さらに、制御部200は、ステップS146において発行したセッションIDを、通信部290を介して、端末装置10に送信する(ステップS148)。
なお、制御部200は、ステップS144において、ユーザIDを受信しなかった場合は、認証サーバ30によるユーザ認証が正しく行われなかった(認証サーバ30による認証結果が正しくない)として、エラー処理を実行する(ステップS144;No→ステップS150)。ユーザIDを受信しなかった場合とは、例えば、認証サーバ30からエラーメッセージ等を受信した場合や、認証サーバ30との通信に失敗した場合等である。また、エラー処理とは、認証用の情報を送信した端末装置10に対して、エラーメッセージを送信するといった処理である。
また、制御部200は、ステップS140においてアクセストークン及びE-Mailアドレスを受信しなかった場合、すなわち、端末装置10からユーザID及びパスワードを受信した場合、当該ユーザID及びパスワードを用いた処理を実行する(ステップS140;No)。例えば、制御部200は、通信部290を介して、ユーザID及びパスワードを認証サーバ30に送信し、認証サーバ30から認証結果を受信する。この場合、認証結果が認証サーバ30によってユーザの認証がされたことを示す結果であれば、制御部200は、セッションIDを発行する。さらに、制御部200は、発行したセッションIDと端末装置10から受信したユーザIDとを対応付けたセッション情報をセッション情報記憶領域264に記憶し、発行したセッションIDをユーザID及びパスワードを送信した端末装置10に送信する。一方、認証結果が、認証サーバ30によってユーザの認証がされなかったことを示す結果であれば、制御部200は、エラー処理を実行する。
図12に戻り、つづいて、制御部200は、セッションID及び画像データを受信したか否かを判定する(ステップS124)。セッションIDは、認証サーバ30やIdPサーバ40によって認証されたユーザのユーザIDと対応付けられているため、制御部200は、セッションIDを受信することにより、認証済のユーザによって画像データが送信されたことを判定できる。したがって、制御部200は、ステップS124において、セッションIDを含まない画像データを受信した場合は、エラー処理を実行してもよい。また、制御部200は、セッションIDを受信した場合であっても、当該セッションIDが記憶されたセッション情報がセッション情報記憶領域264に記憶されていないとき、エラー処理を実行してもよい。
つづいて、制御部200は、セッションID及び画像データを受信した場合、受信したセッションIDと対応付けられている識別情報であるユーザIDを取得する(ステップS124;Yes→ステップS125)。例えば、制御部200は、セッション情報記憶領域264から、受信したセッションIDが記憶されたセッション情報を読み出し、当該読み出したセッション情報に記憶されたユーザIDを取得する。つづいて、制御部200は、ステップS125において取得したユーザIDを認証サーバ30に送信する(ステップS126)。
つづいて、制御部200は、認証サーバ30から権限情報を受信し、ステップS124において受信したセッションIDに対応付けられているユーザに、印刷機能の使用権限があるか否かを判定する(ステップS128→ステップS130)。例えば、制御部200は、認証サーバ30から受信した権限情報に、印刷機能の使用権限を有することを示す情報(例えば、「印刷」といった情報)が含まれる場合、ユーザに印刷機能の使用権限があると判定すればよい。
制御部200は、印刷機能の使用権限がある場合、印刷を実行する(ステップS130;Yes→ステップS132)。例えば、制御部200は、画像形成部230を制御し、ステップS124において受信した画像データに基づく画像を記録媒体に形成する。印刷が完了したら、制御部200は、通信部290を介して、履歴情報を認証サーバ30に送信する(ステップS134)。この場合、認証サーバ30の履歴記憶部306により、履歴情報を記憶する処理が実行される。なお、制御部200は、ステップS130において印刷機能の使用権限がないと判定した場合は、ステップS132及びステップS134における処理を省略(スキップ)する(ステップS130;No)。
[1.3.4 認証サーバの処理の流れ]
つづいて、図14を参照して、認証サーバ30が実行する処理について説明する。はじめに、制御部300は、IdPサーバ40によって発行されたアクセストークン及びE-Mailアドレスを取得したか否かを判定する(ステップS160)。例えば、制御部300は、通信部390を介して、画像形成装置20から、アクセストークン及びE-Mailアドレスを受信した場合、アクセストークン及びE-Mailアドレスを取得したと判定する。
アクセストークン及びE-Mailアドレスを取得した場合、制御部300(認証部302)は、受信した情報に基づきユーザを認証する認証処理を実行する(ステップS160;Yes→ステップS162)。認証処理については、図15を参照して説明する。
はじめに、認証部302は、E-Mailアドレスからユーザを特定し、当該ユーザのユーザIDを特定する(ステップS180)。ここで、E-Mailアドレスは、第2の識別情報であるため、認証部302は、E-Mailアドレスからユーザを識別(特定)することが可能である。したがって、例えば、認証部302は、図14のステップS160において受信したE-Mailアドレスが記憶されたユーザ情報をユーザ情報記憶領域362から取得し、取得したユーザ情報に記憶されたユーザIDを読み出すことで、ユーザIDを取得(特定)する。
認証部302は、ユーザIDが特定できた場合、当該受信したE-Mailアドレスに対応する検証先を特定する(ステップS182;Yes→ステップS183)。例えば、認証部302は、ステップS180において取得したユーザ情報を読み出すことで、検証先を特定する。さらに、認証部302は、ステップS183において特定した検証先に対して、アクセストークンを送信することで、検証先に対してアクセストークンの検証依頼を行う(ステップS184)。例えば、認証部302は、ステップS180において取得したユーザ情報に記憶された検証先に、ステップS170において受信したアクセストークンを送信する。さらに、認証部302は、通信部390を介して、検証先からアクセストークンの検証結果を受信する(ステップS186)。
例えば、検証先がIdPサーバ40であれば、認証部302は、当該IdPサーバ40にアクセストークンを送信する。この場合、アクセストークンは、IdPサーバ40の検証部404により、検証される。また、認証部302は、IdPサーバ40から、アクセストークンの検証結果を受信する。
認証部302は、検証結果に基づき、ステップS170において受信したアクセストークンが正しいか否かを判定する(ステップS188)。認証部302は、アクセストークンが正しい場合、認証部302はユーザを認証する。そして、認証部302は、認証結果として、ステップS180において特定したユーザIDを、通信部390を介して、アクセストークン及びE-Mailアドレスを送信した画像形成装置20に送信する(ステップS188;Yes→ステップS190)。なお、認証部302は、画像形成装置20に対して、ユーザIDとともに、ユーザ認証が正しく行われたことを示す情報を送信してもよい。
認証部302は、上述の処理を実行することにより、第2の識別情報であり、IdPサーバ40から送信される送信情報に含まれる属性情報でもあるE-Mailアドレスと、IdPサーバ40によって発行されたアクセストークンとに基づいて、ユーザを認証する。つまり、認証部302は、以下の2つの条件を満たすとき、ユーザを認証する。
(1)E-Mailアドレスと対応するユーザのユーザ情報が記憶されていること
(2)アクセストークンが正しいこと
ここで、(1)の条件を満たす場合とは、E-Mailアドレスと対応するユーザが認証サーバ30によって管理されているユーザである場合である。E-Mailアドレスは、IdPサーバ40によってユーザ認証がされた場合にアクセストークンとともに送信される情報でもあるため、認証部302は、IdPサーバ40から送信される情報と、認証サーバ30が管理するユーザとを関連付けることができる。
なお、上述した条件を満たさない場合は、認証部302はエラー処理を実行する。具体的には、認証部302は、ステップS182においてユーザIDが特定できない場合はエラー処理を実行する(ステップS182;No→ステップS192)。ユーザIDが特定できない場合とは、ステップS170において受信されたE-Mailアドレスが記憶されたユーザ情報を、ユーザ情報記憶領域362から取得できなかった場合(記憶されていなかった場合)である。また、認証部302は、ステップS188において、アクセストークンが正しくないと判定した場合、エラー処理を実行する(ステップS188;No→ステップS192)。エラー処理は、例えば、認証部302が通信部390を介して、アクセストークン及びE-Mailアドレスを送信した画像形成装置20に、ユーザ認証の認証結果としてエラーメッセージを送信する処理である。
図14に戻り、制御部300は、通信部390を介して、画像形成装置20から、ユーザの情報であるユーザIDを取得したか否かを判定する(ステップS166)。例えば、制御部300は、通信部390を介して、画像形成装置20から、ユーザIDを受信した場合、ユーザIDを取得したと判定する。
制御部300(認可部304)は、ユーザIDを取得した場合、当該ユーザIDに対応するユーザの権限を取得する(ステップS166;Yes→ステップS168)。例えば、認可部304は、ステップS166において取得したユーザIDが記憶されたユーザ情報をユーザ情報記憶領域362から読み出し、読み出したユーザ情報に記憶された権限の情報を取得する。つづいて、制御部300(認可部304)は、取得した権限を示す情報を含む権限情報を、通信部390を介して、ユーザIDを送信した装置である画像形成装置20に送信する(ステップS170)。
このように、認可部304は、ユーザの情報であるユーザIDを取得した場合、当該ユーザIDによって識別されるユーザに対応付けられた権限を示す権限情報を送信することにより、当該ユーザに対する権限を与えることができる。特に、本実施形態では、権限として、画像形成装置20の機能(印刷機能、コピー機能、スキャン機能等)を利用する権限を与える。なお、認可部304は、ステップS166においてユーザIDを取得していないと判定した場合は、ステップS168及びステップS170における処理を省略(スキップ)する(ステップS166;No)。
なお、制御部300(認証部302)は、ステップS160においてアクセストークン及びE-Mailアドレスを受信しなかった場合、画像形成装置20から、ユーザID及びパスワードを受信したか否かを判定する(ステップS160;No→ステップS164)。制御部300(認証部302)は、ユーザID及びパスワードを受信した場合、当該ユーザID及びパスワードに基づきユーザの認証の処理を実行する。
例えば、認証部302は、画像形成装置20から受信したユーザID及びパスワードを含むユーザ情報がユーザ情報記憶領域362に記憶されていれば、ユーザを認証する。一方、認証部302は、画像形成装置20から受信したユーザID及びパスワードを含むユーザ情報がユーザ情報記憶領域362に記憶されていなければ、ユーザを認証しない。そして、認証部302は、ユーザを認証したか否かを示す情報を、認証結果として、ユーザID及びパスワードを送信した画像形成装置20に送信する。
[1.4 実施例]
つづいて、図16を参照して、本実施形態の動作例を説明する。図16は、IdPサーバ40によって送信されるユーザの属性情報(E-Mailアドレス)が用いられることにより、IdPサーバ40が管理するユーザと認証サーバ30が管理するユーザとが関連付けられることを示す図である。なお、図16のT100は、認証サーバ30が管理(記憶)するユーザ情報を示す。
本実施形態では、認証サーバ30が管理するユーザ情報には、後述するIdPサーバ40によってアクセストークンと共に送信されるE-MailアドレスE100が含まれる。この場合、本実施形態におけるシステム1は、IdPサーバ40から送信されるE-Mailアドレスを、画像形成装置20のユーザ認証に用いることができる。
本実施形態では、ユーザによって、端末装置10を介してIdPサーバ40によって提供されるユーザの認証のサービスが利用される。このとき、IdPサーバ40によってユーザが認証された場合、端末装置10は、IdPサーバ40から、送信情報として、E-Mailアドレス及びアクセストークンを受信する。そこで、端末装置10は、画像形成装置20に、E-Mailアドレス及びアクセストークンを送信することで、認証依頼を行う(図16の(1))。画像形成装置20は、E-Mailアドレス及びアクセストークンを認証サーバ30に送信する(図16の(2))。
認証サーバ30は、画像形成装置20から受信したE-Mailアドレスを含むユーザ情報を記憶していれば、当該E-Mailアドレスに対応するユーザは、認証サーバ30が管理しているユーザであると判定することができる。一方、認証サーバ30は、画像形成装置20から受信したE-Mailアドレスを含むユーザ情報を記憶していなければ、当該E-Mailアドレスに対応するユーザは、認証サーバ30が管理しているユーザではないと判定することができる。
例えば、図16の(3)に示すように、認証サーバ30が記憶するユーザ情報に含まれるE-MailアドレスD100と、画像形成装置20から送信されるE-MailアドレスD102とが一致する場合がある。この場合、認証サーバ30は、当該E-Mailアドレスに対応するユーザを、認証サーバ30が管理するユーザであると判定することができる。このようにして、認証サーバ30は、IdPサーバ40によって送信される情報を用いて、認証サーバ30が管理しているユーザを対応付けることができる。
さらに、認証サーバ30が管理しているユーザに対応付けられた権限を示す権限情報が認証サーバ30から画像形成装置20に送信される(図16の(4))。これにより、認証サーバ30は、ユーザに対して権限を与えることができる。また、画像形成装置20は、権限情報を参照することで、ユーザに対して与えられた権限を判定することができる。なお、権限情報とともに、認証サーバ30から画像形成装置20に対して、ユーザに関する情報(例えば、識別子)が送信されてもよい。
図17は、アクセストークンの検証について示した図である。図17に示すように、認証サーバ30は、端末装置10によってIdPサーバ40から受信されたE-Mailアドレス及びアクセストークンを、画像形成装置20を介して受信する(図17の(1)及び(2))。
ここで、認証サーバ30は、ユーザ毎に、アクセストークンを検証するための検証先を記憶する。これにより、認証サーバ30は、画像形成装置20を使用するユーザのアカウント毎に、アクセストークンを検証するための検証先を設定し、切り替えることができる。認証サーバ30は、検証先にアクセストークンを送信することで、アクセストークンの検証依頼を行う(図17の(3))。これにより、認証サーバ30は、検証先(例えば、IdPサーバ40)からアクセストークンの検証結果を受信することができる。
アクセストークンが正しい場合は、図17のD110に示すように、アクセストークンが正しいことを示す認証結果が、IdPサーバ40から認証サーバ30に送信される。また、画像形成装置20を介して端末装置10から送信されたE-Mailアドレスに対応するユーザのユーザIDが、認証サーバ30から画像形成装置20に送信される。このため、画像形成装置20は、認証サーバ30からユーザIDを受信したことにより、当該ユーザIDに対応するユーザが、IdPサーバ40による認証(クラウド認証)が済まされたユーザであることを判定することができる。
一方、アクセストークンが正しくない場合は、図17のD120に示すように、アクセストークンが正しくないことを示す認証結果が、IdPサーバ40から認証サーバ30に送信される。また、エラーメッセージなどエラーを示す情報が認証サーバ30から画像形成装置20に送信される。このため、画像形成装置20は、端末装置10を操作するユーザは、クラウド認証がされていないユーザであると判定し、エラー処理を実行することができる。
なお、本実施形態では、ユーザは、使用しているウェブサービスやクラウドサービスに対応するIdPサーバ40から発行されるアクセストークンを、画像形成装置20を使用するための認証に用いることができる。したがって、ユーザは、通常使用しているIdPサーバ40によるユーザ認証のサービスを、画像形成装置20を使用する場合に利用することができる。
なお、上述した説明以外であっても、矛盾のない範囲において、処理の内容を変更しても構わない。例えば、上述した説明では、印刷機能の権限の有無に応じた処理について説明したが、当該処理を、コピー機能やスキャン機能、画像形成装置の設定の権限の有無に応じた処理に適用してもよい。この場合、ユーザは、認可部によって使用が認可された機能を使用できる。例えば、ユーザは、端末装置10を介して、セッションIDと処理の内容や処理対象のデータといった処理に関する情報とを画像形成装置20に送信する。画像形成装置20は、セッションIDに対応するユーザIDを取得し、当該ユーザIDによって識別されるユーザに、所定の処理を実行するための権限確認の処理を実行する。画像形成装置20は、ユーザが処理を実行するための権限を有している場合、端末装置10から送信された処理の内容や処理対象のデータに対応する所定の処理を実行する。一方、画像形成装置20は、ユーザが処理を実行するための権限を有していない場合、所定の処理を実行しない。
また、上述した説明では、アクセストークンが正しいか否かをアクセストークンのみを用いて判定することとして説明した。しかし、アクセストークンが正しいか否かは、アクセストークン及びE-Mailアドレスの情報によって判定されても構わない。この場合、図9のS1010や図13のステップS174において、認証サーバ30の認証部302は、アクセストークン及びE-MailアドレスをIdPサーバ40に送信する。また、図9のS1012において、IdPサーバ40の検証部404は、認証サーバ30から受信したアクセストークン及びE-Mailアドレスを含むユーザ情報がユーザ情報記憶領域462に記憶されている場合、アクセストークンが正しいと判定する。
また、上述した説明では、IdPサーバ40によって送信される送信情報に、アクセストークンとユーザの属性情報が含まれることとして説明した。ここで、アクセストークンは、IdPサーバ40によってユーザが認証されたことを示すセキュリティ情報であり、ユーザが認証されたことを検証するために用いられる情報である。しかし、ユーザが認証されたことを示し、ユーザが認証されたことを検証できる情報であれば、セキュリティ情報はアクセストークン以外の情報であってもよい。
また、上述した説明において、認証サーバ30と画像形成装置20との間で送受信される識別情報(例えば、図9のS1018や図10のS1100)は第1の識別情報であるユーザIDであるとして説明したが、ユーザID以外の識別情報が送受信されてもよい。つまり、認証サーバ30と画像形成装置20との間で送受信される識別情報は、第2の識別情報であるE-Mailアドレスや第3の識別情報である識別子であってもよい。
また、本実施形態では、IdPサーバがアクセストークンを検証することとして説明したが、IdPサーバ以外の装置がアクセストークンを検証してもよい。この場合、認証サーバ30が管理するユーザ情報には、検証先の情報として、アクセストークンを検証する装置のアドレスや名称等の属性が記憶される。
このように、本実施形態における画像形成装置は、IdPサーバから送信されたユーザの情報とIdPサーバから発行されたアクセストークンとを用いて、画像処理装置を使用するユーザの認証を行う。また、本実施形態における画像形成装置は、認証したユーザが使用する権限を有する画像形成装置の機能等を判定することができる。この結果、本実施形態における画像形成装置は、IdPサーバから送信される情報に基づき、ユーザの認証や、ユーザの権限を取得することができる。また、端末装置は、端末装置から画像形成装置を操作する場合において、パスワード情報をネットワーク経由で画像形成装置に送信(通知)する必要がない。またネットワーク経由でパスワード情報を送信する必要がないため、ネットワーク経由でパスワードが漏洩してしまうことを防ぐこと(盗聴リスクの軽減)ができる。また、ユーザは、ユーザID及びパスワードを用いた認証方法以外の認証方法を利用することが可能となる。これにより、本実施形態によれば、従来から存在する認証サーバによるユーザ認証や、ワンタイムパスワードを使用したユーザ認証の他に、IdPサーバの認証結果を用いた多要素認証が可能となる。
さらに、本実施形態におけるシステムのユーザは、端末装置を用いるだけで、画像形成装置を使用するために必要となる認証の操作をすることができ、認証された後は、端末装置を用いて、画像形成装置に直接画像データを送信することが可能となる。これにより、ユーザは、画像形成装置の設置場所に行き、画像形成装置を直接操作するといった手間を省くことができる。
[2.第2実施形態]
つづいて、第2実施形態について説明する。第2実施形態は、端末装置と画像形成装置とが直接通信ができない場合における実施形態である。本実施形態は、第1実施形態の図1を図18に、第1実施形態の図9を図20に、それぞれ置き換えたものである。なお、同一の装置や同一の処理には同一の符号を付し、説明については省略する。
[2.1 全体構成]
図18を参照して、本実施形態におけるシステム2の全体構成を説明する。図18に示すように、システム2は、第1実施形態において説明したシステム1と異なり、ネットワークNW1には、中継装置50が接続されている。また、ネットワークNW1には、画像形成装置20が接続されていない。その一方で、画像形成装置22が中継装置50に接続される。
図18に示すように、端末装置10が接続されたネットワークNW1には、画像形成装置22が接続されていないため、端末装置10と画像形成装置22とは、直接通信できない。なお、端末装置10と画像形成装置22とがネットワークNW1に接続されている場合であっても、端末装置10と画像形成装置22とが直接通信できない場合がある。具体的には、端末装置10と画像形成装置22との間に通信の障害が発生していたり、端末装置10と画像形成装置22との直接の通信が禁止されていたりする場合である。
一方で、本実施形態では、端末装置10と中継装置50とが通信可能であるとする。また、本実施形態では、中継装置50と画像形成装置22とが通信可能であるとする。
[2.2 機能構成]
[2.2.1 中継装置]
つづいて、本実施形態における中継装置50の機能構成について説明する。中継装置50は、PCやサーバといったコンピュータにより構成される情報処理装置である。本実施形態における中継装置50は、図19に示すように、制御部500と、記憶部560と、通信部590とを備えて構成される。
制御部500は、中継装置50の全体を制御する。制御部500は、記憶部560に記憶されている各種プログラムを読み出して実行することにより各種機能を実現しており、1又は複数の演算装置(例えば、CPU)により構成されている。
記憶部560は、中継装置50の動作に必要な各種プログラムや、各種データを記憶する。記憶部560は、例えば、半導体メモリであるSSDや、HDD等の記憶装置により構成される。記憶部560は、記憶領域として、画像データを記憶する領域である画像データ記憶領域562と、セッション情報を記憶するセッション情報記憶領域564とを確保する。なお、セッション情報記憶領域564に記憶されるセッション情報は、第1実施形態において説明したセッション情報記憶領域264に記憶されるセッション情報と同様の情報である。
通信部590は、端末装置10や認証サーバ30等の外部の装置と通信を行う。通信部590は、例えば、有線/無線LANで利用されるNIC等の通信装置や通信モジュールにより構成される。
[2.2.2 画像形成装置]
本実施形態における画像形成装置22は、第1実施形態において説明した画像形成装置20とは異なり、記憶部260は、セッション情報記憶領域264を確保しない。なお、それ以外の画像形成装置22の構成は、画像形成装置20と同様である。
[2.3 システム全体の処理の流れ]
図20を参照して、本実施形態におけるシステム2における処理の流れを説明する。なお、端末装置10の制御部100は、操作アプリ162により、所定の機能が実現されていることとして説明する。
はじめに、端末装置10及びIdPサーバ40は、E-Mailアドレス及びアクセストークンを送受信する処理を実行する(S2000)。S2000において実行される処理は、第1実施形態の図9におけるS1000からS1004までの処理と同様である。
つづいて、端末装置10の制御部100は、通信部190を介して、中継装置50に、IdPサーバ40から送信される送信情報であるE-Mailアドレス(ユーザの属性情報)及びアクセストークンを送信する(S2002)。このようにして、中継装置50は、IdPサーバ40から送信された送信情報を取得できる。
中継装置50の制御部500は、通信部590を介して、認証サーバ30にアクセストークンを送信する(S2004)。このようにして、認証サーバ30は、中継装置50から、IdPサーバ40から送信された送信情報であるE-Mailアドレス(ユーザの属性情報)及びアクセストークンを取得する。
つづいて、認証サーバ30及びIdPサーバ40は、第1実施形態の図9におけるS1010からS1016までの処理を実行する。また、認証サーバ30の認証部302は、通信部390を介して、識別情報であるユーザIDを、E-Mailアドレス(ユーザの属性情報)及びアクセストークンを送信した中継装置50に送信する(S2006)。
つづいて、中継装置50の制御部500は、セッションIDを発行し、当該発行したセッションIDとS2006において受信したユーザIDとを含むセッション情報をセッション情報記憶領域564に記憶する。そして、制御部500は、当該セッションIDを、通信部590を介して、S2002においてE-Mailアドレス及びアクセストークンを送信した端末装置10に送信する(S2008)。
つづいて、端末装置10の制御部100は、S2008において受信したセッションIDと画像データとを、通信部190を介して、中継装置50に送信する(S2010)。
つづいて、中継装置50と認証サーバ30とにおいて、画像データを送信したユーザの権限を確認する(S2012)。S2012における処理は、第1実施形態の図10に示した処理と同様の処理であるが、認証サーバ30と通信を行う装置が、画像形成装置20ではなく中継装置50である点が異なる。つまり、認証サーバ30は、中継装置50から識別情報を取得し、当該識別情報によって識別されるユーザに対応付けられた権限を示す権限情報を中継装置50に送信する。
つづいて、中継装置50の制御部500は、S2010において画像データを送信したユーザが印刷機能の使用権限を有すると判定した場合、S2010において受信した画像データを画像データ記憶領域562に記憶する(S2014)。なお、制御部500は、S2010において画像データを送信したユーザが印刷機能の使用権限を有しないと判定した場合、S2010において受信した画像データを画像データ記憶領域562に記憶しない。
つづいて、画像形成装置20の制御部200は、通信部290を介して、中継装置50に画像データの要求を送信する(S2016)。画像データの要求を送信する処理は、所定の時間間隔をおいて定期的に実行するポーリングの処理である。
中継装置50の制御部500は、画像形成装置20から画像データの要求を受信した場合、画像データ記憶領域562に記憶された画像データを、画像形成装置20に送信する(S2018)。画像データを受信した画像形成装置20は受信した画像データに基づく画像の形成を行い、履歴情報を認証サーバ30に記憶させる(S2020)。S2020において実行される処理は、第1実施形態の図9におけるS1026からS1030までの処理と同様である。
上述した処理により、端末装置10から送信された画像データは、当該端末装置10を使用するユーザに印刷機能の使用権限がある場合、中継装置50を介して、画像形成装置20に送信される。一方、端末装置10を使用するユーザに印刷機能の使用権限がない場合、画像データは画像データ記憶領域562に記憶されないため、画像形成装置20には送信されない。結果として、印刷権限がない場合、中継装置50に送信された画像データは、画像形成装置20からは出力されないこととなる。
本実施形態のシステムよれば、端末装置と画像形成装置とが直接通信できない場合であっても、中継装置を介して、第1実施形態において説明したシステムと同様の処理を実現させることが可能となる。
[3.第3実施形態]
つづいて、第3実施形態について説明する。第3実施形態は、認証サーバが、端末装置から送信されたE-Mailアドレスに対応するユーザIDが特定できなかった場合に、エラー処理をする代わりに、匿名ユーザ(ゲストユーザ)としてユーザを取り扱う実施形態である。本実施形態は、第1実施形態の図4を図21に、第1実施形態の図15を図22に、それぞれ置き換えたものである。なお、同一の装置や同一の処理には同一の符号を付し、説明については省略する。
図21を参照して、本実施形態においてユーザ情報記憶領域362に記憶されるユーザ情報について説明する。本実施形態におけるユーザ情報は、第1実施形態におけるユーザ情報と異なり、匿名ユーザ用ユーザ情報であるか否かを示す情報(例えば、「Yes」)が記憶される点が異なる。匿名ユーザとは、認証サーバ30が管理するユーザ以外のユーザであって、いわゆるゲストユーザである。
ここで、図21のD300に示すように、ユーザ情報に含まれる匿名ユーザ用ユーザ情報において、「Yes」といった情報が記憶されているユーザ情報は、匿名ユーザに対応するユーザ情報である。匿名ユーザのユーザ情報には、匿名ユーザを識別するためのユーザID(例えば、「guest」)や、匿名ユーザに対応する権限(例えば、「コピー」)が記憶される。
つづいて、図22を参照して、本実施形態における認証処理の流れを説明する。本実施形態では、認証部302は、ユーザを認証できなかった場合、当該ユーザを匿名ユーザと扱い、匿名ユーザに対応する識別情報であるユーザIDを送信する。
具体的には、認証部302は、以下の場合に、匿名ユーザに対応するユーザIDを送信する。
(1)E-Mailアドレスと対応するユーザのユーザ情報が記憶されていない場合
E-Mailアドレスと対応するユーザのユーザ情報が記憶されていない場合とは、ステップS182において、認証部302がユーザIDを特定できなかった場合である(ステップS182;No→ステップS300)。すなわち、端末装置10を操作するユーザが、認証サーバ30によって管理されているユーザではない場合である。
(2)アクセストークンが正しくないこと
アクセストークンが正しくない場合とは、ステップS188において、認証部302が、IdPサーバ40からアクセストークンが正しくないことを示す検証結果を受信した場合である(ステップS188;No→ステップS300)。アクセストークンが正しくない場合とは、例えば、端末装置10を使用するユーザの認証がIdPサーバ40において実施されていない場合や、端末装置10を使用するユーザを認証した後、IdPサーバ40においてログアウト処理が実行された場合である。
なお、認証部302は、匿名ユーザに対応するユーザIDを取得する場合、ユーザ情報記憶領域362から、匿名ユーザに対応するユーザ情報を読み出し、当該読み出したユーザ情報に記憶されたユーザIDを取得すればよい。
このようにして、本実施形態では、ユーザ認証ができなかった場合、認証サーバ30の認証部302は、画像形成装置20に匿名ユーザに対応するユーザIDを送信する。画像形成装置20の制御部200は、第1実施形態の図13のステップS144において、ユーザIDを受信したと判定するため、ステップS146及びステップS148における処理を実行する。これにより、制御部200は、匿名ユーザに対応するセッションIDを発行し、認証依頼を送信した端末装置10に対して、発行したセッションIDを送信することができる。なお、制御部200は、認証依頼を送信した端末装置10毎にセッションIDを発行してもよい。これにより、制御部200は、匿名ユーザ間において、セッションIDを異ならせることができる。一方で、制御部200は、匿名ユーザに対して発行されたセッションIDから匿名ユーザに対応するユーザIDを特定できる。
さらに、認証サーバ30の認可部304は、匿名ユーザに対応するユーザIDを画像形成装置20から受信(取得)した場合、図14におけるステップS168及びステップS170を実行する。これにより、認可部304は、匿名ユーザに対応する権限を取得し、権限情報を画像形成装置20に送信する。
このような処理により、認証サーバ30においてユーザ認証ができなかったユーザ(例えば、認証サーバ30によって管理されていないユーザ)であっても、匿名ユーザとして取り扱われ、所定の権限が与えられる。
なお、認証サーバ30は、匿名ユーザに対する権限を制限してもよい。例えば、認証サーバ30は、匿名ユーザに対応するユーザ情報の権限として、匿名でないユーザに対応するユーザ情報と比べて、使用可能な機能や設定可能な内容が制限されていることを示す情報を記憶する。これにより、匿名ユーザに与えられる権限が制限される。
このように、本実施形態によれば、認証サーバ30において認証できないユーザであっても、画像形成装置が備える所定の機能を使用することが可能となる。
[4.第4実施形態]
つづいて、第4実施形態について説明する。第4実施形態は、画像形成装置が、認証サーバの機能を備える実施形態である。本実施形態は、第1実施形態から第3実施形態の何れにも適用することができる。
例えば、画像形成装置20又は画像形成装置22において、制御部200は認証部302の機能を実現してもよい。この場合、画像形成装置20は、記憶部260に、少なくともユーザ名と、パスワードと、当該ユーザ名によって特定されるユーザのE-Mailアドレスと、アクセストークンが正しいか否かの検証依頼の依頼先である検証先とを含むユーザ情報を記憶する記憶領域を確保する。その上で、制御部200は、第1実施形態の図15に示した認証処理を実行する。この場合、認証部302が画像形成装置20に含まれるため、認証部302が画像形成装置20に画像形成装置を使用するユーザの識別情報を送信する処理(例えば、図9のS1018)は省略される。
また、画像形成装置20又は画像形成装置22において、制御部200は認可部304の機能を実現してもよい。この場合、画像形成装置20は、記憶部260に、認可する機能の情報をユーザ毎に記憶する。その上で、制御部200は、図14のステップS168の処理を実行する。この場合、認可部304が画像形成装置20に含まれるため、認可部304と画像形成装置20との通信の処理(例えば、図10のS1100やS1014)は省略される。
また、画像形成装置20又は画像形成装置22において、履歴記憶部306の機能を実現してもよい。この場合、画像形成装置20は、記憶部260に、履歴情報の記憶領域を確保したりする。また、この場合、履歴記憶部306が画像形成装置20に含まれるため、履歴記憶部306が画像形成装置20からユーザID及び履歴情報を受信する処理(図9のS1028)は省略される。
このように、画像形成装置20又は画像形成装置22は、認証サーバ30が備える機能を一部又は全て備えてもよい。これにより、画像形成装置20又は画像形成装置22と認証サーバ30間の通信の処理の削減や、認証サーバ30の負荷の分散が実現される。また、認証サーバ30の全ての機能を画像形成装置20又は画像形成装置22が備えることで、システム1又はシステム2において認証サーバ30を省くことが可能となる。
このように、本実施形態によれば、画像形成装置が認証サーバの一部又は全ての機能を備える場合であっても、第1実施形態から第3実施形態において説明したシステムと同様の処理を実現させることが可能となる。
なお、IdPサーバ40以外の装置でアクセストークン等のセキュリティ情報を検証することが可能である場合、IdPサーバ40の検証部404の機能は、画像形成装置20、画像形成装置22、認証サーバ30のうちの何れかの装置で実現されてもよい。
[5.変形例]
本発明は上述した各実施の形態に限定されるものではなく、種々の変更が可能である。すなわち、本発明の要旨を逸脱しない範囲内において適宜変更した技術的手段を組み合わせて得られる実施の形態についても本発明の技術的範囲に含まれる。
例えば、ユーザのメールアドレスと、セキュリティ情報とを取得する取得部は、取得装置によって実現されてもよい。メールアドレスから特定される検証先で、セキュリティ情報を検証する検証部は、検証装置によって実現されてもよい。セキュリティ情報を正しく検証できた場合にユーザを認証する認証部は認証装置によって実現されてもよい。上述した実施形態では、例えば、取得装置は画像形成装置20であり、検証装置はIdPサーバ40であり、認証装置は認証サーバ30である。
また、ユーザが認証された場合、端末装置に、画像形成装置との通信に用いる通信識別情報を送信する送信部は、送信装置によって実現されてもよい。また、通信識別情報と処理に関する情報とを受信した場合、当該通信識別情報に対応するユーザに処理を実行するための権限があるとき、処理を実行する処理実行部は、処理実行装置によって実現されてもよい。上述した実施形態では、例えば、送信装置及び処理実行装置は画像形成装置20である。
また、上述した実施形態は、説明の都合上、それぞれ別に説明している部分があるが、技術的に可能な範囲で組み合わせて実行してもよいことは勿論である。例えば、第2実施形態と第3実施形態とを組み合わせて、中継サーバにおいて、匿名ユーザに対応する権限情報を受信可能にしてもよい。
また、実施形態において各装置で動作するプログラムは、上述した実施形態の機能を実現するように、CPU等を制御するプログラム(コンピュータを機能させるプログラム)である。そして、これら装置で取り扱われる情報は、その処理時に一時的に一時記憶装置(例えば、RAM)に蓄積され、その後、各種ROM(Read Only Memory)やHDD等の記憶装置に格納され、必要に応じてCPUによって読み出し、修正・書き込みが行なわれる。
ここで、プログラムを格納する記録媒体としては、半導体媒体(例えば、ROMや、不揮発性のメモリカード等)、光記録媒体・光磁気記録媒体(例えば、DVD(Digital Versatile Disc)、MO(Magneto Optical Disc)、MD(Mini Disc)、CD(Compact Disc)、BD (Blu-ray(登録商標) Disk) 等)、磁気記録媒体(例えば、磁気テープ、フレキシブルディスク等)等の何れであってもよい。また、ロードしたプログラムを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、オペレーティングシステムあるいは他のアプリケーションプログラム等と共同して処理することにより、本発明の機能が実現される場合もある。
また、市場に流通させる場合には、可搬型の記録媒体にプログラムを格納して流通させたり、インターネット等のネットワークを介して接続されたサーバコンピュータに転送したりすることができる。この場合、サーバコンピュータの記憶装置も本発明に含まれるのは勿論である。