(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024073097
(43)【公開日】2024-05-29
(54)【発明の名称】通信装置及び通信装置のためのコンピュータプログラム
(51)【国際特許分類】
G06F 21/33 20130101AFI20240522BHJP
G06F 3/12 20060101ALI20240522BHJP
【FI】
G06F21/33
G06F3/12 322
G06F3/12 338
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022184110
(22)【出願日】2022-11-17
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】森 匡平
(57)【要約】
【課題】 パラメータを予め記憶する記憶領域を通信装置に設けることなく、認証サーバから認証情報を取得するための技術を提供する。
【解決手段】 通信装置は、認証サーバと通信するためのパラメータを要求するパラメータ要求を、特定のサーバに送信する第1の要求送信部と、特定のサーバからパラメータを受信するパラメータ受信部と、特定のサーバから受信したパラメータを利用して、認証情報を要求する認証情報要求を認証サーバに送信する第2の要求送信部と、端末装置が特定のアカウント情報を利用して、認証サーバ及びサービスサーバのいずれかにログインしている特定の条件が満たされる場合に、認証情報要求に対する応答として、認証サーバから認証情報を受信する認証情報受信部と、認証サーバから受信した認証情報を利用して、サービスサーバと対象データを通信するデータ通信部と、を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
通信装置であって、
端末装置から所定の信号を受信することに応じて、認証サーバと通信するためのパラメータを要求するパラメータ要求を、前記認証サーバとは異なる特定のサーバに送信する第1の要求送信部であって、前記認証サーバは、前記通信装置がサービスサーバと通信するための認証情報を前記通信装置に提供可能に構成されており、前記サービスサーバは、特定のサービスを前記通信装置のユーザに提供可能に構成されている、前記第1の要求送信部と、
前記パラメータ要求に対する応答として、前記特定のサーバから前記パラメータを受信するパラメータ受信部と、
前記特定のサーバから受信した前記パラメータを利用して、前記認証情報を要求する認証情報要求を前記認証サーバに送信する第2の要求送信部と、
前記所定の信号の送信元である前記端末装置が、特定のアカウント情報を利用して、前記認証サーバ及び前記サービスサーバのいずれかにログインしている特定の条件が満たされる場合に、前記認証情報要求に対する応答として、前記認証サーバから前記認証情報を受信する認証情報受信部であって、前記特定の条件が満たされない場合に、前記認証情報は前記認証サーバから受信されない、前記認証情報受信部と、
前記認証サーバから受信した前記認証情報を利用して、前記サービスサーバと対象データを通信するデータ通信部と、
を備える、通信装置。
【請求項2】
前記特定のサービスは、電子メールを前記ユーザに提供し、
前記通信装置は、さらに、
第1の入力画面に対応する入力画面情報を前記端末装置に送信する第1の画面情報送信部であって、前記第1の入力画面は、前記電子メールの通信に利用されるプロトコルを示すプロトコル情報を入力する入力欄を含む、前記第1の画面情報送信部と、
前記第1の入力画面に入力された前記プロトコル情報を前記特定のサーバに送信するプロトコル情報送信部と、
を備える、請求項1に記載の通信装置。
【請求項3】
前記第1の入力画面は、さらに、前記電子メールのアドレスを入力する入力欄を含む、請求項2に記載の通信装置。
【請求項4】
前記特定のサーバは、第1のサービスに対応する第1の前記パラメータと、第2のサービスに対応する第2の前記パラメータと、を含む複数個の前記パラメータを記憶し、
前記通信装置は、さらに、
前記端末装置において選択された前記特定のサービスを識別する識別情報を前記端末装置から受信する識別情報受信部を備え、
前記第1のサービスを識別する第1の前記識別情報が受信される場合に、
前記第1の要求送信部は、前記第1の識別情報を含む前記パラメータ要求を前記特定のサーバに送信し、
前記パラメータ受信部は、前記第1のサービスに対応する前記第1のパラメータを受信し、
前記第2のサービスを識別する第2の前記識別情報が受信される場合に、
前記第1の要求送信部は、前記第2の識別情報を含む前記パラメータ要求を前記特定のサーバに送信し、
前記パラメータ受信部は、前記第2のサービスに対応する前記第2のパラメータを受信する、請求項1から3のいずれか一項に記載の通信装置。
【請求項5】
前記認証情報は、OAuthに従ったトークンである、請求項1から3のいずれか一項に記載の通信装置。
【請求項6】
前記通信装置は、さらに、
前記特定のサーバから受信した前記パラメータを利用して、ユーザコードを要求するユーザコード要求を前記認証サーバに送信する第3の要求送信部と、
前記ユーザコード要求に対する応答として、前記認証サーバから前記ユーザコードを受信するコード受信部と、
コード画面に対応するコード画面情報を前記端末装置に送信する第2の画面情報送信部であって、
前記コード画面は、前記認証サーバから受信した前記ユーザコードを表示し、
前記認証サーバは、第2の入力画面を前記端末装置に表示させ、
前記第2の入力画面は、前記ユーザコードを入力する入力欄を含み、
前記認証サーバは、前記第2の入力画面に入力された前記ユーザコードの認証を実行する、
前記第2の画面情報送信部と、
を備え、
前記特定の条件は、前記端末装置が前記特定のアカウント情報を利用して前記認証サーバ及び前記サービスサーバのいずれかにログインしており、かつ、前記認証サーバによる前記認証が成功することである、請求項1から3のいずれか一項に記載の通信装置。
【請求項7】
前記第1の要求送信部は、前記端末装置が前記通信装置にログインした後に、前記パラメータ要求を前記特定のサーバに送信する、請求項1から3のいずれか一項に記載の通信装置。
【請求項8】
前記サービスサーバは、前記認証サーバと異なり、
前記サービスサーバを設置した事業者は、前記認証サーバを設置した事業者と同一である、請求項1から3のいずれか一項に記載の通信装置。
【請求項9】
前記特定のサーバを設置した事業者は、前記通信装置のベンダと同じである、請求項1から3のいずれか一項に記載の通信装置。
【請求項10】
通信装置のためのコンピュータプログラムであって、
前記コンピュータプログラムは、前記通信装置のコンピュータを、以下の各部、即ち、
端末装置から所定の信号を受信することに応じて、認証サーバと通信するためのパラメータを要求するパラメータ要求を、前記認証サーバとは異なる特定のサーバに送信する第1の要求送信部であって、前記認証サーバは、前記通信装置がサービスサーバと通信するための認証情報を提供可能に構成されており、前記サービスサーバは、特定のサービスを前記通信装置のユーザに提供可能に構成されている、前記第1の要求送信部と、
前記パラメータ要求に対する応答として、前記特定のサーバから前記パラメータを受信するパラメータ受信部と、
前記特定のサーバから受信した前記パラメータを利用して、前記認証情報を要求する認証情報要求を前記認証サーバに送信する第2の要求送信部と、
前記所定の信号の送信元である前記端末装置が、特定のアカウント情報を利用して、前記認証サーバ及び前記サービスサーバのいずれかにログインしている特定の条件が満たされる場合に、前記認証情報要求に対する応答として、前記認証サーバから前記認証情報を受信する認証情報受信部であって、前記特定の条件が満たされない場合に、前記認証情報は前記認証サーバから受信されない、前記認証情報受信部と、
前記認証サーバから受信した前記認証情報を利用して、前記サービスサーバと対象データを通信するデータ通信部と、
として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、サーバと通信可能に構成されている通信装置に関する。
【背景技術】
【0002】
特許文献1には、スマートフォンを操作して、認証トークンをプリンタに取得させるOAuth2.0 Device Authorization Grant、いわゆる、デバイスフローが開示されている。デバイスフローでは、プリンタが、認可サーバ装置と通信して、認可サーバ装置から認証トークンを取得する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-084979号公報
【特許文献2】特開2022-054025号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
プリンタ等の通信装置が認可サーバ装置と通信するためには、様々なパラメータが必要である。例えば、通信装置がパラメータを予め記憶する構成が想定される。この構成では、パラメータを予め記憶する記憶領域を通信装置に設ける必要がある。
【0005】
本明細書では、パラメータを予め記憶する記憶領域を通信装置に設けることなく、認証サーバから認証情報を取得するための技術を提供する。
【課題を解決するための手段】
【0006】
本明細書が開示する通信装置は、端末装置から所定の信号を受信することに応じて、認証サーバと通信するためのパラメータを要求するパラメータ要求を、前記認証サーバとは異なる特定のサーバに送信する第1の要求送信部であって、前記認証サーバは、前記通信装置がサービスサーバと通信するための認証情報を前記通信装置に提供可能に構成されており、前記サービスサーバは、特定のサービスを前記通信装置のユーザに提供可能に構成されている、前記第1の要求送信部と、前記パラメータ要求に対する応答として、前記特定のサーバから前記パラメータを受信するパラメータ受信部と、前記特定のサーバから受信した前記パラメータを利用して、前記認証情報を要求する認証情報要求を前記認証サーバに送信する第2の要求送信部と、前記所定の信号の送信元である前記端末装置が、特定のアカウント情報を利用して、前記認証サーバ及び前記サービスサーバのいずれかにログインしている特定の条件が満たされる場合に、前記認証情報要求に対する応答として、前記認証サーバから前記認証情報を受信する認証情報受信部であって、前記特定の条件が満たされない場合に、前記認証情報は前記認証サーバから受信されない、前記認証情報受信部と、前記認証サーバから受信した前記認証情報を利用して、前記サービスサーバと対象データを通信するデータ通信部と、を備える。
【0007】
上記の構成によれば、通信装置は、特定のサーバからパラメータを受信し、当該パラメータを利用して、認証情報要求を認証サーバに送信する。即ち、パラメータは、特定のサーバに記憶されていればよく、通信装置に予め記憶されていなくてもよい。パラメータを予め記憶する記憶領域を通信装置に設けることなく、認証サーバから認証情報を取得することができる。
【0008】
上記の通信装置を実現するためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記憶媒体も新規で有用である。
【図面の簡単な説明】
【0009】
【
図3】
図3は、パラメータ提供サーバのブロック図である。
【
図4】
図4は、メールサーバを利用するための処理を示すシーケンス図である。
【発明を実施するための形態】
【0010】
(通信システム2の構成;
図1)
通信システム2は、多機能機10と、端末装置100と、パラメータ提供サーバ200と、認証サーバ300と、メールサーバ400と、を備える。多機能機10は、印刷機能とスキャン機能とを含む多機能を有する装置である。多機能機10は、例えば、端末装置100の周辺装置である。なお、以下では、多機能機10をMFP10と記載する。端末装置100は、例えば、スマートフォン、タブレットPC、ラップトップPC、デスクトップPCである。MFP10と端末装置100は、LAN4に接続されている。LAN4は、有線又は無線である。端末装置100は、LAN4を介して、MFP10と通信する。
【0011】
LAN4は、インターネット6に接続されている。インターネット6には、パラメータ提供サーバ200と、認証サーバ300と、メールサーバ400と、が接続されている。LAN4に接続されている装置、例えば、端末装置100は、LAN4及びインターネット6を介して、インターネット6に接続されている装置、例えば、パラメータ提供サーバ200と通信する。
【0012】
メールサーバ400は、電子メールのサービスをユーザに提供可能に構成されている。認証サーバ300は、MFP10等のデバイスがメールサーバと通信するためのトークンを当該デバイスに提供可能に構成されている。認証サーバ300を設置した事業者は、メールサーバ400を設置した事業者と同じである。なお、変形例では、認証サーバ300を設置した事業者は、メールサーバ400を設置した事業者と異なっていてもよい。
【0013】
認証サーバ300によって提供されるトークンは、例えば、OAuthに従ったトークンである。OAuthは、アカウント情報(即ちユーザ名とパスワード)に代えて、トークンを利用する認証方式である。認証サーバ300は、アカウント情報を保有するユーザの承諾を得て、トークンをMFP10等のデバイスに提供する。デバイスは、トークンを利用して、メールサーバ400との通信を実行する。特に、OAuthに従ったトークンを、ブラウザプログラムを有しないデバイス、例えば、MFP10に提供する方法を、デバイスフローと呼ぶ。本実施例では、デバイスフローによってMFP10にトークンが提供される。
【0014】
電子メールのサービスを提供する事業者は複数存在し得る。このため、メールサーバ400及び認証サーバ300も、複数存在し得る。メールサーバ400及び認証サーバ300のそれぞれの個数は、1個に限らず、2個以上であってもよい。
【0015】
パラメータ提供サーバ200は、認証サーバ300と通信するための通信パラメータをMFP10等のデバイスに提供可能に構成されている。パラメータ提供サーバ200を設置した事業者は、MFP10のベンダと同じであり、当該ベンダは、認証サーバ300とメールサーバ400とを設置した事業者と異なる。このような構成によれば、MFP10のベンダが、パラメータ提供サーバ200を管理することができ、当該ベンダは、通信パラメータの追加又は修正をいつでも行うことができる。なお、変形例では、パラメータ提供サーバ200を設置した事業者は、MFP10等のデバイスのベンダと異なっていてもよい。
【0016】
(MFP10の構成;
図2)
MFP10は、印刷実行部12と、スキャン実行部14と、LANインターフェース16と、制御部30と、を備える。なお、以下では、インターフェースのことを「I/F」と記載する。
【0017】
印刷実行部12は、インクジェット方式、レーザ方式等の印刷機構を備える。スキャン実行部14は、Charge Coupled Device(CCD)イメージセンサ、Contact Image Sensor(CIS)等のスキャン機構を備える。LANI/F16は、LAN4を介した通信を実行するためのI/Fであり、LAN4に接続されている。
【0018】
制御部30は、CPU32と、メモリ34と、を備える。メモリ34は、プログラム40と、サービステーブル50と、を記憶する。CPU32は、プログラム40に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。
【0019】
サービステーブル50は、MFP10が電子メールのサービスを利用するための情報を記憶する。サービステーブル50は、複数個のサービスIDを記憶する。サービスIDは、サービスを識別するIDである。サービステーブル50は、サービスIDと関連付けて、メールアドレスと、プロトコル名と、トークンと、を記憶する。メールアドレスは、サービスIDによって識別されるサービスによって提供される電子メールのアドレスである。プロトコル名は、当該メールアドレスを利用した電子メールの通信を実行するためのプロトコルを示す。トークンは、当該メールアドレスを利用した電子メールの通信を認証するための情報である。
【0020】
例えば、MFP10は、サービステーブル50に記憶されるメールアドレスを利用して、スキャン実行部14によって生成されたスキャンデータが添付されたスキャンメールを送信可能に構成されている。
【0021】
(パラメータ提供サーバ200の構成:
図3)
パラメータ提供サーバ200は、ネットワークI/F216と、制御部230と、を備える。ネットワークI/F216は、インターネット6を介した通信を実行するためのI/Fであり、インターネット6に接続されている。
【0022】
制御部30は、CPU232と、メモリ234と、を備える。メモリ234は、プログラム240と、情報テーブル250と、パラメータテーブル252と、を記憶する。CPU232は、プログラム240に従って、様々な処理を実行する。
【0023】
情報テーブル250は、複数個のサービス情報を記憶する。サービス情報は、サービスIDと、当該サービスIDによって識別されるサービスのサービス名と、当該サービスで利用可能なプロトコルのリストと、を含む。
【0024】
パラメータテーブル252は、複数個の通信パラメータを記憶する。各通信パラメータは、サービスIDと関連付けてパラメータテーブル252に記憶される。通信パラメータは、devicecode_endpointと、token_endpointと、client_idと、を含む。devicecode_endpointは、認証サーバ300にコードを要求するコード要求の送信先を示すURLである。token_endpointは、認証サーバ300にトークンを要求するトークン要求の送信先を示すURLである。client_idは、クライアントを識別する。ここで、クライアントは、デバイスフローを利用するデバイスのベンダ、例えば、MFP10のベンダである。client_idは、認証サーバ300から当該ベンダに提供される。なお、通信パラメータは、devicecode_endpoint、token_endpoint、client_id以外の他の値も含む。他の値は、例えば、scope等の固定値である。scopeは、電子メールの通信に利用されるプロトコルを示す値を含む。
【0025】
(メールサーバ400を利用するための処理;
図4、
図5、
図6)
図4、
図5、
図6を参照して、MFP10がメールサーバ400を利用するための処理について説明する。以下では、理解の容易化のために、CPU32がプログラム40に従って実行する動作を、CPU32を主体として記載せずに、MFP10を主体として記載する。パラメータ提供サーバ200についても、CPU232に代えて、パラメータ提供サーバ200を主体として記載する。また、MFP10と他の装置との間の通信の全ては、LANI/F16とLAN4を介して実行されるので、以下では、「LANI/F16を介して」及び「LAN4を介して」という説明を省略する。また、パラメータ提供サーバ200と他の装置との間の通信は全て、ネットワークI/F216とインターネット6を介して実行されるので、以下では、「ネットワークI/F216を介して」及び「インターネット6を介して」という説明を省略する。
【0026】
MFP10は、印刷機能及びスキャン機能に加えて、サーバとして動作するサーバ機能を有する。サーバ機能では、MFP10は、クライアントとして動作する端末装置100からのリクエストを受信することに応じて、設定画面を端末装置100に提供する。例えば、ユーザは、MFP10から提供された設定画面を操作して、MFP10の設定、例えば、ネットワーク設定を変更することができる。
【0027】
端末装置100は、MFP10のサーバ機能にログインするためのアカウント情報を利用して、MFP10のサーバ機能へのログインを試行する。端末装置100は、T10において、MFP10のサーバ機能へのログインが成功すると、T12において、HTTPコマンドをMFP10に送信する。HTTPは、Hyper Text Transfer Protocolである。なお、
図4及び
図5において端末装置100が実行する処理は、端末装置100にインストールされているブラウザプログラムに従って実行される。
【0028】
T14では、端末装置100は、T12のHTTPコマンドに対する応答として、MFP10から設定画面情報を受信する。
【0029】
T16では、端末装置100は、設定画面情報に対応する設定画面SC1を表示する。
図6に示すように、設定画面SC1は、OAuthに従ったデバイスフローの実行を指示するためのボタンBT1を含む。
【0030】
端末装置100は、T20において、設定画面SC1内のボタンBT1の選択を検知すると、T22において、サービス選択画面要求をパラメータ提供サーバ200に送信する。サービス選択画面要求は、
図6に示すサービス選択画面SC2に対応するサービス選択画面情報を要求する信号である。サービス選択画面要求は、call back URLを含む。call back URLは、パラメータ提供サーバ200から受信する情報の転送先を示す。
【0031】
T24では、端末装置100は、サービス選択画面要求に対する応答として、パラメータ提供サーバ200からサービス選択画面情報を受信する。サービス選択画面情報は、情報テーブル250に記憶されているサービス名のリストを含む。T26では、端末装置100は、サービス選択画面SC2を表示する。
図6に示すように、サービス選択画面SC2は、複数個のサービスの中から1個のサービスを選択するためのボタンを含む。例えば、サービス名「ServiceA」を有するサービスは、第1の事業者によって提供される電子メールのサービスであり、サービス名「ServiceB」を有するサービスは、第1の事業者とは異なる第2の事業者によって提供される電子メールのサービスである。例えば、サービス選択画面SC2は、サービス名「ServiceA」を選択するボタンBT2と、サービス名「ServiceB」を選択するボタンBT3と、を含む。本ケースでは、サービス名「ServiceA」を有するサービスをメールサーバ400が提供する。
【0032】
端末装置100は、T30において、サービス選択画面SC2内のボタンBT2の選択を検知すると、T32において、サービス名「ServiceA」が選択されたことを示す選択通知をパラメータ提供サーバ200に送信する。
【0033】
パラメータ提供サーバ200は、T32において、端末装置100から選択通知を受信すると、情報テーブル250から、選択通知によって示されるサービス名「ServiceA」に関連付けて記憶されているサービスID「sss1」を取得する。T34では、パラメータ提供サーバ200は、情報テーブル250から取得したサービスID「sss1」とT22で端末装置100から受信したcall back URLとを端末装置100に送信する。
【0034】
端末装置100は、T34において、パラメータ提供サーバ200からサービスID「sss1」とcall back URLとを受信すると、T36において、call back URLを利用してMFP10にアクセスする。そして、端末装置100は、サービスID「sss1」をMFP10に転送する。
【0035】
MFP10は、T36において、端末装置100からサービスID「sss1」を受信すると、T38において、
図6に示す入力画面SC3に対応する入力画面情報を端末装置100に送信する。
【0036】
端末装置100は、T38において、MFP10から入力画面情報を受信すると、T40において入力画面SC3を表示する。
図6に示すように、入力画面SC3は、メールアドレスを入力する入力欄と、メールアドレスの通信に利用するプロトコルを示すプロトコル名を入力する入力欄と、を含む。本ケースでは、メールサーバ400には、端末装置100のユーザのアカウント情報が既に登録されている。さらに、メールサーバ400は、端末装置100のユーザが利用するためのメールアドレスMA1を既に提供している。
【0037】
端末装置100は、T50において、入力画面SC3でメールアドレスMA1とプロトコル名PL1との入力を検知すると、T52において、メールアドレスMA1とプロトコル名PL1とをMFP10に送信する。また、端末装置100は、T52の通信を実行すると、MFP10からの応答を待機していることを示すポーリング画面SC4(
図6参照)を表示する。
【0038】
MFP10は、T52において、端末装置100からメールアドレスMA1とプロトコル名PL1とを受信すると、T60において、通信パラメータを要求するパラメータ要求をパラメータ提供サーバ200に送信する。パラメータ要求は、T36で端末装置100から受信したサービスID「sss1」と、T52で端末装置100から受信したプロトコル名PL1と、を含む。
【0039】
パラメータ提供サーバ200は、T60において、MFP10からパラメータ要求を受信すると、パラメータテーブル252から、パラメータ要求に含まれるサービスID「sss1」に関連付けて記憶されている通信パラメータCP1を取得する。本ケースでは、
図3に示すように、通信パラメータCP1は、devicecode_endpoint「https://aaa.com/dc」、token_endpoint「https://aaa.com/tk」、client_id「xxx1」、及び、他の値V1を含む。T62では、パラメータ提供サーバ200は、パラメータテーブル252から取得した通信パラメータCP1をMFP10に送信する。これにより、MFP10は、T70以降において、通信パラメータCP1を利用して、デバイスフローの処理を実行することができる。なお、仮に、T30において、サービス名「サービスB」がユーザによって選択される場合には、パラメータ提供サーバ200は、T60において、MFP10からサービス名「sss2」を含むパラメータ要求を受信する。この場合、T62において、サービスID「sss2」に関連付けて記憶されている通信パラメータをMFP10に送信する。ユーザによって選択されたサービスに対応する通信パラメータをMFP10に提供することができる。
【0040】
T70では、MFP10は、通信パラメータCP1に含まれるdevicecode_endpoint「https://aaa.com/dc」を送信先として含むコード要求を認証サーバ300に送信する。コード要求は、さらに、通信パラメータCP1に含まれるclient_id「xxx1」と、T50で選択されたプロトコル名PL1を示す値であるscopeと、を含む。
【0041】
認証サーバ300は、T70において、MFP10からコード要求を受信すると、device_code「ddd」と、user_code「uuu」と、を生成する。device_code「ddd」は、トークン要求の送信元のデバイスを認証するためのコードである。user_code「uuu」は、トークンの提供を承諾するユーザを認証するためのコードである。T72では、認証サーバ300は、通信パラメータCP1に含まれるclient_id「xxx1」に関連付けて、device_code「ddd」とuser_code「uuu」とを記憶する。T74では、認証サーバ300は、device_code「ddd」とuser_code「uuu」をMFP10に送信する。さらに、T74では、認証サーバ300は、verification_uriをMFP10に送信する。verification_uriは、
図6の入力画面SC6に対応する画面情報を認証サーバ300から受信するためのURIである。
【0042】
MFP10は、T74において、認証サーバ300から、device_code「ddd」等を受信すると、T76において、コード画面情報とverification_uriとを端末装置100に送信する。コード画面情報は、
図6に示すコード画面SC5に対応する情報である。コード画面情報は、user_code「uuu」を含む。
【0043】
端末装置100は、T76において、MFP10からコード画面情報等を受信すると、T78において、ポーリング画面SC4に代えて、コード画面SC5を表示する。
図6に示すように、コード画面SC5は、user_code「uuu」を示す文字列を表示する。これにより、端末装置100のユーザは、user_code「uuu」を知ることができる。
【0044】
また、端末装置100は、T80において、T76でMFP10から受信したverification_uriを送信先として含むHTTPコマンドを認証サーバ300に送信する。端末装置100は、当該HTTPコマンドに対する応答として、認証サーバ300から入力画面SC6に対応する画面情報を受信する。そして、端末装置100は、T80において、入力画面SC6を表示する。入力画面SC6は、コード画面SC5とは異なるウインドウで表示される。
図6に示すように、入力画面SC6は、user_codeを入力するための入力欄を含む。
【0045】
図5は、
図5のT82に引き続いて実行される処理である。
図5のT100では、MFP10は、T74で認証サーバ300からdevice_code「ddd」を受信した後に、トークン要求を定期的に認証サーバ300に送信することを開始する。トークン要求は、通信パラメータCP1に含まれるtoken_endpoint「https://aaa.com/tk」を送信先として含む。トークン要求は、さらに、device_code「ddd」を含む。
【0046】
認証サーバ300は、T100において、MFP10からトークン要求を受信すると、T102において、トークンの提供の承諾がユーザから得られたのかを判断する。本ケースでは、T100のタイミングは、T110においてuser_code「uuu」が入力画面SC6に入力される前のタイミングである。このため、現時点では、認証サーバ300は、T102において、トークンの提供の承諾がユーザから得られていないと判断する。T102の時点では、認証サーバ300は、トークンをMFP10に提供しない。
【0047】
ユーザは、
図4のT78で表示されたコード画面SC5を見て、コード画面SC5に表示されているuser_code「uuu」を入力画面SC6に入力する。
【0048】
端末装置100は、T110において、入力画面SC6にuser_code「uuu」が入力されたことを検知すると、T112において、user_code「uuu」を認証サーバ300に送信する。これにより、認証サーバ300は、T114において、user_code「uuu」を認証する。本ケースでは、user_code「uuu」の認証が成功する。
【0049】
user_code「uuu」の認証が成功すると、端末装置100は、T116において、認証サーバ300から、
図6のアカウント選択画面SC7に対応するアカウント選択画面情報を受信する。T118では、端末装置100は、アカウント選択画面SC7を表示する。
【0050】
本ケースでは、端末装置100は、アカウント名「ac1」を含むアカウント情報を利用して、認証サーバ300にログインしている。なお、変形例では、端末装置100は、アカウント名「ac1」を含むアカウント情報を利用して、メールサーバ400にログインしていてもよい。アカウント名「ac1」は、端末装置100のユーザに割り当てられているアカウント名である。
図6に示すように、アカウント選択画面SC7は、ログイン中のアカウント名「ac1」を選択するボタンBT4を含む。アカウント選択画面SC7は、さらに、ログイン中のアカウント名「ac1」とは異なるアカウント名でログインするためのボタンBT5を含む。本ケースでは、ユーザは、アカウント選択画面SC7内のボタンBT4を選択する。
【0051】
端末装置100は、T120において、アカウント選択画面SC7内のボタンBT4の選択を検知すると、T122において、ボタンBT4によって示されるアカウント名「ac1」を認証サーバ300に送信する。なお、仮に、ユーザがアカウント選択画面SC7内のボタンBT5を選択する場合には、端末装置100は、アカウント名「ac1」とは異なるアカウント名を利用して、認証サーバ300にログインする。そして、端末装置100は、T122において、当該異なるアカウント名を認証サーバ300に送信する。また、仮に、端末装置100が認証サーバ300にログインしない場合には、T122以降の処理が実行されず、トークンはMFP10に提供されない。このように、OAuthでは、端末装置100が所定のアカウント情報を利用して認証サーバ300及びメールサーバ400のいずれかにログインしていることを条件として、トークンがMFP10に提供される。
【0052】
認証サーバ300は、T122において、端末装置100からアカウント名「ac1」を受信すると、T124において、
図6の承諾画面SC8に対応する承諾画面情報を端末装置100に送信する。これにより、T126では、端末装置100は、承諾画面SC8を表示する。
【0053】
承諾画面SC8は、アカウント名「ac1」を含むアカウント情報を保有するユーザから承諾を得るため画面である。承諾画面SC8は、MFP10のファームウエアの名称と、T70のコード要求に含まれるclient_id「xxx1」によって示されるクライアントであるMFP10のベンダの名称「AAA.Ltd」と、を表示する。MFP10のファームウエアの名称は、client_id「xxx1」に関連付けて認証サーバ300に登録されている。承諾画面SC8は、トークンの提供の承諾をユーザに要求する承諾ボタンBT6と、キャンセルボタンBT7と、を含む。本ケースでは、ユーザは、承諾画面SC8内の承諾ボタンBT6を選択する。
【0054】
端末装置100は、T130において、承諾画面SC8内の承諾ボタンBT6の選択を検知すると、T132において、承諾ボタンBT6が選択されたことを通知する承諾通知を認証サーバ300に送信する。
【0055】
T140は、T100と同様である。T140のタイミングは、T132の承諾通知の受信後のタイミングである。このため、認証サーバ300は、T142において、トークンの提供の承諾がユーザから得られていると判断する。
【0056】
T144では、認証サーバ300は、トークン要求に含まれるdevice_code「ddd」を認証する。本ケースでは、device_code「ddd」の認証は成功する。
【0057】
続くT146では、認証サーバ300は、トークンTK1を生成する。認証サーバ300は、ログイン中のアカウント名「ac1」と関連付けて、生成済みのトークンTK1を記憶する。ここで、トークンTK1は、アクセストークンと、リフレッシュトークンと、を含む。リフレッシュトークンは、アクセストークンの再生成に利用される。
【0058】
T148では、認証サーバ300は、トークンTK1をMFP10に送信する。これにより、MFP10は、T150において、トークンTK1をメモリ34のサービステーブル50に記憶する。
図2に示すように、トークンTK1は、サービスID「xxx1」、メールアドレスMA1、及び、プロトコル名「PL1」と関連付けて、サービステーブル50に記憶される。
【0059】
MFP10は、T148において、認証サーバ300からトークンTK1を受信すると、T152において、トークンTK1の受信が完了したことを示す完了通知を端末装置100に送信する。これにより、端末装置100は、T154において、トークンTK1の受信が完了したことを示す完了画面SC9を表示する。ユーザは、完了画面SC9を見て、
図4のT20の指示に従って実行されたデバイスフローが完了したことを知ることができる。
【0060】
例えば、MFP10は、T160において、スキャンメールの送信の指示を検知すると、T162において、サービステーブル50内のメールアドレスMA1を宛先とするスキャンメールをメールサーバ400に送信する。スキャンメールは、サービステーブル50内のアクセストークンを含む。メールサーバ400は、スキャンメールに含まれるアクセストークンを利用して、スキャンメールの送信元を認証する。本ケースでは、当該認証が成功し、メールサーバ400は、スキャンメールを記憶する。メールサーバ400に記憶されたスキャンメールは、メールアドレスMA1が設定されたメーラによって閲覧される。
【0061】
(本実施例の効果)
本実施例の構成によれば、MFP10は、パラメータ提供サーバ200から通信パラメータCP1を受信し(
図4のT62)、通信パラメータCP1を利用して、トークン要求を認証サーバ300に送信する(
図5のT100及びT140)。即ち、通信パラメータCP1は、パラメータ提供サーバ200に記憶されていればよく、MFP10に予め記憶されていなくてもよい。通信パラメータCP1を予め記憶する記憶領域をMFP10に設けることなく、認証サーバ300からトークンTK1を取得することができる。
【0062】
特に、電子メールのサービスを提供する事業者は、複数存在し得る。当該事業者が複数存在する場合において、当該事業者の数が増えるほど、パラメータテーブル252のデータ量が増大する。MFP10のメモリ34の記憶容量は、パラメータ提供サーバ200のメモリ234の記憶容量と比較して少ない。記憶容量が比較的少ないMFP10のメモリ34にパラメータテーブル252を記憶させることなく、認証サーバ300からトークンTK1を取得することができる。また、例えば、MFP10がベンダから出荷された後にサービスを提供する事業者が増えた場合であっても、MFP10が当該事業者のサービスに対応する通信パラメータをパラメータ提供サーバ200から受信することにより、MFP10のユーザは当該事業者によるサービスを利用することができる。また、ベンダも、増えたサービスに対応する通信パラメータをパラメータ提供サーバ200に登録すればよい。
【0063】
(対応関係)
MFP10、端末装置100が、それぞれ、「通信装置」、「端末装置」の一例である。パラメータ提供サーバ200、認証サーバ300、メールサーバ400が、それぞれ、「特定のサーバ」、「認証サーバ」、「サービスサーバ」の一例である。電子メールのサービスが、「特定のサービス」の一例である。通信パラメータCP1が、「パラメータ」の一例である。
図4のT12のHTTPコマンドが、「所定の信号」の一例である。T60のパラメータ要求が、「パラメータ要求」の一例である。サービスID「sss1」、サービスID「sss2」が、それぞれ、「第1の識別情報」、「第2の識別情報」の一例である。user_code「uuu」、T70のコード要求が、それぞれ、「ユーザコード」、「ユーザコード要求」の一例である。
図5のT100及びT140のトークン要求、トークンTK1が、それぞれ、「認証情報要求」、「認証情報」の一例である。アカウント名「ac1」が、「特定のアカウント情報」の一例である。スキャンデータが、「対象データ」の一例である。
図6の入力画面SC3、コード画面SC5、入力画面SC6が、それぞれ、「第1の入力画面」、「コード画面」、「第2の入力画面」の一例である。
【0064】
図4のT60、T62が、それぞれ、「第1の要求送信部」、「パラメータ受信部」によって実現される処理の一例である。
図5のT100及びT140が、「第2の要求送信部」によって実現される処理の一例である。T148、T162が、それぞれ、「認証情報受信部」、「データ通信部」によって実現される処理の一例である。
【0065】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0066】
(変形例1) 「通信装置」は、MFP10に限らず、例えば、プリンタ、スキャナ、PC等であってもよい。
【0067】
(変形例2) 「特定のサービス」は、電子メールのサービスに限らず、例えば、印刷画像のコンテンツを提供するサービス、画像データを記憶するストレージサービス、Social Networking Service(SNS)であってもよい。ここで、コンテンツは、例えば、はがき画像のテンプレートである。例えば、「特定のサービス」がコンテンツを提供するサービスである場合には、コンテンツデータが、「対象データ」の一例ある。また、例えば、「特定のサービス」がストレージサービスである場合には、入力画面SC3は表示されなくてもよい。本変形例では、「第1の入力画面」を省略可能である。
【0068】
(変形例3) 入力画面SC3は、メールアドレスを入力する入力欄を含まなくてもよい。また、入力画面SC3は、プロトコル名を入力する入力欄を含まなくてもよい。
【0069】
(変形例4) 電子メールのサービスを提供する事業者が一つに決まっている場合には、
図4のパラメータ要求は、サービスID「sss1」を含まなくてもよい。本変形例では、「識別情報」を省略可能である。
【0070】
(変形例5)
図4のT70からT82、
図5のT110からT114は、実行されなくてもよい。本変形例では、「ユーザコード要求」を省略可能である。
【0071】
(変形例7)上記の実施例では、CPU32、232がプログラム40、240を実行することによって、
図3から
図6の各処理が実現される。これに代えて、いずれかの処理は、論理回路等のハードウェアによって実現されてもよい。
【0072】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【0073】
本特許出願時の特許請求の範囲において、各請求項が一部の請求項のみに従属している場合であっても、各請求項が当該一部の請求項のみに従属可能であることに限定されない。技術的に矛盾しない範囲において、各請求項は、出願時に従属していない他の請求項にも従属可能である。即ち、各請求項の技術は以下のように様々に組み合わせることができる。
(項目1)
通信装置であって、
端末装置から所定の信号を受信することに応じて、認証サーバと通信するためのパラメータを要求するパラメータ要求を、前記認証サーバとは異なる特定のサーバに送信する第1の要求送信部であって、前記認証サーバは、前記通信装置がサービスサーバと通信するための認証情報を前記通信装置に提供可能に構成されており、前記サービスサーバは、特定のサービスを前記通信装置のユーザに提供可能に構成されている、前記第1の要求送信部と、
前記パラメータ要求に対する応答として、前記特定のサーバから前記パラメータを受信するパラメータ受信部と、
前記特定のサーバから受信した前記パラメータを利用して、前記認証情報を要求する認証情報要求を前記認証サーバに送信する第2の要求送信部と、
前記所定の信号の送信元である前記端末装置が、特定のアカウント情報を利用して、前記認証サーバ及び前記サービスサーバのいずれかにログインしている特定の条件が満たされる場合に、前記認証情報要求に対する応答として、前記認証サーバから前記認証情報を受信する認証情報受信部であって、前記特定の条件が満たされない場合に、前記認証情報は前記認証サーバから受信されない、前記認証情報受信部と、
前記認証サーバから受信した前記認証情報を利用して、前記サービスサーバと対象データを通信するデータ通信部と、
を備える、通信装置。
(項目2)
前記特定のサービスは、電子メールを前記ユーザに提供し、
前記通信装置は、さらに、
第1の入力画面に対応する入力画面情報を前記端末装置に送信する第1の画面情報送信部であって、前記第1の入力画面は、前記電子メールの通信に利用されるプロトコルを示すプロトコル情報を入力する入力欄を含む、前記第1の画面情報送信部と、
前記第1の入力画面に入力された前記プロトコル情報を前記特定のサーバに送信するプロトコル情報送信部と、
を備える、項目1に記載の通信装置。
(項目3)
前記第1の入力画面は、さらに、前記電子メールのアドレスを入力する入力欄を含む、項目2に記載の通信装置。
(項目4)
前記特定のサーバは、第1のサービスに対応する第1の前記パラメータと、第2のサービスに対応する第2の前記パラメータと、を含む複数個の前記パラメータを記憶し、
前記通信装置は、さらに、
前記端末装置において選択された前記特定のサービスを識別する識別情報を前記端末装置から受信する識別情報受信部を備え、
前記第1のサービスを識別する第1の前記識別情報が受信される場合に、
前記第1の要求送信部は、前記第1の識別情報を含む前記パラメータ要求を前記特定のサーバに送信し、
前記パラメータ受信部は、前記第1のサービスに対応する前記第1のパラメータを受信し、
前記第2のサービスを識別する第2の前記識別情報が受信される場合に、
前記第1の要求送信部は、前記第2の識別情報を含む前記パラメータ要求を前記特定のサーバに送信し、
前記パラメータ受信部は、前記第2のサービスに対応する前記第2のパラメータを受信する、項目1から3のいずれか一項に記載の通信装置。
(項目5)
前記認証情報は、OAuthに従ったトークンである、項目1から4のいずれか一項に記載の通信装置。
(項目6)
前記通信装置は、さらに、
前記特定のサーバから受信した前記パラメータを利用して、ユーザコードを要求するユーザコード要求を前記認証サーバに送信する第3の要求送信部と、
前記ユーザコード要求に対する応答として、前記認証サーバから前記ユーザコードを受信するコード受信部と、
コード画面に対応するコード画面情報を前記端末装置に送信する第2の画面情報送信部であって、
前記コード画面は、前記認証サーバから受信した前記ユーザコードを表示し、
前記認証サーバは、第2の入力画面を前記端末装置に表示させ、
前記第2の入力画面は、前記ユーザコードを入力する入力欄を含み、
前記認証サーバは、前記第2の入力画面に入力された前記ユーザコードの認証を実行する、
前記第2の画面情報送信部と、
を備え、
前記特定の条件は、前記端末装置が前記特定のアカウント情報を利用して前記認証サーバ及び前記サービスサーバのいずれかにログインしており、かつ、前記認証サーバによる前記認証が成功することである、項目1から5のいずれか一項に記載の通信装置。
(項目7)
前記第1の要求送信部は、前記端末装置が前記通信装置にログインした後に、前記パラメータ要求を前記特定のサーバに送信する、項目1から6のいずれか一項に記載の通信装置。
(項目8)
前記サービスサーバは、前記認証サーバと異なり、
前記サービスサーバを設置した事業者は、前記認証サーバを設置した事業者と同一である、項目1から7のいずれか一項に記載の通信装置。
(項目9)
前記特定のサーバを設置した事業者は、前記通信装置のベンダと同じである、項目1から8のいずれか一項に記載の通信装置。
(項目10)
通信装置のためのコンピュータプログラムであって、
前記コンピュータプログラムは、前記通信装置のコンピュータを、以下の各部、即ち、
端末装置から所定の信号を受信することに応じて、認証サーバと通信するためのパラメータを要求するパラメータ要求を、前記認証サーバとは異なる特定のサーバに送信する第1の要求送信部であって、前記認証サーバは、前記通信装置がサービスサーバと通信するための認証情報を提供可能に構成されており、前記サービスサーバは、特定のサービスを前記通信装置のユーザに提供可能に構成されている、前記第1の要求送信部と、
前記パラメータ要求に対する応答として、前記特定のサーバから前記パラメータを受信するパラメータ受信部と、
前記特定のサーバから受信した前記パラメータを利用して、前記認証情報を要求する認証情報要求を前記認証サーバに送信する第2の要求送信部と、
前記所定の信号の送信元である前記端末装置が、特定のアカウント情報を利用して、前記認証サーバ及び前記サービスサーバのいずれかにログインしている特定の条件が満たされる場合に、前記認証情報要求に対する応答として、前記認証サーバから前記認証情報を受信する認証情報受信部であって、前記特定の条件が満たされない場合に、前記認証情報は前記認証サーバから受信されない、前記認証情報受信部と、
前記認証サーバから受信した前記認証情報を利用して、前記サービスサーバと対象データを通信するデータ通信部と、
として機能させる、コンピュータプログラム。
【符号の説明】
【0074】
2 :通信システム
4 :LAN
6 :インターネット
10 :MFP
12 :印刷実行部
14 :スキャン実行部
16 :LANI/F
30 :制御部
32 :CPU
34 :メモリ
40 :プログラム
50 :サービステーブル
100 :端末装置
200 :パラメータ提供サーバ
216 :ネットワークI/F
230 :制御部
232 :CPU
234 :メモリ
240 :プログラム
250 :情報テーブル
252 :パラメータテーブル
300 :認証サーバ
400 :メールサーバ
BT1、BT2、BT3、BT4、BT5 :ボタン
BT6 :承諾ボタン
BT7 :キャンセルボタン
CP1 :通信パラメータ
MA1 :メールアドレス
PL1 :プロトコル名
SC1 :設定画面
SC2 :サービス選択画面
SC3 :入力画面
SC4 :ポーリング画面
SC5 :コード画面
SC6 :入力画面
SC7 :アカウント選択画面
SC8 :承諾画面
SC9 :完了画面
TK1 :トークン