(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190578
(43)【公開日】2022-12-26
(54)【発明の名称】機能実行装置、サーバ、及び、通信システム
(51)【国際特許分類】
H04L 9/32 20060101AFI20221219BHJP
G09C 1/00 20060101ALI20221219BHJP
G06F 21/33 20130101ALI20221219BHJP
G06F 21/34 20130101ALI20221219BHJP
B41J 29/42 20060101ALI20221219BHJP
【FI】
H04L9/00 675B
H04L9/00 673D
G09C1/00 640E
G06F21/33
G06F21/34
B41J29/42 F
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021098961
(22)【出願日】2021-06-14
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】森 匡平
【テーマコード(参考)】
2C061
【Fターム(参考)】
2C061AP07
2C061AQ05
2C061AQ06
2C061CQ04
2C061CQ23
2C061CQ34
(57)【要約】
【課題】一対の鍵を利用する所定の認証方式に従って、機能実行装置に特定処理を実行させるための新規な技術を提供する。
【解決手段】機能実行装置は、特定指示を対象ユーザから受け付ける場合に、所定の認証方式に従って動作可能なサーバの位置情報を含む第1の出力情報を出力する。第1の出力情報は、所定の認証方式に従って動作可能な端末装置によって取得される。端末装置は、位置情報を利用して、サーバにアクセスし、サーバから第1の検証情報を受信し、対象ユーザの第1の認証が成功する場合に、秘密鍵を利用して第1の検証情報を暗号化することによって、署名情報を生成し、署名情報をサーバに送信する。サーバは、端末装置から署名情報を受信する場合に、公開鍵を利用して、署名情報を復号化し、第1の検証情報が得られる場合に、実行指示を機能実行装置に送信する。機能実行装置は、サーバから実行指示を受信する場合に、特定機能を実行する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
機能実行装置であって、
第1の出力部と、
前記機能実行装置に特定機能を実行させるための特定指示が対象ユーザから受け付けられる場合に、一対の鍵を利用する所定の認証方式に従って動作可能なサーバの位置情報を含む第1の出力情報を前記第1の出力部に出力させる第1の出力制御部であって、
前記第1の出力情報は、前記所定の認証方式に従って動作可能な端末装置によって取得され、
前記端末装置は、
前記第1の出力情報が取得される場合に、前記第1の出力情報に含まれる前記位置情報を利用して、前記サーバにアクセスすることに応じて、前記サーバから第1の検証情報を受信し、
前記端末装置によって実行される前記対象ユーザの第1の認証が成功する場合に、前記一対の鍵のうちの秘密鍵を利用して前記第1の検証情報を暗号化することによって、署名情報を生成し、
前記署名情報を前記サーバに送信し、
前記サーバは、
前記端末装置から前記署名情報が受信される場合に、前記一対の鍵のうちの公開鍵を利用して、前記署名情報を復号化し、
前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記特定機能の実行指示を前記機能実行装置に送信する、
前記第1の出力制御部と、
前記第1の出力情報が出力された後に、前記サーバから前記実行指示が受信される場合に、前記特定機能を実行する機能実行部と、
を備える、機能実行装置。
【請求項2】
前記機能実行装置は、印刷機能及びスキャン機能のうちの少なくとも一方の機能を実行可能な装置であり、
前記特定機能は、前記少なくとも一方の機能である、請求項1に記載の機能実行装置。
【請求項3】
前記所定の認証方式は、FIDO(Fast Identity Online の略)認証方式である、請求項1又は2に記載の機能実行装置。
【請求項4】
前記第1の出力部は、表示部であり、
前記第1の出力情報は、前記位置情報がコード化されることによって得られるコード画像である、請求項1から3のいずれか一項に記載の機能実行装置。
【請求項5】
前記第1の出力情報は、前記位置情報と、前記機能実行装置を識別する装置識別情報と、を含む情報であり、
前記端末装置は、前記第1の出力情報が取得される場合に、前記第1の出力情報に含まれる前記位置情報及び前記装置識別情報を前記サーバに送信することによって、前記サーバにアクセスし、
前記サーバは、前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記端末装置から受信された前記装置識別情報によって識別される前記機能実行装置に前記実行指示を送信する、請求項1から4のいずれか一項に記載の機能実行装置。
【請求項6】
前記サーバは、1以上のユーザのそれぞれについて、当該ユーザを識別するユーザ識別情報と、当該ユーザのための鍵と、を関連付けて記憶しており、
前記第1の出力情報は、前記位置情報と、前記対象ユーザを識別する対象ユーザ識別情報と、を含む情報であり、
前記端末装置は、前記第1の出力情報が取得される場合に、前記第1の出力情報に含まれる前記位置情報及び前記対象ユーザ識別情報を前記サーバに送信することによって、前記サーバにアクセスし、
前記サーバは、前記端末装置から前記署名情報が受信される場合に、前記端末装置から受信された前記対象ユーザ識別情報に関連付けて記憶されている鍵である前記公開鍵を利用して、前記署名情報を復号化する、請求項1から5のいずれか一項に記載の機能実行装置。
【請求項7】
前記機能実行装置は、さらに、
前記特定指示が前記対象ユーザから受け付けられる場合に、前記機能実行装置を識別する装置識別情報を含むトークン生成要求を前記サーバに送信する要求送信部を備え、
前記サーバは、
前記機能実行装置から前記トークン生成要求が受信される場合に、トークンを生成し、
前記トークン生成要求に含まれる前記装置識別情報と、生成済みの前記トークンと、を関連付けて記憶し、
前記トークンを前記機能実行装置に送信し、
前記第1の出力情報は、前記位置情報と、前記サーバから受信される前記トークンと、を含む情報であり、
前記端末装置は、前記第1の出力情報が取得される場合に、前記第1の出力情報に含まれる前記位置情報及び前記トークンを前記サーバに送信することによって、前記サーバにアクセスし、
前記サーバは、前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記端末装置から受信された前記トークンに関連付けて記憶されている前記装置識別情報によって識別される前記機能実行装置に前記実行指示を送信する、請求項1から6のいずれか一項に記載の機能実行装置。
【請求項8】
前記サーバは、1以上のユーザのそれぞれについて、当該ユーザを識別するユーザ識別情報と、当該ユーザのための鍵と、を関連付けて記憶しており、
前記機能実行装置は、さらに、
前記特定指示が前記対象ユーザから受け付けられる場合に、前記対象ユーザを識別する対象ユーザ識別情報を含むトークン生成要求を前記サーバに送信する要求送信部を備え、
前記サーバは、
前記機能実行装置から前記トークン生成要求が受信される場合に、トークンを生成し、
前記トークン生成要求に含まれる前記対象ユーザ識別情報と、生成済みの前記トークンと、を関連付けて記憶し、
前記トークンを前記機能実行装置に送信し、
前記第1の出力情報は、前記位置情報と、前記サーバから受信される前記トークンと、を含む情報であり、
前記端末装置は、前記第1の出力情報が取得される場合に、前記第1の出力情報に含まれる前記位置情報及び前記トークンを前記サーバに送信することによって、前記サーバにアクセスし、
前記サーバは、
前記端末装置から前記署名情報が受信される場合に、前記端末装置から受信された前記トークンに関連付けて記憶されている前記対象ユーザ識別情報を特定し、前記対象ユーザ識別情報に関連付けて記憶されている鍵である前記公開鍵を利用して、前記署名情報を復号化する、請求項1から7のいずれか一項に記載の機能実行装置。
【請求項9】
前記機能実行装置は、さらに、
第2の出力部と、
登録指示が前記対象ユーザから受け付けられる場合に、前記位置情報を含む第2の出力情報を前記第2の出力部に出力させる第2の出力制御部であって、
前記第2の出力情報は、前記端末装置によって取得され、
前記端末装置は、
前記第2の出力情報が取得される場合に、前記第2の出力情報に含まれる前記位置情報を利用して、前記サーバにアクセスすることに応じて、前記サーバから第2の検証情報を受信し、
前記端末装置によって実行される前記対象ユーザの第2の認証が成功する場合に、前記一対の鍵を生成し、
生成済みの前記一対の鍵のうちの前記公開鍵と、前記サーバから受信された前記第2の検証情報と、を前記サーバに送信し、
前記サーバは、前記端末装置から前記公開鍵と前記第2の検証情報とが受信される場合に、前記公開鍵を登録する、
前記第2の出力制御部を備える、請求項1から8のいずれか一項に記載の機能実行装置。
【請求項10】
前記第2の出力情報は、前記位置情報と、前記機能実行装置を識別する装置識別情報と、を含む情報であり、
前記端末装置は、前記第2の出力情報が取得される場合に、前記第2の出力情報に含まれる前記位置情報及び前記装置識別情報を前記サーバに送信することによって、前記サーバにアクセスし、
前記サーバは、前記公開鍵が登録される場合に、前記端末装置から受信された前記装置識別情報によって識別される前記機能実行装置に登録完了通知を送信する、請求項9に記載の機能実行装置。
【請求項11】
前記第2の出力情報は、前記位置情報と、前記対象ユーザを識別する対象ユーザ識別情報と、を含む情報であり
前記端末装置は、前記第2の出力情報が取得される場合に、前記第2の出力情報に含まれる前記位置情報及び前記対象ユーザ識別情報を前記サーバに送信することによって、前記サーバにアクセスし、
前記サーバは、前記端末装置から前記公開鍵と前記第2の検証情報とが受信される場合に、前記端末装置から受信された前記対象ユーザ識別情報と、前記公開鍵と、を関連付けて登録する、請求項9又は10に記載の機能実行装置。
【請求項12】
前記第2の出力部は、通信インターフェースであり、
前記第2の出力制御部は、前記通信インターフェースを介して、前記端末装置から前記機能実行装置内のウェブサーバにアクセスされることによって、前記登録指示が受け付けられる場合に、前記通信インターフェースを介して、前記位置情報を含むリダイレクト指示である前記第2の出力情報を前記端末装置に送信する、請求項9から11のいずれか一項に記載の機能実行装置。
【請求項13】
一対の鍵を利用する所定の認証方式に従って動作可能なサーバであって、
機能実行装置から出力される第1の出力情報が端末装置によって取得され、前記端末装置が前記第1の出力情報に含まれる前記サーバの位置情報を利用して前記サーバにアクセスする場合に、第1の検証情報を前記端末装置に送信する検証情報送信部であって、
前記機能実行装置は、
前記機能実行装置に特定機能を実行させるための特定指示を対象ユーザから受け付ける場合に、前記第1の出力情報を出力し、
前記端末装置は、
前記サーバから前記第1の検証情報を受信した後に、前記端末装置によって実行される前記対象ユーザの第1の認証が成功する場合に、前記一対の鍵のうちの秘密鍵を利用して前記第1の検証情報を暗号化することによって、署名情報を生成し、
前記署名情報を前記サーバに送信する、
前記検証情報送信部と、
前記端末装置から前記署名情報を受信する署名情報受信部と、
前記端末装置から前記署名情報が受信される場合に、前記一対の鍵のうちの公開鍵を利用して、前記署名情報を復号化する復号部と、
前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記特定機能の実行指示を前記機能実行装置に送信する実行指示送信部であって、前記機能実行装置は、前記サーバから前記実行指示が受信される場合に、前記特定機能を実行する、前記実行指示送信部と、
を備える、サーバ。
【請求項14】
機能実行装置と、一対の鍵を利用する所定の認証方式に従って動作可能なサーバと、を備える通信システムであって、
前記機能実行装置は、
第1の出力部と、
前記機能実行装置に特定機能を実行させるための特定指示が対象ユーザから受け付けられる場合に、前記サーバの位置情報を含む第1の出力情報を前記第1の出力部に出力させる第1の出力制御部であって、前記第1の出力情報は、前記所定の認証方式に従って動作可能な端末装置によって取得される、前記第1の出力制御部と、を備え、
前記サーバは、
前記端末装置が、前記第1の出力情報に含まれる前記位置情報を利用して、前記サーバにアクセスする場合に、第1の検証情報を前記端末装置に送信する検証情報送信部であって、
前記端末装置は、
前記サーバから前記第1の検証情報を受信した後に、前記端末装置によって実行される前記対象ユーザの第1の認証が成功する場合に、前記一対の鍵のうちの秘密鍵を利用して前記第1の検証情報を暗号化することによって、署名情報を生成し、
前記署名情報を前記サーバに送信する、
前記検証情報送信部と、
前記端末装置から前記署名情報を受信する署名情報受信部と、
前記端末装置から前記署名情報が受信される場合に、前記一対の鍵のうちの公開鍵を利用して、前記署名情報を復号化する復号部と、
前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記特定機能の実行指示を前記機能実行装置に送信する実行指示送信部と、を備え、
前記機能実行装置は、さらに、
前記第1の出力情報が出力された後に、前記サーバから前記実行指示が受信される場合に、前記特定機能を実行する機能実行部を備える、
通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、一対の鍵を利用する所定の認証方式に従って、機能実行装置に特定機能を実行させる技術を開示する。
【背景技術】
【0002】
特許文献1には、画像処理装置と外部認証器とサービス提供システムとを備えるシステムが開示されている。画像処理装置は、印刷サービスを利用するための操作を受付けると、サービス提供の要求をサービス提供システムに送信し、サービス提供システムから、Assertion Challengeを含む生体要求の認証を受信し、Assertion Challengeを含むアサーション作成要求を外部認証器に送信する。外部認証器は、生体認証が成功する場合に、秘密鍵を利用して、Assertion Challengeを暗号化して、署名データを生成する。そして、外部認証器は、署名データを含むアサーション情報を画像処理装置に送信し、画像処理装置は、アサーション情報を含むアサーション検証要求をサービス提供システムに送信する。サービス提供システムは、公開鍵を利用して、アサーション情報に含まれる署名データを復号化し、復号化した値が、Assertion Challengeと一致する場合に、ユーザ認証が成功したと判断し、印刷サービスを提供するための信号を画像処置装置に送信する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書では、一対の鍵を利用する所定の認証方式に従って、機能実行装置に特定機能を実行させるための新規な技術を提供する。
【課題を解決するための手段】
【0005】
本明細書で開示する機能実行装置は、第1の出力部と、前記機能実行装置に特定機能を実行させるための特定指示が対象ユーザから受け付けられる場合に、一対の鍵を利用する所定の認証方式に従って動作可能なサーバの位置情報を含む第1の出力情報を前記第1の出力部に出力させる第1の出力制御部であって、前記第1の出力情報は、前記所定の認証方式に従って動作可能な端末装置によって取得され、前記端末装置は、前記第1の出力情報が取得される場合に、前記第1の出力情報に含まれる前記位置情報を利用して、前記サーバにアクセスすることに応じて、前記サーバから第1の検証情報を受信し、前記端末装置によって実行される前記対象ユーザの第1の認証が成功する場合に、前記一対の鍵のうちの秘密鍵を利用して前記第1の検証情報を暗号化することによって、署名情報を生成し、前記署名情報を前記サーバに送信し、前記サーバは、前記端末装置から前記署名情報が受信される場合に、前記一対の鍵のうちの公開鍵を利用して、前記署名情報を復号化し、前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記特定機能の実行指示を前記機能実行装置に送信する、前記第1の出力制御部と、前記第1の出力情報が出力された後に、前記サーバから前記実行指示が受信される場合に、前記特定機能を実行する機能実行部と、を備えてもよい。
【0006】
上記の構成によると、機能実行装置は、特定指示を対象ユーザから受け付ける場合に、第1の出力情報を第1の出力部に出力させる。端末装置は、第1の出力情報を取得する場合に、位置情報を利用して、サーバにアクセスすることに応じて、サーバから第1の検証情報を受信する。端末装置は、対象ユーザの第1の認証が成功する場合に、秘密鍵を利用して第1の検証情報を暗号化することによって署名情報を生成し、生成済みの署名情報をサーバに送信する。サーバは、端末装置から署名情報を受信する場合に、公開鍵を利用して、署名情報を復号化する。サーバは、署名情報を復号化することによって第1の検証情報が得られる場合に、実行指示を機能実行装置に送信する。機能実行装置は、第1の出力情報を出力した後に、サーバから実行指示を受信する場合に、特定機能を実行する。従って、一対の鍵を利用する所定の認証方式に従って、機能実行装置に特定機能を実行させることができる。
【0007】
また、本明細書によって開示されるサーバは、一対の鍵を利用する所定の認証方式に従って動作可能であってもよい。サーバは、機能実行装置から出力される第1の出力情報が端末装置によって取得され、前記端末装置が前記第1の出力情報に含まれる前記サーバの位置情報を利用して前記サーバにアクセスする場合に、第1の検証情報を前記端末装置に送信する検証情報送信部であって、前記機能実行装置は、前記機能実行装置に特定機能を実行させるための特定指示を対象ユーザから受け付ける場合に、前記第1の出力情報を出力し、前記端末装置は、前記サーバから前記第1の検証情報を受信した後に、前記端末装置によって実行される前記対象ユーザの第1の認証が成功する場合に、前記一対の鍵のうちの秘密鍵を利用して前記第1の検証情報を暗号化することによって、署名情報を生成し、前記署名情報を前記サーバに送信する、前記検証情報送信部と、前記端末装置から前記署名情報を受信する署名情報受信部と、前記端末装置から前記署名情報が受信される場合に、前記一対の鍵のうちの公開鍵を利用して、前記署名情報を復号化する復号部と、前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記特定機能の実行指示を前記機能実行装置に送信する実行指示送信部であって、前記機能実行装置は、前記サーバから前記実行指示が受信される場合に、前記特定機能を実行する、前記実行指示送信部と、を備えてもよい。
【0008】
上記の構成によると、サーバは、機能実行装置から出力される第1の出力情報が端末装置によって取得され、第1の出力情報を取得した端末装置が位置情報を利用して、サーバにアクセスする場合に、第1の検証情報を端末装置に送信する。端末装置は、対象ユーザの第1の認証が成功する場合に、秘密鍵を利用して第1の検証情報を暗号化することによって署名情報を生成し、生成済みの署名情報をサーバに送信する。サーバは、端末装置から署名情報を受信する場合に、公開鍵を利用して、署名情報を復号化する。サーバは、署名情報を復号化することによって第1の検証情報が得られる場合に、実行指示を機能実行装置に送信する。機能実行装置は、サーバから実行指示を受信する場合に、特定機能を実行する。従って、一対の鍵を利用する所定の認証方式に従って、機能実行装置に特定機能を実行させることができる。
【0009】
また、本明細書によって開示される通信システムは、機能実行装置と、一対の鍵を利用する所定の認証方式に従って動作可能なサーバと、を備えてもよい。前記機能実行装置は、第1の出力部と、前記機能実行装置に特定機能を実行させるための特定指示が対象ユーザから受け付けられる場合に、前記サーバの位置情報を含む第1の出力情報を前記第1の出力部に出力させる第1の出力制御部であって、前記第1の出力情報は、前記所定の認証方式に従って動作可能な端末装置によって取得される、前記第1の出力制御部と、を備え、前記サーバは、前記端末装置が、前記第1の出力情報に含まれる前記位置情報を利用して、前記サーバにアクセスする場合に、第1の検証情報を前記端末装置に送信する検証情報送信部であって、前記端末装置は、前記サーバから前記第1の検証情報を受信した後に、前記端末装置によって実行される前記対象ユーザの第1の認証が成功する場合に、前記一対の鍵のうちの秘密鍵を利用して前記第1の検証情報を暗号化することによって、署名情報を生成し、前記署名情報を前記サーバに送信する、前記検証情報送信部と、前記端末装置から前記署名情報を受信する署名情報受信部と、前記端末装置から前記署名情報が受信される場合に、前記一対の鍵のうちの公開鍵を利用して、前記署名情報を復号化する復号部と、前記署名情報を復号化することによって前記第1の検証情報が得られる場合に、前記特定機能の実行指示を前記機能実行装置に送信する実行指示送信部と、を備え、前記機能実行装置は、さらに、前記第1の出力情報が出力された後に、前記サーバから前記実行指示が受信される場合に、前記特定機能を実行する機能実行部を備えてもよい。
【0010】
上記の構成によると、機能実行装置は、特定指示を対象ユーザから受け付ける場合に、第1の出力情報を第1の出力部に出力させる。端末装置は、第1の出力情報を取得する場合に、位置情報を利用して、サーバにアクセスすることに応じて、サーバから第1の検証情報を受信する。端末装置は、対象ユーザの第1の認証が成功する場合に、秘密鍵を利用して第1の検証情報を暗号化することによって署名情報を生成し、生成済みの署名情報をサーバに送信する。サーバは、端末装置から署名情報を受信する場合に、公開鍵を利用して、署名情報を復号化する。サーバは、署名情報を復号化することによって第1の検証情報が得られる場合に、実行指示を機能実行装置に送信する。機能実行装置は、第1の出力情報を出力した後に、サーバから実行指示を受信する場合に、特定機能を実行する。従って、一対の鍵を利用する所定の認証方式に従って、機能実行装置に特定機能を実行させることができる。
【0011】
また、上記の機能実行装置の制御方法、当該機能実行装置のためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶する記憶媒体も、新規で有用である。また、上記のサーバの制御方法、当該サーバのためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶する記憶媒体も、新規で有用である。
【図面の簡単な説明】
【0012】
【
図3】第1実施例に係る登録プロセスのシーケンス図を示す。
【
図4】第1実施例に係る印刷プロセスのシーケンス図を示す。
【
図5】第2実施例に係る印刷プロセスのシーケンス図を示す。
【発明を実施するための形態】
【0013】
(第1実施例)
(通信システム2の構成;
図1)
図1に示すように、通信システム2は、MFP(Multifunction Peripheralの略)10と、端末装置100と、PC200と、サーバ300と、を備える。MFP10、端末装置100、及び、PC200は、同じLAN(Local Area Networkの略)4に所属しており、LAN4を介して相互に通信可能である。LAN4は、インターネット6に接続されている。インターネット6には、サーバ300が接続されている。MFP10、端末装置100、PC200、及び、サーバ300は、インターネット6を介して相互に通信可能である。本実施例において、端末装置100、及び、PC200は、同じユーザによって利用される。
【0014】
(MFP10の構成)
MFP10は、印刷機能、スキャン機能、コピー機能、ウェブサーバ機能等を実行可能な周辺装置(例えば端末装置100の周辺装置)である。ウェブサーバ機能は、外部機器がMFP10内のウェブサーバにアクセスすることに応じて、ウェブページを表わすウェブページデータを外部機器に送信する機能である。MFP10には、MFP10を識別するためのデバイスID「dv1」が割り当てられている。
【0015】
MFP10は、操作部12と、表示部14と、印刷実行部16と、スキャン実行部18と、通信インターフェース20と、制御部30と、を備える。以下では、インターフェースを単に「I/F」と記載する。
【0016】
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をMFP10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。なお、表示部14は、タッチパネル(即ち操作部12)として機能してもよい。
【0017】
印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構を備える。スキャン実行部18は、CCD(Charge Coupled Deviceの略)イメージセンサ、CIS(Contact Image Sensorの略)等のスキャン機構を備える。通信I/F20は、LAN4に接続されている。通信I/F20は、無線I/Fであってもよいし、有線I/Fであってもよい
【0018】
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム36に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ34は、さらに、ユーザテーブル38を記憶している。
【0019】
(端末装置100の構成)
端末装置100は、携帯電話(例えばスマートフォン)、PDA、タブレットPC等の可搬型の端末装置である。端末装置100は、操作部112と、表示部114と、通信I/F120と、カメラ122と、制御部130と、を備える。
【0020】
操作部112は、例えば、タッチパネルである。操作部112は、様々な指示を受け付け可能である。操作部112は、指紋認証部としても機能する。表示部114は、様々な情報を表示するためのディスプレイである。通信I/F120は、LAN4に接続されている。カメラ122は、物体を撮影するためのデバイスである。本実施例では、カメラ122は、MFP10の表示部14に表示されるQRコード(登録商標)を撮影するために利用される。
【0021】
制御部130は、CPU132と、メモリ134と、を備える。CPU132は、メモリ134に記憶されているOS(Operating Systemの略)プログラム136に従って、様々な処理を実行する。端末装置100は、一対の鍵を利用するFIDO(Fast Identity Online の略)認証方式に従って動作可能である。FIDO認証方式は、一対の鍵、即ち秘密鍵及び公開鍵を利用する認証方式である。また、FIDO認証方式は、パスワードを利用した認証の代わりに、生体認証(例えば、指紋認証、声紋印象、顔認証)を利用してユーザ認証を行う認証方式である。本実施例において、端末装置100は、FIDO認証方式におけるいわゆる認証器として動作する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ134は、さらに、指紋情報138と、秘密鍵SK1と、を記憶している。指紋情報138は、端末装置100を利用するユーザの指紋に関する情報である。秘密鍵SK1は、FIDO認証方式に従った認証(以下では、単に「FIDO認証」と記載する)を実行する際に利用される。
【0022】
(サーバ300の構成)
サーバ300は、インターネット上に設置されるサーバであり、例えば、MFP10のベンダによって提供されるサーバである。なお、変形例では、サーバ300は、MFP10のベンダとは異なるベンダによって提供されるサーバであってもよい。サーバ300は、FIDO(Fast Identity Online の略)認証方式に従って動作可能である。本実施例において、サーバ300は、FIDO認証方式におけるいわゆる認証サーバとして動作する。サーバ300は、FIDO認証に従ったユーザ認証が成功することに応じて、MFP10に機能(例えば印刷機能)を実行させるための指示をMFP10に送信するように構成されている。
【0023】
サーバ300は、通信I/F316と、制御部330と、を備える。通信I/F316は、インターネット6に接続されている。制御部330は、CPU332と、メモリ334と、を備える。CPU332は、メモリ334に記憶されているプログラム336に従って、様々な処理を実行する。メモリ334は、さらに、認証テーブル338を記憶している。
【0024】
(ユーザテーブル38、認証テーブル338の内容;
図2)
続いて、
図2を参照して、MFP10内のユーザテーブル38、及び、サーバ300内の認証テーブル338について説明する。
【0025】
MFP10内のユーザテーブル38では、MFP10を利用する1以上のユーザのそれぞれについて、ユーザIDと、制限情報と、ジョブIDと、FIDO情報と、が関連付けて記憶されている。制限情報は、MFP10が実行可能な印刷機能、スキャン機能、及び、コピー機能のうち、ユーザに利用が許可されている1個以上の機能を特定する情報である。「OK」は利用が許可されていることを示し、「NG」は利用が許可されていないことを示す。FIDO情報は、FIDO認証に利用される一対の鍵を登録するための登録プロセスが完了済であるのか否かを示す情報である。「登録済」は登録プロセスが完了済であることを示し、「未登録」は登録プロセスが未完了であることを示す。ジョブIDは、印刷データを識別するための情報である。図示省略しているが、ジョブIDには、印刷データが関連付けられている。
【0026】
サーバ300内の認証テーブル338では、ユーザIDと、公開鍵と、が対応付けて記憶されている。公開鍵は、FIDO認証を実行する際に利用される。公開鍵は、後述する登録プロセスにおいて、認証テーブル338に登録される。
【0027】
(登録プロセス;
図3)
続いて、
図3を参照して、FIDO認証を実行するための情報を各デバイスに登録するための登録プロセスについて説明する。なお、以下では、各デバイスのCPU(例えばMFP10のCPU32)を主体として記載せずに、各デバイス(例えばMFP10)を主体として記載する。また、各デバイスによって実行される通信は各デバイスの通信I/F(例えばMFP10の通信I/F20)を介して実行される。このため、以下では、通信I/Fを介した通信に関する処理を説明する際には、「通信I/Fを介して」という記載を省略する。
【0028】
図3の初期状態では、MFP10のユーザテーブル38には、ユーザID「U1」、印刷「OK」、スキャン「OK」、コピー「NG」、及び、FIDO情報「未登録」が関連付けて記憶されている。また、端末装置100のメモリ134には、指紋情報138が記憶されている。また、サーバ300の認証テーブル338は、空の状態である。
【0029】
端末装置100は、T10において、MFP10に割り当てられているIPアドレスの入力を受付けると、T12において、トップ画面データ要求をMFP10に送信し、T14において、MFP10からトップ画面データを受信し、T16において、トップ画面を表示部114に表示する。トップ画面には、ユーザIDを入力するための入力欄、FIDO認証を実行するための情報を登録することを要求するFIDO登録ボタン等が表示されている。端末装置100は、T20において、ユーザID「U1」の入力、及び、FIDO登録ボタンの選択(即ち登録指示)を受付けると、T22において、ユーザID「U1」を含むFIDO登録要求をMFP10に送信する。
【0030】
MFP10は、T22において、端末装置100からFIDO登録要求を受信すると、T24において、URL(Uniform Resource Locatorの略)50を生成する。MFP10は、まずメモリ34に予め記憶されているURL50a(即ち「https://server.com」)を特定する。URL50aは、サーバ300にアクセスするためのURLである。そして、端末装置100は、URL50aにクエリ文字列50bを付加することによって、URL50を生成する。クエリ文字列50bは、受信済みのFIDO登録要求に含まれるユーザID「U1」、及び、MFP10のデバイスID「dv1」を含む(即ち「user=U1&device=dv1」)。次いで、MFP10は、T26において、生成済みのURL50を含むリダイレクト指示を端末装置100に送信する。リダイレクト指示は、リダイレクト指示内のURL50を送信先URLとしてサーバ300へのアクセスを端末装置100に実行させるための指示である。
【0031】
端末装置100は、T26において、MFP10からリダイレクト指示を受信すると、T28において、リダイレクト指示内のURL50を送信先URLとして含む登録画面データ要求をサーバ300に送信する。MFP10から端末装置100にURL50を含むリダイレクト指示が送信されるために、端末装置100のユーザは、サーバ300にアクセスするための操作を実行しなくてもよい。従って、ユーザの利便性を向上させることができる。
【0032】
サーバ300は、T28において、端末装置100から登録画面データ要求を受信すると、登録画面データ要求に含まれるURL50内のマーク「?」よりも前に記述されている文字列をURL50aとして抽出し、マーク「?」よりも後に記述されている文字列をクエリ文字列50bとして抽出する。サーバ300は、さらに、クエリ文字列50bの中から、ユーザID「U1」及びデバイスID「dv1」を抽出する。サーバ300は、T30において、抽出済みのユーザID「U1」とデバイスID「dv1」とを関連付けてメモリ334に記憶する。次いで、サーバ300は、T32において、登録画面データを端末装置100に送信する。
【0033】
端末装置100は、T32において、サーバ300から登録画面データを受信すると、T34において、登録画面を表示する。登録画面は、登録プロセスが実行されていることをユーザに知らせるための画面である。次いで、端末装置100は、T40において、FIDO認証に利用される一対の鍵の登録を要求する登録開始要求をサーバ300に送信する。
【0034】
サーバ300は、T40において、登録開始要求を端末装置100から受信すると、T42において、ユニークな文字列である検証用コードVC1を生成し、T44において、ユーザID「U1」及びデバイスID「dv1」に関連付けて、生成済みの検証用コードVC1をメモリ334に記憶する。次いで、サーバ300は、T46において、生成済みの検証用コードVC1を含む認証要求を端末装置100に送信する。
【0035】
端末装置100は、T46において、サーバ300から認証要求を受信すると、T48において、指紋認証画面を表示する。指紋認証画面には、指紋認証の実行を要求するメッセージが表示される。端末装置100は、T50において、指紋認証操作を受付ける。本ケースでは、端末装置100は、指紋認証操作によって取得する指紋情報とメモリ134内の指紋情報138とが一致するために、指紋認証が成功したと判断する。次いで、端末装置100は、T52において、FIDO認証に利用する秘密鍵SK1及び公開鍵PK1を生成し、T54において、秘密鍵SK1をメモリ134に記憶する。次いで、端末装置100は、T56において、生成済みの公開鍵PK1と受信済みの検証用コードVC1とを含む認証応答をサーバ300に送信する。
【0036】
サーバ300は、T56において、端末装置100から認証応答を受信すると、当該応答内の検証用コードVC1を特定し、メモリ334内において、特定済みの検証用コードVC1に関連付けられているユーザID「U1」を特定する。サーバ300は、特定済みの検証用コードVC1と、認証テーブル338において、特定済みのユーザID「U1」に関連付けられている検証用コードVC1(T44参照)と、が一致すると判断し、ユーザID「U1」のユーザ認証が成功したと判断する。この場合、サーバ300は、T58において、受信済みの認証応答内の公開鍵PK1と、特定済みのユーザID「U1」と、を関連付けてメモリ334内の認証テーブル338に登録する。次いで、サーバ300は、T60において、第1の登録完了画面データを端末装置100に送信する。また、サーバ300は、メモリ334内において、検証用コードVC1に関連付けられているデバイスID「dv1」を特定し、T70において、ユーザID「U1」を含む第2の登録完了画面データをMFP10に送信する。また、サーバ300は、メモリ334に記憶されているデバイスID「dv1」及び検証用コードVC1を消去する。上述のように、MFP10は、通信I/F20を介して、デバイスID「dv1」を含むURL50を端末装置100に送信する(
図3のT24、T26)そして、サーバ300は、端末装置100からデバイスID「dv1」を含む登録画面データ要求を受信する(T28)。このため、仮に、複数台のMFPが存在している環境であっても、サーバ300は、端末装置100から受信されるデバイスID「dv1」を利用することによって、第2の登録完了画面データを送信すべきMFPを適切に決定することができる。
【0037】
端末装置100は、T60において、サーバ300から第1の登録完了画面データを受信すると、T62において、登録プロセスが完了したことを示すメッセージを含む第1の登録完了画面を表示部114に表示する。これにより、ユーザは、FIDO認証に利用される一対の鍵の登録が完了したことを知ることができる。
【0038】
MFP10は、T70において、サーバ300から第2の登録完了画面データを受信すると、T72において、登録プロセスが完了したことを示すメッセージを含む第2の登録完了画面を表示部14に表示する。次いで、MFP10は、T74において、ユーザテーブル38において、受信済みの第2の登録完了画面データに含まれるユーザID「U1」に関連付けられているFIDO情報を「未登録」から「登録済」に変更する。T74の処理が終了すると、登録プロセスが終了する。これにより、端末装置100のユーザは、FIDO認証を利用することができるようになる。
【0039】
(印刷プロセス;
図4)
続いて、
図4を参照して、MFP10を利用した印刷が実行される印刷プロセスについて説明する。
図4は、
図3の登録プロセスが終了した後の状態である。即ち、MFP10のユーザテーブル38において、ユーザID「U1」に関連付けられているFIDO情報には、「登録済」が記憶されている。また、端末装置100のメモリ134には、秘密鍵SK1が記憶されている。また、サーバ300の認証テーブル338には、ユーザID「U1」と公開鍵PK1とが関連付けて記憶されている。また、PC200を利用するユーザは、
図3の登録プロセスが終了した後に、PC200を利用して、MFP10に印刷データを送信している。このため、MFP10のユーザテーブル38には、ユーザID「U1」に関連づけて、PC200から受信した印刷データに対応するジョブID「job1」が記憶されている。
【0040】
MFP10は、T110において、ユーザID「U1」の入力を受付け、T112において、印刷操作(即ち印刷指示)を受付けると、ユーザテーブル38において、入力済みのユーザID「U1」に関連付けられているFIDO認証情報が「登録済み」であると判断する。この場合、MFP10は、T114において、URL52aにクエリ文字列52bが付加されているURL52を生成する。URL52a、クエリ文字列52bは、それぞれ、URL50a(
図3参照)、クエリ文字列50b(
図3参照)と同様である。なお、MFP10は、入力済みのユーザID「U1」に関連付けられているFIDO認証情報が「未登録」であると判断する場合に、登録プロセスの実行を要求するメッセージを表示部14に表示してもよい。次いで、MFP10は、URL52をコード化して、QRコードを生成し、T116において、生成済みのQRコードを表示部14に表示する。
【0041】
端末装置100は、T120において、ユーザから、カメラ122を利用して、MFP10の表示部14に表示されているQRコードを撮影するための操作を受け付けると、MFP10の表示部14に表示されているQRコードを撮影する。次いで、端末装置100は、T122において、撮影済みのQRコードをデコードして、URL52aとクエリ文字列52bとを含むURL52を取得し、T124において、取得済みのURL52を送信先URLとして含む認証画面データ要求をサーバ300に送信する。URL52a及びクエリ文字列52bを含むURL52がコード化されたQRコードがMFP10の表示部14に表示されるために、端末装置100のユーザは、URL52a、ユーザID「U1」、及び、デバイスID「dv1」を入力するための操作を実行しなくてもよい。従って、ユーザの利便性を向上させることができる。
【0042】
サーバ300は、T124において、端末装置100から認証画面データ要求を受信すると、URL52内のマーク「?」よりも前に記述されている文字列をURL52aとして抽出し、マーク「?」よりも後に記述されている文字列をクエリ文字列52bとして抽出する。サーバ300は、さらに、クエリ文字列52bの中から、ユーザID「U1」及びデバイスID「dv1」を抽出する。サーバ300は、認証テーブル338において、抽出済みのユーザID「U1」と一致するユーザID「U1」が記憶されている判断する。この場合、サーバ300は、T126において、認証テーブル338において、ユーザID「U1」に関連付けて、抽出済みのデバイスID「dv1」を記憶する。これにより、ユーザID「U1」と公開鍵PK1とデバイスID「dv1」とが関連付けられる。次いで、サーバ300は、T128において、認証画面データを端末装置100に送信する。
【0043】
端末装置100は、T128において、サーバ300から認証画面データを受信すると、T130において、認証画面を表示する。認証画面は、FIDO認証を実行するための処理が実行されていることをユーザに知らせるための画面である。次いで、端末装置100は、T140において、認証開始要求をサーバ300に送信する。
【0044】
サーバ300は、T140において、認証開始要求を端末装置100から受信すると、T142において、ユニークな文字列である検証用コードVC2を生成し、T144において、認証テーブル338において、ユーザID「U1」に関連付けて、生成済みの検証用コードVC2を記憶する。これにより、ユーザID「U1」と公開鍵PK1とデバイスID「dv1」と検証用コードVC2が関連付けられる。次いで、サーバ300は、T146において、生成済みの検証用コードVC2を含む認証要求を端末装置100に送信する。
【0045】
T148、T150は、それぞれ、
図3のT48、T50と同様である。端末装置100は、指紋認証が成功したと判断し、T152において、メモリ134に記憶されている秘密鍵SK1を利用して、受信済みの検証用コードVC2を暗号化することによって、署名情報SI1を生成する。次いで、端末装置100は、T154において、生成済みの署名情報SI1を含む認証応答をサーバ300に送信する。
【0046】
サーバ300は、T154において、端末装置100から認証応答を受信すると、T156において、認証テーブル338において、ユーザID「U1」に関連付けられている公開鍵PK1を利用して、認証応答内の署名情報SI1を復号化する。本実施例では、公開鍵PK1を利用して署名情報SI1を復号化することによって、検証用コードVC2が得られる。サーバ300は、復号済みの署名情報SI1(即ち検証用コードVC2)と、認証テーブル338において、ユーザID「U1」に関連付けられている検証用コードVC2(T144参照)と、が一致すると判断し、ユーザID「U1」のユーザ認証が成功したと判断する。この場合、サーバ300は、認証テーブル338において、ユーザID「U1」に関連付けられているデバイスID「dv1」を特定し、T160において、実行指示をMFP10に送信する。実行指示は、ユーザID「U1」のユーザ認証が成功したことを示す情報であり、かつ、MFP10が受け付けた指示(T112参照)に対応する機能の実行を指示するための情報である。また、サーバ300は、実行指示をMFP10に送信した後に、認証テーブル338において、ユーザID「U1」に関連付けられているデバイスID「dv1」及び検証用コードVC2を消去する。
【0047】
上述のように、デバイスID「dv1」を含むURL52がコード化されたQRコードがMFP10の表示部14に表示される(T114、T116参照)。そして、サーバ300は、端末装置100からデバイスID「dv1」を含む認証画面データ要求を受信する(T124)。このため、仮に、複数台のMFPが存在している環境であっても、サーバ300は、端末装置100から受信されるデバイスID「dv1」を利用することによって、実行指示を送信すべきMFPを適切に決定することができる。また、上述のように、ユーザID「U1」を含むURL52がコード化されたQRコードがMFP10の表示部14に表示される(T114、T116参照)。そして、サーバ300は、端末装置100からユーザID「U1」を含む認証画面データ要求を受信する(T124)。このため、サーバ300は、端末装置100から受信されるユーザID「U1」を利用することによって、署名情報SI1の復号化に利用する公開鍵を適切に決定することができる。
【0048】
MFP10は、T160において、サーバ300から実行指示を受信すると、T162において、表示部14に表示されているQRコードを消去する。なお、変形例では、MFP10は、QRコードを表示部14に表示してから所定時間が経過する場合に、表示部14からQRコードを消去してもよい。次いで、MFP10は、ユーザテーブル38において、入力済みのユーザID「U1」(T110参照)に関連付けられているジョブID「job1」を特定し、特定済みのジョブID「job1」に関連付けられている印刷データを特定し、T164において、特定済みの印刷データに従った印刷を実行する。T164の処理が終了すると、印刷プロセスが終了する。このように、端末装置100のユーザは、FIDO認証を利用して、MFP10に印刷機能を実行させることができる。
【0049】
(本実施例の効果)
上記の構成によると、MFP10は、印刷指示をユーザから受け付ける場合(
図4のT112)に、サーバ300のURL52aを含むQRコードを表示部14に表示する(T116)。端末装置100は、QRコードを取得する場合(T120)に、URL52aを利用して、サーバ300にアクセスする(T124)ことに応じて、サーバ300から検証用コードVC2を受信する(T146)。端末装置100は、ユーザの指紋認証が成功する場合に、秘密鍵SK1を利用して検証用コードVC2を暗号化することによって署名情報SI1を生成し、生成済みの署名情報SI1をサーバ300に送信する(T154)。サーバ300は、端末装置100から署名情報SI1を受信する場合(T154)に、公開鍵PK1を利用して、署名情報SI1を復号化する(T156)。サーバ300は、署名情報SI1を復号化することによって、検証用コードVC2が得られる場合に、実行指示をMFP10に送信する(T160)。MFP10は、QRコードを表示部14に表示した後に、サーバ300から実行指示を受信する場合(T160)に、印刷機能を実行する(T164)。従って、一対の鍵を利用するFIDO認証方式に従って、MFP10に印刷機能を実行させることができる。
【0050】
また、
図3の登録プロセスにおいて、MFP10は、通信I/F20を介して、ユーザID「U1」を含むURL50を端末装置100に送信する(T24、T26)。そして、サーバ300は、端末装置100からユーザID「U1」を含む登録画面データ要求を受信し(T28)、ユーザID「U1」と、公開鍵PK1と、を関連付けてメモリ334の認証テーブル338に登録する(T58)。このため、サーバ300は、
図4の印刷プロセスにおいて、端末装置100から、署名情報SI1を含む認証応答を受信する場合(T154)に、認証テーブル338において、ユーザID「U1」に関連付けられている適切な公開鍵PK1を利用して、署名情報SI1を復号化することができる(T156)。
【0051】
また、サーバ300は、MFP10から出力されるQRコードが端末装置100によって取得され(
図4のT120)、QRコードを取得した端末装置100がURL52aを利用して、サーバ300にアクセスする場合(T124)に、検証用コードVC2を端末装置100に送信する(T146)。端末装置100は、ユーザの指紋認証が成功する場合(T150)に、秘密鍵SK1を利用して検証用コードVC2を暗号化することによって署名情報SI1を生成し(T152)、署名情報SI1をサーバ300に送信する。サーバ300は、端末装置100から署名情報SI1を受信する場合(T154)に、公開鍵PK1を利用して、署名情報SI1を復号化する(T156)。サーバ300は、署名情報SI1を復号化することによって検証用コードVC2が得られる場合に、実行指示をMFP10に送信する(T160)。MFP10は、サーバ300から実行指示を受信する場合に、印刷機能を実行する(T164)。従って、一対の鍵を利用するFIDO認証方式に従って、MFP10に印刷機能を実行させることができる。
【0052】
(対応関係)
MFP10が、「機能実行装置」の一例である。端末装置100のユーザが、「対象ユーザ」の一例である。印刷機能、印刷指示が、それぞれ、「特定機能」、「特定指示」の一例である。FIDO認証方式が、「所定の認証方式」の一例である。URL52aが、「サーバの位置情報」の一例である。
図4のT116のQRコードが、「第1の出力情報」及び「コード画像」の一例である。表示部14が、「第1の出力部」の一例である。検証用コードVC2が、「第1の検証情報」の一例である。
図4のT150で成功する指紋認証が、「第1の認証」の一例である。デバイスID「dv1」が、「装置識別情報」の一例である。ユーザID「U1」が、「ユーザ識別情報」の一例である。
図3のT26のURL50を含むリダイレクト指示が、「第2の出力情報」の一例である。通信I/F20が、「第2の出力部」の一例である。検証用コードVC1が、「第2の検証情報」の一例である。
図3のT50で成功する指紋認証が、「第2の認証」の一例である。
図3のT70の第2の登録完了画面データが、「登録完了通知」の一例である。
【0053】
図4のT116、T164が、それぞれ、「第1の出力制御部」、「機能実行部」によって実行される処理の一例である。
【0054】
図4のT146、T154、T156、T160が、それぞれ、「検証情報送信部」、「署名情報受信部」、「復号部」、「実行指示送信部」によって実行される処理の一例である。
【0055】
(第2実施例)
続いて、
図5を参照して、第2実施例について説明する。第2実施例は、印刷指示を受付けることに応じてMFP10によって実行される処理が、第1実施例のMFP10によって実行される処理と異なる。
図5の初期状態は、
図4の初期状態と同じである。
【0056】
図5のT210、T212は、それぞれ、
図4のT110、T112と同様である。MFP10は、T214において、入力済みのユーザID「U1」とデバイスID「dv1」とを含むトークン生成要求をサーバ300に送信する。
【0057】
サーバ300は、T214において、MFP10からトークン生成要求を受信すると、T220において、ユニークなトークン「tk1」を生成し、T222において、認証テーブル338において、トークン生成要求に含まれるユーザID「U1」に関連付けて、デバイスID「dv1」及びトークン「tk1」を一時的に記憶する。次いで、サーバ300は、T224において、トークン「tk1」をMFP10に送信する。
【0058】
MFP10は、T224において、サーバ300からトークン「tk1」を受信すると、T226において、URL54aにクエリ文字列54bが付加されているURL54を生成する。URL54aは、URL50a(
図3参照)と同様である。クエリ文字列54bは、トークン「tk1」を含む(即ち「token=tk1」)。次いで、MFP10は、URL54をコード化して、QRコードを生成し、T228において、生成済みのQRコードを表示部14に表示する。
【0059】
T230~T234は、URL54が利用される点を除いて、
図4のT120~T124と同様である。サーバ300は、T234において、端末装置100から認証画面データ要求を受信すると、URL54内のマーク「?」よりも前に記述されている文字列をURL54aとして抽出し、マーク「?」よりも後に記述されている文字列をクエリ文字列54bとして抽出する。サーバ300は、さらに、クエリ文字列54bの中から、トークン「tk1」を抽出する。サーバ300は、認証テーブル338において、抽出済みのトークン「tk1」と一致するトークン「tk1」が記憶されていると判断する。そして、サーバ300は、認証テーブル338において、トークン「tk1」に関連付けられているユーザID「U1」、公開鍵PK1、及び、デバイスID「dv1」を、その後の処理に利用する対象情報として特定する。次いで、サーバ300は、認証テーブル338からトークン「tk1」を消去し、T236において、認証画面データを端末装置100に送信する。T238、T240は、それぞれ、T130、T140と同様である。サーバ300は、T242において、ユニークな文字列である検証用コードVC3を生成し、T244において、認証テーブル338において、ユーザID「U1」、公開鍵PK1、及び、デバイスID「dv1」に関連付けて、検証用コードVC3を記憶する。次いで、サーバ300は、T246において、検証用コードVC3を含む認証要求を端末装置100に送信する。
【0060】
T248、T250は、それぞれ、
図4のT148、T150と同様である。端末装置100は、T252において、メモリ134に記憶されている秘密鍵SK1を利用して、受信済みの検証用コードVC3を暗号化することによって、署名情報SI2を生成する。次いで、端末装置100は、T254において、生成済みの署名情報SI2を含む認証応答をサーバ300に送信する。
【0061】
サーバ300は、T254において、端末装置100から認証応答を受信すると、T256において、対象情報として特定された公開鍵PK1を利用して、認証応答内の署名情報SI2を復号化する。本実施例では、公開鍵PK1を利用して署名情報SI2を復号化することによって、検証用コードVC3が得られる。サーバ300は、復号済みの署名情報SI2(即ち検証用コードVC3)と、認証テーブル338に記憶されている検証用コードVC3(T244参照)と、が一致すると判断し、対象情報として特定されたユーザID「U1」のユーザ認証が成功したと判断する。この場合、サーバ300は、T260において、対象情報として特定されたデバイスID「dv1」によって識別されるMFP10に実行指示を送信する。また、サーバ300は、実行指示をMFP10に送信した後に、認証テーブル338において、ユーザID「U1」に関連付けられているデバイスID「dv1」、及び、検証用コードVC3を消去する。T262、T264は、それぞれ、T162、T164と同様である。
【0062】
上述のように、MFP10は、印刷指示をユーザから受け付ける場合(
図5のT212)に、デバイスID「dv1」を含むトークン生成要求をサーバ300に送信する(T214)。サーバ300は、MFP10からトークン生成要求を受信する場合(T214)に、トークン「tk1」を生成し(T220)、デバイスID「dv1」とトークン「tk1」とを関連付けて記憶して(T222)、トークン「tk1」をMFP10に送信する(T224)。MFP10によって生成されるQRコードは、URL54とトークン「tk1」とを含む情報である(T226)。そして、サーバ300は、端末装置100から、URL54とトークン「tk1」を含む認証画面データ要求を受信する(T234)。サーバ300は、端末装置100から受信されるトークン「tk1」を利用して、トークン「tk1」に関連付けて記憶されているデバイスID「dv1」を特定することができる。このため、仮に、複数台のMFPが存在している環境であっても、サーバ300は、端末装置100から受信されるトークン「tk1」を利用することによって、実行指示を送信すべきMFPを適切に決定することができる。
【0063】
また、上述のように、MFP10は、印刷指示をユーザから受け付ける場合(
図5のT212)に、ユーザID「U1」を含むトークン生成要求をサーバ300に送信する(T214)。サーバ300は、MFP10からトークン生成要求を受信する場合(T214)に、トークン「tk1」を生成し(T220)、ユーザID「U1」とトークン「tk1」とを関連付けて記憶して(T222)、トークン「tk1」をMFP10に送信する(T224)。MFP10によって生成されるQRコードは、URL54とトークン「tk1」とを含む情報である(T226)。そして、サーバ300は、端末装置100から、URL54とトークン「tk1」を含む認証画面データ要求を受信する(T234)。サーバ300は、端末装置100から受信されるトークン「tk1」を利用して、トークン「tk1」に関連付けて記憶されているユーザID「U1」を特定し、ユーザID「U1」に関連付けて記憶されている公開鍵PK1を特定することができる。このように、サーバ300は、端末装置100から受信されるトークン「tk1」を利用することによって、署名情報SI2の復号化に利用する公開鍵を適切に決定することができる。
【0064】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0065】
(第1変形例)「第1の出力部」は、表示部14に限定されず、印刷実行部16,通信I/F20であってもよい。印刷実行部16が、「第1の出力部」の一例である場合、印刷実行部16によってコード画像(QRコード、バーコード等)が印刷されてもよいし、URL52(
図4参照)を表わす文字列が印刷されてもよい。また、通信I/F20が、「第1の出力部」の一例である場合、URL52が端末装置100に送信されるとよい。なお、本変形例では、通信I/F20は、NFCI/F、Wi-FiI/F、Bluetooth(登録商標)I/Fである。
【0066】
(第2変形例)端末装置100のメモリ134において、パスワードが記憶されていてもよい。本変形例では、端末装置100は、
図4のT148において、パスワードの入力を要求する画面を表示部114に表示する。
【0067】
(第3変形例)MFP10は、ユーザが操作部12を操作することに応じて、MFP10にスキャン機能を実行させるための指示を取得する場合、又は、ユーザが端末装置100を操作することに応じて、端末装置100から、MFP10内のウェブサーバにログインするための指示を受信する場合に、
図4のT114以降の処理、及び、
図5のT214以降の処理を実行するように構成されていてもよい。
【0068】
(第4変形例)
図4のT114のURL52が、ユーザID「U1」及びデバイスID「dv1」の少なくとも一方を含んでいなくてもよい。この場合、端末装置100は、URL52が取得される場合に、ユーザID及び/又はデバイスIDの入力を要求する画面を表示部114に表示してもよい。また、別の変形例では、端末装置100のメモリ134に予めユーザID「U1」及び/又はデバイスID「dv1」が記憶されており、端末装置100は、ユーザID「U1」及びデバイスID「dv1」の少なくとも一方を含まないURL52が取得される場合に、ユーザID「U1」及びデバイスID「dv1」のうちURL52に含まれていない情報をサーバ300に送信してもよい。
【0069】
(第5変形例)
図5のT214のトークン生成要求が、ユーザID「U1」及びデバイスID「dv1」の少なくとも一方を含んでいなくてもよい。本変形例では、サーバ300のメモリ334に予めユーザID「U1」及び/又はデバイスID「dv1」が記憶されており、サーバ300は、トークン生成要求が受信される場合に、トークン「tk1」を生成し、メモリ334に記憶されているユーザID「U1」及び/又はデバイスID「dv1」に関連付けてトークン「tk1」を記憶する。
【0070】
(第6変形例)
図3のT24のURL50が、ユーザID「U1」及びデバイスID「dv1」の少なくとも一方を含んでいなくてもよい。この場合、端末装置100は、URL50が取得される場合に、ユーザID及び/又はデバイスIDの入力を要求する画面を表示部114に表示してもよい。また、別の変形例では、端末装置100のメモリ134に予めユーザID「U1」及び/又はデバイスID「dv1」が記憶されており、端末装置100は、URL50が取得される場合に、ユーザID「U1」及びデバイスID「dv1」のうちURL50に含まれていない情報をサーバ300に送信してもよい。
【0071】
(第7変形例)
図3のT26においてMFP10が送信する信号がリダイレクト指示でなくてもよい。本変形例では、端末装置100は、MFP10からURL50を受信する場合に、サーバ300にアクセスすることを許可するのか否かをユーザに選択させるための画面を表示部114に表示してもよいし、URL50を表わす文字列を表示部114に表示してもよい。
【0072】
(第8変形例)「機能実行装置」は、MFP10に限らず、例えば、プリンタ、スキャナ、PC等の端末装置等であってもよい。
【0073】
(第9変形例)上記の実施例では、
図3~
図5の処理がソフトウェア(例えばプログラム36、336)によって実現されるが、これらの各処理の少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0074】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0075】
2:通信システム、4:LAN、6:インターネット、10:MFP、12:操作部、14:表示部、16:印刷実行部、18:スキャン実行部、20:通信I/F、30:制御部、32:CPU、34:メモリ、36:プログラム、38:ユーザテーブル、50:URL、50a:URL、50b:クエリ文字列、52:URL、52a:URL、52b:クエリ文字列、54:URL、54a:URL、54b:クエリ文字列、100:端末装置、112:操作部、114:表示部、120:通信I/F、122:カメラ、130:制御部、132:CPU、134:メモリ、138:指紋情報、200:PC、300:サーバ、316:通信I/F、330:制御部、332:CPU、334:メモリ、336:プログラム、338:認証テーブル