(57)【要約】  サーバ装置（１００）は、端末装置（２００）にて動作するアプリケーション（３１）からのアクセスを受け付ける。サーバ装置（１００）は、端末装置（２００）のアプリケーション（３１）をユーザ名およびパスワードによる認証を行い、成功すれば、アプリケーション（３１）にアクセストークンを送信するとともにアクセスを許可する。サーバ装置（１００）は、アクセストークンを発行すると、端末装置（２００）に対応付けられている他のアクセストークンに付された有効期限を延長する。サーバ装置（１００）は、端末装置（２００）のアプリケーション（３１）から受信したアクセストークンが、端末装置（２００）に対応付けられ、有効期限内として記憶されていれば、アプリケーション（３１）からのアクセスを許可し、端末装置（２００）に対応付けられているすべてのアクセストークンに付された有効期限を延長する。
2017208305.tif 000002
【特許請求の範囲】
【請求項１】
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるサーバ装置であって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記サーバ装置へ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行い、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可し、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長し、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可し、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する、
ことを特徴とするサーバ装置。
【請求項２】
前記受信されたアクセス要求に指定されたアクセストークンが記憶されていない、または、記憶された有効期限の範囲内でないと、前記送信元アプリケーションに対して、前記サインイン要求を送信すべき旨を指示する、
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記発行されたアクセストークンを、前記端末識別符号と、前記サインイン要求に指定されたユーザ名との組み合わせに対応付けて、前記有効期限を付して記憶し、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられて、有効期限の範囲内でないと記憶されていると、前記送信元アプリケーションに対して、前記端末識別符号を含む組み合わせに含まれるユーザ名を送信したうえで、前記サインイン要求を送信すべき旨を指示する、
ことを特徴とする請求項２に記載のサーバ装置。
【請求項４】
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されており、前記送信元アプリケーションに対して発行されたアクセストークンの有効期限を第１の期限まで延長すると、当該端末識別符号に対応付けて記憶される、他の前記アプリケーションに対して発行されたすべてのアクセストークンに付された有効期限を、前記第１の期限まで延長する、
ことを特徴とする請求項１に記載のサーバ装置。
【請求項５】
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されており、前記送信元アプリケーションに対して発行されたアクセストークンの有効期限を第１の期間分延長すると、当該端末識別符号に対応付けて記憶される、他の前記アプリケーションに対して発行されたすべてのアクセストークンに付された有効期限を、前記第１の期間分延長する、
ことを特徴とする請求項１に記載のサーバ装置。
【請求項６】
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されており、前記送信元アプリケーションに対して発行されたアクセストークンの有効期限を延長することにより、当該アクセストークンの有効期限における残余期間が延長前の第１の倍率となると、当該端末識別符号に対応付けて記憶される、他の前記アプリケーションに対して発行されたすべてのアクセストークンに付された有効期限を、当該有効期限における残余期間が延長前に比べて前記第１の倍率となるように延長する、
ことを特徴とする請求項１に記載のサーバ装置。
【請求項７】
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるサーバ装置によるサービス方法であって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記サーバ装置へ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行い、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可し、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長し、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可し、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する、
ことを特徴とするサービス方法。
【請求項８】
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるコンピュータにより実行されるプログラムであって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記コンピュータへ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記コンピュータへ送信し、
前記プログラムは、前記コンピュータに、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行うサインイン認証手順、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可する許可手順、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長する第１延長手順、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可するアクセス要求認証手順、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていると、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する第２延長手順、
を実行させることを特徴とするプログラム。
【請求項９】
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるコンピュータにより実行されるプログラムを記録した、非一時的なコンピュータ読取可能な情報記録媒体であって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記コンピュータへ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記コンピュータへ送信し、
前記プログラムは、前記コンピュータに、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行うサインイン認証手順、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可する許可手順、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長する第１延長手順、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可するアクセス要求認証手順、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていると、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する第２延長手順、
を実行させるプログラムを記録した情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、サービス方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体に関する。
【背景技術】
【０００２】
近年、いわゆるスマートフォンの普及に従い、ユーザが操作する端末装置が、サービス提供者が設置したサーバ装置にアクセスすることにより、サービスを利用することが増えている。このような形態でサービスを提供する場合、サーバ装置がユーザを識別するために、認証という処理が要求されることがある。【０００３】
一般には、認証には、ユーザ名およびパスワードを指定するサインイン要求を端末装置がサーバ装置に送信する形態（サインイン）が用いられる。また、別の形態として、いったんサインイン要求により認証された端末装置へ再びサービスを提供する際に、ユーザ名およびパスワードの入力の手間を省略するために、アクセストークンが用いられることもある。アクセストークンは、端末装置に記録され、ユーザがサービスを要求する際に、端末装置からサーバ装置に送信されて認証に用いられる。【０００４】
例えば、特許文献１では、アクセストークンを用いた認証方法に関する技術が公開されている。特許文献１の技術では、アクセス権限の譲渡者の要求に応じ、認可サーバがアクセス権限の被譲渡者にアクセストークンを発行する。アクセス権限の被譲渡者は、発行されたアクセストークンを用いて認証を受けることが可能となる。特許文献１の技術は、このように、譲渡者の信用情報（本人のユーザ名およびパスワード）に触れることなく、譲渡者により許可された情報にアクセスできるようにしようとするものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−２０１０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した技術では、同一の端末装置で複数のアプリケーションが動作する環境において、認証処理に要するユーザの負担を低減することはできない。【０００７】
同一の端末装置で複数のアプリケーションが動作する環境では、アプリケーション間でのメモリ共有が制限されるケースが多い。特に、認証に用いられるような重要な情報については、セキュリティ上の観点から、他のアプリケーションとはほとんどの場合で共有が認められない。このような場合、ユーザが、同一の端末装置において、同一のアカウント情報を用い、複数のアプリケーションを利用する場合、アプリケーションごとに認証情報を入力する必要がある。そのため、ユーザにかかる認証処理の負担が大きくなっている。【０００８】
本発明は、このような問題点に鑑みてなされたものである。すなわち、本発明の目的は、複数のアプリケーションを動作させる同一の端末装置にサーバ装置からサービスを提供するときの、認証処理に要するユーザの負担を低減することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の第１の観点にかかるサーバ装置は、
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるサーバ装置であって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記サーバ装置へ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行い、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可し、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長し、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可し、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する、
ことを特徴とする。【００１０】
上記第１の観点にかかるサーバ装置は、
前記受信されたアクセス要求に指定されたアクセストークンが記憶されていない、または、記憶された有効期限の範囲内でないと、前記送信元アプリケーションに対して、前記サインイン要求を送信すべき旨を指示する、
ものであってもよい。【００１１】
上記第１の観点にかかるサーバ装置は、
前記発行されたアクセストークンを、前記端末識別符号と、前記サインイン要求に指定されたユーザ名との組み合わせに対応付けて、前記有効期限を付して記憶し、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられて、有効期限の範囲内でないと記憶されていると、前記送信元アプリケーションに対して、前記端末識別符号を含む組み合わせに含まれるユーザ名を送信したうえで、前記サインイン要求を送信すべき旨を指示する、
ものであってもよい。【００１２】
上記第１の観点にかかるサーバ装置は、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されており、前記送信元アプリケーションに対して発行されたアクセストークンの有効期限を第１の期限まで延長すると、当該端末識別符号に対応付けて記憶される、他の前記アプリケーションに対して発行されたすべてのアクセストークンに付された有効期限を、前記第１の期限まで延長する、
ものであってもよい。【００１３】
上記第１の観点にかかるサーバ装置は、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されており、前記送信元アプリケーションに対して発行されたアクセストークンの有効期限を第１の期間分延長すると、当該端末識別符号に対応付けて記憶される、他の前記アプリケーションに対して発行されたすべてのアクセストークンに付された有効期限を、前記第１の期間分延長する、
ものであってもよい。【００１４】
上記第１の観点にかかるサーバ装置は、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されており、前記送信元アプリケーションに対して発行されたアクセストークンの有効期限を延長することにより、当該アクセストークンの有効期限における残余期間が延長前の第１の倍率となると、当該端末識別符号に対応付けて記憶される、他の前記アプリケーションに対して発行されたすべてのアクセストークンに付された有効期限を、当該有効期限における残余期間が延長前に比べて前記第１の倍率となるように延長する、
ものであってもよい。【００１５】
上記目的を達成するため、本発明の第２の観点にかかるサービス方法は、
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるサーバ装置によるサービス方法であって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記サーバ装置へ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行い、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可し、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長し、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可し、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する、
ことを特徴とする。【００１６】
上記目的を達成するため、本発明の第３の観点にかかるプログラムは、
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるコンピュータにより実行されるプログラムであって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記コンピュータへ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記コンピュータへ送信し、
前記プログラムは、前記コンピュータに、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行うサインイン認証手順、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可する許可手順、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長する第１延長手順、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可するアクセス要求認証手順、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていると、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する第２延長手順、
を実行させることを特徴とする。【００１７】
上記目的を達成するため、本発明の第４の観点にかかる非一時的なコンピュータ読取可能な情報記録媒体は、
端末装置にて動作する複数のアプリケーションからのアクセスを受け付けるコンピュータにより実行されるプログラムを記録した、非一時的なコンピュータ読取可能な情報記録媒体であって、
前記複数のアプリケーションのそれぞれは、
当該アプリケーションに対して発行されたアクセストークンが、前記端末装置が当該アプリケーション用に確保した不揮発性記憶域に記憶されていなければ、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名およびパスワードを指定するサインイン要求を前記コンピュータへ送信し、
当該アプリケーションに対して発行されたアクセストークンが、前記不揮発性記憶域に記憶されていれば、当該アクセストークンを指定するアクセス要求を前記コンピュータへ送信し、
前記プログラムは、前記コンピュータに、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記サインイン要求を受信すると、当該サインイン要求に指定されたユーザ名およびパスワードによる認証を行うサインイン認証手順、
前記認証に成功すれば、当該サインイン要求を送信した送信元アプリケーションに対して、当該サインイン要求に指定されたユーザ名に結び付けられたアクセストークンを発行し、当該発行されたアクセストークンを前記送信元アプリケーションへ送信し、前記送信元アプリケーションからのアクセスを許可する許可手順、
前記発行されたアクセストークンを、前記サインイン要求を送信した送信元アプリケーションが動作する端末装置を示す端末識別符号に対応付けて、有効期限を付して記憶し、当該端末識別符号に対応付けて記憶される他のアクセストークンに付された有効期限を延長する第１延長手順、
前記端末装置にて動作するいずれかの前記アプリケーションから送信された前記アクセス要求を受信すると、当該アクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていれば、当該送信元アプリケーションからのアクセスを許可するアクセス要求認証手順、
前記受信されたアクセス要求に指定されたアクセストークンが、前記アクセス要求を送信した送信元アプリケーションが動作する端末装置の端末識別符号に対応付けられ、有効期限内として記憶されていると、当該端末識別符号に対応付けて記憶されるすべてのアクセストークンに付された有効期限を延長する第２延長手順、
を実行させるプログラムを記録する。
【発明の効果】
【００１８】
本発明によれば、複数のアプリケーションを動作させる同一の端末装置にサーバ装置からサービスを提供するときの、認証処理に要するユーザの負担を低減することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態にかかるサーバ装置の機能構成を示すブロック図である。
【図２】サーバ装置および端末装置のハードウェア構成を示すブロック図である。
【図３】端末装置が稼働させるアプリケーションの機能構成を示すブロック図である。
【図４】ユーザ・パスワードＤＢに記録されるデータの内容を示す図である。
【図５】アクセストークンＤＢに記録されるデータの内容を示す図である。
【図６】端末装置による認証要求処理を示すフローチャートである。
【図７】サインイン要求の認証処理を示すフローチャートである。
【図８】アクセス要求の認証処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について添付図面を参照しつつ説明する。
【００２１】
＜実施の形態＞
本発明の実施の形態にかかるサーバ装置１００は、ユーザが操作する端末装置で稼働するアプリケーションを介し、ユーザにサービスを提供するサーバ装置である。サーバ装置１００は、端末装置で稼働するアプリケーションがサービスを提供可能であるかを判定（認証）し、提供可能であると認証された場合に限り、サービスを提供する。
【００２２】
サーバ装置１００は、図１に示すように、認証部１０と、サービス提供部１３とを備える。認証部１０は、ユーザＵが操作する端末装置２００で稼働するアプリケーションからの認証要求を受け付け、サービスの提供が可能であるか否かの認証を行う機能部である。また、サービス提供部１３は、認証部１０により認証されたアプリケーション３１を介し、ユーザＵにサービスを提供する機能部である。
【００２３】
認証部１０は、アプリケーション３１を認証するための機能部として、サインイン認証部１１と、アクセストークン認証部１２とを備える。
【００２４】
サインイン認証部１１は、アプリケーション３１から、ユーザ名およびパスワードを指定するサインイン要求を受け付ける。サインイン認証部１１は、受け付けたサインイン要求に含まれるユーザ名とパスワードとの組み合わせが、ユーザ・パスワード対応ＤＢ２１に記録されている場合には、アプリケーション３１を認証する。
【００２５】
サインイン認証部１１は、サインイン要求を送信してきた送信元アプリケーション（アプリケーション３１）を認証すると、そのアプリケーション向けにアクセストークンを発行し、アクセストークンＤＢ２２に記録する。サインイン認証部１１は、発行したアクセストークンを、送信元アプリケーション（アプリケーション３１）に送信する。アプリケーション３１は、送信されたアクセストークンを記録する。
【００２６】
アプリケーション３１は、サーバ装置１００が提供するサービスを利用するとき、端末装置２００のアプリケーション３１用の不揮発性記憶域にアクセストークンが記憶されていると、記憶されているアクセストークンを指定するアクセス要求を送信する。一方、アプリケーション３１は、不揮発性記憶域にアクセストークンが記憶されていないと、ユーザＵにユーザ名およびパスワードを入力するように要求する。ユーザＵが要求に応じてユーザ名およびパスワードを入力すると、アプリケーション３１は、入力されたユーザ名およびパスワードを指定するサインイン要求をサーバ装置１００に送信する。
【００２７】
アクセストークン認証部１２は、アプリケーション３１から、アクセストークンを指定するアクセス要求を受け付ける。アクセストークン認証部１２は、受け付けたアクセス要求に含まれるアクセストークンが、送信元である端末装置（端末装置２００）を示す端末識別符号に対応付けてアクセストークンＤＢ２２に記録されている場合には、アプリケーション３１を認証する。
【００２８】
サーバ装置１００は、このように、サインイン認証部１１およびアクセストークン認証部１２との組み合わせにより、アプリケーション３１を認証する。端末装置２００で稼働するアプリケーション３１は、アクセストークンが記録されている場合にはアクセストークンによる認証をサーバ装置１００に求め、アクセストークンが記録されていない場合には、ユーザＵにより入力されたユーザ名およびパスワードによる認証をサーバ装置１００に求める。そのため、アクセストークンが記録されていない場合（すなわち認証実績がない場合）にはユーザＵに入力を求めるが、アクセストークンが記録されている場合（すなわち認証実績がある場合）には、記録されているアクセストークンにより認証を行い、ユーザＵによる入力を省略する。そのため、認証処理に要するユーザＵの負担を低減することができる。
【００２９】
アクセストークンとは、後述するように、キーと認証文字列を備えるデータである。キーとは、アクセストークンを示す情報として、サーバ装置１００により固有に与えられた識別番号である。認証文字列とは、アクセストークンが正しいものであることを示すためにサーバ装置１００により与えられた文字列であり、一般には、サーバ装置１００は一定の条件のもと生成したランダム文字列をアクセストークンの認証文字列として付与する。
【００３０】
サーバ装置１００は、アクセストークンＤＢ２２に記録されているアクセストークンに、有効期限を付して管理する。すなわち、一度認証が行われてアクセストークンが発行されたアプリケーション（または端末装置）であっても、定められた有効期限までに同アプリケーション（同端末装置）による認証が行われないと、そのアクセストークンは失効する。アクセストークンが失効すると、そのアクセストークンに対応付けられていたアプリケーションおよび端末装置でサーバ装置１００によるサービスを受けるには、ユーザは、ユーザ名およびパスワードを入力し、サインインによる認証を受けることが必要である。
【００３１】
また、サーバ装置１００は、アクセストークンを含むアクセス要求によりアプリケーション（および端末装置）を認証すると、当該アクセストークンの有効期限を延長する。そのため、ユーザは、有効期限内にそのアプリケーションを介してサーバ装置１００によるサービスを受ける（すなわちアクセストークンによる認証を受ける）ことを繰り返すことにより、ユーザ名およびパスワードを入力することなく、継続してサーバ装置１００によるサービスを受けることができる。
【００３２】
端末装置２００は、アプリケーション３１の他にもアプリケーションを動作させることが可能である。同じサーバ装置１００を利用するアプリケーション３２および３３を端末装置２００が動作させる場合、サーバ装置１００は、同じユーザアカウント（同一のユーザ名およびパスワードの組み合わせによる認証）で、アプリケーション３１、３２、３３を認証することができる。すなわち、サーバ装置１００は、アプリケーション３１から送信されたサインイン要求を認証した時には、そのサインイン要求が指定するユーザ名およびパスワードと同じユーザ名およびパスワードの組を指定するサインイン要求がアプリケーション３２から送信された場合、アプリケーション３２を認証する。
【００３３】
サインイン認証部１１はアプリケーションを認証すると、アクセストークンを発行する。サインイン認証部１１は、発行したアクセストークンをアクセストークンＤＢ２２に記録するとともに、発行したアクセストークンを認証したアプリケーションに送信する。送信されたアクセストークンは、端末装置２００により、認証されたアプリケーションごとに、そのアプリケーション用に確保された不揮発性記憶域に記録される。すなわち、同じユーザアカウントで認証された複数のアプリケーション（アプリケーション３１、３２、３３）であっても、サーバ装置１００はアクセストークンを個別に発行する。アプリケーション３１、３２、３３は、それぞれ発行されたアクセストークンを記録する。
【００３４】
端末装置２００は、動作させるアプリケーションの間で、認証にかかわる情報（ユーザ名、パスワード、アクセストークン）を共有しない。これは、認証にかかわる情報はセキュリティ上非常に重要な情報であり、そのような重要な情報が流出する危険性を低減させるためである。そのため、アプリケーション３１が、アプリケーション３２に記録されているアクセストークンを参照して認証を行うことはできない。
【００３５】
一方、サーバ装置１００では、複数のアプリケーションでの認証に、共通するデータ（ユーザ・パスワード対応ＤＢ２１およびアクセストークンＤＢ２２）を用いる。そのため、サーバ装置１００では、端末装置２００で稼働するアプリケーション３１からのアクセスがあった場合に、同じ端末装置２００で稼働するアプリケーション（アプリケーション３２および３３）のアクセストークンに関する情報にアクセスすることが可能である。
【００３６】
具体的には、サーバ装置１００は、サインイン認証部１１を介してアプリケーション３１からのサインイン要求を認証すると、アクセストークンに、アプリケーション３１が動作する端末装置（端末装置２００）を示す端末識別符号を対応付け、有効期限を付してアクセストークンＤＢ２２に記録する。すなわち、アクセストークンＤＢ２２には、アクセストークンが、端末装置２００を示す情報とともに記録される。
【００３７】
サーバ装置１００は、アプリケーション３１からのサインイン要求を認証すると、アクセストークンＤＢ２２に記録されている、アプリケーション３１と同じ端末装置である端末装置２００で動作するアプリケーションに発行したアクセストークンを抽出し、抽出したアクセストークンの有効期限を延長する。具体的には、サーバ装置１００は、アクセストークンＤＢ２２からアプリケーション３２および３３に送信したアクセストークンを特定し、それらに付されている有効期限を、さらに後の日時となるように更新する。
【００３８】
また、サーバ装置１００は、アプリケーション３１からのアクセス要求を認証すると、アクセストークンＤＢ２２に記録されている、端末装置２００で動作するアプリケーションに発行したアクセストークンを抽出し、抽出したアクセストークンの有効期限を延長する。具体的には、サーバ装置１００は、アクセストークンＤＢ２２から、アプリケーション３１、３２および３３に送信したアクセストークンを特定し、それらに付されている有効期限を、さらに後の日時となるように更新する。
【００３９】
サーバ装置１００は、ここまで述べた構成を備えることにより、端末装置２００で稼働するアプリケーション（アプリケーション３１，３２，３３）を認証し、認証されたアプリケーションにサービスを提供する。アプリケーション３１からの認証要求（サインイン要求またはアクセス要求）が長期にわたってない場合であっても、同一の端末装置である端末装置２００で動作するアプリケーション３２からの認証要求がアクセストークンの有効期限内にあった場合には、アプリケーション３１に発行されているアクセストークンの有効期限が延長される。そのため、複数のアプリケーションを動作させる同一の端末装置にサーバ装置からサービスを提供するときの、認証処理に要するユーザの負担を低減することができる。
【００４０】
本実施の形態にかかるサーバ装置１００は、図２に示すように、ハードウェアとして、制御部１１０、記録装置１２０、操作デバイス１３０、ディスプレイ１４０、ネットワークインターフェース１５０を備え、これらが内部バス１９０を介して互いに接続された構成を有する。
【００４１】
制御部１１０は、ＣＰＵ（Central Processing Unit）１１１、ＲＯＭ（Read Only Memory）１１２、ＲＡＭ（Random Access Memory）１１３などを備える。制御部１１０のＣＰＵが、ＲＯＭまたはＲＡＭに記録されているプログラムを実行することにより、制御部１１０は、サーバ装置１００全体の動作を制御する。制御部１１０は、必要に応じて記録装置１２０からプログラム等のデータを読み出し、また記録装置１２０にデータを保存する。
【００４２】
記録装置１２０は、ハードディスクドライブやフラッシュメモリ等の記録装置を備え、サーバ装置１００が稼動するために必要なデータを記憶する。
【００４３】
操作デバイス１３０は、キーボードやマウス等を備え、ユーザＵによる入力操作を受け付けて制御部１１０に伝達する。
【００４４】
ディスプレイ１４０は、液晶ディスプレイもしくはブラウン管モニタを備え、サーバ装置１００のユーザに必要な情報を表示する。
【００４５】
ネットワークインターフェース１５０は、サーバ装置１００をネットワークに接続する。サーバ装置１００が、ネットワークを介して他機器に情報を送信し、あるいは他機器から情報を受信する際、ネットワークインターフェース１５０は、制御部１１０から後述する内部バス１９０を介して受信した情報を、ネットワークを介して他機器へ送信し、また他機器からネットワークを介して受信した情報を、内部バス１９０を介して制御部１１０へ送信する。一例として、サーバ装置１００は、ネットワークインターフェース１５０を介し、ユーザＵが操作する端末装置２００との間でデータを送受信する。ユーザＵは、ネットワークを介してサーバ装置１００と接続する端末装置２００を介し、認証を受け、またサービスの提供を受ける。
【００４６】
サーバ装置１００がサービスを提供する端末装置２００は、図２に示すように、ハードウェアとして、制御部２１０、記録装置２２０、タッチパネル２３０、ネットワークインターフェース２５０を備え、これらが内部バス２９０を介して互いに接続された構成を有する。
【００４７】
制御部２１０は、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３などを備える。制御部２１０のＣＰＵが、ＲＯＭまたはＲＡＭに記録されているプログラムを実行することにより、制御部２１０は、端末装置２００全体の動作を制御する。
【００４８】
記録装置２２０は、ハードディスクドライブやフラッシュメモリ等の記録装置を備え、端末装置２００が稼動するために必要なデータを記憶する。
【００４９】
タッチパネル２３０は、情報を表示することができるディスプレイ、および、タッチされた場所を検出する位置検出装置を組み合わせた電子デバイスである。タッチパネル２３０は、位置検出装置により、ユーザＵによる入力操作を受け付けて制御部２１０に伝達する。またタッチパネル２３０は、ディスプレイにより、ユーザＵに必要な情報を表示する。
【００５０】
ネットワークインターフェース２５０は、端末装置２００をネットワークに接続する。特に、端末装置２００は、ネットワークインターフェース２５０を介してサーバ装置１００との間でデータを送受信する。
【００５１】
端末装置２００が稼働させるアプリケーション３１は、図３に示す構成要素を備える。すなわち、アプリケーション３１は、機能部として、サーバ装置１００のサービス提供部１３からのサービスを受けるサービス受付部３１ａ、および、サーバ装置１００からの認証を受ける認証部３１ｂを備える。さらに、アプリケーション３１は、アプリケーション３１に割り当てられた端末装置２００の不揮発性記憶域に、アクセストークン３１ｃを記録する。アクセストークン３１ｃは、キー３１ｃａと、認証文字列３１ｃｂを備える。
【００５２】
キー３１ｃａは、そのアクセストークンを特定するためにサーバ装置１００により固有に割り振られた識別情報である。
【００５３】
認証文字列３１ｃｂは、そのアクセストークンが不正に使用されないように、キーに対応付けてサーバ装置１００により発行された文字列である。サーバ装置１００は、アクセストークンを生成する際には、固有の情報として識別情報となるキーを生成したうえで、一定の条件下で生成したランダム文字列をキーに付与することでアクセストークンを生成する。
【００５４】
アクセストークンは、サーバ装置１００がアプリケーションごとに発行し、管理する。アプリケーション３１は、認証部３１ｂがユーザ名およびパスワードによるサインイン要求を行い、それが許可された場合に、サーバ装置１００から送信されたアクセストークンを改変することなく記録する。アプリケーション３１は、アクセストークン３１ｃの記録および送信を行うが、データの修正は行わない。
【００５５】
サーバ装置１００は、アプリケーションごとにアクセストークンを発行するため、アプリケーション３１とアプリケーション３２は、それぞれ固有にアクセストークンを記録する。すなわち、アプリケーション３１が記録するアクセストークンと、アプリケーション３２が記録するアクセストークンは独立に記録され、内容も一致しない。
【００５６】
アプリケーション３１は、アクセストークン３１ｃの他に認証に関するデータを記録しなくともよい。アクセストークン３１ｃが記録されていない場合、もしくは記録されているアクセストークン３１ｃが有効でない場合には、アプリケーション３１はユーザ名およびパスワードの入力をユーザに求め、入力されたユーザ名およびパスワードをサーバ装置１００に送信するが、送信されたユーザ名およびパスワードはそれ以後参照されることはない。
【００５７】
サーバ装置１００は、ユーザ・パスワード対応ＤＢ２１に、図４に示すデータを記録する。すなわち、サーバ装置１００は、ユーザ・パスワード対応ＤＢ２１に、ユーザ名と、そのユーザ名に対応付けられたパスワードとを記録する。
【００５８】
なお、図４においては、パスワードを示す文字列がそのまま示されているが、ユーザ・パスワード対応ＤＢ２１には、セキュリティを確保した形態でパスワードを示す文字列（もしくはそれに対応する情報）が記録されることが望ましい。例えば、ユーザ・パスワード対応ＤＢ２１には、ユーザにより入力されたパスワードの文字列を暗号化することにより生成された文字列が記録されるものであってもよい。この場合、サーバ装置１００は、ユーザにより入力された文字列が設定されたパスワードと一致するか判定する際は、ユーザ・パスワード対応ＤＢ２１に記録されている暗号化されたパスワードを復号し、ユーザにより入力された文字列が設定されたパスワードと一致するかに基づいて判定する。
【００５９】
あるいは、ユーザ・パスワード対応ＤＢ２１には、ユーザにより入力されたパスワードのハッシュ値が記録されるものであってもよい。その場合、サーバ装置１００は、パスワードを示す文字列に対応する情報を記録する際は、パスワードを示す文字列をもとにハッシュ関数を用いて生成した情報をユーザ・パスワード対応ＤＢ２１に記録する。ユーザにより入力された文字列が設定されたパスワードと一致するか判定する際は、サーバ装置１００は、ユーザにより入力された文字列をもとにハッシュ関数を用いて生成した情報が、ユーザ・パスワード対応ＤＢ２１に記録されている情報と一致するかに基づいて判定する。さらに、サーバ装置１００は、ユーザ・パスワード対応ＤＢ２１に、ユーザによりパスワードとして設定された文字列に、さらにソルトと呼ばれる文字列を付加した文字列をもとに、ハッシュ関数を用いて生成した情報（ハッシュ値）と、ソルトとを対応付けて記録するものであってもよい。
【００６０】
サーバ装置１００は、アクセストークンＤＢ２２に、図５に示すデータを記録する。サーバ装置１００は、アクセストークンＤＢ２２に、キーと認証文字列を含むアクセストークン、アプリケーションを示す識別番号であるアプリケーションＩＤ、ユーザ名、対象のアクセストークンに与えられた有効期限、端末装置を示す端末識別符号、といった情報を記録する。
【００６１】
図５においては、アクセストークンの認証文字列は、英字および数字による１２文字のランダム文字列となっている。しかし、これに限定されず、より長いランダム文字列を認証文字列として用いるものであってもよい。
【００６２】
サーバ装置１００は、アプリケーションをサインインにより認証すると、アクセストークンを発行し、アクセストークンＤＢ２２に記録する。また、その際、サインイン認証を要求した送信元アプリケーションを示すアプリケーションＩＤ、サインインにより認証されたユーザ名、送信元アプリケーションが稼働する端末装置の端末識別符号を、そのアクセストークンに対応付けて記録する。さらに、認証の際には、当該アクセストークンに有効期限を付与し、付与した有効期限をアクセストークンＤＢ２２に記録する。
【００６３】
端末装置２００にてアプリケーション３１が起動すると、最初に実行する処理である認証要求処理について、図６を参照して説明する。アプリケーション３１は、ユーザＵにより起動操作が行われると、認証要求処理を開始する。
【００６４】
最初に、アプリケーション３１は、端末装置２００においてアプリケーション３１に割り当てられている不揮発性記憶域に、アクセストークンが記録されているか否かを判定する（ステップＳ１１）。
【００６５】
ステップＳ１１で、アクセストークンが記録されていないと判定した場合（ステップＳ１１：ＮＯ）、アプリケーション３１は、ユーザに、ユーザ名およびパスワードの入力をユーザに要求する（ステップＳ１２）。アプリケーション３１は、端末装置２００のタッチパネル２３０を介し、ユーザに、ユーザ名とパスワードを入力するためのフォームを表示し、入力を促す。
【００６６】
ユーザによりユーザ名およびパスワードが入力されると、アプリケーション３１は、サインイン要求をサーバ装置１００に送信する（ステップＳ１３）。アプリケーション３１は、ユーザにより入力されたユーザ名およびパスワードを指定するサインイン要求をサーバ装置１００に送信する。
【００６７】
次にアプリケーション３１は、サーバ装置１００によりアクセスが許可されたか否かを判定する（ステップＳ１４）。アプリケーション３１は、送信したサインイン要求に応じてサーバ装置１００から送信される信号を受信し、受信した信号が、アクセスを許可する旨を示すものであるか、アクセスを拒否する旨を示すものであるかを判定する。
【００６８】
ステップＳ１４で、サーバ装置１００によりアクセスが許可されたと判定した場合（ステップＳ１４：ＹＥＳ）、アプリケーション３１は、アクセストークンを保存する（ステップＳ１５）。サーバ装置１００は、サインイン要求に応じてアクセスを許可する場合、後述するように、アクセスを許可する旨の信号に加えてアクセストークンをアプリケーション３１に送信する。アプリケーション３１は、サーバ装置１００から送信されたアクセストークンを受信し、不揮発性記憶域に記録する。
【００６９】
続いてアプリケーション３１は、ユーザによるサービスの利用を開始する（ステップＳ１６）。アプリケーション３１は、サービス受付部３１ａを介してサーバ装置１００のサービス提供部１３に接続する。以後、アプリケーション３１は、ユーザＵによるサーバ装置１００のサービス利用を継続しつつ、認証要求処理を終了する。
【００７０】
ステップＳ１４で、サーバ装置１００によりアクセスが許可されなかったと判定した場合（ステップＳ１４：ＮＯ）、サービスの利用が拒否されたことをユーザに通知する（ステップＳ１７）。サーバ装置１００は、サインイン要求に対してアクセスを許可しない場合、アクセスを拒否する旨の信号をアプリケーション３１に送信する。アプリケーション３１は、サーバ装置１００からアクセスを拒否する旨の信号を受信したことを受け、ユーザＵに、サービスの提供が拒否された（認証に失敗した）ことを通知する。ステップＳ１７を終えると、アプリケーション３１は、認証要求処理を終了する。
【００７１】
一方、ステップＳ１１で、アクセストークンが記録されていると判定した場合（ステップＳ１１：ＹＥＳ）、アプリケーション３１は、記録されているアクセストークンによるアクセス要求をサーバ装置１００に送信する（ステップＳ１８）。アプリケーション３１は、記録されているアクセストークンに、端末装置２００を示す端末識別符号を付して、サーバ装置１００に送信する。
【００７２】
次にアプリケーション３１は、サーバ装置１００によりアクセスが許可されたか否かを判定する（ステップＳ１９）。アプリケーション３１は、送信したアクセス要求に応じてサーバ装置１００から送信される信号を受信し、受信した信号が、アクセスを許可する旨を示すものであるか、アクセスを拒否する旨を示すものであるかを判定する。
【００７３】
ステップＳ１９で、サーバ装置１００によりアクセスが許可されたと判定した場合（ステップＳ１９：ＹＥＳ）、アプリケーション３１は、上述したステップＳ１６に処理を移動し、ユーザによるサービスの利用を開始する（ステップＳ１６）。アプリケーション３１は、サービス受付部３１ａを介してサーバ装置１００のサービス提供部１３に接続する。以後、アプリケーション３１は、ユーザＵによるサーバ装置１００のサービス利用を継続しつつ、認証要求処理を終了する。
【００７４】
ステップＳ１９で、サーバ装置１００によりアクセスが許可されなかったと判定した場合（ステップＳ１９：ＮＯ）、アプリケーション３１は、上述したステップＳ１７に処理を移動し、サービスの利用が拒否されたことをユーザに通知する（ステップＳ１７）。サーバ装置１００は、アクセス要求に対してアクセスを許可しない場合、アクセスを拒否する旨の信号をアプリケーション３１に送信する。アプリケーション３１は、サーバ装置１００からアクセスを拒否する旨の信号を受信したことを受け、ユーザＵに、サービスの提供が拒否された（認証に失敗した）ことを通知する。ステップＳ１７を終えると、アプリケーション３１は、認証要求処理を終了する。
【００７５】
端末装置２００は、ここまで述べた認証要求処理を実行し、サインイン要求あるいはアクセス要求をサーバ装置１００に送信し、アクセスが許可された場合のみサービスの利用を開始する。ここから、端末装置２００による認証要求処理に対応するための、サーバ装置１００により実行される認証処理（サインイン要求の認証処理、およびアクセス要求の認証処理）について説明する。
【００７６】
サーバ装置１００は、アプリケーション３１からサインイン要求を受信すると、図７に示すサインイン要求の認証処理を開始する。
【００７７】
サインイン要求の認証処理の最初に、サーバ装置１００は、受信したサインイン要求からユーザ名とパスワードを抽出する（ステップＳ２１）。サーバ装置１００は、受信したサインイン要求からユーザ名とパスワードを抽出し、サインイン要求が指定するユーザ名およびパスワードとしてそれぞれ特定する。
【００７８】
次にサーバ装置１００は、ユーザ・パスワード対応ＤＢ２１に、抽出したユーザ名に対応付けて抽出したパスワードが記録されているか判定する（ステップＳ２２）。サーバ装置１００は、ユーザ・パスワード対応ＤＢ２１を、抽出したユーザ名をもとに検索し、抽出したユーザ名に対応付けて記録されているパスワードと、抽出したパスワードが一致するか判定する。
【００７９】
ステップＳ２２で、抽出したユーザ名に対応付けて抽出したパスワードが記録されていないと判定した場合（ステップＳ２２：ＮＯ）、サーバ装置１００は、アクセスを拒否する旨をアプリケーション３１に送信する（ステップＳ２７）。その後、サーバ装置１００は、サインイン要求の認証処理を終了する。
【００８０】
一方、ステップＳ２２で、抽出したユーザ名に対応付けて抽出したパスワードが記録されていると判定した場合（ステップＳ２２：ＹＥＳ）、サーバ装置１００は、アクセストークンを発行する（ステップＳ２３）。サーバ装置１００は、アクセストークンのキーおよび認証文字列を生成し、連結することにより、アクセストークンを発行する。
【００８１】
次にサーバ装置１００は、アクセスへの許可と、発行したアクセストークンとをアプリケーション３１に送信する（ステップＳ２４）。サーバ装置１００は、アクセスを許可する旨を示す信号と、ステップＳ２３で発行したアクセストークンとをアプリケーション３１に送信する。
【００８２】
次にサーバ装置１００は、発行したアクセストークンに、有効期限を付して記録する（ステップＳ２５）。サーバ装置１００は、発行したアクセストークンと、有効期限がいつまでであるかを示す情報と、アプリケーション３１を示すアプリケーションＩＤと、アプリケーション３１が稼働している端末装置（端末装置２００）を示す端末識別符号とを連結させ、一つのレコードとしてアクセストークンＤＢ２２に記録する。
【００８３】
次にサーバ装置１００は、端末識別符号が同じである他のアクセストークンの有効期限を延長する（ステップＳ２６）。サーバ装置１００は、アクセストークンＤＢ２２から、端末装置２００の端末識別符号が記録されたレコードをすべて読み出す。サーバ装置１００は、読み出したレコードのうち、ステップＳ２５で記録されたレコード以外のレコードについて、記録されている有効期限を延長する。ステップＳ２６を終えると、サーバ装置１００はサインイン要求の認証処理を終了する。
【００８４】
ここまで、サーバ装置１００がアプリケーション３１からサインイン要求を受信した場合の認証処理について説明した。ここから、図８を参照し、サーバ装置１００がアプリケーション３１からアクセストークンによるアクセス要求を受信した場合の認証処理について説明する。サーバ装置１００は、アプリケーション３１からアクセス要求を受信すると、図８に示すアクセス要求の認証処理を開始する。
【００８５】
アクセス要求の認証処理の最初に、サーバ装置１００は、受信したアクセス要求の送信元である端末装置の端末識別符号を特定する（ステップＳ３１）。サーバ装置１００は、アクセス要求から、送信元端末装置（端末装置２００）を示す端末識別符号を抽出する。
【００８６】
次にサーバ装置１００は、受信したアクセス要求からアクセストークンを抽出する（ステップＳ３２）。サーバ装置１００は、受信したアクセス要求から、アクセストークンにあたる部分を抽出する。
【００８７】
次にサーバ装置１００は、抽出したアクセストークンが、有効にアクセストークンＤＢ２２に記録されているか否かを判定する（ステップＳ３３）。サーバ装置１００は、ステップＳ３２で抽出したアクセストークンをアクセストークンＤＢ２２から読み出し、そのアクセストークンに付与されている有効期限が経過しているか否かを判定する。サーバ装置１００は、（１）抽出されたアクセストークンがアクセストークンＤＢ２２に記録されていない場合、および、（２）抽出されたアクセストークンがアクセストークンＤＢ２２に記録されているが、すでに有効期限が経過している場合には、抽出したアクセストークンが、有効にアクセストークンＤＢ２２に記録されていないと判定する。
【００８８】
ステップＳ３３で、抽出したアクセストークンが、有効にアクセストークンＤＢ２２に記録されていないと判定した場合（ステップＳ３３：ＮＯ）、サーバ装置１００は、アクセスを拒否する旨をアプリケーション３１に送信する（ステップＳ３６）。その後、サーバ装置１００は、アクセス要求の認証処理を終了する。
【００８９】
一方、ステップＳ３３で、抽出したアクセストークンが、有効にアクセストークンＤＢ２２に記録されていると判定した場合（ステップＳ３３：ＹＥＳ）、サーバ装置１００は、アクセスの許可をアプリケーション３１に送信する（ステップＳ３４）。サーバ装置１００は、アクセスを許可する旨を示す信号をアプリケーション３１に送信する。
【００９０】
次にサーバ装置１００は、ステップＳ３１で特定した端末識別符号の全てのアクセストークンの有効期限を延長する（ステップＳ３５）。サーバ装置１００は、アクセストークンＤＢ２２から、ステップＳ３１で特定した端末識別符号が記録されたレコードをすべて読み出す。サーバ装置１００は、読み出したすべてのレコードについて、記録されている有効期限を延長する。ステップＳ３５を終えると、サーバ装置１００はアクセス要求の認証処理を終了する。
【００９１】
ここまで述べた２つの認証処理（サインイン要求による認証処理、およびアクセス要求による認証処理）により、サーバ装置１００がアプリケーション３１を認証すると、サーバ装置１００は、アプリケーション３１と同じ端末装置（端末装置２００）で動作するアプリケーション３２および３３のアクセストークンの有効期限を延長する。これにより、ユーザＵが、アプリケーション３２または３３でサービスを受ける場合のユーザ名およびパスワードの入力を省略できる。
【００９２】
本実施の形態では、アクセストークンの有効期限はサーバ装置１００において管理されるため、端末装置２００で動作するアプリケーションの間での情報の共有は不要である。そのため、端末装置２００においてアプリケーションの間でのメモリ共有が制限されており、アプリケーション３１と３２が同一のデータにアクセスすることができない環境下でも、サーバ装置１００は、アプリケーション３１の認証に伴ってアプリケーション３２に発行されたアクセストークンの有効期限を延長できる。
【００９３】
ここまで、本発明の実施の形態について説明したが、ここまで述べた内容に限定されない。例として、以下に述べるような変形も可能である。
【００９４】
図８に示したアクセス要求の認証処理では、サーバ装置１００は、ステップＳ３３でアクセストークンが有効にアクセストークンＤＢ２２に記録されていないと判定すると、アクセスを拒否する旨をアプリケーション３１に送信し（ステップＳ３６）、処理を終了する。しかし、サーバ装置１００は、単にアクセスを拒否するだけでなく、送信元であるアプリケーション３１に対してサインイン要求を送信すべき旨を指示するものであってもよい。
【００９５】
アプリケーション３１は、記録しているアクセストークンの有効期限に関する情報を取り扱っておらず、従って、アクセストークンの有効期限が経過しても、そのままアクセストークンを保持している。そこで、アプリケーション３１が有効期限の経過したアクセストークンをサーバ装置１００に送信した場合には、サーバ装置１００がサインイン要求を送信すべき旨を指示することにより、アプリケーション３１に、保持しているアクセストークンがすでに無効であることを通知する。アプリケーション３１は、記録しているアクセストークンを消去したうえで、ユーザにユーザ名とパスワードの入力を求め、入力されたユーザ名とパスワードを指定するサインイン要求をサーバ装置１００に送信する。アプリケーション３１は、サインイン要求により認証されることで、サーバ装置１００から有効なアクセストークンを受け取ることができる。
【００９６】
また、サーバ装置１００は、サインイン要求を送信すべき旨を指示する際に、（アクセストークンが有効期限の範囲内でないと記録されている場合には）アクセストークンＤＢ２２の当該アクセストークンを示すレコードから、ユーザ名を抽出し、抽出したユーザ名をアプリケーション３１に送信するものであってもよい。端末装置２００は、ユーザにユーザ名とパスワードの入力を求めるときに、受信したユーザ名を提示することで、どのユーザ名でサインインすればよいかをユーザに示すことが可能となる。
【００９７】
本実施の形態にかかるサーバ装置１００は、アプリケーション３１からのアクセス要求（またはサインイン要求）を認証した場合に、同じ端末装置（端末装置２００）で動作する他のアプリケーション（アプリケーション３２）に発行したアクセストークンの有効期限を延長する。このときに、有効期限を延長する形態としては、任意のものが考えられる。
【００９８】
例えば、サーバ装置１００が、アプリケーション３１からのアクセス要求を認証し、アプリケーション３１に発行したアクセストークンに付与された有効期限を第１の期間分延長し、その結果、アプリケーション３１に付与された有効期限が第１の期限に設定されたとする。また、延長する前には、アプリケーション３１に発行したアクセストークンに付与された有効期限の残余期間が第２の期間であったとする。この時に、サーバ装置１００がアプリケーション３２に発行されたアクセストークンの有効期限を、以下のような手法で延長するものであってもよい。
（１）アプリケーション３１に発行されたアクセストークンに新たに設定された延長期限（第１の期限）と同じ日時に設定する。
（２）アプリケーション３１に発行されたアクセストークンに延長された期間（第１の期間）に相当する期間、延長する。
（３）アプリケーション３１に発行されたアクセストークンに付与された有効期限の長さが、サーバ装置１００による延長によって、第１の倍率（第１の倍率＝（第１の期間＋第２の期間）／第２の期間）となった場合、有効期限における残余期間が延長前に比べて前記第１の倍率となるように延長する。
【００９９】
（１）の手法での一例として、アプリケーション３１に発行されたアクセストークンに、サーバ装置１００が新たな有効期限として２０１６年３月３１日を設定したとする。この場合、サーバ装置１００は、アプリケーション３２に発行されたアクセストークンにも、有効期限として同じ日時（２０１６年３月３１日）を設定する。
【０１００】
（２）の手法での一例として、アプリケーション３１に発行されたアクセストークンの有効期限を、サーバ装置１００が１０日間延長したとする。この場合、サーバ装置１００は、アプリケーション３２に発行されたアクセストークンの有効期限を、同じ期間（１０日間）延長する。
【０１０１】
（３）の手法での一例として、アプリケーション３１に発行されたアクセストークンの有効期限の残余期間が、延長前には５日間であり、サーバ装置１００がこれを１０日間延長したとする。この場合、サーバ装置１００は、アプリケーション３１に発行されたアクセストークンの有効期限を、３倍（＝１５／５）の倍率で延長している。サーバ装置１００は、アプリケーション３２に発行されたアクセストークンの有効期限の残余期間が、延長前に７日であった場合、当該有効期限における残余期間が延長前に比べて３倍となるように、１４日間延長する。
【０１０２】
本発明の実施の形態にかかるサーバ装置は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magnet Optical Disk）などのコンピュータ読取可能な記憶媒体に記憶して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行するソースプログラム解析システムを構成しても良い。さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを記憶しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０１０３】
また、本発明の実施の形態にかかるサーバ装置は、１台で実現されるものに限定されない。複数のコンピュータが上述した各部の機能を分担することにより、それらの複数のコンピュータからなる一つのシステムとして各機能を提供するものであってもよい。
【０１０４】
ここまで本発明の好ましい実施の形態について詳述したが、本発明はかかる特定の実施の形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【０１０５】
１０：認証部
１１：サインイン認証部
１２：アクセストークン認証部
１３：サービス提供部
２１：ユーザ・パスワード対応ＤＢ
２２：アクセストークンＤＢ
３１：アプリケーション
３１ａ：サービス受付部
３１ｂ：認証部
３１ｃ：アクセストークン
３２：アプリケーション
３３：アプリケーション
１００：サーバ装置
１１０：制御部
１１１：ＣＰＵ
１１２：ＲＯＭ
１１３：ＲＡＭ
１２０：記録装置
１３０：操作デバイス
１４０：ディスプレイ
１５０：ネットワークインターフェース
１９０：内部バス
２００：端末装置
２１０：制御部
２１１：ＣＰＵ
２１２：ＲＯＭ
２１３：ＲＡＭ
２２０：記録装置
２３０：タッチパネル
２５０：ネットワークインターフェース
２９０：内部バス
Ｕ：ユーザ
【図１】
2017208305.tif 000003
【図２】
2017208305.tif 000004
【図３】
2017208305.tif 000005
【図４】
2017208305.tif 000006
【図５】
2017208305.tif 000007
【図６】
2017208305.tif 000008
【図７】
2017208305.tif 000009
【図８】
2017208305.tif 000010
【国際調査報告】
2017208305.tif 000011
2017208305.tif 000012
2017208305.tif 000013