本開示は、多要素認証クレデンシャルを提供する手法に関する。多要素認証は、ネットワークサイト又はアプリケーションへのログインに用いるために使用されることが増えてきている。以前は、認証に必要とされるものはユーザネーム及びパスワードだけであったが、現在では、ネットワークサイト及びアプリケーションは、さらなる認証要素の提供を必要とすることがある。現在では、ユーザは、ユーザが知っていること(すなわちパスワード)を証明する必要があるのに加え、ユーザが所有しているものを証明する必要があることがある。これは、ユーザのデバイスによって生成される及び/又は信頼できる通信チャネル(例えば、既知のアドレスへのEメール、既知の電話番号へのテキストメッセージ、既知の電話番号への音声電話など)を介してユーザに送信されるワンタイムパスワードを含み得る。
ユーザは、ネットワークページ又はアプリケーションフォームに、ワンタイムパスワードをユーザネーム及びパスワードなどの他のセキュリティクレデンシャルとともに入力するように求められ得る。このことは、ワンタイムパスワードがあるデバイス上に表示されその入力を別のデバイス上のフォームに行う場合、簡単な手順であり得る。そのようなシナリオでは、ユーザは単に、ワンタイムパスワードを見てタイプし得る。しかし、ワンタイムパスワードが第1のアプリケーションにより提示され、ユーザはそれを第2のアプリケーションを介して入力する場合、ユーザは、第1のアプリケーションによって示されたワンタイムパスワードを記憶し、第2のアプリケーションに切り替え、次いで、記憶をもとにワンタイムパスワードを入力しようとしなければならないことがある。そのようなプロセスは、ワンタイムパスワードがユーザの作業記憶の限界を広げ得るように、ワンタイムパスワードの一部を入力するのに不便にも第2のアプリケーションと第1のアプリケーションを交互に切り替えることを含み得る。
本開示の様々な実施形態は、ワンタイムパスワード及び/又は様々なアプリケーションを通して取得される他の多要素認証クレデンシャルのユーザの入力を容易にするために、デバイス通知を活用する。モバイルデバイスで実行されないオペレーティングシステムによって用いられ得るモバイルアプリケーションのパラダイム下で、アプリケーションのユーザインタフェースは、デバイスのディスプレイの大部分を占める。このようにして、マルチタスクは、小さいサイズのディスプレイにおいては非効率的であり得るウィンドウ表示パラダイムを用いるのではなく、単一のアプリケーションがディスプレイ上にレンダリングされる切り替えを含む。それでもなお、オペレーティングシステムによってレンダリングされる通知領域は、焦点の当たっているアプリケーションのユーザインタフェースとともに示され得る。通知領域は、現在の時間、無線ネットワーク信号強度、バッテリー状態及び他のステータス情報を示し得る。本明細書中に記載するように、ワンタイムパスワード又は他のクレデンシャルは通知領域に示され得、次いで、ユーザは、多要素認証を行うために、それを見てアプリケーションのフォームフィールド内にタイプし得る。
別の実施形態では、承認要求が通知領域に示され得、承認すると、ワンタイムパスワード又は他のクレデンシャルが、それを要求するアプリケーションに又はアプリケーションの代わりにサーバに自動的に転送され得る。この自動的な転送により、それ以外の場合には必要とされ得た、ユーザが認証アプリケーションに手動で切り替え、次いでクライアントアプリケーションに切り替えて戻るという、複数のコンテキストの切替えが回避され得る。
他の手法では、プロキシサーバを用いて1つ又は複数の認証要素を認証エンドポイントへ/から通信させてもよいが、1つ又は複数の認証要素をクライアントデバイスにより認証エンドポイントに/から直接通信させてもよい。認証機能を実際に行わないプロキシサーバを用いることによって、セキュリティが向上し得る。例えば、プロキシサーバが悪意のある行為者によって不正アクセスされた場合、ワンタイムパスワードは傍受されていることがあり得る。しかし、ワンタイムパスワードは期限付きであるため、それ自体だけでは利用に限界がある。システムがワンタイムパスワードを生成又は有効とすることなしに、プロキシサーバの不正アクセスだけでは、悪意のある行為者の認証は可能にならないであろう。
図1Aを参照すると、本開示の様々な実施形態による、サインイン情報の入力を容易にするモバイルデバイスの例100aが示されている。モバイルデバイス100aは、タッチスクリーンディスプレイ103を含む。アプリケーションユーザインタフェース106及び通知領域109がタッチスクリーンディスプレイ103上にレンダリングされている。アプリケーションユーザインタフェース106は、モバイルデバイス100で焦点が当たっている現在実行中のアプリケーションに対応する。本例で、アプリケーションユーザインタフェース106は、モバイルバンキングアプリケーション(「モバイルバンキング」)に対応し、ユーザネーム、パスワード及びワンタイムパスワードに対応する照合コードを備える複数の認証要素を要求するサインインフォーム112を含む。
ユーザは、通知領域109を展開することを選択している。展開された通知領域109内には、選択されるとモバイルバンキングアプリケーションに対応するワンタイムパスワードが照合コード用のサインインフォーム112に入力されることを可能にする構成要素115が存在する。複数のアカウントが特定のアプリケーション又はサインインフォームに関連付けられている場合、ユーザは、通知領域109内のそれぞれの構成要素115を用いて複数のアカウントの中から選択を行い得る。本例では、構成要素115は展開された通知領域109内に存在するが、他の例では、構成要素115は、非展開通知領域109内に存在し得る。
次に図1Bを検討すると、本開示の様々な実施形態による、サインイン情報の入力を容易にするモバイルデバイスの例100bが示されている。図1Aと比較すると、承認構成要素115を含むのではなく、ワンタイムパスワードは、それ自体が、構成要素118として通知領域109内に表示される。本例では、通知領域109は、非展開のものであり、サインインフォーム112に焦点が当たっている。結果的に、ユーザは、構成要素118でワンタイムパスワードを見ると同時に、ワンタイムパスワードをサインインフォーム112のフォームフィールドに入力することができる。以下の説明では、システム及びその構成要素の一般的な説明を行い、次に、それらの動作について説明する。
図2Aを参照すると、様々な実施形態によるネットワーク環境200が示される。ネットワーク環境200は、ネットワーク209を経由してデータ通信する、コンピューティング環境203及び1つ又は複数のクライアント206を含む。ネットワーク209には、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、ケーブルネットワーク、衛星ネットワーク又は他の適切なネットワーク、もしくは2つ以上のこのようなネットワークの任意の組み合わせが含まれる。
コンピューティング環境203は、例えば、サーバコンピュータ又はコンピューティング機能を提供する任意の他のシステムを備え得る。代替として、例えば1つ又は複数のサーババンク又はコンピュータバンク又は他の構成で配置される複数のコンピューティングデバイスを用いてもよい。このようなコンピューティングデバイスは、単独の設置で位置付けられてもよく、又は、多数の異なる地理的な位置間で分散されてもよい。例えば、コンピューティング環境203は、まとめて、ホスト型又は「クラウド」コンピューティング資源、グリッドコンピューティング資源及び/又は任意の他の分散型コンピューティング配置を含み得る複数のコンピューティングバイスを含み得る。場合によっては、コンピューティング環境203は、処理、ネットワーク、格納又は他のコンピューティング関連資源の割り当てられたキャパシティが時間とともに変化し得るエラスティックなコンピューティング資源に対応し得る。
様々なアプリケーション及び/又は他の機能が、様々な実施形態によるコンピューティング環境203で実行され得る。また、様々なデータが、コンピューティング環境203にアクセス可能であるデータストア212に格納される。データストア212は、理解することができるように、複数のデータストア212を表し得る。データストア212に格納されるデータは、例えば、以下に記載する様々なアプリケーション及び/又は機能性エンティティの動作に関連付けられる。
コンピューティング環境203上で実行される構成要素には、例えば、認証エンドポイント215及び本明細書中で詳細を記載しない他のアプリケーション、サービス、プロセス、システム、エンジン又は機能性が含まれる。認証エンドポイント215は、ネットワーク資源に対する認証を容易にするために実行される。この認証は、多要素認証の形態をとり得る。例えば、認証エンドポイント215は、クライアント206から、ユーザネーム及びパスワードなどの従来のナレッジベースのクレデンシャルを受信し得るが、認証エンドポイント215は、ワンタイムパスワードなどのさらなる所有要素も必要とし得る。
一部の実施形態で、クライアント206は、登録クレデンシャル221を指定しているクレデンシャル要求218を認証エンドポイント215に送信するように構成される。登録クレデンシャル221が有効であると仮定して、認証エンドポイント215は、ワンタイムパスワードに対応し得るセキュリティクレデンシャル224を戻し得る。登録クレデンシャル221は、セキュリティクレデンシャル224を受信するのにおいてクライアント206の認証を示す長期クレデンシャルに対応し得る。別の実施形態で、クライアント206が他の方法で認証されると仮定して、認証エンドポイント215は、クライアント206から共有シード要求225を受信し得、次いで、セキュリティクレデンシャル224を生成するのに用いるための共有シード226を戻し得る。
認証エンドポイント215は、ハイパーテキストトランスファープロトコル(HTTP)、シンプルオブジェクトアクセスプロトコル(SOAP)、リプレゼンテーショナルステートトランスファー(REST)及び/又は他のプロトコルなどのプロトコルを用い得る。一部の実施形態で、認証エンドポイント215は、例えば、Apache(登録商標)HTTPサーバ、Apache(登録商標)Tomcat(登録商標)、Microsoft(登録商標)Internet Information Services(IIS)などの市販のHTTPサーバを含み得る。
データストア212に格納されるデータには、例えば、共有シード226、登録クレデンシャル221及び潜在的に他のデータが含まれる。さらなる格納されるデータには、例えば、サインイン情報、ユーザネーム、パスワード、実名、ネットワークサイト名及びドメイン名、ユニフォームリソースロケータ(URL)、支払い命令情報(例えば、クレジットカード番号及び関連情報、当座預金口座情報など)、識別番号、セキュリティキー、誕生日、ナレッジベースのセキュリティの質問に対する回答、ペットの名前、出生地及び/又は他の情報が含まれ得る。
クライアント206は、ネットワーク209に連結され得る複数のクライアントデバイスを表す。クライアント206は、例えば、コンピュータシステムなどのプロセッサベースのシステムを含み得る。このようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、キオスク、パーソナルデジタル端末、携帯電話、スマートフォン、セットトップボックス、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、販売時点情報管理(POS)端末、クレジットカード端末又は同様の性能を有する他のデバイスの形式で具体化され得る。クライアント206は、ディスプレイ233を含み得る。ディスプレイ233には、例えば、タッチスクリーン、液晶表示(LCD)ディスプレイ、ガスプラズマベースのフラットパネルディスプレイ、有機発光ダイオード(OLED)ディスプレイ、電気泳動インク(E ink)ディスプレイ、LCDプロジェクタ又は他の種類のディスプレイデバイスなどの1つ又は複数のデバイスが含まれ得る。
クライアント206は、認証アプリケーション236、クライアントアプリケーション239、オペレーティングシステム240、通知領域ウィジェット241及び/又は他のアプリケーションなどの様々なアプリケーションならびにシステムを実行するように構成され得る。一例では、認証アプリケーション236は、アカウントに対してワンタイムパスワードなどのセキュリティクレデンシャル224を提供するように認証アプリケーション236をユーザが構成することを可能にするユーザインタフェース242をディスプレイ233上にレンダリングするように実行される。認証アプリケーション236は、共有シード243を用いてそのようなセキュリティクレデンシャル224を生成するように構成され得、又は、認証エンドポイント215などのサーバから登録クレデンシャル221経由でそのようなクレデンシャルを取得するように構成され得る。
クライアントアプリケーション239はクライアント206で、例えば、コンピューティング環境203及び/又は他のサーバによって与えられるネットワークコンテンツにアクセスするために実行され得、したがって、ユーザインタフェース242をディスプレイ233上にレンダリングする。各クライアントアプリケーション239は、例えば、ブラウザ、モバイルアプリケーション、ショッピングアプリケーション、バンキングアプリケーション、音楽再生アプリケーション、ビデオアプリケーション、ゲームアプリケーション、ソーシャルアプリケーション及び/又はその時々に運用する情報をユーザから要求し得る他のアプリケーションに対応し得る。クライアントアプリケーション239は、ネイティブアプリケーション、ウェブアプリケーション、ハイブリッドアプリケーション又は他のアプリケーションに対応し得る。
認証アプリケーション236は、ユーザが様々なクライアントアプリケーション239を実行するときにセキュリティクレデンシャル224が利用可能となるように、オペレーティングシステム240と統合され得る。例えば、オペレーティングシステム240は、Android(登録商標)のプラットフォーム上に見られるステータスバーなどの通知領域ウィジェット241を含み得る。通知領域ウィジェット241は、ディスプレイ233を介してアクセス可能であり得、クライアントアプリケーション239のユーザインタフェース242は、ディスプレイ233上にレンダリングされている。認証アプリケーション236は、1つ又は複数の通知構成要素を通知領域ウィジェット241に追加し得、通知構成要素を選択することによって、現在実行されているクライアントアプリケーション239にセキュリティクレデンシャル224が提供されることを承認し得るようにする。代替として、通知領域ウィジェット241は、セキュリティクレデンシャル224をレンダリングし、ユーザがそれをクライアントアプリケーション239のユーザインタフェース242のフォームフィールド内に手動で入力し得るように構成され得る。
格納されたアカウント情報をステータスバーを介してアプリケーションに提供する技術は、2013年12月16日に出願された「PROVIDING ACCOUNT INFORMATION TO APPLICATIONS」という名称の米国特許出願番号第14/107,150号に記載されており、その全体を参照によって本明細書に組み込む。認証コードをディスプレイ上にレンダリングする技術は、2014年12月16日に出願された「COMPUTING DEVICE WITH INTEGRATED AUTHENTICATION TOKEN」という名称の米国特許出願番号第14/572,739号に記載されており、その全体を参照によって本明細書に組み込む。
図2Bを参照すると、様々な実施形態による別のネットワーク環境250が示される。ネットワーク環境250は、ネットワーク209を経由してデータ通信する、コンピューティング環境203、コンピューティング環境252及び1つ又は複数のクライアント206を含む。コンピューティング環境252は、コンピューティング環境203と同様なものであり得るが、異なるエンティティによって動作され得、及び/又は、コンピューティング環境203からある程度のネットワーク分離で維持され得る。
コンピューティング環境252上で実行されるものに、認証プロキシ254がある。認証プロキシ254は、セキュリティクレデンシャル224(図2A)の生成及び/又は解釈から一定程度の分離を提供するのに用いられ得る。本実施形態で、クライアント206上の認証アプリケーション236は、認証要求256を介して認証プロキシ254と通信する。認証プロキシ254は、単にその認証要求256を、プロキシされた認証要求258を介してコンピューティング環境203の認証エンドポイント215に渡す。認証エンドポイント215は、認証応答260を生成し、それは認証プロキシ254に戻される。認証プロキシ254は、認証応答260を、プロキシされた認証応答262としてクライアント206に戻す。代替として、上記の通信は、クライアント206によって初期化されるのではなく、認証エンドポイント215によって初期化され得る。
図2Bのプロキシアーキテクチャは、複数要素認証における複数の要素の1つの通信及び受信のためにさらなる分離を提供するために用いられ得る。あるシナリオでは、認証アプリケーション236は認証プロキシ254と通信して、異なる認証要素を認証エンドポイント215に既に提供しているクライアントアプリケーション239によるアクセスを許可し得る。例えば、プッシュ通知は、認証エンドポイント215から認証アプリケーション236に認証プロキシ254を経由して送信され得る。
ユーザは、認証アプリケーション236を用いる認証を承認し得、この承認は認証プロキシ254を介して認証エンドポイント215に送信されている。承認は、ワンタイムパスワード、又は公開−秘密鍵のペアの使用を含み得る。一部の例で、公開−秘密鍵のペアは、ACTIVE DIRECTORYなどで、クライアント206に組み込まれ得る。認証プロキシ254は、クライアント206によって戻された結果(すなわち、認証要求256)の照合を行わない。それどころか、認証プロキシ254は、クライアント206によって供給される認証要素を検証する又は照合する能力がなくてもよい。この点に関して、この照合を行うための鍵及び/又は共有シード226は、コンピューティング環境203で維持され得る。認証エンドポイント215は、この照合を行い得、又は、照合は、コンピューティング環境203の分離サービス(例えば、Remote Authentication Dial In User Service(RADIUS)サーバ)によって対処され得る。
一方、追加の認証要素(例えばパスワード)は、認証プロキシ254によってプロキシされることなしに、クライアント206によって認証エンドポイント215に直接提供される。一部の実装で、認証エンドポイント215は、認証が行われる認証アプリケーション236及びクライアントアプリケーション239が別々のクライアント206によって実行されるという要件を実施し得る。これは、インターネットプロトコル(IP)アドレス、メディアアクセスコントロール(MAC)アドレス、オペレーティングシステム識別子、デバイス識別子及び/又はクライアント206を固有に識別し得る他の種類の識別子を参照して実施され得る。
次に、図3を参照すると、ある実施形態による、認証アプリケーション236の一部の動作の一例を提供するフローチャートが示される。図3のフローチャートは、単に、本明細書中で記載されるような認証アプリケーション236の一部の動作を実装するのに用いられ得る多くの様々な種類の機能的構成の例を提供する。代替として、図3のフローチャートは、1つ又は複数の実施形態による、クライアント206に実装される方法の要素の例を表現していると見なされ得る。
ボックス303から始めて、認証アプリケーション236は、セキュリティクレデンシャル224(図2A)を生成するために共有シード243(図2A)を取得する。例えば、認証アプリケーション236は、クイックレスポンス(QR)コード、バーコード、機械可読テキストなどを含む画像から共有シード243を取得し得る。共有シード243はまた、近距離無線通信(NFC)、BLUETOOTH(登録商標)、Wi−Fi、赤外線、音響結合及び/又は他の無線技術を介して送信され得る。場合によっては、共有シード243を取得することは、シードを生成し、それを認証エンドポイント215とネットワーク209(図2A)を介して共有することを含み得る。ボックス306で、認証アプリケーション236は、共有シード243を1つ又は複数のクライアントアプリケーション239(図2A)又はアカウントに関連付ける。異なる共有シード243は、異なるアカウント又はクライアントアプリケーション239に用いられ得ることがあり得る。
ボックス309で、認証アプリケーション236は、セキュリティクレデンシャル224を生成する要求を取得する。要求は、クライアントアプリケーション239から受信され得る。例えば、認証アプリケーション236は、特定のスキーム名(例えば「authenticator」)に関連付けられ得、クライアントアプリケーション239は、「authenticator://generatePassword/appID=UID」などのユニフォームリソースロケータ(URL)を介して認証アプリケーション236を呼び出し得る。ここで、UIDは、特定のクライアントアプリケーション239に対する固有識別子に対応している。アカウント識別子も指定され得る。別のシナリオでは、要求は、認証エンドポイント215(図2A)を経由して、登録された認証アプリケーション236にプッシュされ得る。
ボックス312で、認証アプリケーション236は、クライアントアプリケーション239に関連付けられた共有シード243を判定する。ボックス315で、認証アプリケーション236は、現在の時間及び判定された共有シード243に少なくとも部分的に基づいて、セキュリティクレデンシャル224を生成する。他の実施形態では、セキュリティクレデンシャル224を生成する他のアルゴリズムが用いられ得る。
ボックス318で、認証アプリケーション236は、図1Aの例と同様に、承認構成要素を通知として通知領域ウィジェット241(図2A)にレンダリングさせる。承認構成要素は、ユーザに、特定のクライアントアプリケーション239が特定のセキュリティクレデンシャル224へのアクセスを要求したことを示し得る。ユーザは、セキュリティクレデンシャル224をクライアントアプリケーション239に転送する要求を承認又は拒否することを選択し得る。
ボックス321で、認証アプリケーション236は、ユーザ承認の指示を受信する。1つの例で、ユーザは、承認を指示するボタン又は他のユーザインタフェースの構成要素を単に選択し得る。別の例で、ユーザは、承認プロセスをさらに保護するために、指紋又は他の生体識別子を提供しなくてはいけないことがある。認証アプリケーション236は、ユーザ承認が発生したと見なす前に、生体識別子を照合するように構成され得る。クライアント206は、タッチスクリーンディスプレイ233に指紋認識技術を組み込み得、又は、分離デバイスが、指紋を受信するのにクライアント206に存在し得る。指紋認識が必要とされるいくつかの場合、認証アプリケーション236は、特定のユーザに対応する特定の指の認識を必要とし得る。さらなる別の例では、ユーザは、ユーザ承認を容易にするために、個人識別番号(PIN)又は他の識別子を入力することを要され得る。様々なシナリオで、ユーザ承認は、ペアレンタルコントロールに対応し得、子どものユーザがセキュリティクレデンシャル224の転送を介してアプリケーション又は資源にアクセス可能となる前に、親の指紋又は他の識別子が必要とされ得るようにする。
ボックス324で、認証アプリケーション236は、ユーザ承認に応答して、クライアントアプリケーション239にセキュリティクレデンシャル224を転送する。例えば、セキュリティクレデンシャル224は、特定のクライアントアプリケーション239に関連付けられたスキーム名を有するURL、例えば、「clientApplication://code=314159」を呼び出す認証アプリケーション236によって自動的に転送され得る。ここで、「314159」はセキュリティクレデンシャル224である。場合によっては、認証アプリケーション236は、セキュリティクレデンシャル224をサーバに自動的に転送するように構成され得る。その後、認証アプリケーション236の一部は終了する。
図4に移動すると、別の実施形態による、認証アプリケーション236の一部の動作の一例を提供するフローチャートが示される。図4のフローチャートは、単に、本明細書中で記載されるような認証アプリケーション236の一部の動作を実装するのに用いられ得る多くの様々な種類の機能的構成の例を提供することが理解される。代替として、図4のフローチャートは、1つ又は複数の実施形態による、クライアント206で実装される方法の要素の例を表現していると見なされ得る。
ボックス403から始めて、認証アプリケーション236は、セキュリティクレデンシャル224(図2A)を生成するために共有シード243(図2A)を取得する。例えば、認証アプリケーション236は、クイックレスポンス(QR)コード、バーコード、機械可読テキストなどを含む画像から共有シード243を取得し得る。共有シード243はまた、近距離無線通信(NFC)、BLUETOOTH、WI−FI、赤外線、音響結合及び/又は他の無線技術を介して送信され得る。場合によっては、共有シード243を取得することは、シードを生成し、それを認証エンドポイント215とネットワーク209(図2A)を介して共有することを含み得る。ボックス406で、認証アプリケーション236は、共有シード243を1つ又は複数のクライアントアプリケーション239(図2A)又はアカウントに関連付ける。異なる共有シード243は、異なるアカウント又はクライアントアプリケーション239に用いられ得ることがあり得る。
ボックス409で、認証アプリケーション236は、セキュリティクレデンシャル224を生成する要求を取得する。要求は、クライアントアプリケーション239から受信され得る。例えば、認証アプリケーション236は、特定のスキーム名(例えば「authenticator」)に関連付けられ得、クライアントアプリケーション239は、「authenticator://generatePassword/appID=UID」などのユニフォームリソースロケータ(URL)を介して認証アプリケーション236を呼び出し得る。ここで、UIDは、特定のクライアントアプリケーション239に対する固有識別子に対応している。アカウント識別子も指定され得る。別のシナリオで、要求は、認証エンドポイント215(図2A)を経由して、登録された認証アプリケーション236にプッシュされ得る。
ボックス412で、認証アプリケーション236は、クライアントアプリケーション239に関連付けられた共有シード243を判定する。ボックス415で、認証アプリケーション236は、現在の時間及び判定された共有シード243に少なくとも部分的に基づいて、セキュリティクレデンシャル224を生成する。他の実施形態では、セキュリティクレデンシャル224を生成する他のアルゴリズムが用いられ得る。
ボックス418で、認証アプリケーション236は、図1Bの例と同様に、生成されたセキュリティクレデンシャル224を通知として通知領域ウィジェット241にレンダリングさせる。次いで、ユーザは、セキュリティクレデンシャル224を見て、それをクライアントアプリケーション239によってレンダリングされたユーザインタフェース242(図2A)のフォームフィールドに手動で入力し得る。こうして、通知は、ディスプレイ233(図2A)上に、クライアントアプリケーション239のユーザインタフェース242とともに同時にレンダリングされ得る。
このことは、モバイルデバイスなどで、一度に最大で1つのアプリケーションのユーザインタフェース242をディスプレイ233上にレンダリングするように構成されたオペレーティングシステム240の観点から特に重要であり得る。例えば、ユーザインタフェース242及び通知領域ウィジェット241は、セキュリティクレデンシャル224が通知領域ウィジェット241にレンダリングされるとき、ディスプレイ233の全体を占めるように構成され得る。
ボックス421で、認証アプリケーション236は、セキュリティクレデンシャル224を含む通知を通知領域ウィジェット241から削除させ得る。このことは、所定の時間の経過後に、又はセキュリティクレデンシャル224が用いられたことを示す通信に応答してなされ得る。例えば、クライアントアプリケーション239又は認証エンドポイント215(図2A)は、セキュリティクレデンシャル224が用いられたことを示す認証アプリケーション236へのコールバックを有し得る。認証エンドポイント215からの通信の信頼性は、X.509証明書、セキュアソケットレイヤー(SSL)及び/又は他の技術の使用を介して確認され得る。認証アプリケーション236と認証エンドポイント215又はクライアントアプリケーション239の間のプッシュ通信構成又はプル通信構成が、この通信を受信するために認証アプリケーション236によって用いられ得る。その後、認証アプリケーション236の一部は終了する。
図5に続き、さらなる別の実施形態による、認証アプリケーション236の一部の動作の一例を提供するフローチャートが示される。図5のフローチャートは、単に、本明細書中で記載されるような認証アプリケーション236の一部の動作を実装するのに用いられ得る多くの様々な種類の機能的構成の例を提供することが理解される。代替として、図5のフローチャートは、1つ又は複数の実施形態による、クライアント206で実装される方法の要素の例を表現していると見なされ得る。
ボックス503から始めて、認証アプリケーション236は、認証エンドポイント215(図2A)からセキュリティクレデンシャル224(図2A)を取得するために登録クレデンシャル221(図2A)を受信する。登録クレデンシャル221は、長期クレデンシャルであり得る。登録クレデンシャル221を受信するために、クライアント206は認証され得る。ボックス506で、認証アプリケーション236は、登録クレデンシャル221を1つ又は複数のクライアントアプリケーション239(図2A)又はアカウントに関連付ける。
ボックス509で、認証アプリケーション236は、セキュリティクレデンシャル224に対する要求を受信する。例えば、認証アプリケーション236は、特定のスキーム名(例えば「authenticator」)に関連付けられ得、クライアントアプリケーション239は、「authenticator://generatePassword/appID=UID」などのユニフォームリソースロケータ(URL)を介して認証アプリケーション236を呼び出し得る。ここで、UIDは、特定のクライアントアプリケーション239に対する固有識別子に対応している。アカウント識別子も指定され得る。別のシナリオでは、要求は、認証エンドポイント215(図2A)を経由して、登録された認証アプリケーション236にプッシュされ得る。ボックス512で、認証アプリケーション236は、クライアントアプリケーション239に関連付けられた登録クレデンシャル221を判定する。
ボックス515で、認証アプリケーション236は、登録クレデンシャル221に少なくとも部分的に基づいて、認証エンドポイント215(図2A)からネットワーク209(図2A)を介して、セキュリティクレデンシャル224を要求する。すなわち、認証アプリケーション236は、セキュリティクレデンシャル224を受信する目的で登録クレデンシャル221を用いて認証エンドポイント215とともに認証を行うことが可能である。ボックス518で、認証アプリケーション236は、図4のボックス418のようにセキュリティクレデンシャル224をユーザに提示するか、図3のボックス318〜324のようにセキュリティクレデンシャル224をクライアントアプリケーション239に転送する。場合によっては、認証アプリケーション236は、セキュリティクレデンシャル224をサーバに自動的に転送するように構成され得る。その後、認証アプリケーション236の一部は終了する。
次に、図6を参照すると、様々な実施形態による、クライアントアプリケーション239の一部の動作の一例を提供するフローチャートが示される。図6のフローチャートは、単に、本明細書中で記載されるようなクライアントアプリケーション239の一部の動作を実装するのに用いられ得る多くの様々な種類の機能的構成の例を提供することが理解される。代替として、図6のフローチャートは、1つ又は複数の実施形態による、クライアント206(図2A)で実装される方法の要素の例を表現していると見なされ得る。
ボックス603から始まり、クライアントアプリケーション239は、セキュリティクレデンシャル224(図2A)が必要とされていることを判定する。ボックス603で、クライアントアプリケーション239は、認証アプリケーション236(図2A)からのセキュリティクレデンシャル224を要求し得る。代替として、クライアントアプリケーション239は、サーバからのセキュリティクレデンシャル224を要求し得る。一部のシナリオでは、セキュリティクレデンシャル224は、特定のクライアントアプリケーション239に又はクライアントアプリケーション239によって用いられるアカウントに固有なものであり得る。例えば、クライアントアプリケーション239は、「authenticator://generatePassword/appID=UID」などのユニフォームリソースロケータ(URL)を介して認証アプリケーション236を呼び出し得る。ここで、UIDは、特定のクライアントアプリケーション239に対する固有識別子に対応している。代替として、クライアントアプリケーション239は、セキュリティクレデンシャル224を入力するようにユーザにプロンプトするユーザインタフェース242を単にレンダリングし得、ユーザは、認証アプリケーション236を手動で呼び出してセキュリティクレデンシャル224を提供し得る。クライアントアプリケーション239及び認証アプリケーション236が異なるクライアント206で実行される場合、異なるクライアント206間に直接的なネットワーク接続が確立されて、セキュリティクレデンシャル224を要求及び/又は交換し得る。
ボックス606で、クライアントアプリケーション239は、セキュリティクレデンシャル224が自動的に転送されるかどうかを判定する。セキュリティクレデンシャル224が自動的に転送される場合、クライアントアプリケーション239は、ボックス612で、セキュリティクレデンシャル224を認証アプリケーション236から受信する。例えば、認証アプリケーション236は、特定のクライアントアプリケーション239に関連付けられたスキーム名を有するURL、例えば、「clientApplication://code=314159」を呼び出し得る。ここで、「314159」はセキュリティクレデンシャル224である。自動的な転送の場合、クライアントアプリケーション239と認証アプリケーション239の間での不必要なコンテキストの切替えは回避される。場合によっては、セキュリティクレデンシャル224は、ネットワーク209を経由して認証アプリケーション239と通信するサーバから受信され得る。自動的に転送されると、ユーザインタフェース242のフォームフィールドに、セキュリティクレデンシャル224が自動入力され得る。クライアントアプリケーション239は、ボックス615に進む。
クライアントアプリケーション239がセキュリティクレデンシャル224を受信するのに自動的な転送を用いない場合、クライアントアプリケーション239は、ボックス609からボックス618に移動し、ユーザからユーザインタフェース242のフォームフィールドを介して手動でセキュリティクレデンシャル224を受信する。通知領域ウィジェット241(図2A)は、セキュリティクレデンシャル224を示す通知構成要素をレンダリングし得、ユーザは、セキュリティクレデンシャル224を見ることと入力することを同時に行い得る。クライアントアプリケーション239は、次いで、ボックス615に移動する。
ボックス615で、クライアントアプリケーション239は、セキュリティクレデンシャル224に少なくとも部分的に基づいて認証エンドポイント215(図2A)とともに認証を行う。1つの例で、セキュリティクレデンシャル224は、認証成功のために認証エンドポイント215に提供されるいくつかの認証要素の1つにすぎない。クライアントアプリケーション239のユーザインタフェース242は、ユーザネーム、パスワード、生体要素などの他の要素を導き得る。認証が行われると、クライアントアプリケーション239は、セキュア化されたネットワーク資源にアクセス可能になり得る。その後、認証アプリケーション239の一部は終了する。
図7に移動すると、様々な実施形態によるクライアントアプリケーション239、認証アプリケーション236、認証エンドポイント215及び認証プロキシ254間の相互作用の一例を提供するシーケンス図700が示されている。図7のシーケンス図700は、単に、本明細書中で記載されるような多くの様々な種類の機能的構成の例を提供することが理解される。
ボックス703から始まり、クライアントアプリケーション239は、第1の認証要素を指定している認証要求を生成する。次いで、認証要求は、認証エンドポイント215に送信される。例えば、クライアントアプリケーション239は、ユーザネームとパスワードの組み合わせによる認証を要求し得る。代替として、クライアントアプリケーション239は、単に、認証が要求されていることを認証エンドポイント215又は認証アプリケーション236に通知し得る。
ボックス706で、認証エンドポイント215は、認証アプリケーション236からの第2の認証要素を要求する。代替として、第2の認証要素に対する要求は、クライアントアプリケーション239から発生し得る。代替として、ユーザは、認証アプリケーション236を明示的に呼び出し得る。認証アプリケーション236及びクライアントアプリケーション239が異なるクライアント206(図2A)で実行される場合、通信を有効にするのにローカルネットワーク上での発見手順が用いられ得る。
ボックス709で、認証アプリケーション236は、クライアントアプリケーション239に対する認証を進めることにおけるユーザ承認を受信するように構成されたユーザインタフェース242を生成する。例えば、認証アプリケーション236は、承認ボタンをレンダリングし得、この承認ボタンは、選択されると、ユーザがクライアントアプリケーション239の認証を承認することを示すものである。ボックス712で、認証アプリケーション236は、ユーザインタフェース242を介してユーザ承認を受信する。ボックス715で、認証アプリケーション236は、第2の認証要素、例えばワンタイムパスワードを生成する。代替として、認証アプリケーション236は、第2の認証要素をサーバから受信し得る。
認証アプリケーション236は、次いで、第2の認証要素を認証プロキシ254に送信する。認証プロキシ254は、認証エンドポイント215のプロキシとして機能する認証サービスである。認証プロキシ254は、第2の認証要素を照合する能力がなくてもよい。ボックス721で、認証プロキシ254は、第2の認証要素を認証エンドポイント215に転送する。これまで、認証エンドポイント215は、複数のソース、つまりクライアントアプリケーション239及び認証アプリケーション236(認証プロキシ254を経由して)から認証要求に対する複数の認証要素を受信している。
ボックス724で、認証エンドポイント215は、第1の認証要素及び第2の認証要素を検証する。また、認証エンドポイント215は、第1の認証要素及び第2の認証要素が異なるクライアント206を経由して提供されたことを確認し得る。ボックス727で、クライアントアプリケーション239を認証すると、認証エンドポイント215は、認証トークンをクライアントアプリケーション239に戻し得る。その後、シーケンス図700は終了する。
図8を参照すると、本開示のある実施形態による、クライアント206の概略ブロック図が示される。クライアント206は、例えばプロセッサ803及びメモリ806を有しその両方がローカルインタフェース809に連結されている少なくとも1つのプロセッサ回路を含む。ローカルインタフェース809は、例えば、付随するアドレス/コントロールバス又は理解することができるように他のバス構造を有するデータバスを備え得る。コンピューティング環境203(図2A)は、同様の構造を有する1つ又は複数のコンピューティングデバイスで構成され得る。
メモリ806に格納されているのは、プロセッサ803により実行可能なデータ及びいくつかの構成要素の両方である。特に、メモリ806に格納され、プロセッサ803により実行可能であるのは、認証アプリケーション236、クライアントアプリケーション239及び潜在的な他のアプリケーションである。メモリ806には、データストアも格納され得る。加えて、通知領域ウィジェット241を有するオペレーティングシステム240は、メモリ806に格納され得、プロセッサ803により実行可能であり得る。
メモリ806に格納され、プロセッサ803により実行可能である他のアプリケーションが存在し得ることが理解される。本明細書で説明する任意の構成要素がソフトウェアの形式で実装される場合、例えば、C、C++、C#、Objective C、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Flash(登録商標)又は他のプログラミング言語などの多数のプログラミング言語のうちの任意の1つが用いられ得る。
多数のソフトウェア構成要素は、メモリ806に格納され、プロセッサ803によって実行可能である。この点において、「実行可能」という用語は、プロセッサ803により最終的に実行可能である形式のプログラムファイルを意味する。実行可能なプログラムの例は、例えば、メモリ806のランダムアクセス部分にロードできプロセッサ803によって実行できる形式の機械語に翻訳することができるコンパイルされたプログラム、メモリ806のランダムアクセス部分にロードできプロセッサ803により実行できるオブジェクトコードなどの適切な形式で表現され得るソースコード、又は、プロセッサ803によって実行されるためにメモリ806のランダムアクセス部分内で命令を生成するため、別の実行可能プログラムによって解釈され得るソースコードなどであり得る。実行可能なプログラムは、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光ディスク、フロッピー(登録商標)ディスク、磁気テープ、又は他のメモリ構成要素を含むメモリ806の任意の部分又は構成要素に格納され得る。
メモリ806は、揮発性メモリ及び不揮発性メモリの両方ならびにデータストレージ構成要素を含むものとして本明細書に定義される。揮発性構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性構成要素は、電源喪失時にデータを保持するものである。したがって、メモリ806は、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、及び/又は他のメモリ構成要素、あるいはこれらのメモリ構成要素のうちの任意の2つ以上の組み合わせを含み得る。加えて、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、又は磁気ランダムアクセスメモリ(MRAM)、及び他のこのようなデバイスを含み得る。ROMは、例えば、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、又は他の同様のメモリデバイスを含み得る。
また、プロセッサ803は、複数のプロセッサ803を表し得、及び/又は、複数のプロセッサコア及びメモリ806は、複数のメモリ806を表し得、それぞれが並行して処理回路を操作する。このような場合、ローカルインタフェース809は、複数のプロセッサ803のうちの任意の2つの間、任意のプロセッサ803とメモリ806のうちのいずれかとの間、又はメモリ806のうちの任意の2つの間などの通信を容易にする適切なネットワークであり得る。ローカルインタフェース809は、例えば、ロードバランシングの実施を含むこの通信を調整するように設計される追加のシステムを備え得る。プロセッサ803は、電気的構造又はいくつかの他の利用可能な構造を有し得る。
認証アプリケーション236、クライアントアプリケーション239、オペレーティングシステム240及び本明細書中で記載する他の様々なシステムは、上述のように、汎用ハードウェアにより実行されるソフトウェア又はコードで具体化され得るが、代替として、同様のものが専用ハードウェア又はソフトウェア/汎用ハードウェアと専用ハードウェアとの組み合わせで具体化されてもよい。専用ハードウェアで具体化される場合、各々は、多数の技術のうちの任意の1つ又はその組み合わせを用いる回路又は状態機械として実装されることができる。これらの技術は、1つ以上のデータ信号の印可時に種々の論理機能を実装するために論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の構成要素などを含んでもよいが、これらに限定されない。このような技術は、一般に、当業者によって周知であることから、本明細書に詳細に記載しない。
図3〜6のフローチャート及び図7のシーケンス図は、認証アプリケーション236、クライアントアプリケーション239、認証エンドポイント215及び/又は認証プロキシ254の一部の実装の機能及び動作を示す。ソフトウェアで具体化される場合、各ブロックは、特定の論理機能(複数可)を実装するために、プログラム命令を含むコードのモジュール、セグメント、又は一部分を表し得る。プログラム命令は、プログラミング言語で書かれる人間が読める記述を含むソースコード、又はコンピュータシステム又は他のシステム内のプロセッサ803などの適切な実行システムにより認識可能な数値命令を含む機械コードの形式で具体化されてもよい。機械コードは、ソースコードなどから変換されてもよい。ハードウェアで具体化する場合、各ブロックは、特定の論理機能(複数可)を実装するために、回路又は多数の相互接続された回路を表し得る。
図3〜図6のフローチャート及び図7のシーケンス図は、特定の実行の順序を示しているが、実行順序は、図示する順序と異なってもよいことが理解される。例えば、2つ以上のブロックの実行順序は、図時する順序を入れ替えてもよい。また、図3〜図7に連続して示される2つ以上のブロックは、同時に又は部分的に同時に実行されてもよい。さらに、一部の実施形態では、図3〜図7に示すブロックのうちの1つ又は複数をスキップ又は省略してもよい。加えて、有用性の向上、説明、性能測定、又は問題解決の手掛かりの提供などの目的で、任意の数のカウンタ、状態変数、警告セマフォ、又はメッセージを、本明細書に記載する論理フローに加えてもよい。全てのこのような変形が、本開示の範囲内にあることが理解される。
また、ソフトウェア又はコードを備える、認証アプリケーション236、クライアントアプリケーション239及びオペレーティングシステム240を含む、本明細書中に記載の任意の論理又はアプリケーションは、例えば、コンピュータシステム又は他のシステム内のプロセッサ803などの命令実行システムが使用する、又はそれに関連して使用する、任意の非一時的なコンピュータ可読媒体で具体化されることができる。この意味では、論理は、例えば、コンピュータ可読媒体から取得可能であり、かつ命令実行システムにより実行可能な命令及び宣言を含む記述を含み得る。本開示の文脈において、「コンピュータ可読媒体」は、命令実行システムが使用する、又はそれに関連して使用する、本明細書に記載の論理又はアプリケーションを包含、格納、又は保持することができる任意の媒体であることができる。
コンピュータ可読媒体は、例えば、磁気、光学、又は半導体媒体などの多数の物理媒体のうちの任意の1つを含むことができる。適切なコンピュータ可読媒体のより具体的な例として、磁気テープ、磁気フロッピーディスク、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、又は光ディスクが挙げられるだろうが、これらに限定されない。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)及びダイナミックランダムアクセスメモリ(DRAM)、又は磁気ランダムアクセスメモリ(MRAM)を含むランダムアクセスメモリ(RAM)であってもよい。加えて、コンピュータ可読媒体は、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、又は他の種類のメモリデバイスであってもよい。
さらに、認証アプリケーション236、クライアントアプリケーション239及びオペレーティングシステム240を含む、本明細書中に記載の任意の論理又はアプリケーションは、様々なやり方で実装かつ構成され得る。例えば、記載された1つ又は複数のアプリケーションは、単一のアプリケーションのモジュール又は構成要素として実装され得る。さらに、本明細書に記載の1つ又は複数の態様が、共有のもしくは別々のコンピューティングデバイス又はその組み合わせで実行され得る。例えば、本明細書中で記載する複数のアプリケーションは、同一のコンピューティングデバイスで、又は、同一のコンピューティング環境203において複数のコンピューティングデバイスで実行され得る。さらに、「アプリケーション」、「サービス」、「システム」、「エンジン」、「モジュール」などの用語は相互に交換可能であり得、限定される意図はないと理解されよう。
特に断りのない限り、句「X、Y又はZの少なくとも1つ」などの選言的な言葉は、項目、用語などがX、Y、もしくはZのいずれか又はその任意の組合せ(例えば、X、Y及び/又はZ)であってよいことを示すために一般的に用いられるとして文脈の中で理解される。したがって、係る選言的言語は、特定の実施形態がXの少なくとも1つ、Yの少なくとも1つ、及びZの少なくとも1つがそれぞれ存在することを必要とすることを暗示することを概して意図しておらず、意味するべきではない。
本開示の実施形態は、以下の条項に照らして説明することができる。
条項1.コンピューティングデバイスで実行可能な第1のアプリケーションを具体化する非一時的なコンピュータ可読媒体であって、画像から共有シードを取得するコードと、前記共有シードを第2のアプリケーションに関連付けるコードと、現在の時間及び前記共有シードに少なくとも部分的に基づいてワンタイムパスワードを生成するコードと、前記第2のアプリケーションから第1のユニフォームリソースロケータ(URL)を介して要求を受信したことに応答して、前記コンピューティングデバイスのディスプレイのオペレーティングシステムの通知領域に通知を生成するコードと、前記通知を介してユーザ承認の入力を容易にするコードと、前記ユーザ承認を受信したことに応答して、前記ワンタイムパスワードを前記第2のアプリケーションに第2のURLを介して転送するコードとを備える、前記媒体。
条項2.前記第1のURLが前記第1のアプリケーションに関連付けられた第1のスキーム名を含み、前記第2のURLが前記第2のアプリケーションに関連付けられた第2のスキーム名を含む、条項1に記載の非一時的なコンピュータ可読媒体。
条項3.前記通知が前記ワンタイムパスワードを含む、条項1〜2に記載の非一時的なコンピュータ可読媒体。
条項4.少なくとも1つのコンピューティングデバイスと前記少なくとも1つのコンピューティングデバイスで実行される第1のアプリケーションとを備え、前記第1のアプリケーションが、前記少なくとも1つのコンピューティングデバイスのディスプレイの通知領域に通知を生成するロジックと、前記通知を介してユーザ承認の入力を容易にするロジックと、前記ユーザ承認の受信に応答して、セキュリティクレデンシャルを前記少なくとも1つのコンピューティングデバイスで実行される第2のアプリケーションに転送するロジックとを備える、システム。
条項5.前記通知を生成する前記ロジックが、前記第2のアプリケーションからの要求に応答して前記通知を生成するように構成された、条項4に記載のシステム。
条項6.前記通知を生成する前記ロジックが、サーバからの要求に応答して前記通知を生成するように構成された、条項4〜5に記載のシステム。
条項7.前記セキュリティクレデンシャルがワンタイムパスワードである、条項4〜6に記載のシステム。
条項8.前記第1のアプリケーションが、さらに、前記ワンタイムパスワードをサーバからネットワークを介して受信するロジックを備える、条項4〜7に記載のシステム。
条項9.前記第1のアプリケーションが、さらに、前記ワンタイムパスワードを生成するロジックを備える、条項4〜8に記載のシステム。
条項10.前記第1のアプリケーションが、前記ワンタイムパスワードを生成するのに用いられるシードを画像から取得するロジックをさらに備える、条項4〜9に記載のシステム。
条項11.前記第1のアプリケーションが、前記第1のアプリケーションに関連付けられた第1のスキーム名を有する第1のユニフォームリソースロケータ(URL)を介して要求を受信し、前記第2のアプリケーションが、前記第2のアプリケーションに関連付けられた第2のスキーム名を有する第2のURLを介して前記セキュリティクレデンシャルを受信する、条項4〜10に記載のシステム。
条項12.前記通知領域が、前記第2のアプリケーションのユーザインタフェースと同時に前記ディスプレイ上にレンダリングされる、条項4〜11に記載のシステム。
条項13.前記セキュリティクレデンシャルが前記第2のアプリケーションに固有のものである、条項4〜12に記載のシステム。
条項14.前記第2のアプリケーションが複数の認証要素を用い、前記セキュリティクレデンシャルが前記複数の認証要素の1つに対応する、条項4〜13に記載のシステム。
条項15.前記少なくとも1つのコンピューティングデバイスが、一度に1つのアプリケーションのユーザインタフェースを前記ディスプレイ上にレンダリングするように構成された、条項4〜14に記載のシステム。
条項16.1つ又は複数のコンピューティングデバイスの少なくとも1つを介して実行される第1のアプリケーションによってセキュリティクレデンシャルを決定することと、前記1つ又は複数のコンピューティングデバイスの少なくとも1つのディスプレイ上の通知領域に前記セキュリティクレデンシャルをレンダリングさせ、前記1つ又は複数のコンピューティングデバイスの少なくとも1つを介して実行される第2のアプリケーションのユーザインタフェースも前記ディスプレイ上にレンダリングされることと、前記1つ又は複数のコンピューティングデバイスの少なくとも1つを介して実行される前記第2のアプリケーションによって、前記ユーザインタフェースのフォームフィールドを経由して前記セキュリティクレデンシャルを受信することとを含む方法。
条項17.前記第2のアプリケーションによって、前記セキュリティクレデンシャルを表示する要求を前記第1のアプリケーションに送信することをさらに備える、条項16に記載の方法。
条項18.前記セキュリティクレデンシャルを表示する前記要求が、前記第1のアプリケーションに登録されたスキーム名を含むユニフォームリソースロケータ(URL)を介して送信される、条項16〜17に記載の方法。
条項19.前記セキュリティクレデンシャルを決定することが、さらに、前記第1のアプリケーションによって、現在の時間及び共有シードに少なくとも部分的に基づいてワンタイムパスワードを生成することと、前記第1のアプリケーションによって、前記第2のアプリケーションに少なくとも部分的に基づいて複数のシードから前記共有シードを識別することとを備える、条項16〜18に記載の方法。
条項20.前記セキュリティクレデンシャルが前記通知領域にレンダリングされるとき、前記ユーザインタフェース及び前記通知領域が前記ディスプレイの全体を占める、条項16〜19に記載の方法。
条項21.少なくとも1つのコンピューティングデバイスで実行可能な第1のアプリケーション及び第2のアプリケーションを具体化する非一時的なコンピュータ可読媒体であって、前記第1のアプリケーションが認証を要求したことを判定するコードと、第1のユーザインタフェースを前記第2のアプリケーションによってレンダリングさせるコードであって、前記第1のユーザインタフェースは前記認証のユーザ承認を導くものであるコードと、前記第2のアプリケーションによってワンタイムパスワードを生成するコードと、前記ユーザ承認の受信に応答して、前記ワンタイムパスワードを前記第1のアプリケーションに自動的に転送するコードと、前記第1のアプリケーションによって第2のユーザインタフェースをレンダリングさせるコードであって、前記第2のユーザインタフェースは、前記ワンタイムパスワードが自動入力された第1のフォームフィールド及びユーザにより指定されたセキュリティクレデンシャルを受信するように構成された第2のフォームフィールドを含むものであるコードと、前記ワンタイムパスワード及び前記ユーザにより指定されたセキュリティクレデンシャルを少なくとも1つの認証サービスに送信して、前記第1のアプリケーションの前記認証を完了するコードとを備える、前記媒体。
条項22.前記少なくとも1つの認証サービスが第1の認証サービス及び第2の認証サービスを含み、前記ユーザにより指定されたセキュリティクレデンシャルが前記第1の認証サービスに送信され、前記ワンタイムパスワードが前記第2の認証サービスに送信され、前記第2の認証サービスが前記第1の認証サービスのプロキシとして機能する、条項21に記載の非一時的なコンピュータ可読媒体。
条項23.少なくとも1つのコンピューティングデバイスと、前記少なくとも1つのコンピューティングデバイスで実行される第1のアプリケーションであって、第1の認証要素を指定している認証要求を第1の認証サービスに送信するロジックを備える前記第1のアプリケーションと、前記少なくとも1つのコンピューティングデバイスで実行される第2のアプリケーションであって、ユーザ承認の入力を容易にするユーザインタフェースを前記少なくとも1つのコンピューティングデバイスのディスプレイ上に生成するロジック及び前記ユーザ承認の受信に応答して、第2の認証要素を第2の認証サービスに送信するロジックを備える前記第2のアプリケーションとを備え、前記第2の認証サービスが前記第1の認証サービスのプロキシとして動作する、システム。
条項24.前記第1の認証サービス及び前記第2の認証サービスが異なるエンティティによって運用される、条項23に記載のシステム。
条項25.前記第2の認証サービスに前記第2の認証要素を検証する能力がない、条項23〜24に記載のシステム。
条項26.前記ユーザインタフェースを生成する前記ロジックが、前記第2の認証サービスからの要求に応答して前記ユーザインタフェースを生成するように構成された、条項23〜25に記載のシステム。
条項27.前記ユーザインタフェースを生成する前記ロジックが、前記第1のアプリケーションからの要求に応答して前記ユーザインタフェースを生成するように構成された、条項23〜26に記載のシステム。
条項28.前記少なくとも1つのコンピューティングデバイスが第1のコンピューティングデバイス及び第2のコンピューティングデバイスを備え、前記第1のアプリケーションが前記第1のコンピューティングデバイスで実行され、前記第2のアプリケーションが前記第2のコンピューティングデバイスで実行される、条項23〜27に記載のシステム。
条項29.前記第1の認証サービスが、前記第1のアプリケーション及び前記第2のアプリケーションが異なるコンピューティングデバイスで実行されていることを確認するように構成された、条項23〜28に記載のシステム。
条項30.前記少なくとも1つのコンピューティングデバイスが、単一のコンピューティングデバイスを備え、前記第1のアプリケーション及び前記第2のアプリケーションの両方が前記単一のコンピューティングデバイスで実行される、条項23〜29に記載のシステム。
条項31.前記ユーザインタフェースが通知領域に通知を備える、条項23〜30に記載のシステム。
条項32.1つ又は複数のコンピューティングデバイスの少なくとも1つを介して、第1のアプリケーションが認証を要求したことを判定することと、前記1つ又は複数のコンピューティングデバイスの少なくとも1つを介して、ユーザ承認を導くユーザインタフェースを第2のアプリケーションによってレンダリングさせることと、前記1つ又は複数のコンピューティングデバイスの少なくとも1つを介して、前記第2のアプリケーションにより前記ユーザ承認を受信することと、前記ユーザ承認に応答して、前記1つ又は複数のコンピューティングデバイスの少なくとも1つを介して、認証要素を受信者に自動的に転送することとを含み、前記認証要素は、前記認証を行うのに用いられる複数の認証要素の1つに対応する、方法。
条項33.前記認証要素が、前記受信者に、前記受信者に登録されたスキーム名を含むユニフォームリソースロケータ(URL)を介して転送される、条項32に記載の方法。
条項34.前記認証要素がワンタイムパスワードに対応する、条項32〜33に記載の方法。
条項35.前記複数の認証要素の別の1つがユーザにより提供されたパスワードに対応する、条項32〜34に記載の方法。
条項36.前記第2のアプリケーションによって、前記ワンタイムパスワードを生成することをさらに備える、条項32〜35に記載の方法。
条項37.前記第2のアプリケーションによって、前記ワンタイムパスワードを別のコンピューティングデバイスからネットワークを介して受信することをさらに備える、条項32〜36に記載の方法。
条項38.前記第1のアプリケーションによって前記複数の認証要素の少なくとも1つを、前記認証を行うように構成された認証サービスに送信することをさらに備える、条項32〜37に記載の方法。
条項39.前記受信者が前記第1のアプリケーションに対応する、条項32〜38に記載の方法。
条項40.前記受信者が認証サービスに対応する、条項32〜39に記載の方法。
本開示の上述の実施形態が、本開示の原理を明確に理解するために記述される実装の単なる可能な例であることを強調されたい。本開示の精神及び原理から実質的に逸脱することなく、多くの変形及び修正を上述の実施形態(複数可)に加えてもよい。すべてのこのような修正及び変形は、本開示の範囲内で本明細書に含まれ、かつ以下の請求項によって保護されるように意図される。