(57)【要約】【課題】ユーザ自身が事前に登録した個人情報によらずに、ユーザ情報のヒントを出す先のユーザがだれであるかをある程度絞り込むことができる方式を提供する。【解決手段】操作履歴ＤＢ１２５には、各連携システム２００で各ユーザが実行した操作の操作履歴が蓄積されている。ユーザがある連携システム２００へのログインに失敗した場合、質問生成部１５２は、操作履歴に関する質問を生成してユーザに提供し、ユーザから回答を得る。回答評価部１５６は、その回答の内容に対して適合度合いが高い操作履歴を操作履歴ＤＢ１２５からいくつか求める。マスキング部１５８は、求められた操作履歴に含まれるユーザＩＤの一部をマスクする。ヒント処理部１５０は、マスク済みのユーザＩＤをヒントとしてそのユーザに提供する。【選択図】図１
2018028759.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
システムから各登録ユーザの操作履歴を取得する履歴取得手段、
ユーザ情報のヒントを要求する要求元ユーザに対して、前記システムの操作履歴に関する質問を提示し、その質問に対する回答の入力を受け付ける質問提示手段、
前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記操作履歴取得手段が取得した前記各登録ユーザの前記操作履歴に適合している度合いに応じて前記要求元ユーザに対応する前記登録ユーザの候補を特定し、特定した候補のユーザ情報のヒントを前記要求元ユーザに提供するヒント提供手段、
として機能させるためのプログラム。
【請求項２】
前記ヒント提供手段は、前記ヒントとして、前記特定した候補の前記ユーザ情報の一部を隠したものを提供するものであり、前記適合している度合いが低いほど前記ユーザ情報のうち隠す部分を多くする、ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記要求元ユーザからユーザ情報の入力を受けつける手段、を更に含み、
前記質問提示手段は、入力されたユーザ情報に応じて質問の内容を決定して提示する、ことを特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記質問提示手段は、前記入力されたユーザ情報に応じて、前記要求元ユーザに対応する登録ユーザの一次候補を特定し、特定した一次候補のユーザの操作履歴に基づいて質問の内容を決定して提示し、
前記ヒント提示手段は、前記一次候補の中から、前記質問提示手段が受け付けた前記要求元ユーザからの回答に基づいて、前記候補を特定する、
ことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記履歴取得手段は、複数の前記システムからそれぞれ各登録ユーザの操作履歴を取得し、
前記ヒント提供手段は、前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記複数のシステムのうちの少なくとも１つのシステムから取得された前記各登録ユーザの操作履歴に適合している度合いに応じて前記要求元ユーザに対応する前記候補を特定する、
ことを特徴とする請求項１〜４のいずれか１項に記載のプログラム。
【請求項６】
コンピュータを、
同一の登録ユーザが複数の前記システムのそれぞれに登録したユーザ情報同士の対応付けの情報を記憶するユーザ情報記憶手段、
として更に機能させると共に、
前記ヒント提供手段は、前記複数のシステムのうちの対象システムに前記要求元ユーザが登録したユーザ情報のヒントを提供するものであり、前記特定した候補に対応する前記対象システムにおけるユーザ情報を前記ユーザ情報記憶手段から求め、求めたユーザ情報のヒントを提供する、
ことを特徴とする請求項５に記載のプログラム。
【請求項７】
前記質問提示手段は、前記複数のシステムのうち、要求されたユーザ情報の対象である第１のシステムとは異なる第２のシステムでの操作履歴についての質問を前記要求元ユーザに提示し、
前記ヒント提供手段は、前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記第２のシステムから取得された前記各登録ユーザの操作履歴に適合している度合いに応じて前記要求元ユーザに対応する前記候補を特定する、
ことを特徴とする請求項５又は６に記載のプログラム。
【請求項８】
システムから各登録ユーザの操作履歴を取得する履歴取得手段と、
ユーザ情報のヒントを要求する要求元ユーザに対して、前記システムの操作履歴に関する質問を提示し、その質問に対する回答の入力を受け付ける質問提示手段と、
前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記操作履歴取得手段が取得した前記各登録ユーザの前記操作履歴に適合している度合いに応じて、前記要求元ユーザに対応する前記登録ユーザの候補を特定し、特定した候補のユーザ情報のヒントを前記要求元ユーザに提供する提供手段と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
特許文献１に開示されたシステムでは、複合機から一時的に利用するカード番号ユーザＩＤと複合機のＩＰアドレスを含む登録要求を受け付けて認証テーブルに登録しておく。そして、一時的に利用するカード番号で認証された場合に、登録されているＩＰアドレスと一致する複合機からの認証であれば認証を許可する。
【０００３】
特許文献２に開示されたシステムでは、認証サーバは、ユーザ端末からのパスワード再発行要求に応じて、一時的に用いられる一時パスワードの入力を要求する手段と、一時パスワードの受信に応じて、初期化パスワードを生成する手段とを具える。生成された初期化パスワードは一時パスワードで暗号化され、当該ユーザＩＤの電子メールアドレスに送信する。電子メールが送信された後、所定の時間期間内にユーザ端末から復号化した初期化パスワードが入力されると、復号化された初期化パスワードを検証し、正当な権限を有する者からのパスワード再発行要求であると認定し、ユーザ情報データベースの当該ユーザのパスワードを、ユーザにより入力された新たなパスワードに書き換える。
【０００４】
また、ユーザが、ユーザＩＤ及びパスワードに対応付けて、秘密の質問とその回答をシステムに登録しておき、ログイン不可の場合にシステムがその秘密の質問をユーザに提示するシステムがある。この質問にユーザが正解した場合に、システムは、パスワードの再設定画面を提供する。この仕組みは、誤ったユーザＩＤが入力された場合には機能しない。
【０００５】
また、ユーザがユーザＩＤ又はパスワードを忘れてシステムにログインできない場合に、システムが、予め登録されているそのユーザの電子メールアドレスに対してそのユーザのユーザＩＤを通知し、パスワードの再設定を促すことが行われている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−０１４２９２号公報
【特許文献２】特開２００８−２６９３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えばユーザが複数のシステムに異なるユーザＩＤでユーザ登録している場合にはユーザＩＤやパスワードを忘れる可能性が高くなるが、ユーザＩＤが思い出せればそれに対応するパスワードを思い出せる可能性は少なくない。したがって、ユーザに対してユーザＩＤのヒントを提供できれば、そのユーザが認証をクリアできる可能性が高まる。
【０００８】
ユーザに対してユーザ情報のヒントを出すには、システムは、そのユーザがだれであるかある程度絞り込む必要がある。この絞込のために、電子メールアドレスや生年月日等、事前に登録されたそのユーザの個人情報の入力を求める方式も考えられるが、個人情報は第三者に知られている可能性が高いので、その方式にはセキュリティ上の問題がある。
【０００９】
本発明は、ユーザ自身が事前に登録した個人情報によらずに、ユーザ情報のヒントを出す先のユーザがだれであるかをある程度絞り込むことができる方式を提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、コンピュータを、システムから各登録ユーザの操作履歴を取得する履歴取得手段、ユーザ情報のヒントを要求する要求元ユーザに対して、前記システムの操作履歴に関する質問を提示し、その質問に対する回答の入力を受け付ける質問提示手段、前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記操作履歴取得手段が取得した前記各登録ユーザの前記操作履歴に適合している度合いに応じて前記要求元ユーザに対応する前記登録ユーザの候補を特定し、特定した候補のユーザ情報のヒントを前記要求元ユーザに提供するヒント提供手段、として機能させるためのプログラムである。
【００１１】
請求項２に係る発明は、前記ヒント提供手段は、前記ヒントとして、前記特定した候補の前記ユーザ情報の一部を隠したものを提供するものであり、前記適合している度合いが低いほど前記ユーザ情報のうち隠す部分を多くする、ことを特徴とする請求項１に記載のプログラムである。
【００１２】
請求項３に係る発明は、前記要求元ユーザからユーザ情報の入力を受けつける手段、を更に含み、前記質問提示手段は、入力されたユーザ情報に応じて質問の内容を決定して提示する、ことを特徴とする請求項１又は２に記載のプログラムである。
【００１３】
請求項４に係る発明は、前記質問提示手段は、前記入力されたユーザ情報に応じて、前記要求元ユーザに対応する登録ユーザの一次候補を特定し、特定した一次候補のユーザの操作履歴に基づいて質問の内容を決定して提示し、前記ヒント提示手段は、前記一次候補の中から、前記質問提示手段が受け付けた前記要求元ユーザからの回答に基づいて、前記候補を特定する、ことを特徴とする請求項３に記載のプログラムである。
【００１４】
請求項５に係る発明は、前記履歴取得手段は、複数の前記システムからそれぞれ各登録ユーザの操作履歴を取得し、前記ヒント提供手段は、前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記複数のシステムのうちの少なくとも１つのシステムから取得された前記各登録ユーザの操作履歴に適合している度合いに応じて前記要求元ユーザに対応する前記候補を特定する、ことを特徴とする請求項１〜４のいずれか１項に記載のプログラムである。
【００１５】
請求項６に係る発明は、コンピュータを、同一の登録ユーザが複数の前記システムのそれぞれに登録したユーザ情報同士の対応付けの情報を記憶するユーザ情報記憶手段として更に機能させると共に、前記ヒント提供手段は、前記複数のシステムのうちの対象システムに前記要求元ユーザが登録したユーザ情報のヒントを提供するものであり、前記特定した候補に対応する前記対象システムにおけるユーザ情報を前記ユーザ情報記憶手段から求め、求めたユーザ情報のヒントを提供する、ことを特徴とする請求項５に記載のプログラムである。
【００１６】
請求項７に係る発明は、前記質問提示手段は、前記複数のシステムのうち、要求されたユーザ情報の対象である第１のシステムとは異なる第２のシステムでの操作履歴についての質問を前記要求元ユーザに提示し、前記ヒント提供手段は、前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記第２のシステムから取得された前記各登録ユーザの操作履歴に適合している度合いに応じて前記要求元ユーザに対応する前記候補を特定する、ことを特徴とする請求項５又は６に記載のプログラムである。
【００１７】
請求項８に係る発明は、システムから各登録ユーザの操作履歴を取得する履歴取得手段と、ユーザ情報のヒントを要求する要求元ユーザに対して、前記システムの操作履歴に関する質問を提示し、その質問に対する回答の入力を受け付ける質問提示手段と、前記質問提示手段が受け付けた前記要求元ユーザからの回答が、前記操作履歴取得手段が取得した前記各登録ユーザの前記操作履歴に適合している度合いに応じて、前記要求元ユーザに対応する前記登録ユーザの候補を特定し、特定した候補のユーザ情報のヒントを前記要求元ユーザに提供する提供手段と、を有する情報処理装置である。
【発明の効果】
【００１８】
請求項１、２又は８に係る発明によれば、ユーザ自身が事前に登録した個人情報によらずに、ユーザ情報のヒントを出す先のユーザがだれであるかをある程度絞り込み、ユーザ情報のヒントを出すことができる。
【００１９】
請求項３に係る発明によれば、一律の質問に基づいて候補を特定する場合よりも、候補の特定の精度を高めることができる。
【００２０】
請求項４に係る発明によれば、一次候補を特定せずに最終的な候補の特定を行う場合に比べて、より高速な特定が可能になる。
【００２１】
請求項５に係る発明によれば、あるシステムについてのユーザ情報のヒントを提供する際、そのシステムにおいてユーザの操作履歴がない場合でも、他のシステムでの操作履歴からそのユーザがだれであるのかをある程度絞り込むことができる。
【００２２】
請求項６に係る発明によれば、対象システムにおけるユーザ情報のヒントを提供することができる。
【００２３】
請求項７に係る発明によれば、第１のシステムに要求元ユーザの操作履歴がない場合でも、第２のシステムにおける要求元ユーザの操作履歴により、その要求元ユーザがだれであるのかある程度絞り込むことができる。
【図面の簡単な説明】
【００２４】
【図１】実施形態のシステム構成の例を示す図である。
【図２】連携システム管理テーブルの例を示す図である。
【図３】ユーザ管理テーブルの例を示す図である。
【図４】操作種別管理テーブルの例を示す図である。
【図５】ユーザごとの記録項目管理テーブルの例を示す図である。
【図６】操作履歴テーブルの例を示す図である。
【図７】認証システムの処理手順の例を示す図である。
【図８】質問用のウェブページの例を示す図である。
【図９】ユーザＩＤのヒントを示すウェブページの例を示す図である。
【発明を実施するための形態】
【００２５】
図１を参照して、本実施形態の方式が適用されるシステムの例を説明する。
【００２６】
認証システム１００は、複数の連携システム２００に対して認証サービスを提供するシステムであり、本実施形態のＩＤ（識別情報）ヒント提供機能を備えている。ＩＤヒント提供機能は、ユーザＩＤのヒントを提供する機能である。この機能では、ユーザに対して連携システム２００における操作履歴に関する質問を行い、その質問に対するユーザの回答がユーザＩＤに対応する操作履歴に合致している程度に応じて、そのユーザに対してユーザＩＤのヒントを出す。
【００２７】
連携システム２００は、ユーザに対してウェブサービス等の方法で情報処理サービスを提供する提供するシステムである。連携システム２００は、そのサービスをユーザに提供する際のユーザ認証について認証システム１００と連携しており、ユーザ認証を認証システムに委託している。すなわち、あくまで一例であるが、この例では、連携システム２００に登録された各ユーザのユーザＩＤとパスワードの組が認証システム１００に登録され、連携システム２００を利用しようとするユーザを、認証システム１００がそれら登録された情報を用いて認証する。連携システム２００が提供するサービスそのものは、この実施形態の方式とは直接関係が無く、特に制限はない。
【００２８】
ユーザ側装置３００は、インターネットやイントラネット等のネットワーク経由で連携システム２００を利用するためにユーザが操作する装置である。例えば，パーソナルコンピュータ、スマートフォン、複合機、キオスク端末等がその例である。
【００２９】
認証システム１００において管理情報登録部１１０は、本実施形態のＩＤヒント提供機能のための管理情報を連携システム２００から収集し、管理情報ＤＢ（データベース）１１５及び操作履歴ＤＢ１２５に登録する。
【００３０】
管理情報ＤＢ１１５には、図２に例示する連携システム管理テーブルと、図３に例示するユーザ管理テーブルとが保持されている。
【００３１】
図２に例示する連携システム管理テーブルには、認証システム１００が各連携システム２００に一意的に付与したシステムＩＤに対応付けて、各連携システム２００のシステム名が登録されている。このほか、各連携システム２００のＵＲＬその他、認証システム１００が各連携システム２００と本実施形態の制御のための情報のやりとりを行うのに必要な情報が登録されていてもよい。これらの情報は、例えば認証システム１００の管理者が、認証システム１００に連携システム２００を登録する際に、管理情報登録部１１０を用いて連携システム管理テーブルに登録する。
【００３２】
図３に例示するユーザ管理テーブルには、各ユーザが各連携システム２００に登録しているユーザＩＤに対応付けて、そのユーザの共通ユーザＩＤと、そのユーザがそのユーザＩＤを用いている連携システム２００のシステムＩＤと、が登録されている。共通ユーザＩＤは、認証システム１００がユーザごとに付与した一意的なユーザＩＤである。図示例では、例えば共通ユーザＩＤ「００００１」を持つ同じユーザが、連携システム「system1」では「54321」を、「system2」では「takehiro」を、「system3」では「ichikawa」を、それぞれユーザＩＤとして用いている。例えば、ユーザ自身が、認証システム１００にログインし、各連携システム２００のユーザＩＤを、管理情報登録部１１０を用いてユーザ管理テーブルに登録すればよい。
【００３３】
操作履歴ＤＢ１２５には、図４に例示する操作種別管理テーブルと、図５に例示するユーザごとの記録項目管理テーブルと、図６に例示する操作履歴テーブルとが保持されている。
【００３４】
図４に示す操作種別管理テーブルは、各操作種別の識別情報（操作種別ＩＤ）に対応付けて、各連携システム２００でその操作種別に対応する操作の識別情報（操作名）が登録されている。例えば操作種別「category1」に対応する連携システム「system1」での操作は「購買」である。図では連携システム「system1」での操作名のみ例示したが、他の連携システムについても同様に各操作種別に対応する操作名が操作種別管理テーブルに登録される。このテーブルにより、異なる連携システム２００において異なる操作名で管理されている同種の操作が、認証システム１００（特にヒント処理部１５０）にて同種の操作として認識される。操作種別管理テーブルの情報は、例えば認証システム１００の管理者が、認証システム１００に連携システム２００を登録する際に、管理情報登録部１１０を用いて登録する。
【００３５】
図５に示す記録項目管理テーブルは、ユーザがどの連携システム２００におけるどの操作の履歴を操作履歴ＤＢ１２５に記録するかを設定したテーブルである。図５の例は、ユーザＩＤ「００００１」のユーザについての記録項目管理テーブルである。この例では、このユーザについては、「system1」で行われた「登録」、「購買」、「閲覧」の各操作を記録し、「system2」及び「system3」で行われた「登録」、「閲覧」、「取得」の各操作を記録する。このような記録項目管理テーブルがユーザごとに登録されている。各連携システム２００でのどの操作を記録するかは、例えばユーザ自身が設定すればよい。
【００３６】
図６に示す操作履歴テーブルは、各ユーザが各連携システム２００で実行した操作の操作履歴の情報を保持するテーブルである。図示例では、個々の操作の操作履歴には、その操作を実行したユーザの共通ユーザＩＤ、その操作が該当する操作種別ＩＤ、その操作の実行日時、その操作が実行された連携システム２００のシステムＩＤ、その操作の対象の名称（「操作対象」）が含まれる。例えば図６のテーブルの一番上の操作履歴は、共通ユーザＩＤ「００００１」が、２０１５年１２月１０日１５時３８分０秒に、連携システム「system2」（「文書管理サービスＡ」）で、文書「sample.docx」を操作対象として、「category1」の操作（「登録」）を実行したことを示す。なお、図示は省略したが、操作履歴テーブルには、共通ユーザＩＤの他に、当該操作が行われた連携システム２００でのユーザＩＤが登録されていてもよい。
【００３７】
図１の説明に戻り、操作履歴記録部１２０は、各連携システム２００で各ユーザが行った操作の操作履歴を操作履歴ＤＢ１２５内の操作履歴テーブルに登録する。操作履歴の記録のタイミングは特に限定されない。例えば、各連携システム２００でユーザが操作を行う都度、連携システム２００がその操作の履歴情報を操作履歴記録部１２０に送り、操作履歴ＤＢ１２５に記録してもよい。また、操作履歴記録部１２０が例えば定期的（毎日定時等）に、各連携システム２００から、前回の収集時点以降に行われた操作の履歴情報群を収集し、操作履歴ＤＢ１２５に記録してもよい。
【００３８】
操作履歴記録部１２０は、連携システム２００から操作の履歴情報を受け取ると、送信元であるその連携システム２００の名前に対応するシステムＩＤを連携システム管理テーブル（図２）から判定する。またその履歴情報に含まれる操作者のユーザＩＤに対応する共通ユーザＩＤをユーザ管理テーブル（図３）から求める。そして、その履歴情報に含まれる操作名がそのユーザにとって記録対象であるかどうかを、そのユーザＩＤに対応する記録項目管理テーブル（図５）から判定する。記録対象でない場合はその操作履歴は操作履歴テーブルには記録しない。記録対象である場合は、その操作名に対応する操作種別ＩＤを操作種別管理テーブル（図４）から求め、求めた共通ユーザＩＤ、操作種別ＩＤ、連携システムのシステムＩＤ、その履歴情報に含まれる実行日時及び操作対象の情報を含む操作履歴レコードを生成し、これを操作履歴テーブルに登録する。
【００３９】
ＵＩ処理部１３０は、ユーザ側装置３００を操作するユーザに対して、認証システム１００の操作のためのＵＩ（ユーザインタフェース）画面を提供し、それらＵＩ画面に対するユーザからの操作を受け付ける。
【００４０】
認証部１４０は、連携システム２００の利用を要求したユーザに対してユーザ認証を実行する。認証部１４０は、利用先である連携システム２００についての当該ユーザの認証情報（ユーザＩＤとパスワードの組）の入力をユーザに求め、この求めに応じてユーザから入力された認証情報が、認証部１４０に登録されている当該ユーザのその連携システム２００についての認証情報に合致するか否かを判定する。そして、合致すれば認証成功としてそのユーザにその連携システム２００の利用を許可し、合致しない場合は認証失敗とする。
【００４１】
認証失敗の場合、自動的に、あるいはユーザがヒント情報を希望した場合、ヒント処理部１５０が動作する。ヒント処理部１５０は、認証に失敗したユーザに対してユーザＩＤのヒントを提供する。認証に失敗した場合、ユーザＩＤ又はパスワードの少なくとも一方が間違っているのであるが、ユーザＩＤが間違っている場合を考慮して、ユーザＩＤのヒントを提供するのである。複数の連携システム２００にユーザ登録しているユーザの場合、それら複数の連携システム２００で同じユーザＩＤを取得できることは稀であり、例えば使用頻度が低い連携システム２００に登録したユーザＩＤは忘れやすい。正しいユーザＩＤが分かれば、ユーザがそれに対応するパスワードを思い出せる場合も多く、パスワードの再設定などの手間がかかる作業が不要にできる可能性が高まる。
【００４２】
ヒント処理部１５０は、操作履歴ＤＢ１２５に保持された操作履歴群に基づいて、そのユーザがどのユーザＩＤに対応する者である可能性が高いかを判定し、判定したユーザＩＤのヒントをユーザに提供する。
【００４３】
ヒント処理部１５０は、ＩＤ候補抽出部１５２、質問生成部１５４、回答評価部１５６、マスキング部１５８を含む。
【００４４】
ＩＤ候補抽出部１５２は、認証が失敗したユーザ（以下「対象ユーザ」と呼ぶ）の正しいユーザＩＤの候補を管理情報ＤＢ１１５のユーザ管理テーブル（図３）から抽出する。抽出する候補には、例えば以下のものが含まれる。
（１）失敗した認証の際に対象ユーザが入力したユーザＩＤ（以下「入力ＩＤ」と呼ぶ）そのもの。ただし、入力ＩＤの文字列に一致するユーザＩＤがユーザ管理テーブルの「連携システムでのユーザＩＤ」の欄に１つも存在しない場合は、入力ＩＤは候補として抽出しなくてよい。
（２）入力ＩＤに対応する共通ユーザＩＤに対応する他のユーザＩＤ。例えば、図３の例で入力ＩＤが「takehiro」であった場合、「54321」及び「ichikawa」が、同じ共通ユーザＩＤ「00001」に対応する他のユーザＩＤであり、これらがこの基準（２）による候補として抽出される。なお、入力ＩＤの文字列に一致するユーザＩＤがユーザ管理テーブルの「連携システムでのユーザＩＤ」の欄に１つも存在しない場合は、基準（２）による候補も抽出しなくてよい。
（３）ユーザ管理テーブルの「連携システムでのユーザＩＤ」にあるユーザＩＤのうち、入力ＩＤに文字列として類似しているもの。２つの文字列の類似度合いを判別するアルゴリズムは従来からいくつも提案されている。例えばレーベンシュタイン距離がその一例である。ＩＤ候補抽出部１５２は、そのようなアルゴリズムを用いて、ユーザ管理テーブルの「連携システムでのユーザＩＤ」欄の各ユーザＩＤの入力ＩＤに対する類似度合いの指標値（例えばレーベンシュタイン距離）を求める。そして、類似度合いが閾値以上（レーベンシュタイン距離の場合は、その距離がある閾値以下）であるユーザＩＤを、この基準（３）による候補として抽出する。
（４）ユーザ管理テーブルの「連携システムでのユーザＩＤ」にあるユーザＩＤのうち、上記基準（３）に従って抽出された候補と共通ユーザＩＤを同じくするもの。例えば、図３の例で入力ＩＤが「Fiji」であり、これに類似する「Fuji」が上記基準（３）で候補として抽出されたとする。この場合、「12345」及び「Taro」が、「Fuji」と同じ共通ユーザＩＤ「00002」に対応するものとして、この基準（４）での候補として抽出される。
【００４５】
なお、ＩＤ候補抽出部１５２は、抽出する候補ＩＤを、対象ユーザがログインしようとして認証が失敗した連携システム２００（「対象システム」と呼ぶ）に登録されたユーザＩＤに限定してもよい。
【００４６】
質問生成部１５４は、対象ユーザに対して出す、操作履歴に関する質問を生成する。質問は１つであってもよいが、複数の方がユーザ特定の精度の向上が見込める。質問の内容は、例えば、直近の操作を行った日時やその操作の種別、操作対象等を問うものであってもよい。質問の材料には、操作履歴テーブル（図６）に記録されているどの項目の情報を用いてもよい。質問の形式には特に限定はなく、選択式、記述式等のどの形式のものであってもよい。質問の範囲は、認証に失敗した連携システム２００での操作履歴に限定してもよいし、すべての連携システム２００の操作履歴まで広げてもよい。質問生成部１５４は、予め用意した固定の質問を対象ユーザに出題してもよいし、候補抽出部１５２が抽出したユーザＩＤの候補（以下「候補ＩＤ」と呼ぶ）に応じて質問の内容を調整してもよい。例えば、選択式の質問において、候補ＩＤも対応する操作履歴における、その質問に関する履歴項目の値を選択肢の１つとして組み込む等である。具体例で言えば、対象ユーザが認証に失敗したのが連携システム「system2」であり、候補抽出部１５２で「Fuji」が候補ＩＤとして抽出された場合に、最近連携システム「system2」で購入した物品を問う質問の選択肢に、「Fuji」が「system2」で最後に購入した物品の名称を挙げる等である。
【００４７】
質問生成部１５４が生成した質問群は、例えばウェブページの形で、ＵＩ処理部１３０を介して対象ユーザのユーザ側装置３００に提供される。ユーザは、その質問群に対して、ウェブページ内の回答欄に回答を入力し、回答結果をＵＩ処理部１３０に返す。
【００４８】
回答評価部１５６は、質問生成部１５４の質問に対する対象ユーザからの回答から、各候補ＩＤがその対象ユーザに当てはまる度合い（対象ユーザへの「適合度」と呼ぶ）を計算する。適合度の計算の例は後で説明する。計算された各候補ＩＤの適合度は、マスキング部１５８に渡される。
【００４９】
マスキング部１５８は、ユーザに提示する各候補ＩＤの文字列に対して、回答評価部１５６から受け取った当該候補ＩＤの適合度に応じてマスキング処理を施す。マスキング処理とは、候補ＩＤの文字列のうちの一部の文字をマスクする（例えばその文字を黒塗りを示す記号に置き換える）処理のことである。マスキング部１５８は、対象ユーザに対する候補ＩＤの適合度が高い程、その候補ＩＤ中でマスクする文字の数を少なくする。またマスキング部１５８は、候補ＩＤのうち適合度が低すぎるもの（すなわち適合度が予め定めた足切り閾値以下のもの）は、ユーザに提示する対象から外してもよい。
【００５０】
ヒント処理部１５０は、マスキング部１５８が生成したマスキング処理済みの候補ＩＤの一覧を対象ユーザに対してヒントとして提示する。
【００５１】
次に、図７を参照して、認証システム１００の処理手順の一例を説明する。この手順では、まず認証部１４０が、対象ユーザから、ログイン先の連携システム２００の指定と、その連携システム２００における当該ユーザの認証情報（ユーザＩＤとパスワードの組み）の入力を受け付ける（Ｓ１０）。そして、そのユーザＩＤとパスワードの組が正しいかどうか、すなわちその組がその連携システム２００に登録されたいずれかのユーザのユーザＩＤとパスワードの組に合致するかどうかを判定する（Ｓ１２）。ユーザＩＤとパスワードの組が正しい場合、認証部１４０はそのユーザのその連携システム２００へのログインを許可し（Ｓ１３）、処理を終了する。
【００５２】
Ｓ１２の判定結果がＮｏ（認証失敗）の場合、この例では、ヒント処理部１５０が処理を開始する。この場合、候補抽出部１５２が、Ｓ１０で入力されたユーザＩＤをもとに、上に例示した基準のうちの１以上に従って候補ＩＤを抽出する（Ｓ１４）。次に質問生成部１５４が操作履歴に関する質問を示したウェブページをＵＩ処理部１３０経由でその対象ユーザのユーザ側装置３００に提供する（Ｓ１６）。
【００５３】
図８にこの質問のウェブページ５００の例を示す。このウェブページ５００は、認証が失敗した連携システム２００（「対象システム」）に対して対象ユーザが以前に行った操作についての、操作を行った日付、その操作の操作名、及び操作対象という３つの項目を質問するものである。このウェブページ５００には、回答欄として、日付入力欄５０２、時刻入力欄５０４、操作名入力欄５０６、及び操作対象入力欄５０８が含まれる。
【００５４】
日付入力欄５０２には、対象ユーザがその対象システムに以前行った操作のうちの１つについて、その操作を行った年月日を入力する。その欄に隣接するカレンダー呼出ボタンでカレンダーを呼び出し、そのカレンダーの中で特定の１日を選択すると、その日の日付がその欄に入力されるようにしてもよい。この例では、操作の日付は必須回答項目に指定されている。時刻入力欄５０４には、その操作を行ったおおよその時刻を入力する。時刻は任意の入力項目である。
【００５５】
操作名入力欄５０６には、日付入力欄５０２で入力した日付に行った操作の操作名を入力する。図示例では、操作名入力欄５０６は、対象システムで実行可能な操作の選択肢をプルダウンメニューの形で提供し、ユーザはその選択肢の中から自分が行った操作を選択する。図示例では、「購買」という操作名が入力されている。
【００５６】
操作対象入力欄５０８には、操作名入力欄５０６に入力した操作の操作対象を入力する。この入力は、例えば、キーボードから操作対象の名前を示す文字列を入力する形で行う。図示例では「メモリ ２ＧＢ」という文字列が入力されている。
【００５７】
対象ユーザは、ユーザ側装置３００の画面に表示されたウェブページ５００内の各入力欄に対して可能な範囲で入力を行った後、回答送信ボタン５１０を押下する。これにより、操作日付、操作名、操作対象の各質問項目に対する回答が、ユーザ側装置３００から認証システム１００のヒント処理部１５０に伝達される。
【００５８】
図７の説明に戻ると、回答評価部１５６は、Ｓ１６で提示した質問に対する回答を対象ユーザから取得する（Ｓ１８）と、それら各質問に対する回答が、各候補ＩＤの操作履歴に対して適合している度合い（適合度）を判定する（Ｓ２０）。そして、各候補ＩＤについて、それら各質問に対する回答についての適合度得点を合計して合計得点を求める（Ｓ２２）。
【００５９】
図８に例示したウェブページ５００内の質問群を例にとると、まず、回答評価部１５６は、各候補ＩＤについて、回答された操作日付に、その候補ＩＤが操作者に該当する操作が対象システムにて行われたかどうかを、操作履歴テーブル（図６）を参照して判定する。すなわち、操作履歴テーブル内に、その候補ＩＤに対応する共通ユーザＩＤを「共通ユーザＩＤ」欄に含み、かつ「実行日時」の日付が回答された操作日付に合致し、かつ「連携システムＩＤ」が対象システムのシステムＩＤに合致する操作履歴レコード（以下「候補レコード」と呼ぶ）があるかどうかを判定する。候補レコードが見つかれば、その候補ＩＤは、操作日付が正解の場合に与えられる予め定められた適合度得点を得る。候補レコードがなければ、その候補ＩＤは、その得点が得られない。なお、回答された操作日付が実行日時の日付と一致していなくても、ある程度近い場合に、正解の場合より低い得点をその候補ＩＤに与えてもよい。例えば、前後１日のずれならば、正解の場合の得点の半分を与える等である。
【００６０】
なお、ユーザ、連携システム、日付の組が適合する候補レコードが複数見つかる場合がある。このような場合には、候補レコードごとに適合度得点を求める。すなわち、１つの候補ＩＤが複数の候補レコードを持ち、その候補レコードにそれぞれ適合度得点が付与されることになる。これら複数の候補レコードは、後続の質問に対する回答により適合度得点が加点されていく。最終的には、それら複数の候補レコードの最高得点が、その候補ＩＤの適合度得点となる。
【００６１】
さて、ウェブページ５００に対して対象ユーザが更に操作時刻も回答した場合、操作日付についての適合度得点に対して、その回答された時刻に基づいて加点を行ってもよい。回答された時刻が、候補レコードの「実行日時」の時刻部分に近いほど、高い点数を加点する。
【００６２】
また、図８の例では、操作の日付を質問したが、ユーザが正確な日付を回答できない場合に、操作を行った期間（例えば「１２月の第２週」に操作した等）を回答できるようにしてもよい。日付でなく期間での回答が正解である場合（例えば候補レコード中の操作の日付が１２月８日であるのに対して、回答が「１２月の第２週」である場合）、日付が正解である場合よりも低い、予め定めた適合度得点を付与する。
【００６３】
次に、回答評価部１５６は、実行した操作についての回答を評価する。すなわち、各候補ＩＤの各候補レコードを調べ、回答された操作名に該当する操作種別ＩＤを含んだ候補レコードの適合度得点には、予め定めた点数を加点する。
【００６４】
そして、回答評価部１５６は、操作対象についての回答を評価する。すなわち、各候補ＩＤの各候補レコードを調べ、回答された操作対象に合致する操作対象を含んだ候補レコードの適合度得点に加点を行う。候補レコードが含む操作対象が回答された操作対象と完全に合致する場合にのみ加点してもよいし、完全に合致しなくても両者の類似度に応じた点数を加点してもよい。図８の例では、操作対象の質問に対する回答は選択肢ではなく自由記述で入力されるので、回答された操作対象が各候補レコード内の操作対象に合致するかどうか又は類似度は、自然言語認識技術により判定すればよい。
【００６５】
以上で、すべての回答についての候補レコードごとの適合度の合計得点が求められる。上では特に示さなかったが、質問ごとにその重要度に応じた得点配分を行ってもよい。例えば、操作日付、操作種別、操作対象の中で操作対象が最も重要であれば、回答された操作対象と合致する候補レコードに対する加点を、操作日時が合致する場合や操作種別が合致する場合の加点よりも大きい値とする等である。
【００６６】
そして、回答評価部１５６は、候補ＩＤごとに、その候補ＩＤに該当する各候補レコードの適合度の合計得点のうちの最高点を、その候補ＩＤの適合度とする。
【００６７】
図７の手順の説明に戻ると、回答評価部１５６は、求めた各候補ＩＤの適合度を、マスキング部１５８に渡す。マスキング部１５８は、各候補ＩＤの文字列のうちの一部の文字を、その候補ＩＤの適合度に応じてマスキングする（Ｓ２４）。適合度が高いほどマスクする文字の割合を低くするルールに従い、候補ＩＤの文字列のうちマスクする文字数を決定し、候補ＩＤの文字列の中でその文字数の文字を例えばランダムに選んでマスクする。また、マスキング部１５８は、適合度が足切り閾値以下の候補ＩＤについては、提示対象から削除してもよい。
【００６８】
ヒント処理部１５０は、マスキング部１５８によりマスクされた候補ＩＤを一覧表示したヒント画面を例えばウェブページの形で生成し、ＵＩ処理部１３０を介してそのヒント画面を対象ユーザのユーザ側装置３００に提供する（Ｓ２６）。一覧表示は、例えば適合度が高い順に候補ＩＤを並べる形で行う。ヒント画面６００の一例を図９に示す。この例では、２つの候補ＩＤ６０２が一部をマスクされた形で表示されている。
【００６９】
対象ユーザは、ヒント画面６００を見て、対象システム（そのユーザがログインしようとした連携システム２００）に登録した自分の正しいユーザＩＤのヒントを得る。そして、「認証画面に戻る」ボタン６０４を押下し、対象システムの利用のための認証画面を呼び出し、そのヒントにより分かったユーザＩＤと、これに対応するパスワードを入力する。
【００７０】
以上、１つの実施形態を説明したが、上記実施形態はあくまで１つの例に過ぎない。
【００７１】
例えば図８に例示した操作履歴に関する質問用のウェブページ５００には、操作履歴の具体的な内容に依存しない固定的な質問群が表示されていたが、これは一例に過ぎない。この代わりに、操作履歴の内容を反映した質問を対象ユーザに提示してもよい。例えば、対象システムに対して行った直近の操作の種別を問う質問の選択肢に、対象システムにおける各候補ＩＤに対応する直近の操作履歴レコードでの操作名を列挙する等である。
【００７２】
また質問は１つのウェブページ５００にまとめる必要はない。例えば、１つの質問用ウェブページに対してユーザが回答を行った後、その回答を反映した質問を表示した次の質問用ウェブページをユーザに提示してもよい。例えば、最初のページで直近の操作の日付とその操作の種別を問い、次のページでその回答された操作の操作対象を問う等である。この場合、各候補ＩＤに対応する最近の操作履歴レコードの中から、対象システムにおける、最初のページで回答された操作種別の操作の操作対象を抽出し、これらを選択肢として提示した操作対象回答用のページを提示してもよい。
【００７３】
また以上の例では、対象ユーザが対象システム（対象ユーザがログインに失敗した連携システム２００）での操作履歴を対象とする質問を行ったが、これも一例に過ぎない。この代わりに、対象システム以外の特定の連携システム２００での操作履歴に関する質問を行ってもよい。例えば対象システムが、一般的なユーザはたまにしか利用しないシステム（購買申請システム等）である場合、各ユーザの操作履歴の数がそもそも少なく、ユーザの前回の操作の日時が古い場合がある。このような場合、ユーザが対象システムでの操作履歴を覚えていないことも多く、対象システムでの操作を問う質問では正解が出せない場合がある。そこで、そのような場合に、一般的なユーザがよく使う連携システム２００（ユーザがほぼ毎日アクセスするであろう企業内の情報共有システム等）での操作履歴に対する質問を出題してもよい。この場合、そのよく使われる連携システム２００での操作履歴レコードのうち、各候補ＩＤに対応する共通ユーザＩＤを含むものが候補レコードとなり、それら候補レコードの各項目がユーザの回答に合致する程度に応じて、各候補レコードの適合度が計算される。また、特定の連携システム２００に限定せずに、ユーザに対して、いつ（操作日時）、どの連携システム２００で、どの操作（操作種別）を、どの操作対象に対して行ったかを問う質問を出題してもよい。
【００７４】
また以上の例では、各連携システム２００の利用のためのユーザ認証を集中的に実行する認証システム１００が存在し、その認証システム１００がヒント処理部１５０を有していたが、このシステム構成も一例に過ぎない。この代わりに、例えば、各連携システム２００がそれぞれ自分にログインしようとするユーザを認証し、その認証が失敗した場合に、ユーザをその連携システム２００からヒント処理部１５０にリダイレクトし、以降、ヒント処理部１５０が上述のヒント提示のための処理を実行する。この場合、連携システム２００は、ユーザが（失敗した）認証のために入力したユーザＩＤを、リダイレクト先のヒント処理部１５０に通知し、ヒント処理部１５０は、通知されたユーザＩＤを元に、候補ＩＤを抽出してもよい。
【００７５】
また以上では、認証に失敗したユーザＩＤと関連する候補ＩＤを抽出し、それら候補ＩＤの、質問へのユーザの回答に対する適合度合いを求めるという手順を採ったが、これも一例に過ぎない。そのように事前に候補ＩＤを抽出する代わりに、操作履歴に関する質問を多数出題し、それら質問に対する回答の組み合わせに対する適合度合いの高い順にいくつかの共通ユーザＩＤを候補として抽出してもよい。そして、抽出した各候補の共通ユーザＩＤに対応する、対象システム（そのユーザが認証に失敗した連携システム２００）でのユーザＩＤに適合度合いに応じたマスキングを施したものを、ヒントとして対象ユーザに提供する。
【００７６】
また以上の例では、ユーザがある連携システム２００の利用のためのユーザ認証に失敗したことをトリガとして、ヒント処理部１５０がユーザＩＤのヒントを提示するための処理を開始したが、これも一例に過ぎない。この代わりに、例えば、ユーザから、対象とする連携システム２００を指定したユーザＩＤのヒントの要求を受け取り、これをトリガとしてヒント提示のための処理を実行してもよい。
【００７７】
以上、本発明の実施形態を説明した。以上に例示した認証システム１００（特にヒント処理部１５０）は、コンピュータに認証システム１００の上述の機能を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、フラッシュメモリやＳＳＤ（ソリッドステートドライブ）、ＨＤＤ（ハードディスクドライブ）や等の固定記憶装置を制御するコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバス等を介して接続された回路構成を有する。それら各機能の処理内容が記述されたプログラムがネットワーク等の経由でフラッシュメモリ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【００７８】
１００  認証システム、１１０  管理情報登録部、１２０  操作履歴記録部、１３０  ＵＩ処理部、１４０  認証部、１５０  ヒント処理部、１５２  ＩＤ候補抽出部、１５４  質問生成部、１５６  回答評価部、１５８  マスキング部、２００  連携システム、３００  ユーザ側装置。
【図１】
2018028759.tif 000003
【図２】
2018028759.tif 000004
【図３】
2018028759.tif 000005
【図４】
2018028759.tif 000006
【図５】
2018028759.tif 000007
【図６】
2018028759.tif 000008
【図７】
2018028759.tif 000009
【図８】
2018028759.tif 000010
【図９】
2018028759.tif 000011