以下に、図面を参照して、本発明にかかる情報処理装置、情報処理方法、および情報処理プログラムの実施の形態を詳細に説明する。
(実施の形態にかかる情報処理方法の一実施例)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置100は、ユーザのデータを管理するコンピュータである。情報処理装置100は、ウェブAPI(Application Programming Interface)を公開し、ユーザのデータを、ウェブアプリケーションから利用可能に制御する。
ここで、ユーザのデータは、例えば、個人情報を含むことがある。このため、ユーザのデータが、ユーザの認可なく情報処理装置100以外の装置から利用されることは好ましくない。ウェブアプリケーションは、ウェブAPIを呼び出してユーザのデータを利用する。以下の説明では、ウェブアプリケーションを「ウェブアプリ」と表記する場合がある。
従来では、ユーザのデータを管理する管理サーバは、ユーザのデータをウェブアプリに利用させる前に、ユーザの端末装置102に認可画面を表示させ、ユーザのデータをウェブアプリに利用させることを認可するか否かを、ユーザに決定させる。認可画面は、ユーザが認可するか否かを決定するための画面である。この際、管理サーバは、ウェブアプリの提供元から登録された、ウェブアプリの提供元のIDを、認可画面に含めておくことがある。そして、管理サーバは、ユーザが認可した場合だけ、ウェブアプリの提供元から登録されたウェブアドレスに、認可コードを送信することにより、ユーザのデータを、ウェブアプリから利用可能に制御する。
しかしながら、従来では、ユーザは、ウェブアプリの提供元を正しく判断することができず、ユーザのデータをウェブアプリに利用させることを、誤って認可してしまうことがある。このため、ユーザのデータが漏洩してしまい、セキュリティが確保されないことがあり、ユーザが損害を被ることがある。
例えば、管理サーバは、ウェブアプリの提供元のIDに、他のウェブアプリの提供元のIDと重複または類似するIDなどを登録することを禁止しておらず、ユーザが有名企業のIDと誤認しやすいIDなどを登録することを禁止していない。このため、悪意または偶然により、ユーザが有名企業のIDと誤認しやすいIDなどが、管理サーバに登録され、ウェブアプリの提供元のIDとして認可画面に含まれることがある。結果として、ユーザは、認可画面に含まれるウェブアプリの提供元のIDを参照しても、ウェブアプリの提供元を正しく判断することができないことがある。
そこで、本実施の形態では、ユーザのデータを管理する側で、認可コードを送信する送信先として登録されたウェブアドレスに対応する証明書情報を取得し、端末装置102に表示させる情報処理方法について説明する。この情報処理方法によれば、ウェブアプリの提供元を正しく判断しやすくすることができる。
図1において、情報処理装置100は、複数のデータを管理する。データは、ユーザのデータである。ユーザは、情報処理装置100が提供するデータを管理するサービスを利用し、自身のデータを管理することを情報処理装置100に依頼した依頼者である。情報処理装置100は、ユーザの端末装置102と通信可能である。また、情報処理装置100は、ウェブアプリを提供する提供元に対応する提供元装置101と通信可能である。
(1-1)情報処理装置100は、提供元装置101から、認可コードが送信される送信先を示すウェブアドレスを受信する。認可コードは、例えば、情報処理装置100が管理するいずれかのデータをウェブアプリに利用させることが認可されたことに応じて送信される。ウェブアドレスは、例えば、URL(Uniform Resource Locator)である。ウェブアドレスの形式は、例えば、https(Hypertext Transfer Protocol Secure)である。
(1-2)情報処理装置100は、受信したウェブアドレスに基づいて、ウェブアドレスを所有する所有者に関する所有者情報を含む証明書情報を取得する。所有者情報は、例えば、所有者の識別情報を含む。所有者は、例えば、個人、または、法人である。所有者は、例えば、法人ではない組織であってもよい。証明書情報の種別は、例えば、EV(Extended Validation)である。EVの証明書情報は、例えば、所有者が法的に実在し、所有者が物理的に実在し、および、所有者がウェブアドレスを所有することを証明する。
(1-3)情報処理装置100は、認可画面を端末装置102に表示させる際に、取得した証明書情報を端末装置102に表示させる。認可画面は、情報処理装置100が管理する、端末装置102に対応するデータを、ウェブアプリに利用させることを、端末装置102を所有するユーザが認可するか否かを決定するための画面である。端末装置102に対応するデータは、例えば、端末装置102を所有するユーザのデータである。情報処理装置100は、例えば、端末装置102がウェブアプリを利用中に、認可画面を端末装置102に表示させ、証明書情報を端末装置102に表示させる。
これにより、情報処理装置100は、ユーザが、ユーザのデータをウェブアプリに利用させることを認可するか否かを決定する際、証明書情報を参照可能にすることができ、ウェブアプリの提供元を正しく判断しやすくすることができる。このため、情報処理装置100は、ユーザのデータが漏洩することを防止し、セキュリティの向上を図ることができる。
(情報処理システム200の一例)
次に、図2を用いて、図1に示した情報処理装置100を適用した、情報処理システム200の一例について説明する。
図2は、情報処理システム200の一例を示す説明図である。図2において、情報処理システム200は、情報処理装置100と、提供元装置101と、端末装置102とを含む。
情報処理システム200において、情報処理装置100と、提供元装置101と、端末装置102とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
情報処理装置100は、ユーザのデータを管理する。情報処理装置100は、ウェブAPIを公開し、ユーザのデータをウェブアプリに利用させることをユーザが認可した場合に、ユーザのデータをウェブアプリが利用可能に制御する。情報処理装置100は、例えば、提供元装置101から登録されたウェブアドレスに、認可コードを送信することにより、ユーザのデータをウェブアプリが利用可能に制御する。情報処理装置100は、例えば、サーバやPC(Personal Computer)などである。
提供元装置101は、ウェブアプリを提供するコンピュータである。提供元装置101は、ウェブアプリを、端末装置102から利用可能に制御する。提供元装置101は、情報処理装置100にウェブアドレスを登録し、ウェブアドレスに送信される認可コードを受信する。提供元装置101は、受信した認可コードに基づいて、ユーザのデータをウェブアプリで利用する。提供元装置101は、例えば、サーバやPCなどである。
端末装置102は、自身のデータを管理することを情報処理装置100に依頼したユーザが所有するコンピュータである。端末装置102は、ウェブブラウザ上で、提供元装置101が提供するウェブアプリを利用する。端末装置102は、ユーザのデータをウェブアプリに利用させることをユーザが認可するか否かを決定した結果を、情報処理装置100に送信する。端末装置102は、例えば、PC、タブレット端末、または、スマートフォンなどである。
(情報処理システム200の具体例)
情報処理システム200の具体例は、例えば、提供元装置101が提供するウェブアプリが、家計管理アプリであり、情報処理装置100が、金融機関に対応し、ユーザの口座への入出金のデータを管理する装置である場合が考えられる。また、情報処理システム200の具体例は、例えば、提供元装置101が提供するウェブアプリが、アラームアプリであり、情報処理装置100が、ユーザの行動予定のデータを管理する装置である場合が考えられる。
ここでは、情報処理システム200が、1つの情報処理装置100を含む場合について説明したが、これに限らない。例えば、情報処理システム200が、複数の情報処理装置100を含む場合があってもよい。
ここでは、情報処理システム200が、1つの提供元装置101を含む場合について説明したが、これに限らない。例えば、情報処理システム200が、複数の提供元装置101を含む場合があってもよい。
ここでは、情報処理システム200が、1つの端末装置102を含む場合について説明したが、これに限らない。例えば、情報処理システム200が、複数の端末装置102を含む場合があってもよい。
ここでは、情報処理装置100が、ユーザのデータを管理する機能と、認可コードを送信する機能とを有する場合について説明したが、これに限らない。例えば、情報処理装置100が、ユーザのデータを管理する機能を有さず、ユーザのデータを管理する他の装置と協働する場合があってもよい。
ここでは、提供元装置101が、ウェブアプリを提供する機能と、認可コードを受信する機能とを有する場合について説明したが、これに限らない。例えば、提供元装置101が、認可コードを受信する機能を有さず、認可コードを受信する他の装置と協働する場合があってもよい。
(情報処理装置100のハードウェア構成例)
次に、図3を用いて、情報処理装置100のハードウェア構成例について説明する。
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
情報処理装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(クライアント登録情報テーブル400の記憶内容)
次に、図4を用いて、情報処理装置100が記憶するクライアント登録情報テーブル400の記憶内容の一例について説明する。クライアント登録情報テーブル400は、例えば、図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図4は、クライアント登録情報テーブル400の記憶内容の一例を示す説明図である。図4に示すように、クライアント登録情報テーブル400は、クライアントIDと、認可コード受取用URLと、TLS(Transport Layer Security)サーバ証明書とのフィールドを有する。クライアント登録情報テーブル400は、提供元ごとに各フィールドに情報を設定することにより、クライアント登録情報がレコードとして記憶される。
クライアントIDのフィールドには、ウェブアプリの提供元を識別するクライアントIDが設定される。認可コード受取用URLのフィールドには、認可コードの送信先を示す認可コード受取用URLが設定される。TLSサーバ証明書のフィールドには、認可コード受取用URLから取得されるTLSサーバ証明書が設定される。
(提供元装置101のハードウェア構成例)
提供元装置101のハードウェア構成例は、図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
(端末装置102のハードウェア構成例)
次に、図5を用いて、図2に示した情報処理システム200に含まれる端末装置102のハードウェア構成例について説明する。
図5は、端末装置102のハードウェア構成例を示すブロック図である。図5において、端末装置102は、CPU501と、メモリ502と、ネットワークI/F503と、記録媒体I/F504と、記録媒体505と、ディスプレイ506と、入力装置507とを有する。また、各構成部は、バス500によってそれぞれ接続される。
ここで、CPU501は、端末装置102の全体の制御を司る。メモリ502は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU501のワークエリアとして使用される。メモリ502に記憶されるプログラムは、CPU501にロードされることで、コーディングされている処理をCPU501に実行させる。
ネットワークI/F503は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F503は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F503は、例えば、モデムやLANアダプタなどである。
記録媒体I/F504は、CPU501の制御に従って記録媒体505に対するデータのリード/ライトを制御する。記録媒体I/F504は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体505は、記録媒体I/F504の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体505は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体505は、端末装置102から着脱可能であってもよい。
ディスプレイ506は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ506は、例えば、CRT(Cathode Ray Tube)、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどである。入力装置507は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置507は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
端末装置102は、上述した構成部のほか、例えば、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、端末装置102は、記録媒体I/F504や記録媒体505を複数有していてもよい。また、端末装置102は、記録媒体I/F504や記録媒体505を有していなくてもよい。
(情報処理装置100の機能的構成例)
次に、図6を用いて、情報処理装置100の機能的構成例について説明する。
図6は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部600と、取得部601と、検証部602と、表示制御部603と、認可部604と、出力部605とを含む。
記憶部600は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部600が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部600が、情報処理装置100とは異なる装置に含まれ、記憶部600の記憶内容が情報処理装置100から参照可能である場合があってもよい。
取得部601~出力部605は、制御部の一例として機能する。取得部601~出力部605は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部600は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部600は、複数のデータを記憶する。データは、例えば、端末装置102に対応する、ユーザのデータである。データは、例えば、個人情報を含む。
記憶部600は、ウェブアプリの提供元ごとに、認可コードの送信先を示すウェブアドレスと、認可コードの送信先を示すウェブアドレスを所有する所有者に関する所有者情報を含む証明書情報とを対応付けて記憶する。
証明書情報は、所有者が法的に実在し、所有者が物理的に実在し、または、所有者が第1のウェブアドレスを所有することを証明する情報である。証明書情報の種別は、EVである。認可コードの送信先を示すウェブアドレスの形式は、httpsである。認可コードの送信先を示すウェブアドレスは、URLである。記憶部600は、具体的には、クライアント登録情報テーブル400を記憶する。
取得部601は、各機能部の処理に用いられる各種情報を取得する。取得部601は、取得した各種情報を、記憶部600に記憶し、または、各機能部に出力する。また、取得部601は、記憶部600に記憶しておいた各種情報を、各機能部に出力してもよい。取得部601は、例えば、情報処理装置100の利用者の操作入力に基づき、各種情報を取得する。取得部601は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
取得部601は、提供元装置101から、第1のウェブアドレスを受信する。第1のウェブアドレスは、情報処理装置100が管理するいずれかのデータをウェブアプリに利用させることが認可されたことに応じて認可コードが送信される送信先を示すURLである。取得部601は、例えば、端末装置102がウェブアプリを利用する前に、提供元装置101から、第1のウェブアドレスを受信する。
取得部601は、提供元装置101から、提供元を示す第1の識別情報と対応付けて第1のウェブアドレスを受信してもよい。取得部601は、例えば、端末装置102がウェブアプリを利用する前に、提供元装置101から、提供元を示す第1の識別情報と対応付けて第1のウェブアドレスを受信する。
取得部601は、提供元装置101から、端末装置102を介して、第2のウェブアドレスを受信する。第2のウェブアドレスは、情報処理装置100が管理するいずれかのデータをウェブアプリに利用させることが認可されたことに応じて認可コードが送信される送信先を示すURLである。取得部601は、例えば、端末装置102がウェブアプリを利用する際に、提供元装置101から、端末装置102を介して送信される、第2のウェブアドレスを受信する。
取得部601は、提供元装置101から、端末装置102を介して、提供元を示す第2の識別情報を受信してもよい。取得部601は、例えば、端末装置102がウェブアプリを利用する際に、提供元装置101から、端末装置102を介して送信される、提供元を示す第2の識別情報を受信する。
検証部602は、受信した第1のウェブアドレスに基づいて、証明書情報を取得する。証明書情報は、例えば、第1のウェブアドレスを所有する所有者に関する所有者情報を含む。証明書情報は、例えば、認証局の電子署名情報を含む。証明書情報は、例えば、有効期限を含む。検証部602は、例えば、第1のウェブアドレスにアクセスすることにより、証明書情報を取得する。これにより、検証部602は、ウェブアプリの提供元を判断するために、ユーザに参照可能にすることが好ましい証明書情報を取得することができる。
検証部602は、例えば、受信した第1のウェブアドレスと、受信した第2のウェブアドレスとが一致するか否かを判定してもよい。検証部602は、一致する場合には、受信した第1のウェブアドレスに基づいて、証明書情報を取得する。
検証部602は、一致しない場合には、証明書情報を取得せず、端末装置102に対応するデータを、ウェブアプリに利用させることを却下する。そして、検証部602は、端末装置102に対応するデータを、ウェブアプリに利用させることを却下することの通知を、端末装置102に送信する。また、検証部602は、第1のウェブアドレスが未登録であることの通知を、提供元装置101に送信する。
これにより、検証部602は、ウェブアプリの提供元を判断するために、ユーザに参照可能にすることが好ましい証明書情報を取得することができる。また、検証部602は、受信した第1のウェブアドレスと、受信した第2のウェブアドレスとが一致しない場合には、端末装置102に対応するデータを、ウェブアプリに利用させることを却下し、セキュリティを確保することができる。
検証部602は、受信した第1の識別情報と、受信した第2の識別情報とが一致するか否かを判定してもよい。検証部602は、一致する場合には、受信した第1の識別情報と対応付けられた第1のウェブアドレスに基づいて、証明書情報を取得する。
検証部602は、一致しない場合には、証明書情報を取得せず、端末装置102に対応するデータを、ウェブアプリに利用させることを却下する。そして、検証部602は、端末装置102に対応するデータを、ウェブアプリに利用させることを却下することの通知を、端末装置102に送信する。また、検証部602は、第1のウェブアドレスが未登録であることの通知を、提供元装置101に送信する。
これにより、検証部602は、ウェブアプリの提供元を判断するために、ユーザに参照可能にすることが好ましい証明書情報を取得することができる。また、検証部602は、受信した第1の識別情報と、受信した第2の識別情報とが一致しない場合には、端末装置102に対応するデータを、ウェブアプリに利用させることを却下し、セキュリティを確保することができる。
ここでは、検証部602が、第2のウェブアドレス、または、第2の識別情報を受信したタイミングで、受信した第1のウェブアドレスに基づいて、証明書情報を取得する場合について説明したが、これに限らない。検証部602は、例えば、第1のウェブアドレスを受信したタイミングで、端末装置102がウェブアプリを利用する前に、受信した第1のウェブアドレスに基づいて、証明書情報を取得しておいてもよい。
これにより、検証部602は、端末装置102がウェブアプリを利用する際に、情報処理装置100にかかる作業負担の低減化を図り、認可画面を表示する際にかかる所要時間の低減化を図ることができる。
検証部602は、取得した証明書情報が正当であるか否かを検証する。検証部602は、例えば、取得した証明書情報に含まれる認証局の電子署名情報が正当であるか否かを、認証局の公開鍵を用いて検証する。検証部602は、例えば、証明書情報に含まれる有効期限に基づいて、現時点で証明書情報が有効であるか否かを検証し、有効であれば正当であると判定してもよい。
これにより、検証部602は、端末装置102に対応するデータをウェブアプリに利用させることが好ましいか否かを判断する指標として、証明書情報が正当であるか否かを検証した結果を取得することができる。
ここでは、検証部602が、第1のウェブアドレスに基づいて、証明書情報を取得することに成功する場合について説明したが、これに限らない。検証部602は、例えば、証明書情報を取得することに失敗する場合があってもよい。検証部602は、具体的には、提供元装置101が証明書情報を用意しておらず、証明書情報を取得することに失敗することがある。
表示制御部603は、認可画面を端末装置102に表示させる。認可画面は、情報処理装置100が管理する、端末装置102に対応するデータを、ウェブアプリに利用させることを認可するか否かを決定する画面である。また、表示制御部603は、認可画面を端末装置102に表示させる際に、取得した証明書情報を端末装置102に表示させる。表示制御部603は、例えば、認可画面内に証明書情報を含めて、認可画面を端末装置102に表示させる。
これにより、表示制御部603は、端末装置102に対応するデータをウェブアプリに利用させることを認可するか否かを、ユーザに決定させることができる。また、表示制御部603は、証明書情報をユーザが参照可能にし、ウェブアプリの提供元を正しく判断しやすくすることができる。
表示制御部603は、認可画面を端末装置102に表示させる際に、さらに、第1のウェブアドレス、または、第1のウェブアドレスに基づき生成される第3のウェブアドレスを端末装置102に表示させてもよい。第3のウェブアドレスは、第1のウェブアドレスに基づき生成される、ウェブサイトのトップ画面などのウェブアドレスである。表示制御部603は、例えば、認可画面内に、第1のウェブアドレスのハイパーリンク、または、第3のウェブアドレスのハイパーリンクを含めて、認可画面を端末装置102に表示させる。
これにより、表示制御部603は、端末装置102に対応するデータをウェブアプリに利用させることを認可するか否かを、ユーザに決定させることができる。また、表示制御部603は、第1のウェブアドレス、または、第3のウェブアドレスをユーザが参照可能にし、ウェブアプリの提供元を正しく判断しやすくすることができる。
表示制御部603は、取得した証明書情報が正当である場合には、認可画面を端末装置102に表示させ、取得した証明書情報が正当ではない場合には、認可画面を端末装置102に表示させなくてもよい。
表示制御部603は、例えば、取得した証明書情報が正当ではない場合には、認可画面を端末装置102に表示させない。そして、表示制御部603は、端末装置102に対応するデータを、ウェブアプリに利用させることを却下することの通知を、端末装置102に送信する。また、表示制御部603は、端末装置102に対応するデータを、ウェブアプリに利用させることを却下することの通知を、提供元装置101に送信する。
これにより、表示制御部603は、証明書情報が正当ではなく、端末装置102に対応するデータをウェブアプリに利用させることが好ましくない場合には、端末装置102に対応するデータをウェブアプリに利用させず、セキュリティを確保することができる。
表示制御部603は、認可画面を端末装置102に表示させる際に、取得した証明書情報が正当であるか否かを検証した結果を端末装置102に表示させてもよい。表示制御部603は、例えば、認可画面内に、取得した証明書情報が正当であるか否かを検証した結果を含めて、認可画面を端末装置102に表示させる。
これにより、表示制御部603は、証明書情報が正当であるか否かを検証した結果をユーザが参照可能にすることができる。このため、表示制御部603は、ウェブアプリの提供元を信頼するか否かを考慮して、端末装置102に対応するデータをウェブアプリに利用させることを認可するか否かを、ユーザに決定させることができる。
認可部604は、認可画面において、端末装置102に対応するデータをウェブアプリに利用させることが認可された場合、第1のウェブアドレスに基づいて、送信先に認可コードを送信する。
認可部604は、例えば、ユーザの操作入力に基づく認可画面における認可結果を、端末装置102から受信する。そして、認可部604は、認可結果に基づいて、端末装置102に対応するデータをウェブアプリに利用させることが認可された場合、第1のウェブアドレスに基づいて、送信先に認可コードを送信する。また、認可部604は、認可結果に基づいて、端末装置102に対応するデータをウェブアプリに利用させることが認可されなかった場合、端末装置102に対応するデータを、ウェブアプリに利用させることを却下することの通知を、提供元装置101に送信する。
これにより、認可部604は、端末装置102に対応するデータをウェブアプリに利用させることが認可された場合には、認可コードを送信し、認可コードを提供元装置101に付与することができる。また、認可部604は、端末装置102に対応するデータをウェブアプリに利用させることが認可されなかった場合には、認可コードを提供元装置101に付与しないようにすることができる。
認可部604は、認可コードを受信した場合、端末装置102に対応するデータをウェブアプリから利用可能に制御する。認可部604は、例えば、認可コードを受信した場合、トークンを提供元装置101に配布し、端末装置102に対応するデータをウェブアプリから利用可能に制御する。
これにより、認可部604は、端末装置102に対応するデータをウェブアプリに利用させることが認可された場合には、端末装置102に対応するデータをウェブアプリに利用させることができる。
出力部605は、いずれかの機能部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部605は、いずれかの機能部の処理結果を、情報処理装置100の利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
(情報処理装置100の具体的な機能的構成例)
次に、図7を用いて、情報処理装置100の具体的な機能的構成例について説明する。
図7は、情報処理装置100の具体的な機能的構成例を示すブロック図である。情報処理装置100は、OAuth処理部701と、認可画面生成部702と、認可画面送信部703と、認可結果取得部704と、クライアント情報登録部705と、証明書情報取得部706と、証明書情報検証部707とを含む。取得部601~出力部605は、具体的には、例えば、OAuth処理部701~証明書情報検証部707により実現される。
OAuth処理部701は、OAuth2.0と呼ばれる方式に従って処理を行う。OAuth処理部701は、ユーザのデータをウェブアプリに利用させることを認可することを示す認可結果が取得された場合に、認可コードを提供元装置101に配布する。OAuth処理部701は、提供元装置101から認可コードを受信すると、アクセストークンを提供元装置101に配布し、ユーザのデータをウェブアプリに利用可能に制御する。
認可画面生成部702は、認可画面を生成する。認可画面は、例えば、証明書情報を含む。認可画面は、例えば、証明書情報が正当であるか否かを検証した結果を含む。認可画面送信部703は、認可画面生成部702が生成した認可画面を、端末装置102に表示させる。認可結果取得部704は、認可画面における認可結果を取得する。認可結果取得部704は、認可結果を、OAuth処理部701に出力する。
クライアント情報登録部705は、クライアントURLを受信し、クライアントIDを付与し、クライアント登録情報テーブル400に記憶する。証明書情報取得部706は、クライアントURLにアクセスし、証明書情報を取得し、証明書情報検証部707に出力する。証明書情報検証部707は、証明書情報が正当であるか否かを検証する。証明書情報圏勝負707は、証明書情報と、証明書情報が正当であるか否かを検証した結果とを、認可画面生成部702に出力する。
(情報処理システム200の第1の動作例)
次に、図8~図18を用いて、情報処理システム200の第1の動作例について説明する。まず、図8を用いて、ユーザのデータをウェブアプリに利用させることが認可される一例について説明する。
図8は、ユーザのデータをウェブアプリに利用させることが認可される一例を示す説明図である。図8において、提供元装置101は、予め、矢印800に示すように、認可コードの送信先を示すクライアントURLと、パスワードとを対応付けて、情報処理装置100に送信する。情報処理装置100は、クライアントURLと、パスワードとを対応付けて登録する。
(8-1)端末装置102は、矢印801に示すように、ユーザの操作入力に基づき、ウェブブラウザを用いてウェブアプリにアクセスする。
(8-2)端末装置102は、矢印802に示すように、ユーザの操作入力に基づき、ユーザのデータを利用するウェブアプリの機能を利用することをウェブアプリに要求する。ウェブアプリは、httpリダイレクトの機能を用いて、情報処理装置100のウェブAPIにアクセスするために、端末装置102にクライアントURLを送信する。端末装置102は、ウェブアプリからクライアントURLを受信する。
(8-3)端末装置102は、矢印803に示すように、受信したクライアントURLを情報処理装置100に送信する。情報処理装置100は、クライアントURLを受信する。
(8-4)情報処理装置100は、登録済みのクライアントURLと、受信したクライアントURLとが一致するか否かを判定する。情報処理装置100は、一致すると判定した場合、矢印804に示すように、TLSにより登録済みのクライアントURLにアクセスする。
(8-5)提供元装置101は、矢印805に示すように、情報処理装置100のアクセスに応じて、EV証明書情報を情報処理装置100に送信する。EV証明書情報は、提供元装置が複数のウェブアプリを提供する場合、ウェブアプリごとに異なってもよい。EV証明書情報は、提供元装置が複数のウェブアプリを提供する場合、複数のウェブアプリに共通であってもよい。情報処理装置100は、EV証明書情報を受信する。
(8-6)情報処理装置100は、符号806に示すように、受信したEV証明書情報が正当であるか否かを検証する。
(8-7)情報処理装置100は、EV証明書情報が正当であると判定した場合、矢印807に示すように、端末装置102のウェブブラウザに、EV証明書情報とクライアントURLとを含む認可画面を表示させる。認可画面の一例については、例えば、図9を用いて後述する。端末装置102は、認可画面を表示する。
(8-8)端末装置102は、矢印808に示すように、ユーザの操作入力に基づき、認可画面において認可結果を取得する。認可結果は、ユーザのデータをウェブアプリに利用させることをユーザが認可するか否かを示す情報である。図8の例では、端末装置102は、ユーザのデータをウェブアプリに利用させることをユーザが認可することを示す認可結果を取得する。
(8-9)端末装置102は、矢印809に示すように、認可結果を情報処理装置100に送信する。情報処理装置100は、認可結果を受信する。
(8-10)情報処理装置100は、受信した認可結果が、ユーザが認可することを示す場合、矢印810に示すように、認可コードを登録済みのウェブアドレスを宛先として、端末装置102に送信する。端末装置102は、認可コードを受信する。
(8-11)端末装置102は、矢印811に示すように、認可コードを登録済みのウェブアドレスを宛先として送信する。提供元装置101は、登録済みのウェブアドレスを宛先として送信された認可コードを受信する。次に、図9を用いて、端末装置102に表示される認可画面900の一例について説明する。
図9は、認可画面900の一例を示す説明図である。図9において、認可画面900は、クライアントURLの表示領域910と、EV証明書情報の表示領域920と、ユーザのデータをウェブアプリが利用する内容の表示領域930と、認可結果を選択するボタン940,941とを含む。
表示領域910には、例えば、クライアントURL「https://www.○○○.com/ch」が含まれる。クライアントURLは、ハイパーリンクであり、クリックされると、端末装置102が、ウェブブラウザ上で認可画面900を更新せずに、クライアントURLにアクセスするように制御してもよい。表示領域920には、図10に後述するEV証明書情報1000が含まれる。次に、図10を用いて、EV証明書情報1000について説明する。
図10は、EV証明書情報1000を示す説明図である。図10において、EV証明書情報1000は、例えば、コモンネームと、有効期限と、ステータスと、組織名とを含む。コモンネームは、例えば、クライアントURLである。ステータスは、現在が有効期限内であるか否かに応じて、EV証明書情報1000が有効であるか否かを示す。組織名は、クライアントURLを所有する所有者を示す名称である。ユーザは、例えば、符号1010の内容を参照すれば、所有者を示す名称を把握することができ、ウェブアプリの提供元を正しく判断しやすくなる。
また、EV証明書情報は、例えば、事業所所在地に関して、国と、都道府県と、市区町村と、番地および町名と、郵便番号と、電話番号とを含む。ユーザは、例えば、符号1020の内容を参照すれば、所有者の所在地を把握することができ、ウェブアプリの提供元を正しく判断しやすくなる。また、EV証明書情報は、例えば、法人設立管轄地に関して、国と、登録番号とを含む。ユーザは、例えば、符号1030の内容を参照すれば、所有者が法的に実在するか否かを把握することができ、ウェブアプリの提供元を正しく判断しやすくなる。
次に、図11を用いて、クライアントURLがクリックされ、端末装置102が、ウェブブラウザ上で認可画面900を更新せずに、クライアントURLにアクセスする場合に、ウェブブラウザ上に表示される表示画面1100について説明する。
図11は、端末装置102に表示される表示画面1100を示す説明図である。図11において、表示画面1100は、認可画面900を更新しないように、ウェブブラウザ上で認可画面900を表示するタブとは異なる他のタブを用いて表示される。また、表示画面1100は、認可画面900を表示するウェブブラウザとは異なる他のウェブブラウザ上で表示されてもよい。
表示画面1100は、アドレスバー1110を含む。アドレスバー1110は、クライアントURLが表示される。アドレスバー1110は、端末装置102がクライアントURLにアクセスした際に取得したEV証明書情報があれば、鍵マークを含む。表示画面1100は、鍵マークがクリックされると、EV証明書情報をユーザに提示する。また、表示画面1100は、クライアントURLを所有する所有者が作成したウェブサイトの表示領域1120を含む。ウェブサイトは、例えば、所有者の紹介文などを含むことが好ましい。次に、図12を用いて、認可コードを用いて、ユーザのデータをウェブアプリが利用する一例について説明する。
図12は、ユーザのデータをウェブアプリが利用する一例を示す説明図である。図12において、(12-1)提供元装置101は、矢印1201に示すように、クライアントURLと、パスワードと対応付けて、受信した認可コードを情報処理装置100に送信する。情報処理装置100は、クライアントURLと、パスワードと対応付けて、認可コードを受信する。
(12-2)情報処理装置100は、登録済みのクライアントURLとパスワードとのペアと、受信したクライアントURLとパスワードとのペアとが一致するか否かを判定し、認可コードが有効であるか否かを判定する。情報処理装置100は、一致すると判定し、かつ、有効であると判定した場合、矢印1202に示すように、アクセストークンを提供元装置101に配布する。提供元装置101は、アクセストークンを受信する。提供元装置101は、アクセストークンを用いて、ユーザのデータをウェブアプリで利用する。
これにより、情報処理装置100は、ユーザが、ユーザのデータをウェブアプリに利用させることを認可するか否かを決定する際、EV証明書情報を参照可能にすることができ、ウェブアプリの提供元を正しく判断しやすくすることができる。このため、情報処理装置100は、ユーザのデータが漏洩することを防止し、セキュリティを確保することができる。また、情報処理装置100は、端末装置102でクライアントURLにアクセスせずとも、ユーザがEV証明書情報を参照可能にすることができ、端末装置102のセキュリティを確保することができる。
また、情報処理装置100は、ユーザが、ユーザのデータをウェブアプリに利用させることを認可した場合、提供元装置101が認可コードを取得可能にし、認可コードに基づいてアクセストークンを配布可能にすることができる。そして、情報処理装置100は、提供元装置101が、アクセストークンを用いて、ユーザのデータをウェブアプリで利用可能にすることができる。
ここでは、情報処理装置100が、上記(8-1)の動作の前に、予め、クライアントURLと、パスワードとを対応付けて登録する場合について説明したが、これに限らない。例えば、情報処理装置100が、上記(8-1)の動作の前に、予め、クライアントURLを登録せず、クライアントIDと、パスワードとを対応付けて登録する場合があってもよい。この場合、情報処理装置100は、上記(8-3)の動作に代わり、端末装置102を介して、ウェブアプリから、クライアントIDと、クライアントURLとを対応付けて受信する。そして、情報処理装置100は、登録済みのクライアントIDと、受信したクライアントIDとが一致すると判定した場合、TLSにより、受信したクライアントURLにアクセスし、EV証明書情報を受信する。
ここでは、認可画面900が、クライアントURLの表示領域910を含む場合について説明したが、これに限らない。例えば、認可画面900が、クライアントURLの表示領域910を含まない場合があってもよい。
次に、図13を用いて、上記(8-4)で、情報処理装置100が、登録済みのクライアントURLと、受信したクライアントURLとが一致しないと判定した場合について説明する。
図13は、情報処理装置100が、登録済みのクライアントURLと、受信したクライアントURLとが一致しないと判定した場合を示す説明図である。図13において、上記(8-1)~上記(8-4)と同様の動作が行われ、情報処理装置100は、登録済みのクライアントURLと、受信したクライアントURLとが一致するか否かを判定する。
(13-1)情報処理装置100は、登録済みのクライアントURLと、受信したクライアントURLとが一致しないと判定した場合、矢印1301に示すように、未登録通知を端末装置102に送信する。未登録通知は、受信したクライアントURLが登録されていないことを示す。端末装置102は、未登録通知を受信し、ウェブブラウザ上で、ユーザのデータをウェブアプリに利用させることができないことを表示する。
(13-2)端末装置102は、矢印1302に示すように、未登録通知を提供元装置101に送信する。提供元装置101は、未登録通知を受信する。これにより、情報処理装置100は、登録済みのクライアントURLと、受信したクライアントURLとが一致しないと判定した場合、ユーザのデータをウェブアプリに利用させず、セキュリティを確保することができる。
ここでは、情報処理装置100が、登録済みのクライアントURLと、受信したクライアントURLとが一致しなければ、認可画面を端末装置102に表示させず、ユーザのデータをウェブアプリに利用させない場合について説明したが、これに限らない。例えば、情報処理装置100が、登録済みのクライアントURLと、受信したクライアントURLとが一致しないことを端末装置102に通知し、ユーザが把握可能にした上で、認可画面を端末装置102に表示させる場合があってもよい。これにより、情報処理装置100は、ユーザの意図に沿って、ユーザのデータをウェブアプリに利用可能に制御することができる。
次に、図14を用いて、上記(8-6)で、情報処理装置100が、EV証明書情報が正当ではないと判定した場合について説明する。
図14は、情報処理装置100が、EV証明書情報が正当ではないと判定した場合を示す説明図である。図14において、上記(8-1)~上記(8-6)と同様の動作が行われ、情報処理装置100は、EV証明書情報が正当であるか否かを判定する。
(14-1)情報処理装置100は、EV証明書情報が正当ではないと判定した場合、矢印1401に示すように、端末装置102のウェブブラウザに、失敗通知とクライアントURLとを含む認可画面を表示させる。失敗通知は、正当なEV証明書情報が存在しないことを示す。
(14-2)端末装置102は、矢印1402に示すように、ユーザの操作入力に基づき、認可画面において認可結果を取得する。ここで、ユーザは、正当なEV証明書情報が存在しないことを把握した上で、ユーザのデータをウェブアプリに利用させることを認可するか否かを決定し、操作入力を行う。
(14-3)端末装置102は、矢印1403に示すように、認可結果を情報処理装置100に送信する。情報処理装置100は、認可結果を受信する。
(14-4)情報処理装置100は、受信した認可結果が、ユーザが認可することを示す場合、矢印1404に示すように、認可コードを登録済みのウェブアドレスを宛先として、端末装置102に送信する。端末装置102は、認可コードを受信する。
(14-5)端末装置102は、矢印1405に示すように、認可コードを登録済みのウェブアドレスを宛先として送信する。提供元装置101は、登録済みのウェブアドレスを宛先として送信された認可コードを受信する。これにより、情報処理装置100は、正当なEV証明書情報が存在しないことをユーザが把握した上で、ユーザのデータをウェブアプリに利用させることを認可するか否かを決定可能にすることができる。
ここでは、情報処理装置100が、EV証明書情報が正当ではないと判定した場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアントURLから、EV証明書情報を取得失敗した場合にも、図14と同様の動作を行い、失敗通知を含む認可画面を端末装置102に表示させる場合があってもよい。
ここでは、情報処理装置100が、EV証明書情報が正当ではなくても、認可画面を端末装置102に表示させる場合について説明したが、これに限らない。例えば、情報処理装置100が、EV証明書情報が正当でなければ、ユーザの意図に関わらず、ユーザのデータをウェブアプリに利用させることを却下する場合があってもよい。これにより、情報処理装置100は、ユーザのデータが漏洩することを防止し、セキュリティを確保することができる。
次に、図15を用いて、上記(8-8)において、端末装置102が、ユーザのデータをウェブアプリに利用させることをユーザが却下したことを示す認可結果を取得した場合について説明する。
図15は、端末装置102が、ユーザのデータをウェブアプリに利用させることをユーザが却下したことを示す認可結果を取得した場合を示す説明図である。図15において、上記(8-1)~上記(8-7)と同様の動作が行われ、端末装置102は、認可画面を表示する。
(15-1)端末装置102は、矢印1501に示すように、ユーザの操作入力に基づき、ユーザのデータをウェブアプリに利用させることをユーザが却下したことを示す認可結果を取得する。
(15-2)端末装置102は、矢印1502に示すように、認可結果を情報処理装置100に送信する。情報処理装置100は、認可結果を受信する。
(15-3)情報処理装置100は、受信した認可結果が、ユーザが却下することを示す場合、矢印1503に示すように、却下通知を登録済みのウェブアドレスを宛先として、端末装置102に送信する。端末装置102は、却下通知を受信する。
(15-4)端末装置102は、矢印1504に示すように、却下通知を登録済みのウェブアドレスを宛先として送信する。提供元装置101は、却下通知を受信する。これにより、情報処理装置100は、ユーザが却下した場合、ユーザのデータをウェブアプリに利用させず、セキュリティを確保することができる。
次に、図16を用いて、提供元装置101が、情報処理装置100に、提供元装置101とは異なる装置1620に対応するURLを、クライアントURLとして情報処理装置100に登録する場合について説明する。
図16は、提供元装置101が、装置1620に対応するURLを、クライアントURLとして情報処理装置100に登録する場合を示す説明図である。図16の例では、提供元装置101は、悪意のある攻撃者が使用する装置である。装置1620は、有名企業などの悪意のない第3者が使用する装置である。
図16において、提供元装置101は、予め、矢印1600に示すように、認可コードの送信先を示すクライアントURLと、パスワードとを対応付けて、情報処理装置100に送信する。ここで、クライアントURLは、装置1620に対応するURLである。情報処理装置100は、クライアントURLと、パスワードとを対応付けて登録する。
(16-1)端末装置102は、矢印1601に示すように、ユーザの操作入力に基づき、ウェブブラウザを用いてウェブアプリにアクセスする。
(16-2)端末装置102は、矢印1602に示すように、ユーザの操作入力に基づき、ユーザのデータを利用するウェブアプリの機能を利用することをウェブアプリに要求し、ウェブアプリからクライアントURLを受信する。
(16-3)端末装置102は、矢印1603に示すように、受信したクライアントURLを情報処理装置100に送信する。情報処理装置100は、クライアントURLを受信する。
(16-4)情報処理装置100は、登録済みのクライアントURLと、受信したクライアントURLとが一致するか否かを判定する。情報処理装置100は、一致すると判定した場合、矢印1604に示すように、TLSにより登録済みのクライアントURLにアクセスする。
(16-5)装置1620は、矢印1605に示すように、情報処理装置100のアクセスに応じて、EV証明書情報を情報処理装置100に送信する。情報処理装置100は、EV証明書情報を受信する。
(16-6)情報処理装置100は、符号1606に示すように、受信したEV証明書情報が正当であるか否かを検証する。
(16-7)情報処理装置100は、EV証明書情報が正当であると判定した場合、矢印1607に示すように、端末装置102のウェブブラウザに、EV証明書情報とクライアントURLとを含む認可画面を表示させる。
(16-8)端末装置102は、矢印1608に示すように、ユーザの操作入力に基づき、認可画面において認可結果を取得する。認可結果は、ユーザのデータをウェブアプリに利用させることをユーザが認可するか否かを示す情報である。図16の例では、端末装置102は、ユーザのデータをウェブアプリに利用させることをユーザが認可することを示す認可結果を取得する。
(16-9)端末装置102は、矢印1609に示すように、認可結果を情報処理装置100に送信する。情報処理装置100は、認可結果を受信する。
(16-10)情報処理装置100は、受信した認可結果が、ユーザが認可することを示す場合、矢印1610に示すように、認可コードを登録済みのウェブアドレスを宛先として、端末装置102に送信する。端末装置102は、認可コードを受信する。
(16-11)端末装置102は、矢印1611に示すように、認可コードを登録済みのウェブアドレスを宛先として送信する。このため、認可コードは、装置1620に送信される。一方で、提供元装置101は、登録済みのウェブアドレスを宛先として送信された認可コードを受信することができず、ユーザのデータを利用することができない。
これにより、情報処理装置100は、提供元装置101が、提供元装置101とは異なる装置1620に対応するURLを、クライアントURLとして情報処理装置100に登録した場合には、提供元装置101が認可コードを取得しないようにすることができる。このため、情報処理装置100は、セキュリティを確保することができる。
次に、図17を用いて、図11の説明において、端末装置102が、ウェブブラウザ上で認可画面900を更新せずに、表示画面1100を表示する理由について説明する。
図17は、端末装置102が、ウェブブラウザ上で認可画面900を更新せずに、表示画面1100を表示する理由を示す説明図である。図17の例では、まず、端末装置102が、ウェブブラウザ上で、認可画面900を更新してしまう場合に発生しうる問題について説明する。
図17において、端末装置102は、矢印1701に示すように、ユーザの操作入力に基づき、クライアントURLがクリックされたことに応じて、矢印1702に示すように、提供元装置101にアクセスする。提供元装置101は、端末装置102のアクセスに応じて、矢印1703に示すように、EV証明書情報を含む、クライアントURLが示すウェブサイトの画面を、端末装置102に送信する。
この際、端末装置102は、クライアントURLが示すウェブサイトの画面で、認可画面900を更新し、ユーザは、矢印1704に示すように、クライアントURLが示すウェブサイトの画面を閲覧し、EV証明書情報を確認する。しかしながら、端末装置102は、クライアントURLが示すウェブサイトの画面で、認可画面900を更新したため、認可結果を取得することができなくなるという問題が発生しうる。
これに対し、図11の例では、端末装置102は、ウェブブラウザ上で認可画面900を更新せずに、クライアントURLにアクセスする場合に、ウェブブラウザ上に表示画面1100を表示する。このため、端末装置102は、ウェブブラウザ上に表示画面1100を表示しても、認可結果を取得することができる。
次に、図18を用いて、図8の説明において、情報処理装置100が、認可画面を端末装置102に表示させた理由について説明する。
図18は、情報処理装置100が、認可画面を端末装置102に表示させた理由を示す説明図である。図18の例では、まず、情報処理装置100ではなく提供元装置101が、認可画面を端末装置102に表示させる場合に発生しうる問題について説明する。
図18において、提供元装置101は、矢印1801に示すように、端末装置102のウェブブラウザに、EV証明書情報を含む認可画面を表示させる。端末装置102は、認可画面を表示する。端末装置102は、矢印1802に示すように、ユーザの操作入力に基づき、認可画面において認可結果を取得する。
ここで、提供元に悪意があれば、提供元装置101が表示させた認可画面では、ユーザの操作入力を無視し、認可結果を、ユーザのデータをウェブアプリに利用させることをユーザが認可することを示すように改ざん可能である。図18の例では、端末装置102は、ユーザが却下する操作入力を行ったが、ユーザのデータをウェブアプリに利用させることをユーザが認可することを示す認可結果を取得してしまう。
端末装置102は、矢印1803に示すように、認可結果を情報処理装置100に送信する。情報処理装置100は、認可結果を受信する。情報処理装置100は、受信した認可結果が、ユーザが認可することを示すため、矢印1804に示すように、認可コードを登録済みのウェブアドレスを宛先として、端末装置102に送信してしまう。
端末装置102は、認可コードを受信する。端末装置102は、矢印1805に示すように、認可コードを登録済みのウェブアドレスを宛先として送信する。提供元装置101は、登録済みのウェブアドレスを宛先として送信された認可コードを受信する。
このように、提供元装置101が、認可画面を端末装置102に表示させる場合、ユーザの操作入力を無視し、認可結果を取得してしまうことがあるという問題が発生しうる。これに対し、図8の例では、情報処理装置100が、認可画面を端末装置102に表示させる。このため、端末装置102は、提供元に悪意があっても、ユーザの意図に沿った認可結果を取得することができる。
(第1の動作例における登録処理手順)
次に、図19を用いて、情報処理装置100が実行する、第1の動作例における登録処理手順の一例について説明する。登録処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図19は、第1の動作例における登録処理手順の一例を示すフローチャートである。図19において、クライアント情報登録部705は、認可コード受取用URLを、提供元装置101から受信し、提供元装置101にクライアントIDを付与し、認可コード受取用URLを、証明書情報取得部706に出力する(ステップS1901)。
証明書情報取得部706は、認可コード受取用URLにアクセスし、TLSサーバ証明書を取得し、証明書情報検証部707に出力し、証明書情報検証部707は、TLSサーバ証明書を検証する(ステップS1902)。証明書情報検証部707は、検証の結果、TLSサーバ証明書が正当であるか否かを判定する(ステップS1903)。
ここで、正当である場合(ステップS1903:Yes)、証明書情報検証部707は、認可コード受取用URL、TLSサーバ証明書、および、検証した結果を、クライアント情報登録部705に出力する。そして、クライアント情報登録部705は、ステップS1904の処理に移行する。一方で、正当ではない場合(ステップS1903:No)、証明書情報検証部707は、検証した結果を、クライアント情報登録部705に出力し、クライアント情報登録部705は、ステップS1905の処理に移行する。
ステップS1904では、クライアント情報登録部705は、付与したクライアントIDと、受信した認可コード受取用URLと、取得したTLSサーバ証明書とを対応付けて、クライアント登録情報テーブル400に登録する(ステップS1904)。そして、クライアント情報登録部705は、ステップS1905の処理に移行する。
ステップS1905では、クライアント情報登録部705は、認可コード受取用URLを、クライアント登録情報テーブル400に登録したか否かを示す登録結果を、提供元装置101に送信する(ステップS1905)。情報処理装置100は、登録処理を終了する。これにより、情報処理装置100は、認可コード受取用URLを登録することができ、TLSサーバ証明書を取得して検証することができる。
(第1の動作例における表示処理手順)
次に、図20を用いて、情報処理装置100が実行する、第1の動作例における表示処理手順の一例について説明する。表示処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図20は、第1の動作例における表示処理手順の一例を示すフローチャートである。図20において、認可結果取得部704は、認可結果を取得し、クライアントIDと対応付けて認可画面生成部702に出力する(ステップS2001)。
認可画面生成部702は、クライアントIDに対応付けられたTLSサーバ証明書を取得する(ステップS2002)。認可画面生成部702は、TLSサーバ証明書を記述した認可画面を生成し、認可画面送信部703に出力する(ステップS2003)。認可画面送信部703は、認可画面を、端末装置102に送信する(ステップS2004)。情報処理装置100は、表示処理を終了する。これにより、情報処理装置100は、ユーザのデータをウェブアプリに利用させることを認可するか否かをユーザに決定させることができる。
(情報処理システム200の第2の動作例)
次に、図21を用いて、情報処理システム200の第2の動作例について説明する。
図21は、情報処理システム200の第2の動作例を示す説明図である。図21において、提供元装置101は、予め、矢印2100に示すように、認可コードの送信先を示すクライアントURLと、パスワードとを対応付けて、情報処理装置100に送信する。情報処理装置100は、クライアントURLと、パスワードとを対応付けて登録する。
(21-1)情報処理装置100は、矢印2101に示すように、TLSにより登録済みのクライアントURLにアクセスする。
(21-2)提供元装置101は、矢印2102に示すように、情報処理装置100のアクセスに応じて、EV証明書情報を情報処理装置100に送信する。情報処理装置100は、EV証明書情報を受信する。
(21-3)情報処理装置100は、符号2103に示すように、受信したEV証明書情報が正当であるか否かを検証する。情報処理装置100は、EV証明書情報が正当であると判定した場合、EV証明書情報を記憶しておく。
(21-4)端末装置102は、矢印2104に示すように、ユーザの操作入力に基づき、ウェブブラウザを用いてウェブアプリにアクセスする。
(21-5)端末装置102は、矢印2105に示すように、ユーザの操作入力に基づき、ユーザのデータを利用するウェブアプリの機能を利用することをウェブアプリに要求し、ウェブアプリからクライアントURLを受信する。
(21-6)端末装置102は、矢印2106に示すように、受信したクライアントURLを情報処理装置100に送信する。情報処理装置100は、クライアントURLを受信する。
(21-7)情報処理装置100は、登録済みのクライアントURLと、受信したクライアントURLとが一致するか否かを判定する。情報処理装置100は、一致すると判定した場合、矢印2107に示すように、端末装置102のウェブブラウザに、EV証明書情報とクライアントURLとを含む認可画面を表示させる。端末装置102は、認可画面を表示する。
(21-8)端末装置102は、矢印2108に示すように、ユーザの操作入力に基づき、認可画面において認可結果を取得する。認可結果は、ユーザのデータをウェブアプリに利用させることをユーザが認可するか否かを示す情報である。図21の例では、端末装置102は、ユーザのデータをウェブアプリに利用させることをユーザが認可することを示す認可結果を取得する。
(21-9)端末装置102は、矢印2109に示すように、認可結果を情報処理装置100に送信する。情報処理装置100は、認可結果を受信する。
(21-10)情報処理装置100は、受信した認可結果が、ユーザが認可することを示す場合、矢印2110に示すように、認可コードを登録済みのウェブアドレスを宛先として、端末装置102に送信する。端末装置102は、認可コードを受信する。
(21-11)端末装置102は、矢印2111に示すように、認可コードを登録済みのウェブアドレスを宛先として送信する。提供元装置101は、登録済みのウェブアドレスを宛先として送信された認可コードを受信する。
これにより、情報処理装置100は、ユーザが、ユーザのデータをウェブアプリに利用させることを認可するか否かを決定する際、EV証明書情報を参照可能にすることができ、ウェブアプリの提供元を正しく判断しやすくすることができる。このため、情報処理装置100は、ユーザのデータが漏洩することを防止し、セキュリティを確保することができる。
また、情報処理装置100は、ユーザが、ユーザのデータをウェブアプリに利用させることを認可した場合、提供元装置101が認可コードを取得可能にし、認可コードに基づいてアクセストークンを配布可能にすることができる。そして、情報処理装置100は、提供元装置101が、アクセストークンを用いて、ユーザのデータをウェブアプリで利用可能にすることができる。また、情報処理装置100は、端末装置102がウェブアプリを利用する際に、情報処理装置100にかかる作業負担の低減化を図り、認可画面を端末装置102に表示させる際にかかる所要時間の低減化を図ることができる。
(第2の動作例における登録処理手順)
次に、図22を用いて、情報処理装置100が実行する、第2の動作例における登録処理手順の一例について説明する。登録処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図22は、第2の動作例における登録処理手順の一例を示すフローチャートである。
図22において、クライアント情報登録部705は、認可コード受取用URLを、提供元装置101から受信し、提供元装置101に、クライアントIDを付与する(ステップS2201)。
クライアント情報登録部705は、付与したクライアントIDと、受信した認可コード受取用URLとを対応付けて、クライアント登録情報テーブル400に登録する(ステップS2202)。クライアント情報登録部705は、登録したことを示す登録通知を、提供元装置101に送信する(ステップS2203)。そして、情報処理装置100は、登録処理を終了する。これにより、情報処理装置100は、認可コード受取用URLを登録することができ、TLSサーバ証明書を取得可能にすることができる。
(第2の動作例における表示処理手順)
次に、図23を用いて、情報処理装置100が実行する、第2の動作例における表示処理手順の一例について説明する。表示処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図23は、第2の動作例における表示処理手順の一例を示すフローチャートである。図23において、OAuth処理部701は、クライアントIDを取得し、証明書情報取得部706に出力する(ステップS2301)。
証明書情報取得部706は、クライアントIDに対応付けられた認可コード受取用URLを取得する(ステップS2302)。証明書情報取得部706は、認可コード受取用URLにアクセスし、TLSサーバ証明書を取得し、証明書情報検証部707に出力し、証明書情報検証部707は、TLSサーバ証明書を検証する(ステップS2303)。
証明書情報検証部707は、検証の結果、TLSサーバ証明書が正当であるか否かを判定する(ステップS2304)。ここで、正当である場合(ステップS2304:Yes)、証明書情報検証部707は、TLSサーバ証明書を、認可画面生成部702に出力し、認可画面生成部702は、ステップS2305の処理に移行する。一方で、正当ではない場合(ステップS2304:No)、証明書情報検証部707は、検証の結果を、OAuth処理部701に出力し、OAuth処理部701は、ステップS2307の処理に移行する。
ステップS2305では、認可画面生成部702は、TLSサーバ証明書を記述した認可画面を生成し、認可画面送信部703に出力する(ステップS2305)。認可画面送信部703は、認可画面を、端末装置102に送信する(ステップS2306)。そして、情報処理装置100は、表示処理を終了する。
ステップS2307では、OAuth処理部701は、認可失敗を、端末装置102に送信する(ステップS2307)。そして、情報処理装置100は、表示処理を終了する。これにより、情報処理装置100は、ユーザのデータをウェブアプリに利用させることを認可するか否かをユーザに決定させることができる。
以上説明したように、情報処理装置100によれば、提供元装置101から、認可コードの送信先を示す第1のウェブアドレスを受信することができる。情報処理装置100によれば、受信した第1のウェブアドレスに基づいて、第1のウェブアドレスを所有する所有者に関する所有者情報を含む証明書情報を取得することができる。情報処理装置100によれば、端末装置102に対応するデータをウェブアプリに利用させることを認可するか否かを決定する認可画面を端末装置102に表示させる際に、取得した証明書情報を端末装置102に表示させることができる。これにより、情報処理装置100は、ユーザが、ユーザのデータをウェブアプリに利用させることを認可するか否かを決定する際、証明書情報を参照可能にすることができ、ウェブアプリの提供元を正しく判断しやすくすることができる。
情報処理装置100によれば、提供元装置101から、端末装置102を介して、第2のウェブアドレスを受信することができる。情報処理装置100によれば、受信した第1のウェブアドレスと、受信した第2のウェブアドレスとが一致すれば、受信した第1のウェブアドレスに基づいて、証明書情報を取得することができる。これにより、情報処理装置100は、登録済みの第1のウェブアドレスと、端末装置102がウェブアプリを利用中に端末装置102を介して受信した第2のウェブアドレスとに基づき、提供元装置101の信頼性を判断することができる。そして、情報処理装置100は、セキュリティを確保することができる。また、情報処理装置100は、端末装置102がウェブアプリを利用中に、証明書情報を取得することができ、比較的新しい証明書情報をユーザが参照可能にすることができる。
情報処理装置100によれば、提供元装置101から、提供元の第1の識別情報と対応付けて第1のウェブアドレスを受信することができる。情報処理装置100によれば、提供元装置101から、端末装置102を介して、第2の識別情報を受信することができる。情報処理装置100によれば、受信した第1の識別情報と、受信した第2の識別情報とが一致すれば、受信した第1の識別情報と対応付けられた第1のウェブアドレスに基づいて、証明書情報を取得することができる。これにより、情報処理装置100は、登録済みの第1の識別情報と、端末装置102がウェブアプリを利用中に端末装置102を介して受信した第2の識別情報とに基づき、提供元装置101の信頼性を判断することができ、セキュリティを確保することができる。
情報処理装置100によれば、第1のウェブアドレスを受信したことに応じて、受信した第1のウェブアドレスに基づいて、証明書情報を取得することができる。これにより、情報処理装置100は、第1のウェブアドレスを受信したタイミングで、証明書情報を取得することができ、認可画面を端末装置102に表示させる際にかかる所要時間の低減化を図ることができる。
情報処理装置100によれば、認可画面を端末装置102に表示させる際に、さらに、第1のウェブアドレス、または、第1のウェブアドレスに基づき生成される第3のウェブアドレスを端末装置102に表示させることができる。これにより、情報処理装置100は、ユーザが、第1のウェブアドレス、または、第3のウェブアドレスを参照して、提供元の信頼性を判断可能にすることができ、セキュリティの確保を図ることができる。
情報処理装置100によれば、取得した証明書情報が正当であるか否かを検証することができる。情報処理装置100によれば、取得した証明書情報が正当であれば、認可画面を端末装置102に表示させることができる。これにより、情報処理装置100は、証明書情報が正当でなければ、認可画面を端末装置102に表示させず、セキュリティの確保を図ることができる。
情報処理装置100によれば、取得した証明書情報が正当であるか否かを検証することができる。情報処理装置100によれば、認可画面を端末装置102に表示させる際に、取得した証明書情報が正当であるか否かを検証した結果を端末装置102に表示させることができる。これにより、情報処理装置100は、証明書情報が正当ではないことをユーザに参照可能にし、セキュリティの確保を図ることができる。
情報処理装置100によれば、認可画面において、端末装置102に対応するデータをウェブアプリに利用させることが認可された場合、第1のウェブアドレスに基づいて、送信先に認可コードを送信することができる。情報処理装置100によれば、認可コードを受信した場合、端末装置102に対応するデータをウェブアプリから利用可能に制御することができる。これにより、情報処理装置100は、端末装置102に対応するデータをウェブアプリに利用させることができる。
情報処理装置100によれば、所有者が法的に実在し、所有者が物理的に実在し、または、所有者が第1のウェブアドレスを所有することを証明する証明書情報を取得することができる。情報処理装置100によれば、例えば、EV証明書情報を取得することができる。これにより、情報処理装置100は、ユーザが提供元の信頼性を判断しやすくすることができる。
情報処理装置100によれば、第1のウェブアドレスに、httpsの形式を利用することができる。これにより、情報処理装置100は、それぞれ異なる提供元装置101から受信したウェブアドレスが重複しないようにすることができ、セキュリティを向上することができる。
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数のデータを管理する情報処理装置であって、
ウェブアプリケーションを提供する提供元に対応する装置から、前記情報処理装置が管理するいずれかのデータを前記ウェブアプリケーションに利用させることが認可されたことに応じて認可コードが送信される送信先を示すウェブアドレスを受信し、
受信した前記ウェブアドレスに基づいて、前記ウェブアドレスを所有する所有者に関する所有者情報を含む証明書情報を取得し、
前記情報処理装置が管理する端末装置に対応するデータを前記ウェブアプリケーションに利用させることを認可するか否かを決定する認可画面を前記端末装置に表示させる際に、取得した前記証明書情報を前記端末装置に表示させる、
制御部を有することを特徴とする情報処理装置。
(付記2)前記制御部は、
前記装置から、前記端末装置を介して、第2のウェブアドレスを受信し、
受信した前記ウェブアドレスと、受信した前記第2のウェブアドレスとが一致すれば、受信した前記ウェブアドレスに基づいて、前記証明書情報を取得する、ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記制御部は、
前記装置から、前記提供元の識別情報と対応付けて前記ウェブアドレスを受信し、
前記装置から、前記端末装置を介して、第2の識別情報を受信し、
受信した前記識別情報と、受信した前記第2の識別情報とが一致すれば、受信した前記識別情報と対応付けられた前記ウェブアドレスに基づいて、前記証明書情報を取得する、ことを特徴とする付記1に記載の情報処理装置。
(付記4)前記制御部は、
前記ウェブアドレスを受信したことに応じて、受信した前記ウェブアドレスに基づいて、前記証明書情報を取得する、ことを特徴とする付記1に記載の情報処理装置。
(付記5)前記制御部は、
前記認可画面を前記端末装置に表示させる際に、さらに、前記ウェブアドレス、または、前記ウェブアドレスに基づき生成される他のウェブアドレスを前記端末装置に表示させる、ことを特徴とする付記1~4のいずれか一つに記載の情報処理装置。
(付記6)前記制御部は、
取得した前記証明書情報が正当であるか否かを検証し、
取得した前記証明書情報が正当であれば、前記認可画面を前記端末装置に表示させる、ことを特徴とする付記1~5のいずれか一つに記載の情報処理装置。
(付記7)前記制御部は、
取得した前記証明書情報が正当であるか否かを検証し、
前記認可画面を前記端末装置に表示させる際に、取得した前記証明書情報が正当であるか否かを検証した結果を前記端末装置に表示させる、ことを特徴とする付記1~6のいずれか一つに記載の情報処理装置。
(付記8)前記制御部は、
前記認可画面において、前記端末装置に対応するデータを前記ウェブアプリケーションに利用させることが認可された場合、前記ウェブアドレスに基づいて、前記送信先に前記認可コードを送信し、
前記認可コードを受信した場合、前記端末装置に対応するデータを前記ウェブアプリケーションから利用可能に制御する、ことを特徴とする付記1~7のいずれか一つに記載の情報処理装置。
(付記9)前記証明書情報は、前記所有者が法的に実在し、前記所有者が物理的に実在し、または、前記所有者が前記ウェブアドレスを所有することを証明する、ことを特徴とする付記1~8のいずれか一つに記載の情報処理装置。
(付記10)前記証明書情報の種別は、EV(Extended Validation)である、ことを特徴とする付記1~9のいずれか一つに記載の情報処理装置。
(付記11)前記ウェブアドレスの形式は、https(Hypertext Transfer Protocol Secure)である、ことを特徴とする付記1~10のいずれか一つに記載の情報処理装置。
(付記12)複数のデータを管理するコンピュータが、
ウェブアプリケーションを提供する提供元に対応する装置から、前記コンピュータが管理するいずれかのデータを前記ウェブアプリケーションに利用させることが認可されたことに応じて認可コードが送信される送信先を示すウェブアドレスを受信し、
受信した前記ウェブアドレスに基づいて、前記ウェブアドレスを所有する所有者に関する所有者情報を含む証明書情報を取得し、
前記コンピュータが管理する端末装置に対応するデータを前記ウェブアプリケーションに利用させることを認可するか否かを決定する認可画面を前記端末装置に表示させる際に、取得した前記証明書情報を前記端末装置に表示させる、
処理を実行することを特徴とする情報処理方法。
(付記13)複数のデータを管理するコンピュータに、
ウェブアプリケーションを提供する提供元に対応する装置から、前記コンピュータが管理するいずれかのデータを前記ウェブアプリケーションに利用させることが認可されたことに応じて認可コードが送信される送信先を示すウェブアドレスを受信し、
受信した前記ウェブアドレスに基づいて、前記ウェブアドレスを所有する所有者に関する所有者情報を含む証明書情報を取得し、
前記コンピュータが管理する端末装置に対応するデータを前記ウェブアプリケーションに利用させることを認可するか否かを決定する認可画面を前記端末装置に表示させる際に、取得した前記証明書情報を前記端末装置に表示させる、
処理を実行させることを特徴とする情報処理プログラム。