(57)【特許請求の範囲】
【請求項１】
複数のプログラムモジュールによって構成され、コンピュータに、当該プログラムモジュールに対応する機能を実現させる第１のプログラムであって、
前記複数のプログラムモジュールは、
前記コンピュータ上で実行可能な複数の所定のプログラムをそれぞれ用いた所定のサーバへのログインの履歴であって当該コンピュータによってアクセス可能な所定の記憶領域に記憶されているログイン履歴を参照し、当該ログイン履歴に含まれるログインの中からログイン日時が新しいほど優先される傾向で１のログインを特定し、当該特定された１のログインに用いられた第２のプログラムに対して当該所定のサーバへのログインに用いる認証用情報を要求する認証用情報要求モジュールと、
前記第２のプログラムから取得した前記認証用情報を用いて前記所定のサーバに対してログインを要求するログイン要求モジュールと、を含む、
第１のプログラム。
【請求項２】
前記認証用情報要求モジュールは、前記ログイン履歴に含まれるログインの中からログインに用いられたプログラムが前記コンピュータからアンインストールされていないログインのうちログイン日時が最も新しいログインを前記１のログインとして特定する請求項１記載の第１のプログラム。
【請求項３】
前記認証用情報要求モジュールは、前記ログイン履歴に含まれるログインの中からログイン日時が新しい順に当該ログインに用いられたプログラムがアンインストールされているか否かを判断することによって、前記コンピュータからアンインストールされていないログインのうちログイン日時が最も新しいログインを前記１のログインとして特定する請求項２記載の第１のプログラム。
【請求項４】
前記認証用情報要求モジュールは、前記第２のプログラムの発行者が前記第１のプログラムの発行者に対応しない場合には、前記認証用情報の要求を中止する請求項１ないし３いずれか記載の第１のプログラム。
【請求項５】
前記認証用情報要求モジュールは、前記第１のプログラムのデジタル署名と前記第２のプログラムのデジタル署名との比較に基づいて、当該第２のプログラムの発行者が当該第１のプログラムの発行者に対応するか否かを判定する請求項４記載の第１のプログラム。
【請求項６】
請求項１ないし５いずれか記載の第１のプログラムであって、
前記複数のプログラムモジュールは、
前記所定のサーバへのログインに応じて当該所定のサーバから認証用情報を取得し、当該取得した認証用情報を前記第１のプログラムによって管理され前記コンピュータによってアクセス可能な第１のプログラム用記憶領域に記憶させる認証用情報記憶モジュールと、
第３のプログラムからの要求に応答し、前記第１のプログラム用記憶領域に記憶されている前記認証用情報を当該第３のプログラムに対して提供する認証用情報提供モジュールと、を更に含む、
第１のプログラム。
【請求項７】
前記認証用情報提供モジュールは、前記第３のプログラムの発行者が前記第１のプログラムの発行者に対応しない場合には、前記認証用情報の提供を中止する請求項６記載の第１のプログラム。
【請求項８】
前記認証用情報提供モジュールは、前記第１のプログラムのデジタル署名と前記第３のプログラムのデジタル署名との比較に基づいて、当該第３のプログラムの発行者が当該第１のプログラムの発行者に対応するか否かを判定する請求項７記載の第１のプログラム。
【請求項９】
前記複数のプログラムモジュールは、前記所定のサーバへのログインに応じて前記第１のプログラムを用いた前記所定のサーバへのログインを前記ログイン履歴に記録するログイン履歴記録モジュールを更に含む請求項１ないし８いずれか記載の第１のプログラム。
【請求項１０】
前記所定の記憶領域は、所定の暗号化処理がなされていない非セキュアな領域である請求項１ないし９いずれか記載の第１のプログラム。
【請求項１１】
コンピュータが、所定のサーバに対してログインを要求する方法であって、
第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該所定のサーバから当該所定のサーバへのログインに用いる認証用情報を取得し、当該取得した認証用情報を当該第２のプログラムによって管理され前記コンピュータによってアクセス可能な第２のプログラム用記憶領域に記憶させ、
前記第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該第２のプログラムを用いた当該所定のサーバへのログインを、前記コンピュータ上で実行可能な複数の所定のプログラムをそれぞれ用いた当該所定のサーバへのログインの履歴であって当該コンピュータによってアクセス可能な所定の記憶領域に記憶されているログイン履歴に記録し、
第１のプログラムによって、前記ログイン履歴を参照し、当該ログイン履歴に含まれるログインの中からログイン日時が新しいほど優先される傾向で１のログインを特定し、当該特定された１のログインに用いられた前記第２のプログラムに対して前記認証用情報を要求し、
前記第２のプログラムによって、前記第１のプログラムからの要求に応答し、前記第２のプログラム用記憶領域に記憶されている前記認証用情報を当該第１のプログラムに対して提供し、
前記第１のプログラムによって、前記第２のプログラムから取得した前記認証用情報を用いて前記所定のサーバに対してログインを要求する、
方法。
【請求項１２】
所定のサーバに対してログインを要求するログイン要求装置であって、
第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該所定のサーバから当該所定のサーバへのログインに用いる認証用情報を取得し、当該取得した認証用情報を当該第２のプログラムによって管理され前記コンピュータによってアクセス可能な第２のプログラム用記憶領域に記憶させる認証用情報記憶部と、
前記第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該第２のプログラムを用いた当該所定のサーバへのログインを、前記コンピュータ上で実行可能な複数の所定のプログラムをそれぞれ用いた当該所定のサーバへのログインの履歴であって当該コンピュータによってアクセス可能な所定の記憶領域に記憶されているログイン履歴に記録するログイン履歴記録部と、
第１のプログラムによって、前記ログイン履歴を参照し、当該ログイン履歴に含まれるログインの中からログイン日時が新しいほど優先される傾向で１のログインを特定し、当該特定された１のログインに用いられた前記第２のプログラムに対して前記認証用情報を要求する認証用情報要求部と、
前記第２のプログラムによって、前記第１のプログラムからの要求に応答し、前記第２のプログラム用記憶領域に記憶されている前記認証用情報を当該第１のプログラムに対して提供する認証用情報提供部と、
前記第１のプログラムによって、前記第２のプログラムから取得した前記認証用情報を用いて前記所定のサーバに対してログインを要求するログイン要求部と、
を備えるログイン要求装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のサーバに対してログインを要求するログイン要求装置及び方法、並びにこれらに用いられるプログラムに関する。
【背景技術】
【０００２】
従来より、インターネット等のネットワークを介して提供されるサービスをユーザが利用する際には、ユーザＩＤ及びパスワード等の情報をユーザが入力し、入力された情報に基づくログイン認証が行われている。また、ユーザＩＤ及びパスワード等の情報を入力する手間を軽減するために、初回のログイン時にサーバが認証トークンを発行してユーザの端末装置に送信し、２回目以降のログイン時にはこの認証トークンをサーバに送信することによってログイン認証を行う技術が提案されている（例えば、特許文献１参照）。一方、近年、スマートフォン等の端末装置にアプリケーションプログラムをインストールし、このアプリケーションプログラムを用いて上述したサービスを利用する形態が増えている。このようにアプリケーションプログラムを用いてサービスを利用する形態においては、例えば、利用するサービスの運営者が同一である場合等には、複数のアプリケーションプログラムにおいて同一のユーザＩＤ及びパスワード等の情報を用いてログインすることが可能となることがある。従って、上述した認証トークンを複数のアプリケーションプログラム間で共有することによって、ユーザＩＤ及びパスワード等の情報を入力する手間をより一層軽減することができるようになると考えられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９１２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のアプリケーションプログラム間で上述した認証トークンを共有する場合、機密性が高い認証トークンのセキュリティを確保する必要が生じる。このように機密性が高い情報を管理するための特別な仕組み（例えば、暗号化処理のなされたセキュアな記憶領域を用いてユーザＩＤ及びパスワード等の情報を管理する仕組み等）が実装されているオペレーティングシステムも存在するものの、こうした仕組みは全てのオペレーティングシステムにおいて実装されているとは限らない。例えば、暗号化処理のなされていない非セキュアな記憶領域に認証トークンを記憶して複数のアプリケーションプログラム間で共有してしまうと、悪意のある第三者によるアプリケーションプログラムによって認証トークンが不正に利用され、不正なログインを許容してしまう恐れがある。従って、セキュリティを確保しつつ複数のアプリケーションプログラム間で認証トークンを共有するより簡易な仕組みの実現が望まれる。
【０００５】
本発明の実施形態は、ログインに必要な情報をセキュリティを確保しつつ複数のアプリケーションプログラム間で共有するより簡易な仕組みを提供することを目的の一つとする。本発明の他の目的は、本明細書全体を参照することにより明らかとなる。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係る第１のプログラムは、複数のプログラムモジュールによって構成され、コンピュータに、当該プログラムモジュールに対応する機能を実現させる第１のプログラムであって、前記複数のプログラムモジュールは、前記コンピュータ上で実行可能な所定のプログラムを用いた所定のサーバへのログインの履歴であって当該コンピュータによってアクセス可能な所定の記憶領域に記憶されているログイン履歴を参照し、当該ログイン履歴に含まれるログインに用いられた第２のプログラムに対して当該所定のサーバへのログインに用いる認証用情報を要求する認証用情報要求モジュールと、前記第２のプログラムから取得した前記認証用情報を用いて前記所定のサーバに対してログインを要求するログイン要求モジュールと、を含む。
【０００７】
上述した一実施形態に係る第１のプログラムにおいて、前記複数のプログラムモジュールは、前記所定のサーバへのログインに応じて当該所定のサーバから新たに認証用情報を取得し、当該取得した認証用情報を前記第１のプログラムによって管理され前記コンピュータによってアクセス可能な第１のプログラム用記憶領域に記憶させる認証用情報記憶モジュールと、第３のプログラムからの要求に応答し、前記第１のプログラム用記憶領域に記憶されている前記認証用情報を当該第３のプログラムに対して提供する認証用情報提供モジュールと、を更に含む態様としたり、前記複数のプログラムモジュールは、前記所定のサーバへのログインに応じて前記第１のプログラムを用いた前記所定のサーバへのログインを前記ログイン履歴に記録するログイン履歴記録モジュールを更に含む態様とすることもできる。
【０００８】
本発明の一実施形態に係る方法は、コンピュータが、所定のサーバに対してログインを要求する方法であって、第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該所定のサーバから当該所定のサーバへのログインに用いる認証用情報を取得し、当該取得した認証用情報を当該第２のプログラムによって管理され前記コンピュータによってアクセス可能な第２のプログラム用記憶領域に記憶させ、前記第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該第２のプログラムを用いた当該所定のサーバへのログインを、前記コンピュータ上で実行可能な所定のプログラムを用いた当該所定のサーバへのログインの履歴であって当該コンピュータによってアクセス可能な所定の記憶領域に記憶されているログイン履歴に記録し、第１のプログラムによって、前記ログイン履歴を参照し、当該ログイン履歴に含まれるログインに用いられた前記第２のプログラムに対して前記認証用情報を要求し、前記第２のプログラムによって、前記第１のプログラムからの要求に応答し、前記第２のプログラム用記憶領域に記憶されている前記認証用情報を当該第１のプログラムに対して提供し、前記第１のプログラムによって、前記第２のプログラムから取得した前記認証用情報を用いて前記所定のサーバに対してログインを要求する。
【０００９】
本発明の一実施形態に係るログイン要求装置は、所定のサーバに対してログインを要求するログイン要求装置であって、第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該所定のサーバから当該所定のサーバへのログインに用いる認証用情報を取得し、当該取得した認証用情報を当該第２のプログラムによって管理され前記コンピュータによってアクセス可能な第２のプログラム用記憶領域に記憶させる認証用情報記憶部と、前記第２のプログラムによって、当該第２のプログラムを用いた前記所定のサーバへのログインに応じて当該第２のプログラムを用いた当該所定のサーバへのログインを、前記コンピュータ上で実行可能な所定のプログラムを用いた当該所定のサーバへのログインの履歴であって当該コンピュータによってアクセス可能な所定の記憶領域に記憶されているログイン履歴に記録するログイン履歴記録部と、第１のプログラムによって、前記ログイン履歴を参照し、当該ログイン履歴に含まれるログインに用いられた前記第２のプログラムに対して前記認証用情報を要求する認証用情報要求部と、前記第２のプログラムによって、前記第１のプログラムからの要求に応答し、前記第２のプログラム用記憶領域に記憶されている前記認証用情報を当該第１のプログラムに対して提供する認証用情報提供部と、前記第１のプログラムによって、前記第２のプログラムから取得した前記認証用情報を用いて前記所定のサーバに対してログインを要求するログイン要求部と、を備える。
【発明の効果】
【００１０】
本発明の様々な実施形態によって、ログインに必要な情報をセキュリティを確保しつつ複数のアプリケーションプログラム間で共有するより簡易な仕組みを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る端末装置３０を含むシステム１のネットワーク構成を概略的に示すブロック図。
【図２】本発明の一実施形態に係るプログラム５０のモジュール構成を概略的に示すブロック図。
【図３】一実施形態におけるログイン履歴によって管理される情報の具体例を示す図。
【図４】一実施形態におけるログイン処理の一例を示すフロー図。
【発明を実施するための形態】
【００１２】
図１は、本発明の一実施形態に係る端末装置３０を含むシステム１のネットワーク構成を概略的に示すブロック図である。図１に示すように、一実施形態における端末装置３０は、一般的なコンピュータとして構成されるサーバ１０とインターネット等の通信網２０を介して通信可能に接続されており、端末装置３０のユーザは、サーバ１０が提供する様々なインターネットサービスを利用することができる。ここで、サーバ１０が提供するインターネットサービスとしては、例えば、ゲーム等のデジタルコンテンツを提供するサービス、及び、それぞれ端末装置３０を操作する複数のユーザ間の様々なコミュニケーション（チャット（ミニメール）、サークル、アバター、日記、伝言板、挨拶、通話等）を実現するプラットフォームサービス（ＳＮＳサービス）等を例示することができるが、これらに限定されない。また、後述するように、端末装置３０は、サーバ１０に対してログインを要求する本発明の一実施形態に係るログイン要求装置としても機能する。
【００１３】
サーバ１０は、図示のとおり、ＣＰＵ（コンピュータプロセッサ）１１と、メインメモリ１２と、ユーザＩ／Ｆ１３と、通信Ｉ／Ｆ１４と、ストレージ１５と、ディスクドライブ１６とを含み、これらの各構成要素がバス１７を介して互いに電気的に接続されている。ＣＰＵ１１は、ストレージ１５から様々なプログラムをメインメモリ１２にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ１２は、ＣＰＵ１１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭによって構成される。
【００１４】
ユーザＩ／Ｆ１３は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、ＣＰＵ１１の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信Ｉ／Ｆ１４は、ハードウェア、ファームウェア、又はＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介して端末装置３０と通信可能に構成される。
【００１５】
ストレージ１５は、例えば磁気ディスクドライブで構成され、サーバ１０によって提供される各種サービスの進行を制御するための制御用プログラム等の様々なプログラムが記憶される。また、ストレージ１５には、各種サービスにおいて用いられる各種データも記憶され得る。ストレージ１５に記憶され得る各種データは、サーバ１０と通信可能に接続されるサーバ１０とは物理的に別体のデータベースサーバ等に格納されてもよい。ディスクドライブ１６は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ等の各種の記憶メディアに格納されたデータを読み込み、又は、これらの記憶メディアにデータを書き込む。
【００１６】
一実施形態において、サーバ１０は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバとしても機能し、端末装置３０に対してこのウェブサイトを介して各種サービスを提供することができる。端末装置３０は、ウェブページを表示するためのＨＴＭＬデータをサーバ１０から取得し、取得したＨＴＭＬデータを解析して、当該ウェブページを端末装置３０のユーザに提示することができる。例えば、このようなウェブページを介して提供されるゲームは、ブラウザゲームと称されることがある。ストレージ１５には、このウェブページを表示するためのＨＴＭＬデータも記憶される。ＨＴＭＬデータは、ＨＴＭＬ等のマークアップ言語で記述されたＨＴＭＬ文書から成り、このＨＴＭＬ文書には、様々な画像が関連付けられる。また、ＨＴＭＬ文書には、各種スクリプト言語等で記述されたプログラムが埋め込まれ得る。
【００１７】
ストレージ１５には、端末装置３０においてブラウザソフトウェア以外の実行環境上で実行されるアプリケーションも格納され得る。このアプリケーションには、各種処理を実行するためのプログラムや当該プログラム実行時に参照される画像データ等の各種データを含めることができる。プログラムは、例えば、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｊａｖａ（登録商標）等のオブジェクト指向プログラミング言語で作成される。ストレージ１５に記憶されたアプリケーションは、配信要求に応じて端末装置３０に配信され得る。サーバ１０から配信されたアプリケーションは、端末装置３０において、ＣＰＵ３１の制御に従って通信Ｉ／Ｆ３４を介して受信され、受信されたアプリケーションがストレージ３５に送信され記憶される。このアプリケーションは、ユーザによる端末装置３０の操作に応じて起動され、端末装置３０に実装されたＮｇＣｏｒｅ（商標）やＡｎｄｒｏｉｄ（商標）等の実行環境上で実行される。サーバ１０は、端末装置３０で実行されているアプリケーションに対して必要な各種データを提供し得る。また、サーバ１０は、端末装置３０から送信される各種データをユーザ毎に記憶することで、ユーザ毎にゲームの進行等の各種サービスの状況を管理することができる。
【００１８】
このように、サーバ１０は、各種サービスを提供するウェブサイトを管理し、当該ウェブサイトを構成するウェブページを端末装置３０からの要求に応じて配信することにより、各種サービスを提供することができる。また、サーバ１０は、このようなブラウザベースのサービスとは代替的に、又は、ブラウザベースのサービスに加えて、端末装置３０で実行されるアプリケーションとの通信に基づいて各種サービスを提供させることができる。詳細な説明は省略するが、サーバ１０は、各種サービスの提供開始時におけるユーザの認証処理や各種サービスの提供に応じて発生する課金処理を行う機能等を有することもできる。
【００１９】
端末装置３０は、一実施形態において、サーバ１０から取得したウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するためのアプリケーション実行環境を実装した任意の情報処理装置であり、パーソナルコンピュータ、スマートフォン、タブレット端末、及びゲーム専用端末等が含まれ得る。
【００２０】
端末装置３０は、図示のとおり、ＣＰＵ（コンピュータプロセッサ）３１と、メインメモリ３２と、ユーザＩ／Ｆ３３と、通信Ｉ／Ｆ３４と、ストレージ３５と、を含み、これらの各構成要素がバス３６を介して互いに電気的に接続されている。
【００２１】
ＣＰＵ３１は、ストレージ３５から様々なプログラムをメインメモリ３２にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ３２は、ＣＰＵ３１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭによって構成される。
【００２２】
ユーザＩ／Ｆ３３は、ユーザの入力を受け付ける情報入力装置と、ＣＰＵ３１の演算結果を出力する情報出力装置であり、タッチパネルを備える液晶ディスプレイなどの表示装置を含む。
【００２３】
通信Ｉ／Ｆ３４は、ハードウェア、ファームウェア、又は、ＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介してサーバ１０と通信可能に構成される。
【００２４】
ストレージ３５は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム及びアプリケーションプログラム等の様々なプログラム、並びにこれらのプログラムによって扱われる様々なデータを記憶し得る。ここで、ストレージ３５は、内蔵ストレージ及び取り外し可能なリムーバブルストレージの両方が含まれ得る。リムーバブルストレージとしては、例えば、フラッシュメモリが内蔵されたＳＤメモリカード等が含まれ得る。
【００２５】
このようなアーキテクチャを有する端末装置３０は、例えば、ＨＴＭＬデータを解釈して画面表示するためのブラウザソフトウェアを備えており、このブラウザソフトウェアの機能によりサーバ１０から取得したＨＴＭＬデータを解釈して、受信したＨＴＭＬデータに対応するウェブページを表示することができる。また、端末装置３０は、ブラウザソフトウェアに組み込まれるプラグインソフトを備えており、ＨＴＭＬデータに埋め込まれたＳＷＦ形式等のファイルをサーバ１０又は他のサーバ等から取得し、当該ＳＷＦ形式のファイルをブラウザソフトウェア及びプラグインソフトを用いて実行することもできる。
【００２６】
端末装置３０においてブラウザソフトウェア又はアプリケーションプログラムが実行されると、例えば、プログラムにより指示されたアニメーションや操作用アイコンが端末装置３０の画面に表示される。ユーザは、端末装置３０のユーザＩ／Ｆ３３を用いて各種指示を入力することができる。ユーザから入力された指示は、端末装置３０のブラウザやＮｇＣｏｒｅ（商標）等の実行環境の機能を通じてサーバ１０に伝達される。
【００２７】
次に、本発明の一実施形態に係るアプリケーションプログラム５０について説明する。一実施形態におけるアプリケーションプログラム５０は、サーバ１０によって提供される各種サービスを利用するためのアプリケーションプログラムであって、端末装置３０等のコンピュータ上で実行されることによって、このコンピュータを、サーバ１０に対してログインを要求するログイン要求装置として機能させる。また、端末装置３０を操作するユーザがサーバ１０によって提供される各種サービスをアプリケーションプログラム５０を用いて利用しようとする場合には、サーバ１０又は他のサーバ（例えば、アプリケーションプログラム、映画、音楽、書籍等の配信サービスを提供するサーバ等）から利用するサービスに対応するアプリケーションプログラム５０をダウンロードして端末装置３０にインストールする。インストールされたアプリケーションプログラム５０はストレージ３５に記憶される。こうしたアプリケーションプログラム５０のインストール及びアンインストールは、主に、端末装置３０のオペレーティングシステムの機能によって実現される。なお、端末装置３０には、サーバ１０が提供する複数のサービスにそれぞれ対応する複数のアプリケーションプログラム５０がインストールされ、又、アプリケーションプログラム５０以外の複数のアプリケーションプログラム（例えば、サーバ１０以外のサーバが提供するサービス（サーバ１０の運営者以外の運営者によって提供されるサービス）を利用するためのアプリケーションプログラム等）がインストールされ得る。
【００２８】
一実施形態におけるアプリケーションプログラム５０は、複数のプログラムモジュールによって構成され、端末装置３０等のコンピュータに、このプログラムモジュールに対応する機能を実現させる。具体的には、アプリケーションプログラム５０が端末装置３０のＣＰＵ３１（コンピュータプロセッサ）によって実行されると、このアプリケーションプログラム５０を構成する複数のプログラムモジュールに対応する機能が端末装置３０によって実現される。図２は、アプリケーションプログラム５０を構成する複数のプログラムモジュールの一例を示すブロック図である。一実施形態におけるアプリケーションプログラム５０は、図示するように、端末装置３０上で実行可能なアプリケーションプログラムを用いたサーバ１０へのログインの履歴であって、この端末装置３０によってアクセス可能なストレージ３５等の記憶領域（所定の記憶領域）に記憶されているログイン履歴を参照し、このログイン履歴に含まれるログインに用いられた他のアプリケーションプログラム５０（第２のプログラム）に対してサーバ１０へのログインに用いる認証トークン（認証用情報）を要求する認証用情報要求モジュール５１と、この他のアプリケーションプログラムから取得した認証トークンを用いてサーバ１０に対してログインを要求するログイン要求モジュール５２と、サーバ１０へのログインに応じてこのサーバ１０から認証トークンを取得し、この取得した認証トークンをアプリケーションプログラム５０によって管理され端末装置３０によってアクセス可能なアプリケーションプログラム５０用記憶領域に記憶させる認証用情報記憶モジュール５３と、サーバ１０へのログインに応じてアプリケーションプログラム５０を用いたサーバ１０へのログインを上述したログイン履歴に記録するログイン履歴記録モジュール５４と、他のアプリケーションプログラム５０（第３のプログラム）からの要求に応答し、上述したアプリケーションプログラム５０用記憶領域に記憶されている認証トークンをこの他のアプリケーションプログラムに対して提供する認証用情報提供モジュール５５と、を含む複数のプログラムモジュールによって構成される。上述したように、一実施形態におけるアプリケーションプログラム５０をＣＰＵ３１に実行させることによって、一実施形態における端末装置３０は、アプリケーションプログラム５０を構成する各プログラムモジュールの機能に対応する手段又はユニットとして機能し、例えば、サーバ１０に対してログインを要求するログイン要求装置として機能する。ここで、上述したプログラムモジュール５１−５５は、主に、サーバ１０に対してログインを要求する機能に関連するプログラムモジュールであり、アプリケーションプログラム５０を構成する複数のプログラムモジュールは、プログラムモジュール５１−５５以外の他の機能に対応するプログラムモジュールを含み得る。例えば、アプリケーションプログラム５０は、サーバ１０が提供する様々なサービスのうち、このアプリケーションプログラム５０を用いて利用するサービスに対応する機能（例えば、特定のゲームをプレイするための機能）に対応する他のプログラムモジュールを含み得る。なお、プログラムモジュール５１−５５を備えたアドオンソフトウェア（ＳＤＫ等）をアプリケーションプログラムの開発者に公開することにより、開発者によって提供される様々なアプリケーションプログラムを、一実施形態におけるアプリケーションプログラム５０として機能させることができる。
【００２９】
図３は、一実施形態における端末装置３０のストレージ３５等の記憶領域に記憶されるログイン履歴によって管理される情報の具体例を示す図である。ログイン履歴は、一実施形態では、図示するように、ログインが行われた日時を示すログイン日時と、このログインに用いられたアプリケーションプログラムを特定可能なアプリケーション特定情報（例えば、アプリケーション名又はパッケージ名等）との組合せによって１つのログインに関する情報を構成し、例えば、最新の所定数（例えば、１つ又は５つ等）のログインに関する情報を管理する。ログイン履歴が記憶される記憶領域は、例えば、端末装置３０に着脱可能なＳＤメモリカードに内蔵されるフラッシュメモリ等とすることができる。ここで、ログイン履歴は、ログインに用いる認証トークン等の情報と比較して機密性が高い情報ではないから、暗号化処理がなされていない非セキュアな領域であるＳＤメモリカード等に記憶することができる。後述するように、このログイン履歴は、一実施形態におけるアプリケーションプログラム５０のログイン履歴記録モジュール５４の機能によって記録される情報であり、端末装置３０にインストールされているアプリケーションプログラム５０以外の他のアプリケーションプログラムを用いたログインに関する情報は含まれない。
【００３０】
次に、こうして構成された一実施形態におけるアプリケーションプログラム５０を実行することによって端末装置３０において実現される動作について説明する。図４は、一実施形態における端末装置３０によって実行されるログイン処理の一例を示すフロー図である。このログイン処理は、一実施形態におけるアプリケーションプログラム５０が起動されたときに実行される。以下、説明の都合上、ログイン処理の実行の契機として起動されたアプリケーションプログラム５０をアプリケーションプログラム５０−１（第１のプログラム）と呼ぶ。ログイン処理では、まず、図示するように、上述したログイン履歴を参照して最新のログインを特定する（ステップＳ１００）。この処理は、認証用情報要求モジュール５１の機能に対応する処理であり、具体的には、ストレージ３５等の記憶領域に記憶されているログイン履歴を参照し、このログイン履歴に含まれるログインの中から最新のログイン（ログイン日時が最も新しいログイン）を特定する処理である。
【００３１】
そして、特定した最新のログインに用いられたアプリケーションプログラム５０がアンインストールされているか否かを判定し（ステップＳ１０５）、アンインストールされている場合には、再度ログイン履歴を参照し、次に新しいログインを特定する。この処理は、認証用情報要求モジュール５１の機能に対応する処理であり、具体的には、オペレーティングシステム等によって管理されているインストールされているアプリケーションプログラムに関する情報に基づいて、ステップＳ１００で特定したログインに用いられたアプリケーションプログラムがアンインストールされているか否かを判定する処理である。このように、一実施形態では、ログイン履歴に含まれる複数のログインの中から、ログインに用いられたアプリケーションプログラムがアンインストールされていないログインのうちログイン日時が最も新しいログインを特定する。
【００３２】
続いて、アプリケーションプログラム５０−１の発行者と、特定したログインに用いられたアプリケーションプログラム５０の発行者とが対応するか否かを判定し（ステップＳ１１０）、対応しない場合には、所定のエラー処理を行って、このログイン処理を終了する。この処理は、認証用情報要求モジュール５１の機能に対応する処理であり、具体的には、例えば、アプリケーションプログラム５０−１のデジタル署名と、特定したログインに用いられたアプリケーションプログラム５０のデジタル署名とを比較し、デジタル署名によって特定される発行者が同一である場合には発行者が対応すると判定し、同一でない場合には発行者が対応しないと判定する処理である。こうしたアプリケーションプログラムのデジタル署名を比較する機能は、端末装置３０のオペレーティングシステムに組み込まれ得る。
【００３３】
そして、アプリケーションプログラム５０−１の発行者と、特定したログインに用いられたアプリケーションプログラム５０の発行者とが対応する場合には、このアプリケーションプログラム５０に対して認証トークンを要求する（ステップＳ１２０）。以下、説明の都合上、認証トークンを要求された（認証トークンの要求先となる）アプリケーションプログラム５０をアプリケーションプログラム５０−２（第２のプログラム）と呼ぶ。この処理は、認証用情報要求モジュール５１の機能に対応する処理である。ここで、認証トークンとは、端末装置３０がサーバ１０に対してログインしたときに、次回のログインにおいてユーザＩＤ及びパスワード等を入力することなくログインできるようにするためにサーバ１０から発行される認証用情報である。
【００３４】
認証トークンを要求されたアプリケーションプログラム５０−２は、端末装置３０のアプリケーションプログラム５０−２用記憶領域に記憶されている認証トークンをアプリケーションプログラム５０−１に提供する（ステップＳ１２５）。この処理は、アプリケーションプログラム５０−２の認証用情報提供モジュール５５の機能に対応する処理である。ここで、アプリケーションプログラム５０−２用記憶領域に記憶されている認証トークンは、アプリケーションプログラム５０−２の実行を契機とするログイン処理が実行されたときに、サーバ１０に対するログインに応じてサーバ１０から取得して記憶されたものである。認証トークンをサーバ１０から取得して記憶する動作については後述する。こうしたアプリケーションプログラム５０−１及び５０−２間の通信は、例えば、オペレーティングシステムが有するアプリケーションプログラム間の通信を制御するプログラム間通信制御機能（例えば、オペレーティングシステム「Ａｎｄｒｏｉｄ」における「Ｂｉｎｄｅｒ」等）を用いて、バックグラウンドでの処理として実現することができる。こうしたプログラム間通信（プロセス間通信（ＩＰＣ））に関する処理は、当業者にとって一般的な処理であるから、これ以上の詳細な説明は省略する。
【００３５】
そして、アプリケーションプログラム５０−１がアプリケーションプログラム５０−２から認証トークンを取得すると、次に、取得した認証トークンを用いてサーバ１０に対してログインを要求する（ステップＳ１３０）。この処理は、ログイン要求モジュール５２の機能に対応する処理であり、具体的には、取得した認証トークンをサーバ１０に対して送信する処理である。認証トークンを受信したサーバ１０では、認証トークンの内容に基づいてログインの許否を判定する。例えば、受信した認証トークンの有効期間が切れていたり、又は、この認証トークンが発行された以降にパスワードが変更されている場合には、無効な認証トークンと判断され、ログインを拒否すると判定される。こうした認証トークンを用いたログインの許否の判定（ログイン認証）に関する処理は、当業者にとって一般的な処理であるから、これ以上の詳細な説明は省略する。
【００３６】
そして、サーバ１０によってログインが許可されると、サーバ１０が認証トークンを発行し、端末装置３０では、認証トークンをサーバ１０から取得すると共に取得した認証トークンをアプリケーションプログラム５０−１用記憶領域に記憶する（ステップＳ１４０）。この処理は、認証用情報記憶モジュール５３の機能に対応する処理である。一実施形態において、アプリケーションプログラム５０−１用記憶領域は、ストレージ３５内の任意の領域に構成されるアプリケーションプログラム５０−１によって管理される領域である。より具体的には、このアプリケーションプログラム５０−１用記憶領域に記憶されている情報は、アプリケーションプログラム５０−１を介したアクセスのみが許容され、他のアプリケーションプログラム５０及び一実施形態におけるアプリケーションプログラム５０以外の他のアプリケーションプログラムからのアクセスは許容されない。
【００３７】
続いて、ログイン履歴を更新し（ステップＳ１５０）、このログイン処理を終了する。この処理は、ログイン履歴記録モジュール５４の機能に対応する処理であり、具体的には、アプリケーションプログラム５０−１を用いたログインとして、ログイン日時及びアプリケーションプログラム５０−１のアプリケーション特定情報（アプリケーション名又はパッケージ名等）をログイン履歴に追加する処理である。なお、一実施形態では、ログイン履歴は、最新の所定数のログインに関する情報を管理するから、新たなログインに関する情報の追加に伴って、最も古いログインに関する情報はログイン履歴から削除される。なお、ログイン処理を終了すると、アプリケーションプログラム５０−１に対応するサービスの利用を開始することができる（例えば、対応するサービスを利用するための初期画面が端末装置３０に表示される）。
【００３８】
ここで、アプリケーションプログラム５０−１の起動を契機とするログイン処理を終了した後に、他のアプリケーションプログラム５０（第３のアプリケーションプログラム。以下、説明の都合上、アプリケーションプログラム５０−３と呼ぶ）の起動を契機として新たにログイン処理が実行された場合を考える。この場合、ステップＳ１００においてアプリケーションプログラム５０−１を用いたログインが最新のログインとして特定され、アプリケーションプログラム５０−３からアプリケーションプログラム５０−１に対して認証トークンが要求される（ステップＳ１２０）。認証トークンを要求されたアプリケーションプログラム５０−１は、自身が管理するアプリケーションプログラム５０−１用記憶領域に記憶されている認証トークンを要求元であるアプリケーションプログラム５０−３に提供する（ステップＳ１２５）。このように、一実施形態では、サーバ１０に対するログインに応じてログイン履歴が更新され、このログイン履歴に基づいて、最新のログインに用いられたアプリケーションプログラム５０から最新の認証トークンを取得し、取得した最新の認証トークンを用いたログインの要求を、繰り返し行うことができる。
【００３９】
ここで、上述したログイン処理において、アプリケーションプログラム５０−１が既に認証トークンを保有している（自身のアプリケーションプログラム５０−１用記憶領域に認証トークンが記憶されている）場合には、ステップＳ１００−Ｓ１２５の処理をスキップし、既に保有する認証トークンを用いてサーバ１０に対してログインを要求するようにしても良い。また、既に保有する認証トークンを用いてログインを要求した後に、既に保有する認証トークンが無効であることを検出した場合（例えば、認証トークンの有効期間が切れ、又は、パスワードが変更されることによって、認証トークンが無効であることをサーバ１０から端末装置３０に対して通知された場合等）には、ステップＳ１００−Ｓ１２５の処理を実行し、他のアプリケーションプログラム５０から認証トークンを取得するようにしても良い。また、ログイン処理のステップＳ１００−Ｓ１０５において、ログイン履歴に含まれる所定数のログインに用いられたアプリケーションプログラム５０の全てがアンインストールされている場合には、認証トークンを用いたログインではない他のログイン（例えば、ユーザＩＤ及びパスワードを入力する通常のログイン等）をサーバ１０に対して要求するようにしても良い。
【００４０】
以上説明した一実施形態におけるアプリケーションプログラム５０では、ログイン履歴を参照し、このログイン履歴に含まれるログインに用いられた他のアプリケーションプログラム５０（第２のプログラム）に対してサーバ１０へのログインに用いる認証トークン（認証用情報）を要求し、この他のアプリケーションプログラム５０から取得した認証トークンを用いてサーバ１０に対してログインを要求するように、端末装置３０を機能させる。従って、ログイン履歴に基づいて他のアプリケーションプログラム５０から取得した認証トークンを用いてログインすることができるから、非セキュアな記憶領域に認証トークンを記憶して複数のアプリケーションプログラム間で共有する場合と比較して、セキュリティが確保された仕組みとすることができる。また、機密性が高い情報を管理するための特別な仕組みが必要とならないから、より簡易な仕組みで複数のアプリケーションプログラム間での認証トークンの共有を実現することができる。即ち、ログインに必要な情報をセキュリティを確保しつつ複数のアプリケーションプログラム間で共有するより簡易な仕組みを提供することができる。
【００４１】
また、一実施形態におけるアプリケーションプログラム５０では、認証トークンの要求先であるアプリケーションプログラム５０の発行者が、認証トークンの要求元であるアプリケーションプログラム５０の発行者に対応しない場合には、認証トークンの要求、又は、認証トークンの提供が中止されるように、端末装置３０を機能させるから、より一層セキュリティが確保された仕組みとすることができる。
【００４２】
また、一実施形態におけるアプリケーションプログラム５０では、サーバ１０から取得した認証トークンをアプリケーションプログラム５０によって管理されるアプリケーションプログラム５０用記憶領域に記憶させるように、端末装置３０を機能させるから、より一層セキュリティが確保された仕組みとすることができる。
【００４３】
また、一実施形態におけるアプリケーションプログラム５０では、ログイン履歴に含まれる複数のログインの中からログインに用いられたアプリケーションプログラム５０がアンインストールされていないログインのうちログイン日時が最も新しいログインを特定し（即ち、ログイン日時が新しいほど優先される傾向でログインを特定し）、この特定したログインに用いられたアプリケーションプログラム５０を認証トークンの要求先とするから、取得した認証トークンが、有効期間が切れていたり、又は、パスワード変更等によって、無効な認証トークンである可能性を低減することができる。
【００４４】
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【００４５】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び／又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【００４６】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。
【符号の説明】
【００４７】
１  システム
１０  サーバ
２０  通信網
３０  端末装置
５１  認証用情報要求モジュール
５２  ログイン要求モジュール
５３  認証用情報記憶モジュール
５４  ログイン履歴記録モジュール
５５  認証用情報提供モジュール
【要約】
【課題】  ログインに必要な情報をセキュリティを確保しつつ複数のアプリケーションプログラム間で共有するより簡易な仕組みを提供する。
【解決手段】  一実施形態に係るアプリケーションプログラムは、ログイン履歴に含まれるログインに用いられた他のアプリケーションプログラムに対して認証トークンを要求する認証用情報要求モジュールと、取得した認証トークンを用いてサーバに対してログインを要求するログイン要求モジュールと、ログインに応じて新たに認証トークンを取得してアプリケーションプログラム用記憶領域に記憶させる認証用情報記憶モジュールと、このアプリケーションプログラムを用いたログインをログイン履歴に記録するログイン履歴記録モジュールと、アプリケーションプログラム用記憶領域に記憶されている認証トークンを他のアプリケーションプログラムに対して提供する認証用情報提供モジュールと、を含む複数のプログラムモジュールによって構成される。
【選択図】  図２【図１】
0005543010.tif 000002
【図２】
0005543010.tif 000003
【図３】
0005543010.tif 000004
【図４】
0005543010.tif 000005