JP2023021729A - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP2023021729A
JP2023021729A JP2021126780A JP2021126780A JP2023021729A JP 2023021729 A JP2023021729 A JP 2023021729A JP 2021126780 A JP2021126780 A JP 2021126780A JP 2021126780 A JP2021126780 A JP 2021126780A JP 2023021729 A JP2023021729 A JP 2023021729A
Authority
JP
Japan
Prior art keywords
application
authentication
information processing
processing apparatus
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021126780A
Other languages
English (en)
Inventor
智也 石田
Tomoya Ishida
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2021126780A priority Critical patent/JP2023021729A/ja
Priority to US17/816,310 priority patent/US20230030460A1/en
Publication of JP2023021729A publication Critical patent/JP2023021729A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • G06F21/35User authentication involving the use of external additional devices, e.g. dongles or smart cards communicating wirelessly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】認証サービスを利用するアプリケーションを利用するユーザの数に対する、認証サービスを利用するユーザの数の割合を低減する情報処理装置、情報処理方法、プログラム及び記憶媒体を提供する。【解決手段】情報処理システム1において、情報処理装置100は、第2のアプリケーションの実行により、第1のアプリケーションの状態を取得する状態取得部121と、第2のアプリケーションの実行により、取得した第1のアプリケーションの状態に応じて認証処理を行うか否かを判定する認証判定部122と、認証処理を行うと判定された場合に、第1又は第2のアプリケーションの実行により、認証処理を行うための指示を行う認証指示部123と、を備える。【選択図】図1

Description

本開示は、認証処理のタイミングを制御するための技術に関する。
特定のユーザからの操作だけを受け付けて装置を制御するために、ユーザ認証が行われている。特許文献1には、立体駐車場の制御システムにおいて、立体駐車場とユーザが所有する携帯端末との位置関係に応じて、携帯端末で動作するアプリケーションにユーザ認証を促す情報を出力させる技術が開示されている。一方、クライアント装置(以下、単に「クライアント」という。)とサーバ装置(以下、単に「サーバ」という。)から構成されるシステムがある。このようなシステムでは、クライアントで動作するアプリケーションを使った、クライアントとサーバとの間の通信のための認証及び認可の仕組みが必要とされる。認証及び認可の仕組みは、例えば、パブリッククラウドから、認証及び認可の機能を提供するサービス(以下「認証サービス」という。)として提供されている。
特開2019-183466号公報
認証サービスを利用するアプリケーションを利用するユーザの数に対する、認証サービスを利用するユーザの数の割合を低減することが求められている。
本開示に係る情報処理装置は、第1のアプリケーション、及び第2のアプリケーションを実行する情報処理装置であって、第2のアプリケーションの実行により、第1のアプリケーションの状態を取得する状態取得手段と、第2のアプリケーションの実行により、状態取得手段により取得される第1のアプリケーションの状態に応じて、認証処理を行うか否かを判定する認証判定手段と、認証判定手段により認証処理を行うと判定された場合に、第1のアプリケーション又は第2のアプリケーションの実行により、認証処理を行うための指示を行う認証指示手段と、を有する。
本開示によれば、認証サービスを利用するアプリケーションを利用するユーザの数に対する、認証サービスを利用するユーザの数の割合を低減することができる。
実施形態1に係る情報処理システムの構成の一例を示すブロック図である。 実施形態1に係る情報処理装置のハードウェア構成の一例を示すブロック図である。 実施形態1に係る管理サーバの構成の一例を示すブロック図である。 実施形態1に係る認証サーバの構成の一例を示すブロック図である。 実施形態1に係る処理シーケンスの一例を示すシーケンス図である。 実施形態1に係る認証画面の一例を説明するための説明図である。 実施形態1に係る処理シーケンスの他の一例を示すシーケンス図である。 実施形態1に係る認証処理の処理シーケンスの一例を示すシーケンス図である。 実施形態1に係る処理フローの一例を示すフローチャートである。 実施形態2に係る認証処理の処理シーケンスの一例を示すシーケンス図である。 実施形態3に係る認証処理の処理シーケンスの一例を示すシーケンス図である。
以下、添付の図面を参照して、本開示の実施の形態について説明する。なお、以下の実施の形態に示す構成は、一例に過ぎず、本開示の範囲をその構成のみに限定されるものでなく、また、以下の実施の形態に示す構成の全てが本開示に必須のものとは限らない。
<実施形態1>
図1から図9までを参照して、実施形態1に係る情報処理システム1について説明する。図1は、実施形態1に係る情報処理システム1の構成の一例を示すブロック図である。情報処理システム1は、管理サーバ11、認証サーバ12、及び、情報処理装置100を有する。以下、管理サーバ11と認証サーバ12とを合わせて、単に「サーバ」とも称して説明する。つまり、本明細書で単に「サーバ」と呼ぶ場合、1つまたは複数のサーバによって構成されるサーバシステムのことを指すものとする。サーバと情報処理装置100とは、各々のネットワーク13,14、及びインターネット15を介して互いに通信する。また、管理サーバ11と認証サーバ12とは、ネットワーク14を介して互いに通信する。
管理サーバ11は、情報処理装置100のバックエンドとして動作する装置であって、情報処理装置100に提供可能なリソースの管理又は制御を行うものである。ここで、管理サーバ11に管理又は制御されるリソース(以下「管理リソース」という。)とは、情報処理装置100に提供可能な画像又は文書等のデータ、又は、印刷等の機能を有するプリンタ等の図1には不図示の外部装置である。ここで、当該外部装置は、プリンタに限定されるものでなく、例えば、画像の読み取りの機能を有するスキャナ又はカメラ等の画像入力装置であってもよい。管理サーバ11は、情報処理装置100から、ユーザによる入力操作等に基づく情報を受けて、当該情報に基づいて管理リソースの管理又は制御を行う。管理サーバ11の構成については後述する。認証サーバ12は、ユーザを認証する処理(以下「認証処理」という。)及び認証処理により認証されたユーザに対して管理リソースにアクセスするための権限を与える処理(以下「認可処理」という。)を行う装置である。認証サーバ12の構成については後述する。
情報処理装置100は、図1に示すように、第1アプリケーション110及び第2アプリケーション120を実行して動作させるものである。第1アプリケーション110は、その実行により、ユーザによる入力操作に基づいて、管理リソースにアクセスするための情報を管理サーバ11に対して出力する機能を有する。具体的には、例えば、第1アプリケーション110は、その実行により機能する、リソース要求部111、画面生成部112、及び画面出力部113を有する。第1アプリケーション110は、その実行により機能する上述の構成に加えて、その実行により機能する、図1に示す第1アプリケーション110には不図示の認証指示部を有していてもよい。
第2アプリケーション120は、その実行により、ユーザについて認証サーバ12に認証させる処理(認証処理)のタイミングを、第1アプリケーション110の状態に応じて制御する機能を有する。具体的には、例えば、第2アプリケーション120は、その実行により機能する、状態取得部121、認証判定部122、認証指示部123、及び認証取得部124を有する。なお、実施形態1では、第2アプリケーション120は、その実行により機能する認証指示部123を有するものとして説明するが、認証指示部123は、必ずしも、第2アプリケーション120の実行により機能するものに限定されるものではない。第2アプリケーション120が、その実行により機能する認証指示部123を有していない場合、認証指示部123は、第1アプリケーション110の実行により機能するものであってもよい。第1アプリケーション110及び第2アプリケーション120の実行により機能する各部の処理については後述する。
情報処理装置100において機能する各部の処理は、情報処理装置100に内蔵されたASIC(Application Specific Integrated Circuit)等のハードウェアによってなされる。当該処理は、FPGA(Field Programmable Gate Array)等のハードウェアによってなされるものであってもよい。また、当該処理は、RAM(Random Access Memory)等のメモリと、CPU(Central Processor Unit)等のプロセッサとを用いたソフトウエアによってなされるものであってもよい。情報処理装置100において機能する各部の処理の詳細については後述する。
ここで、図2を参照して、情報処理装置100において機能する各部がソフトウエアとして動作する場合の情報処理装置100のハードウェア構成について説明する。図2は、第1実施形態に係る情報処理装置100のハードウェア構成の一例を示すブロック図である。情報処理装置100は、コンピュータにより構成されており、当該コンピュータは、図2に一例として示すようにCPU211、ROM212、RAM213、補助記憶装置214、表示部215、操作部216、通信部217、及びバス218を有している。
CPU211は、ROM212又はRAM213に格納されているプログラム又はデータを用いて当該コンピュータを制御することにより、当該コンピュータを図1に示す情報処理装置100において機能する各部を機能させるプロセッサである。なお、情報処理装置100は、CPU211とは異なる1又は複数の専用のハードウェアを有し、CPU211による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC、FPGA、及びDSP(デジタルシグナルプロセッサ)等がある。ROM212は、変更を必要としないプログラム等を格納するメモリである。RAM213は、補助記憶装置214から供給されるプログラム若しくはデータ、又は通信部217を介して外部から供給されるデータ等を一時記憶するメモリである。補助記憶装置214は、例えばハードディスクドライブにより構成され、画像データ又は音声データ等の種々のデータを記憶する。
表示部215は、例えば液晶ディスプレイ又はLED等により構成され、ユーザが情報処理装置100を操作、又は情報処理装置100における処理の状態を閲覧するためのGUI(Graphical User Interface)等を表示する。操作部216は、例えばキーボード、マウス、ジョイスティック、又はタッチパネル等により構成され、ユーザによる操作を受けて各種の指示をCPU211に入力する。CPU211は、表示部215を制御する表示制御部、及び操作部216を制御する操作制御部としても動作する。
通信部217は、情報処理装置100の外部の装置との通信に用いられる。例えば、情報処理装置100が外部の装置と有線接続される場合には、通信用のケーブルが通信部217に接続される。情報処理装置100が外部の装置と無線通信する機能を有する場合には、通信部217はアンテナを備える。バス218は、情報処理装置100の備えるCPU211、ROM212、RAM213、補助記憶装置214、表示部215、操作部216、及び通信部217をつないで情報を伝達する。第1実施形態では、表示部215及び操作部216は、情報処理装置100の内部に存在するものとして説明するが、表示部215及び操作部216の少なくとも一方は、情報処理装置100の外部に別の装置として存在していてもよい。
図3及び図4を参照して、管理サーバ11及び認証サーバ12の構成について説明する。図3は、実施形態1に係る管理サーバ11の構成の一例を示すブロック図である。管理サーバ11は、制御情報取得部301、リソース制御部302、及びエンドポイント取得部303を有する。なお、管理サーバ11は、例えば、図2に一例として示すハードウェアを有するコンピュータにより構成されており、管理サーバ11が有する各部の処理は、当該ハードウェアによってなされる。
制御情報取得部301は、情報処理装置100から出力された情報であって、管理リソースに情報処理装置100がアクセスするための情報を、インターネット15等を介して取得する。エンドポイント取得部303は、API(Application Programming Interface)エンドポイントを取得する。例えば、エンドポイント取得部303は、図3には不図示の記憶装置からAPIエンドポイントの情報を読み出すことにより、APIエンドポイントを取得する。ここで、APIエンドポイントとは、管理リソース毎に対応付けられて付与されたURI(Uniform Resource Identifier)であって、管理リソースにアクセスするためのものである。情報処理装置100は、APIエンドポイントに対してHTTP(Hyper Text Transfer Protocol)等によるリクエストを行うことにより、管理リソースにアクセスすることができる。すなわち、制御情報取得部301が取得する情報は、HTTP等によるリクエストを示す情報であって、情報処理装置100が管理リソースにアクセスするための情報である。
リソース制御部302は、制御情報取得部301により取得される情報と、エンドポイント取得部303により取得されるAPIエンドポイントとに基づいて、管理リソースの管理又は制御を行う。例えば、制御情報取得部301により取得された情報が、管理サーバ11により管理されたある文書データを取得するためのリクエストである場合、リソース制御部302は、当該文書データに対応するAPIエンドポイントを用いて当該文書データを取得する。なお、文書データ等の管理リソースは、例えば、図3には不図示の記憶装置に記憶されており、リソース制御部302は、APIエンドポイントを用いて、APIエンドポイントに対応するデータを記憶装置から読み出すことにより取得する。
上述のように、管理リソースは、文書等のデータに限定されるものではない。例えば、管理リソースは、管理サーバ11により管理されるものであれば、管理サーバ11に直接又はネットワーク13等を介して間接的に接続されたプリンタ等の外部装置であってもよい。例えば、管理リソースがプリンタである場合、情報処理装置100は、HTTP等によるリクエストにより、管理サーバ11を介して、当該プリンタに所望のデータを示す画像を印刷させることができる。
図4は、実施形態1に係る認証サーバ12の構成の一例を示すブロック図である。認証サーバ12は、認証処理部401及び認可処理部402を有する。なお、認証サーバ12は、例えば、図2に一例として示すハードウェアを有するコンピュータにより構成されており、認証サーバ12が有する各部の処理は、当該ハードウェアによってなされる。
認証処理部401は、ユーザが誰であるかを特定する。具体的には、例えば、認証処理部401は、複数のユーザのそれぞれを識別するためのID(Identification)又はパスワード等の情報をユーザ毎に認証情報として保持する。認証処理部401は、例えば、ユーザによる入力操作により入力された認証情報を情報処理装置100から取得する。さらに、認証処理部401は、ユーザ毎に保持する複数の認証情報を参照して、取得した認証情報がどのユーザに対応する認証情報と一致するかを検証することによりユーザを特定する。以下、認証処理部401による、ユーザを特定する処理を、認証処理と称して説明する。
認可処理部402は、認証処理部401によって認証されたユーザに対して、管理リソースにアクセスするための権限を与える。以下、認証処理部401による、管理リソースにアクセスするための権限を与える処理を、認可処理と称して説明する。例えば、標準プロトコルであるOAuthでは、情報処理装置100からHTTP等のリクエストに応じて、管理サーバ11が管理リソースにアクセスするためには、ユーザからの明示的な認可が必要となる。具体的には、OAuthを用いた形態では、ユーザが認可処理の要求を認可処理部402に情報処理装置100を用いて行うと、認可処理部402は、管理サーバ11が管理リソースにアクセスするためのアクセストークンを情報処理装置100に払い出す。情報処理装置100は、そのアクセストークンを用いて、HTTP等のリクエストを行うことにより、APIエンドポイントに対応する管理リソースにアクセスすることが可能になる。
図1に戻り、第1アプリケーション110の実行により機能する各部について説明する。リソース要求部111は、管理サーバ11に対して、管理リソースの読み出し、変更、追加、削除、又は制御等の要求を行う。例えば、リソース要求部111は、当該要求を示す情報を管理サーバ11に対して出力することにより、管理サーバ11に対して当該要求を行う。画面生成部112は、管理サーバ11に対して行った要求に対する管理サーバ11からのレスポンスに対応する操作画面等の画面を示す画像、又は当該画面を構成可能な情報を生成する。画面出力部113は、画面生成部112により生成された画像又は情報を出力する。
第2アプリケーション120の実行により機能する各部について説明する。状態取得部121は、第1アプリケーション110の状態を取得する。認証判定部122は、状態取得部121により取得される第1アプリケーション110の状態に応じて、認証処理を行うか否かを判定する。認証指示部123は、認証判定部122により認証処理を行うと判定された場合に、認証処理を行うための指示(以下「認証指示」という。)を認証サーバ12に対して行う。認証指示部123は、認証指示を、直接、認証サーバ12に対して行ってもよく、管理サーバ11を介して認証サーバ12に対して行ってもよい。認証取得部124は、認証指示部123が認証処理を指示する際に管理サーバ11又は認証サーバ12に対して送信する認証情報を取得する。具体的には、例えば、図1には不図示の操作入力装置をユーザが操作することにより入力されたID又はパスワード等の情報を認証情報として取得する。なお、以下、認証指示部123は、認証指示に加えて、認可処理の要求についても行うものとして説明する。
図5及び図7を参照して、情報処理システム1における認証処理及び認可処理の処理シーケンスについて説明する。図5は、実施形態1に係る情報処理システム1における処理シーケンスの一例を示すシーケンス図である。なお、図5の説明において記号「S」はステップを意味する。
図5に示すシーケンス図は、第1アプリケーション110及び第2アプリケーション120が情報処理装置100において動作するWebアプリケーションとして動作する場合の一例である。例えば、第1アプリケーション110及び第2アプリケーション120は、ブラウザアプリケーション(以下「ブラウザ」という。)により実行可能なスクリプト言語により記載され、情報処理装置100において動作するブラウザにより実行される。ブラウザにより実行可能なスクリプト言語とは、例えば、JavaScript(登録商標)又はCSS(Cascading Style Sheets)である。なお、ブラウザにより実行可能なスクリプト言語は、JavaScript(登録商標)又はCSSに限定されるものではない。
第1アプリケーション110及び第2アプリケーション120は、アプリケーションサーバとして動作する情報処理装置100において動作するものであってもよい。この場合、第1アプリケーション110及び第2アプリケーション120により生成されるGUIを構成するための情報は、ユーザが使用するパーソナルコンピュータ、タブレット端末、又はスマートフォン等の、図1には不図示の装置に出力されて提示される。以下、パーソナルコンピュータ、タブレット端末、又はスマートフォン等のユーザが使用する装置をユーザ装置と称して説明する。ユーザ装置において動作するブラウザは、第1アプリケーション110及び第2アプリケーション120により生成されるGUIを構成するための情報をレンダリングすることにより、ユーザ装置に接続された表示装置に当該GUIを表示させる。ユーザがユーザ装置に対して入力操作を行うことにより、ユーザ装置において動作するブラウザは、情報処理装置100において動作する第1アプリケーション110及び第2アプリケーション120に対してリクエストを送信することにより実行を指示する。第1アプリケーション110及び第2アプリケーション120は、ブラウザからのリクエストに応じて動作を行い、動作の結果をブラウザに提示する。
以下、第1アプリケーション110及び第2アプリケーション120は、ブラウザにより実行可能なスクリプト言語により記載され、情報処理装置100において動作するブラウザにおいて実行されて動作するものとして説明する。図5において、S501の処理が実行される前において、第1アプリケーション110は、管理サーバ11等に対してリクエストを行う。第1アプリケーション110からのリクエストを受けて、管理サーバ11等は、リクエストに対するリダイレクトのHTTPレスポンスが返却する。
管理サーバ11等からHTTPレスポンスがあったとき、S501にて、ブラウザに、第2アプリケーション120を提供するWebサイトに対して第2アプリケーション120を含む情報を要求するためのURLが指定される。すなわち、このURLは、認証サーバ12のエンドポイントであって、このURLの指定は、第1アプリケーション110による管理サーバ11等へのリクエストに対するリダイレクトのHTTPレスポンスが返却されることにより行われる。次に、S502にて、ブラウザは、Webサイトに対して、指定されたURLによりリクエストを送信して、第2アプリケーション120を含む情報を要求する。
次に、S503にて、Webサイトは、ブラウザからリクエストに対して、リダイレクトのHTTPレスポンスをブラウザに返却することにより、第2アプリケーション120を含む情報をブラウザに送信する。ブラウザは、第2アプリケーション120を含む情報を受けて、当該情報に含まれるスクリプトを実行することにより、第2アプリケーション120を実行して第2アプリケーション120を動作させる。ブラウザは、第2アプリケーション120の実行により、認証サーバ12に対して認証指示を行うための画面(以下「認証画面」という。)をGUI(Graphical User Interface)として表示装置に表示させる。
図6を参照して、認証画面について説明する。図6は、実施形態1に係る認証画面の一例を説明するための説明図である。実施形態1において、図6に示す認証画面600は、が第2アプリケーション120の実行により提供されたGUIであって、ブラウザに表示されるGUIである。認証画面600は、ユーザの入力操作等により入力された、IDを表示するための領域601、パスワードを表示するための領域602、及び、ID及びパスワードの入力を完了したことを意思表示する入力操作を行うためのボタン603により構成されている。また、図6に示す認証画面600に含まれる「第1アプリケーションがサービスにアクセスすることを許可します。」という文章は、上述した、ユーザからの明示的な認可を表すものである。なお、図6に示す認証画面600は、あくまで一例であって、認証画面600は、図6に示すものに限定されるものではない。
次に、S504にて、ユーザは、ブラウザに表示される認証画面600を参照して、ID及びパスワードを認証情報として入力して、当該入力後にボタン603を押す。なお、ここでいう「押す」とは、例えば、ポインティングディバイスを用いてボタン603が表示される領域内のいずれかの位置にポインタを合わせてクリックする操作、又は、タッチセンサを用いて当該位置をタップする等の入力操作を意味する。ユーザがボタン603を押すという操作が、ユーザからの明示的な認可となる。ボタン603が押されると、ユーザにより入力された認証情報は、認証取得部124により取得される。次に、S505にて、第2アプリケーション120が動作するブラウザは、ユーザが入力したID及びパスワードを認証情報として認証サーバ12に対して送信して、認証指示を行う。当該認証指示は、認証指示部123により行われる。なお、認証サーバ12に対する認証指示は、管理サーバ11を介して行ってもよい。この場合、第2アプリケーション120が動作するブラウザは、管理サーバ11に対して認証指示を行う。更に、管理サーバ11は、当該ブラウザからの認証指示を受けて、認証サーバ12に対して認証指示を行う。認証サーバ12に対する認証指示を、管理サーバ11を介して行う場合、管理サーバ11は、認証指示を受けて、受け取った認証指示に基づく認証指示を認証サーバ12に対して行う、図3には不図示の指示中継部を有する。
例えば、ブラウザにより実行される第2アプリケーション120は、認証情報を認証サーバ12に対して送信する前に、第1アプリケーション110の状態を取得する。第1アプリケーション110の状態の取得は、状態取得部121により行われる。さらに、当該状態に基づいて認証サーバ12に対して認証指示を行うか否かを判定する。この判定は、認証判定部122により行われる。状態取得部121が取得する第1アプリケーション110の状態の態様、及び、認証判定部122が第1アプリケーション110の状態に基づいて行う判定の態様については後述する。認証サーバ12に対して認証指示を行うと判定されたときに、認証指示部123は、認証情報を送信して認証サーバ12に対して認証指示を行う。認証サーバ12に対して認証指示を行わないと判定されたときに、第2アプリケーション120は、認証情報を送信せずに、例えば、認証が可能な状態でない旨を示すGUIをブラウザに表示させる。
なお、上述の、第1アプリケーション110の状態の取得のタイミング、及び、認証指示を行うか否かの判定のタイミングは、一例であって、上述のタイミングに限定されるものではない。例えば、S503にて、第2アプリケーション120が実行されたときに、上述の当該取得及び当該判定を行ってもよい。この場合において、認証サーバ12に対して認証指示を行わないと判定されたときは、例えば、第2アプリケーション120は、図6に一例として示す認証画面に替えて、認証が可能な状態でない旨を示すGUIをブラウザに表示させてもよい。
次に、S506にて、認証サーバ12は、第2アプリケーション120が動作するブラウザから送信された認証情報を受信する。認証サーバ12は、当該情報に基づいて、ユーザにより入力された認証情報を検証することによりユーザを特定し、特定したユーザに対応する認可コードを、第2アプリケーションが動作するブラウザに返却する。この返却は、例えば、リダイレクトのHTTPレスポンスにより行われ、リダイレクトURLには、管理サーバ11のAPIエンドポイントが指定されている。ここで、認可コードとは、認証サーバ12の認可エンドポイントから発行される一時的な認証情報である。次に、S507にて、第2アプリケーション120が動作するブラウザは、認証サーバ12から返却された認可コードを受けて、管理サーバ11に対してリダイレクトにより認可コードを送信する。第2アプリケーション120が動作するブラウザは、認可コードに加えて、認証されたユーザに対応するクレデンシャルを管理サーバ11に対して送信してもよい。
次に、S508にて、管理サーバ11は、ブラウザから送信された認可コードを受けて、受け取った認可コードを用いて認証サーバ12に対してアクセストークンの要求を行う。ブラウザが管理サーバ11に対してクレデンシャルを送信する場合、管理サーバ11は、認可コード及びクレデンシャルを受けて、受け取った認可コード及びクレデンシャルを用いて認証サーバ12に対してアクセストークンを要求してもよい。なお、管理サーバ11における認証サーバ12に対するアクセストークンの要求の処理は、例えば、図3には不図示のトークン要求部により行われる。次に、S509にて、認証サーバ12は、管理サーバ11にアクセストークンを払い出す。次に、S510にて、管理サーバ11は、認証サーバ12から払い出されたアクセストークンを受けて、受け取ったアクセストークンを情報処理装置100においてWebアプリケーションとして動作する第1アプリケーション110に送信する。
次に、S511にて、ユーザは、Webアプリケーションとして動作する第1アプリケーション110の実行により表示されたGUIを参照して入力操作を行うことにより、第1アプリケーション110に入力操作に対応する処理を行わせる。第1アプリケーション110は、入力操作に対応する処理として、管理サーバ11にアクセストークン付きでAPIエンドポイントにリクエストを行う。このリクエストは、リソース要求部111により行われる。
次に、S512にて、管理サーバ11は、当該リクエストを受けて、受け取ったリクエストに対応するレスポンスをWebアプリケーションとして動作する第1アプリケーション110に返却する。第1アプリケーション110は、当該レスポンスを受けて、予め定められた定めあれた処理を行った後に、当該処理後のGUIを構成するための情報を生成し、第1アプリケーション110が動作するブラウザに当該GUIを表示させる。この情報は、上述の説明と同様に、画面生成部112により生成され、画面出力部113により出力される。第1アプリケーション110が動作するブラウザは、当該情報をレンダリングすることにより、GUIを生成して表示装置に表示させる。以降、S511とS512との処理が繰り返して実行されることにより、ユーザは、画像又は文章等の閲覧、編集、又は印刷等の所望の処理を行うことができる。なお、S511にて送信されるアクセストークンが不正なものである場合、例えば、S512にて管理サーバ11が第1アプリケーション110に対して、アクセル権限等の権限が無い旨を示すエラーを示す情報を返却する。この場合、例えば、第1アプリケーション110は、アクセル権限等の権限が無い旨を示すGUIを構成するための情報を生成し、第1アプリケーション110が動作するブラウザは、当該GUIをレンダリングして表示装置に表示させてもよい。
図7は、実施形態1に係る情報処理システム1における処理シーケンスの他の一例を示すシーケンス図である。図7に示すシーケンス図は、第1アプリケーション110及び第2アプリケーション120が情報処理装置100において動作するネイティブアプリケーションとして動作する場合の一例である。第1アプリケーション110及び第2アプリケーション120は、Windows(登録商標)、MacOS(登録商標)、iOS(登録商標)、又はAndroid(登録商標)等のOS(Operating System)にインストールされて動作する。インストールされた後、第1アプリケーション110及び第2アプリケーション120は、情報処理装置100において、常駐して動作する常駐アプリケーションとして動作する。なお、図7の説明において記号「S」はステップを意味する。
以下、第1アプリケーション110及び第2アプリケーション120は、それぞれがGUIを生成して、情報処理装置100に接続された図1には不図示の表示装置に表示させるものとして説明するが、これに限定されるものではない。例えば、第1アプリケーション110及び第2アプリケーション120は、情報処理装置100において動作するブラウザが有する機能を拡張するためにアドオンされる、プラグイン用のプログラムであってもよい。この場合、プラグイン用のプログラムである第1アプリケーション110及び第2アプリケーション120は、ネイティブアプリケーションと同様に、OSにインストールされて、ブラウザにアドオンされることにより、ブラウザに表示可能なGUIを生成する。ブラウザは、第1アプリケーション110及び第2アプリケーション120により生成されたGUIをレンダリングして表示装置に表示させる。
S701にて、ユーザは、第1アプリケーション110及び第2アプリケーション120を起動する。第1アプリケーション110及び第2アプリケーション120の起動後、S702にて、情報処理装置100は、情報処理装置100の特定を可能するID(以下「デバイスID」という。)を取得する。例えば、情報処理装置100は、情報処理装置100が有するネットワークカードに付されたMAC(Media Access Control)アドレス等をデバイスIDとして取得する。当該取得は、例えば、第2アプリケーション120の実行により行われる。なお、デバイスIDは、ユーザが使用する情報処理装置100を特定するものであるため、認証情報として使用することができる。すなわち、第2アプリケーション120の実行により、デバイスIDが認証情報として取得される。
次に、S703にて、情報処理装置100は、管理サーバ11に対してデバイスIDを送信して、デバイス登録の要求を行う。当該要求は、例えば、第2アプリケーション120の実行により行われる。すなわち、ここでいうデバイス登録の要求とは、認証指示の一例である。なお、第2アプリケーション120は、S703におけるデバイス登録の要求の前に、第1アプリケーションの状態を取得して、取得した第1アプリケーションの状態に基づいて、デバイス登録の要求を行うか否か、すなわち、認証指示を行うか否かを判定する。当該判定の結果、認証指示を行うと判定されたとき、情報処理装置100は、S703を実行する。第2アプリケーション120が取得する第1アプリケーションの状態の態様、及び、認証指示を行うか否かを判定の態様については後述する。次に、S704にて、管理サーバ11は、情報処理装置100から送信されたデバイスIDを受信して、受信したデバイスIDを認証サーバ12に対して送信し、情報処理装置100についてのデバイス登録の指示を行う。認証サーバ12は、管理サーバ11から送信されたデバイスIDを受信して、受信したデバイスIDを用いて情報処理装置100をデバイス登録する。
情報処理装置100のデバイス登録の完了後、S705にて、認証サーバ12は、管理サーバ11に対して、デバイス登録が正常に行われたことを示すレスポンスを返す。次に、S706にて、管理サーバ11は、情報処理装置100に対して、デバイス登録が正常に行われたことを示すレスポンスを返す。次に、S707にて、情報処理装置100は、管理サーバ11にアクセストークンを要求する。当該要求は、例えば、第1アプリケーションの実行により行われる。次に、S708にて、管理サーバは、情報処理装置100からの要求を受けて、認証サーバ12にアクセストークンを要求する。次に、S709にて、認証サーバ12は、管理サーバ11からの要求を受けて、管理サーバ11にアクセストークンを払い出す。次に、S710にて、管理サーバ11は、認証サーバ12から払い出されたアクセストークンを受けて、情報処理装置100にアクセストークンを送信する。管理サーバ11から送信されたアクセストークンは、情報処理装置100により受信される。
次に、S711にて、情報処理装置100は、管理サーバ11から受信したアクセストークンを用いて、管理サーバ11に対して、アクセストークン付きでAPIエンドポイントにリクエストを行う。当該リクエストは、第1アプリケーションの実行により行われる。次に、S712にて、管理サーバ11は、情報処理装置100からのアクセストークン付きのリクエストを受けて、当該リクエストに対応するレスポンスを情報処理装置100に返却する。以降、S711とS712との処理が繰り返して実行されることにより、ユーザは、画像又は文章等の閲覧、編集、又は印刷等の所望の処理を行うことができる。なお、S711にて送信されるアクセストークンが不正なものである場合、例えば、S712では管理サーバ11が情報処理装置100に対して、アクセル権限等の権限が無い旨を示すエラーを示す情報を返却する。
図5又は図7に示す認証処理及び認可処理の処理シーケンスは、あくまで一例であって、本開示において、認証処理及び認可処理の処理シーケンスは、これに限定されるものではない。例えば、認証処理及び認可処理の処理シーケンスは、OpenID Connect、又はOAuth等のプロトコルにより定められた処理シーケンスであってもよい。
図8及び図9を参照して、第1アプリケーション110の状態に応じた認証処理のタイミングの制御について説明する。図8は、実施形態1に係る情報処理システム1における認証処理及び認可処理の処理シーケンスの一例を示すシーケンス図である。図8に示すシーケンス図は、第1アプリケーション110及び第2アプリケーション120が情報処理装置100において動作するネイティブアプリケーションとして動作する場合の一例である。第1アプリケーション110及び第2アプリケーション120は、インストール用のアプリケーション(以下「インストーラ」という。)の実行により、情報処理装置100において動作するOSにインストールされる。なお、図8の説明において記号「S」はステップを意味する。
S801にて、ユーザは、情報処理装置100において動作するOSに対してインストーラの実行を指示することにより、インストーラによる第1アプリケーション110及び第2アプリケーション120のインストールの開始を指示する。ユーザによりインストールの開始が指示されると、S802にて、インストーラは、その実行により、第1アプリケーション110のインストールを行う。次に、S803にて、インストーラは、第2アプリケーション120のインストールを行う。第2アプリケーション120のインストールの完了後、S804にて、インストーラは、第2アプリケーション120を起動する。
S804の後、第2アプリケーション120は、第1アプリケーション110が起動された状態であるか否かを判定する。第1アプリケーション110の起動の状態は、状態取得部121により取得され、当該判定は、状態判定部122により行われる。当該判定において起動された状態でないと判定された場合、S807にて、第2アプリケーション120は、第1アプリケーション110が起動されるまでの間、予め定められた期間の経過毎に第1アプリケーション110の起動の状態を繰り返して判定する。
例えば、S805にて、ユーザは、第1アプリケーション110の起動を指示する。この場合、S805の後、第2アプリケーション120は、第1アプリケーション110が起動された状態であると判定する。当該判定において起動された状態であると判定された場合、S808にて、第2アプリケーション120は、管理サーバ11に対して、認証指示を行う。当該指示は、認証指示部123により行われる。次に、S809にて、管理サーバ11は、第2アプリケーション120からの当該指示を受けて、認証サーバ12に対して、認証指示を行う。次に、S810にて、認証サーバ12は、管理サーバ11からの当該指示を受けて、当該指示に対応する認証処理を行う。その後、例えば、S806にて、ユーザは、第1アプリケーション110の終了を指示する。
図8に示す処理シーケンスでは、第2アプリケーション120が管理サーバ11に対して認証指示を行うものとして説明したが、本開示は、これに限定されるものではない。例えば、第1アプリケーション110が起動したときに、第1アプリケーション110が管理サーバ11又は認証サーバ12に対して認証指示を行い、その認証情報を用いて第2アプリケーション120が動作するものであっても良い。
また、図8に示す処理シーケンスでは、一例として、認証判定部122が第1アプリケーション110の起動の状態を確認する形態について説明したが、本開示は、これに限定されるものではない。例えば、第2アプリケーション120は、第1アプリケーション110の実行により発生した予め定められたイベントの検知に基づいて、管理サーバ11又は認証サーバ12に対して認証指示を行ってもよい。具体的には、例えば、状態取得部121は、第1アプリケーション110の実行により発生したイベントを検知して取得する。また、認証判定部122は、状態取得部121により取得されたイベントが予め定められたイベントであるか否かを判定する。すなわち、認証判定部122は、第1アプリケーション110の実行により予め定められたイベントが発生したか否かを判定する。認証判定部122が第1アプリケーション110の実行により予め定められたイベントが発生したと判定した場合、認証指示部123は、認証指示を行う。ここで、予め定められたイベントとは、例えば、第1アプリケーション110が管理サーバ11により管理される管理リソースであるプリンタに対して、印刷を開始する指示を行ったことに対応するイベントである。
図9は、実施形態1に係る情報処理システム1における各アプリケーション又は各サーバにおける認証処理が完了するまでの処理フローの一例を示すフローチャートである。なお、図9の説明において記号「S」はステップを意味する。図9(a)は、実施形態1に係るインストーラにおける処理フローの一例を示すフローチャートである。まず、S901にて、インストーラは、第1アプリケーション110をインストールする。次に、S902にて、インストーラは、第2アプリケーション120をインストールする。次に、S903にて、インストーラは、第2アプリケーション120を起動する。S903の後、インストーラは、図9(a)に示すフローチャートの処理を終了する。
図9(b)は、実施形態1に係る第1アプリケーション110における処理フローの一例を示すフローチャートである。まず、S911にて、第1アプリケーション110は、ユーザの操作により起動して動作を開始する。次に、S912にて、第1アプリケーション110は、ユーザの操作により終了して動作を終了する。S912の後、第1アプリケーション110は、図9(b)に示すフローチャートの処理を終了する。
図9(c)は、実施形態1に係る第2アプリケーション120における処理フローの一例を示すフローチャートである。まず、S921にて、第2アプリケーション120は、第1アプリケーション110の状態を取得する。具体的には、第2アプリケーション120の実行により、状態取得部121は、第1アプリケーション110の状態を取得する。ここで、第1アプリケーション110の状態とは、例えば、第1アプリケーション110が起動されている状態であるか否か、又は、第1アプリケーション110の実行により何らかのイベントが発生した状態であるか否かである。第1アプリケーション110の状態は、上述のものに限定されるものではない。例えば、第1アプリケーション110の状態は、第1アプリケーション110がインストールされて実行可能な状態であるか否か、又は、第1アプリケーション110が1度でも起動された状態であるか否か、等であってもよい。
S921の後、S922にて、第2アプリケーション120は、第1アプリケーション110の状態に応じて認証指示を行うか否かを判定する。第1アプリケーション110が起動されていない場合、第2アプリケーション120は、例えば、認証指示を行わないと判定する。S922にて、認証指示を行わないと判定された場合、第2アプリケーション120は、S921の処理に戻って、例えば、予め定められた期間の経過後に、再度、第1アプリケーション110の起動の状態を確認する。当該場合、第2アプリケーション120は、図9(c)に示すフローチャートの処理を終了してもよい。第1アプリケーション110が起動された状態である場合、第2アプリケーション120は、認証指示を行うと判定する。S922にて、認証指示を行うと判定された場合、S924にて、第2アプリケーション120は、管理サーバ11に対して認証指示を行う。S924の後、第2アプリケーション120は、図9(c)に示すフローチャート処理を終了する。
図9(d)は、実施形態1に係る管理サーバ11における処理フローの一例を示すフローチャートである。まず、S931にて、管理サーバ11は、認証サーバ12に対して認証指示を行う。S931の処理は、図9(c)に示すS924の処理により、第2アプリケーション120からの認証指示を管理サーバ11が受けたときに実行される。S931の後、管理サーバ11は、図9(d)に示すフローチャート処理を終了する。
図9(e)は、実施形態1に係る認証サーバ12における処理フローの一例を示すフローチャートである。まず、S941にて、認証サーバ12は、認証処理を行う。S941の処理は、図9(d)に示すS931の処理により、管理サーバ11からの認証指示を認証サーバ12が受けたときに実行される。S941の後、認証サーバ12は、図9(e)に示すフローチャート処理を終了する。
これまで説明したように、情報処理システム1は、第1アプリケーション110の状態に応じて、第2アプリケーション120により認証指示を行うか否かを判定する。すなわち、情報処理システム1は、第1アプリケーション110の状態に応じて、認証指示を行うタイミングを制御することができる。したがって、情報処理システム1によれば、認証サービスの利用を要する第1アプリケーション110を利用するユーザが増加しても、実際に認証サービスを利用するユーザの数を抑制することができる。結果として、情報処理システム1によれば、認証サービスを利用するアプリケーション(例えば第1アプリケーション)を利用するユーザの数に対する、認証サービスを利用するユーザの数の割合を低減することができる。
ところで、パブリッククラウドから提供される認証サービスの中には、所定期間における、認証するユーザ(以下「認証ユーザ」という。)の数に応じた利用料を、この認証サービスを利用するアプリケーションを提供する提供者に対して請求するものがある。したがって、この認証サービスを利用するアプリケーションを利用するユーザの数が増加すると認証ユーザの数も増加する。そのため、提供者は、認証サービスを利用するアプリケーションを利用するユーザの数が増加すると、認証サービスの利用のために支払う利用料が高額になってしまう。上述のように、情報処理システム1によれば、認証サービスの利用を要する第1アプリケーション110を利用するユーザが増加しても、実際に認証サービスを利用するユーザの数を抑制することができる。したがって、情報処理システム1によれば、上述のような認証サービスを利用する場合において、従来よりも支払う利用料を低減させることができる。
<実施形態2>
図10を参照して、実施形態2に係る情報処理システム1について説明する。実施形態2に係る情報処理システム1の構成は、実施形態1において図1を参照して説明した構成と同様であるため、説明を省略する。図10を参照して、実施形態2に係る第1アプリケーション110の状態に応じた認証指示のタイミングの制御について説明する。図10は、実施形態2に係る情報処理システム1における認証処理及び認可処理の処理シーケンスの一例を示すシーケンス図である。なお、図10の説明において記号「S」はステップを意味する。
図10に示すシーケンス図は、第1アプリケーション110が情報処理装置100において動作するネイティブアプリケーションとして動作し、第2アプリケーション120がWebアプリケーションとして動作する場合の一例である。第1アプリケーション110は、第2アプリケーション120の実行により、情報処理装置100において動作するOSにインストールされる。第1アプリケーション110は、情報処理装置100において動作するブラウザにアドオンされるプラグイン用のプログラムとして情報処理装置100において動作するOSにインストールされるものであってもよい。この場合、第1アプリケーション110は、ブラウザにより実行されて動作する。以下、第1アプリケーション110は、情報処理装置100において動作するネイティブアプリケーションであるものとして説明する。
また、第2アプリケーション120は、Webサイトから提供される、情報処理装置100において動作するブラウザにより実行可能なスクリプト言語により記載されたWebアプリケーションである。この場合、第2アプリケーション120は、ブラウザによるレンダリングにより実行されて動作する。ブラウザは、第2アプリケーション120の実行により図6に一例として示すGUIを、図1には不図示の表示装置に表示させる。ユーザは、情報処理装置100に対して入力操作を行うことにより、ブラウザを介して認証処理及び認可処理の実行を指示することができる。
第2アプリケーション120は、例えば、図1には不図示のアプリケーションサーバにおいて動作するWebアプリケーションであってもよい。この場合、第2アプリケーション120は、図1に示す管理サーバ11において動作するものであってもよい。また、この場合、第2アプリケーション120の実行により提供される、図6に一例として示すGUIは、情報処理装置100において動作するブラウザに表示される。この場合、ユーザは、情報処理装置100に対して入力操作を行うことにより、ブラウザを介して、第2アプリケーションに対して認証処理及び認可処理の実行を指示させることができる。以下、第2アプリケーション120は、情報処理装置100において動作するブラウザにより実行可能なスクリプト言語により記載されたWebアプリケーションであるものとして説明する。
まず、S1001にて、ユーザは、ブラウザに、第2アプリケーション120を提供するWebサイトのURLを指定する。ブラウザは、指定されたURLによりWebサイトにリクエストを送信する。次に、S1002にて、第2アプリケーション120は、ブラウザにレンダリングされることにより実行され、第1アプリケーション110の状態を取得する。具体的には、例えば、第2アプリケーション120は、第1アプリケーション110が情報処理装置100にインストールされている状態であるか否かの情報を取得する。当該取得は、状態取得部121により行われる。
第2アプリケーション120は、第1アプリケーション110の状態に基づいて、認証指示を行うか否かを判定する。具体的には、例えば、第2アプリケーション120は、第1アプリケーション110がインストールされているか否かを示す情報を取得して、当該情報に基づいて、認証指示を行うか否かを判定する。第2アプリケーション120は、第1アプリケーション110がインストールされている場合、認証指示を行うと判定し、第1アプリケーション110がインストールされていない場合、認証指示を行わないと判定する。第1アプリケーション110がインストールされていない場合、例えば、第2アプリケーション120は、インストールされるまでの間、予め定められた期間の経過毎に、インストールされているか否かの情報を取得して、上述の判定を繰り返して行ってもよい。また、当該場合、例えば、第2アプリケーション120は、第1アプリケーション110をインストールすることをユーザに促すGUIを生成してブラウザに表示させてもよい。
次に、S1003にて、ユーザは、第2アプリケーション120に対して、第1アプリケーション110をインストールされるための指示を行う。次に、S1004にて、第2アプリケーション120は、当該指示を受けて、情報処理装置100に第1アプリケーション110のインストールを行う。第2アプリケーション120は、第1アプリケーション110のインストールが完了するまでの間、予め定められた期間の経過毎に、第1アプリケーション110のインストールが完了した否かを繰り返して判定してもよい。第1アプリケーション110がインストールされた状態となったとき、第2アプリケーション120は、図6に一例として示す認証画面600を構成するための情報を生成する。ブラウザは、当該情報をレンダリングすることにより、図6に一例として示す認証画面600を表示装置に表示させる。ユーザは、ブラウザに表示される認証画面600を参照して、ID及びパスワードを入力して、当該入力後にボタン603を押す。
次に、S1005にて、第2アプリケーション120は、ブラウザを介してユーザにより入力されたID及びパスワードを認証情報として管理サーバ11に送信して、管理サーバ11に対して認証指示を行う。次に、S1006にて、管理サーバ11は、第2アプリケーション120、すなわち、情報処理装置100から送信された認証情報を受信して、受信後に、当該認証情報を認証サーバ12に送信して認証サーバ12に対して認証指示を行う。次に、S1007にて、認証サーバ12は、管理サーバ11から送信された認証情報を受信して、受信後に、認証処理を行う。
なお、上述では、S1004にて、第2アプリケーション120が第1アプリケーション110のインストールが完了しているか否かを予め定められた期間の経過毎に確認するものとして説明したが、これに限定されるものではない。例えば、第2アプリケーション120は、S1002にて、第2アプリケーション120がブラウザにより実行されたときに1回だけ、第1アプリケーション110がインストールされた状態であるか否かを確認してもよい。
これまで説明したように、情報処理システム1は、第1アプリケーション110の状態に応じて、第2アプリケーション120により認証指示を行うか否かを判定する。すなわち、情報処理システム1は、第1アプリケーション110の状態に応じて、認証指示を行うタイミングを制御することができる。したがって、情報処理システム1によれば、認証サービスの利用を要する第1アプリケーション110を利用するユーザが増加しても、実際に認証サービスを利用するユーザの数を抑制することができる。結果として、情報処理システム1によれば、認証サービスを利用するアプリケーション(例えば第1アプリケーション)を利用するユーザの数に対する、認証サービスを利用するユーザの数の割合を低減することができる。
<実施形態3>
図11を参照して、実施形態3に係る情報処理システム1について説明する。実施形態3に係る情報処理システム1の構成は、実施形態1において図1を参照して説明した構成と同様であるため、説明を省略する。図11を参照して、実施形態3に係る第1アプリケーション110の状態に応じた認証指示のタイミングの制御について説明する。図11は、実施形態3に係る情報処理システム1における認証処理及び認可処理の処理シーケンスの一例を示すシーケンス図である。なお、図11の説明において記号「S」はステップを意味する。図11に示すシーケンス図は、第1アプリケーション110及び第2アプリケーション120が情報処理装置100において動作するネイティブアプリケーションとして動作する場合の一例である。すなわち、第1アプリケーション110及び第2アプリケーション120は、例えば、情報処理装置100において動作するOSにインストールされた状態において、動作するものである。
第1アプリケーション110及び第2アプリケーション120は、情報処理装置100において動作するブラウザにアドオンされるプラグイン用のプログラムであってもよい。この場合、第1アプリケーション110及び第2アプリケーション120は、プラグイン用のプログラムとして、情報処理装置100において動作するOSにインストールされる。この場合、第1アプリケーション110及び第2アプリケーション120は、ブラウザにより実行されて動作する。以下、第1アプリケーション110及び第2アプリケーション120は、情報処理装置100において動作するネイティブアプリケーションであるものとして説明する。また、第2アプリケーション120は、第1アプリケーション110を少なくとも含む1又は2以上のアプリケーションを、情報処理装置100において動作するOSにインストールする制御を行うことが可能なアプリケーションであるものとして説明する。
S1101にて、ユーザは、第2アプリケーション120を情報処理装置100において動作するOSにインストールする。次に、S1102にて、ユーザは、第2アプリケーション120を起動する。第2アプリケーション120は、起動後に、第1アプリケーション110の状態を取得する。具体的には、例えば、第2アプリケーション120は、第1アプリケーション110がインストールされた状態であるか否かの情報を取得する。第1アプリケーション110がインストールされていない場合、S1103にて、第2アプリケーション120は、第1アプリケーション110のインストールを開始する。次に、S1104にて、第2アプリケーション120は、第1アプリケーション110のインストールが完了したか否かを判定する。第2アプリケーション120は、第1アプリケーション110のインストールを開始してからが完了したと判定されるまでの間、例えば、予め定められた期間の経過毎に、第1アプリケーション110のインストールが完了したか否かを判定してもよい。
S1104にて、第1アプリケーション110のインストールが完了したと判定された場合、S1105からS1108までの処理が行われる。当該場合、まず、S1105にて、ユーザは、認証情報を入力する。具体的には、例えば、第2アプリケーション120は、第1アプリケーション110のインストールが完了したと判定した後、図6に一例として示す認証画面600を図1には不図示の表示装置に表示させる。ユーザは、認証画面600を参照して、認証情報としてID及びパスワードとを入力して、当該入力後にボタン603を押す。S1105の後、S1106にて、第2アプリケーション120は、ユーザにより入力されたID及びパスワードを認証情報として管理サーバ11に送信して、管理サーバ11に対して認証指示を行う。次に、S1107で、管理サーバ11は、第2アプリケーション120、すなわち、情報処理装置100から送信された認証情報を受信して、受信後に、当該認証情報を認証サーバ12に送信して、認証サーバ12に対して認証指示を行う。次に、S1108にて、認証サーバ12は、管理サーバ11から送信された認証情報を受信して、受信後に、認証処理を行う。
なお、上述では、第1アプリケーション110が1つだけであるものとして説明したが、これに限定されるものではない。例えば、第1アプリケーション110は、複数であってもよい。この場合、例えば、第2アプリケーション120は、複数の第1アプリケーションのうちの1以上の第1アプリケーション110におけるそれぞれの状態を取得してもよい。さらに、第2アプリケーション120は、取得した、当該1以上の複数の第1アプリケーション110の状態に基づいて、認証指示を行うか否かを判定してもよい。
また、上述では、インストールが完了したか否かを第1アプリケーション110の状態として取得して判定する形態について説明したが、第2アプリケーション120が判定に用いる第1アプリケーション110の状態は、これに限定されるものではない。例えば、第2アプリケーション120は、第1アプリケーション110がこれまでに起動されたことがある否か、又は、起動されている状態であるか否か等の状態を取得し、当該状態に基づいて、認証指示を行うか否かの判定を行ってもよい。
これまで説明したように、情報処理システム1は、第1アプリケーション110の状態に応じて、第2アプリケーション120により認証指示を行うか否かを判定する。すなわち、情報処理システム1は、第1アプリケーション110の状態に応じて、認証指示を行うタイミングを制御することができる。したがって、情報処理システム1によれば、認証サービスの利用を要する第1アプリケーション110を利用するユーザが増加しても、実際に認証サービスを利用するユーザの数を抑制することができる。結果として、情報処理システム1によれば、認証サービスを利用するアプリケーション(例えば第1アプリケーション)を利用するユーザの数に対する、認証サービスを利用するユーザの数の割合を低減することができる。
<実施形態4>
実施形態1乃至3では、第2アプリケーション120が管理サーバ11に対して認証指示を行い、更に、管理サーバ11が認証サーバ12に対して認証指示を行う形態について説明したが、これに限定されるものではない。例えば、第2アプリケーション120は、管理サーバ11を介さずに、認証サーバ12に対して直接、認証指示を行ってもよい。
また、実施形態1乃至3では、第1アプリケーション110がインストールされた状態、又は第1アプリケーション110が起動された状態であるか否かに応じて、認証指示を行うか否かを判定する形態について説明したが、これに限定されるものではない。第2アプリケーション120は、第1アプリケーション110の状態に応じて、認証指示を行うタイミングを制御するものでればよい。具体的には、例えば、第2アプリケーション120は、第1アプリケーション110が予め定められたリリースバージョン(例えば、特定のリリースバージョン以降に提供されたもの)であるか否かに基づいて、認証指示を行うか否かを判定してもよい。また、例えば、第2アプリケーション120は、第1アプリケーション110の実行の進度の状態に基づいて、認証指示を行うか否かを判定してもよい。ここで、第1アプリケーション110の実行の進度の状態とは、例えば、これまでに、第1アプリケーション110が予め定められた処理(例えば特定の画面までの遷移)までを完了したことがあるか否か等である。
また、第2アプリケーション120は、第1アプリケーション110の状態に加えて、認証サーバ12の状態を取得し、取得した、第1アプリケーション110及び認証サーバ12の状態に基づいて、認証指示を行うか否かを判定してもよい。例えば、第2アプリケーション120は、認証サーバ12と通信を行い、そのときに、認証サーバ12が認証処理を行っているユーザの数(以下「認証数」という。)を取得する。例えば、第2アプリケーション120は、認証数が予め定められた閾値より小さい場合には認証指示を行い、認証数が閾値以上の場合には、第1アプリケーション110の状態に依らずに、認証指示を行わないように制御する。
また、実施形態1乃至3では、HTTP通信による通信を一例として、情報処理装置100とサーバとの間の通信について説明したが、これに限定されるものではない。情報処理装置100とサーバとの間の通信は、HTTP通信とは異なる他の通信プロトコルによる通信であってもよい。
<その他の実施形態>
本開示は、上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、本開示はその開示の範囲内において、各実施形態の自由な組み合わせ、各実施形態の任意の構成要素の変形、又は、各実施形態において任意の構成要素の省略が可能である。
100:情報処理装置
110:第1アプリケーション
120:第2アプリケーション
121:状態取得部
122:認証判定部
123:認証指示部

Claims (20)

  1. 第1のアプリケーション、及び第2のアプリケーションを実行する情報処理装置であって、
    前記第2のアプリケーションの実行により、前記第1のアプリケーションの状態を取得する状態取得手段と、
    前記第2のアプリケーションの実行により、前記状態取得手段により取得される前記第1のアプリケーションの状態に応じて、認証処理を行うか否かを判定する認証判定手段と、
    前記認証判定手段により前記認証処理を行うと判定された場合に、前記第1のアプリケーション又は前記第2のアプリケーションの実行により、前記認証処理を行うための指示を行う認証指示手段と、
    を有すること
    を特徴とする情報処理装置。
  2. 前記状態取得手段により取得される状態は、前記第1のアプリケーションがインストールされているか否かであること
    を特徴する請求項1に記載の情報処理装置。
  3. 前記状態取得手段により取得される状態は、前記第1のアプリケーションが起動されたことがあるか否かであること
    を特徴する請求項1に記載の情報処理装置。
  4. 前記状態取得手段により取得される状態は、前記第1のアプリケーションの実行において予め定められたイベントが発生したか否かであること
    を特徴する請求項1に記載の情報処理装置。
  5. 前記状態取得手段により取得される状態は、実行される前記第1のアプリケーションのリリースバージョンであること
    を特徴する請求項1に記載の情報処理装置。
  6. 前記状態取得手段により取得される状態は、実行される前記第1のアプリケーションの進度であること
    を特徴する請求項1に記載の情報処理装置。
  7. 前記第1のアプリケーションは、複数のアプリケーションから構成され、
    前記状態取得手段は、前記複数のアプリケーションのうちの1以上のアプリケーションの状態を取得し、取得した前記1以上のアプリケーションの状態を前記第1のアプリケーションの状態として取得すること
    を特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記状態取得手段は、前記第1のアプリケーションの状態に加えて、前記認証処理を行う認証サーバの状態を取得し、
    前記認証判定手段は、第1のアプリケーションの状態に加えて、前記認証サーバの状態に応じて、前記認証処理を行うか否かを判定すること
    を特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記認証指示手段は、ユーザに対応付けられた情報を管理する管理サーバに対して前記指示を行い、
    前記指示を受けた前記管理サーバは、前記認証処理を行う認証サーバに対して、前記認証処理を行うための指示を行うこと
    を特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 前記認証指示手段は、前記認証処理を行う認証サーバに前記指示を行うこと
    を特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
  11. 前記認証指示手段は、前記第2のアプリケーションの実行により、前記指示を行うこと
    を特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
  12. 前記第2のアプリケーションは、前記情報処理装置にインストールされている常駐アプリケーションであること
    を特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
  13. 前記第2のアプリケーションは、前記情報処理装置のOSが起動することに応じて前記情報処理装置において常駐して動作すること
    を特徴とする請求項12に記載の情報処理装置。
  14. 前記第1のアプリケーションは、前記第2のアプリケーションによって前記情報処理装置にインストールされること
    を特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。
  15. 前記第1のアプリケーション及び前記第2のアプリケーションの少なくとも一方は、前記情報処理装置において動作するブラウザアプリケーションによって実行されるWebアプリケーションであること
    を特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
  16. 前記第1のアプリケーション及び前記第2のアプリケーションの少なくとも一方は、前記情報処理装置において動作するWebアプリケーションであること
    を特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
  17. 前記第1のアプリケーションが前記情報処理装置において動作するWebアプリケーションである場合、前記情報処理装置とは別の装置において動作するブラウザによって前記第1のアプリケーションの実行の指示が行われ、前記情報処理装置は、前記ブラウザに前記第1のアプリケーションの実行の結果を提示し、
    前記第2のアプリケーションが前記情報処理装置において動作するWebアプリケーションである場合、前記情報処理装置とは別の装置において動作するブラウザによって前記第2のアプリケーションの実行の指示が行われ、前記情報処理装置は、前記ブラウザに前記第2のアプリケーションの実行の結果を提示する
    を特徴とする請求項16に記載の情報処理装置。
  18. 第1のアプリケーション、及び第2のアプリケーションの実行による情報処理方法であって、
    前記第2のアプリケーションの実行により、前記第1のアプリケーションの状態を取得する状態取得工程と、
    前記第2のアプリケーションの実行により、前記状態取得工程により取得される前記第1のアプリケーションの状態に応じて、認証処理を行うか否かを判定する認証判定工程と、
    前記認証判定工程により前記認証処理を行うと判定された場合に、前記第1のアプリケーション又は前記第2のアプリケーションの実行により、前記認証処理を行うための指示を行う認証指示工程と、
    を有すること
    を特徴とする情報処理方法。
  19. コンピュータに、請求項18に記載の情報処理方法の各工程を実行させるためのプログラム。
  20. コンピュータに、請求項18に記載の情報処理方法の各工程を実行させるプログラムが記憶された、コンピュータよる読み取りが可能な記憶媒体。
JP2021126780A 2021-08-02 2021-08-02 情報処理装置、情報処理方法、及びプログラム Pending JP2023021729A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021126780A JP2023021729A (ja) 2021-08-02 2021-08-02 情報処理装置、情報処理方法、及びプログラム
US17/816,310 US20230030460A1 (en) 2021-08-02 2022-07-29 Information processing apparatus, information processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021126780A JP2023021729A (ja) 2021-08-02 2021-08-02 情報処理装置、情報処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2023021729A true JP2023021729A (ja) 2023-02-14

Family

ID=85039264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021126780A Pending JP2023021729A (ja) 2021-08-02 2021-08-02 情報処理装置、情報処理方法、及びプログラム

Country Status (2)

Country Link
US (1) US20230030460A1 (ja)
JP (1) JP2023021729A (ja)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ654400A0 (en) * 2000-03-28 2000-04-20 Optimiser Pty Ltd Authorising use of a computer program
JP2007257507A (ja) * 2006-03-24 2007-10-04 Fujitsu Ltd 端末のアクセス認証時に端末のソフトウェアをアップデートするシステム
CN100524333C (zh) * 2006-06-13 2009-08-05 正璞科技有限公司 防止非法使用软件的方法
US20090190162A1 (en) * 2008-01-09 2009-07-30 Seiko Epson Corporation Print control device, information display method for print control device, and information display program for print control device
KR101642756B1 (ko) * 2009-12-24 2016-07-26 삼성전자주식회사 화상형성장치 및 보안정책 설정 방법
US9009800B2 (en) * 2010-06-24 2015-04-14 Infosys Limited Systems and methods of authentication in a disconnected environment
JP5972071B2 (ja) * 2012-06-26 2016-08-17 キヤノン株式会社 画像処理装置、画像処理方法及び記録媒体
JP6223159B2 (ja) * 2013-12-09 2017-11-01 キヤノン株式会社 情報処理装置、その制御方法、プログラム及び記憶媒体
US9406157B2 (en) * 2014-04-21 2016-08-02 Airwatch Llc Concealing sensitive information on a display
US9524172B2 (en) * 2014-09-29 2016-12-20 Bank Of America Corporation Fast start
KR102534547B1 (ko) * 2016-09-07 2023-05-19 삼성전자주식회사 전자 장치 및 그의 동작 방법
US10552591B2 (en) * 2016-09-15 2020-02-04 Oracle International Corporation Resource optimization using data isolation to provide sand box capability
CN108737171B (zh) * 2018-05-10 2021-08-27 网宿科技股份有限公司 一种管理云服务集群的方法和系统

Also Published As

Publication number Publication date
US20230030460A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
JP6413665B2 (ja) 多機能装置上のOAuth対応クラウド・サービスのカード認証
JP4493698B2 (ja) 連携システム
JP2015118533A (ja) 印刷システム、画像形成装置、情報処理装置、プリントサービスシステム、及びプログラム
CN107203351B (zh) 信息处理设备和信息处理方法
JP6758999B2 (ja) 情報処理システム、情報処理装置及びその制御方法、及びプログラム
JP2010113599A (ja) 情報処理システム、情報処理装置、情報処理方法、プログラム、及び記憶媒体
JP2014081779A (ja) 機器管理システム、周辺機器、及びその制御方法。
US20180067707A1 (en) Information processing system, information processing apparatus, image forming apparatus, methods for controlling the same, and storage medium
JP7321827B2 (ja) 情報処理装置の制御方法、印刷設定アプリケーション、ならびに情報処理装置
JP2016167803A (ja) プログラム、情報処理装置、通信システム
JP2014115895A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP5470863B2 (ja) サーバへの電子機器の登録
JP2019215673A (ja) 画像形成装置及びその制御方法、並びにプログラム
JP7230617B2 (ja) 印刷システム、情報処理装置及びプログラム
JP6197286B2 (ja) 通信装置、情報処理システム及び情報処理システムの制御方法
JP6491550B2 (ja) 印刷装置とその制御方法、及びプログラム
KR20180000527A (ko) 화상 형성 장치, 모바일 단말 및 그 장치들의 로컬 로그인 처리 방법
JP7081210B2 (ja) アプリケーションプログラム
JP2023021729A (ja) 情報処理装置、情報処理方法、及びプログラム
JP6226001B2 (ja) 利用制御システム及び利用制御方法
US11546344B2 (en) Browsing management server, browsing management method, and browsing management system
JP4922958B2 (ja) 画像形成装置、画像形成方法、画像形成プログラム
JP2013114516A (ja) 利用管理システム、利用管理方法、情報端末、及び利用管理プログラム
JP6575577B2 (ja) 利用制御システム及び利用制御方法
US11902147B2 (en) Remote access system, remote access control method, and non-transitory recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240717