JP7100939B2 - アプリケーション・プログラミング・インターフェースを介する1段階認証から2段階認証への自動アップグレード - Google Patents

アプリケーション・プログラミング・インターフェースを介する1段階認証から2段階認証への自動アップグレード Download PDF

Info

Publication number
JP7100939B2
JP7100939B2 JP2020510511A JP2020510511A JP7100939B2 JP 7100939 B2 JP7100939 B2 JP 7100939B2 JP 2020510511 A JP2020510511 A JP 2020510511A JP 2020510511 A JP2020510511 A JP 2020510511A JP 7100939 B2 JP7100939 B2 JP 7100939B2
Authority
JP
Japan
Prior art keywords
server
client
user
computer
api
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020510511A
Other languages
English (en)
Other versions
JP2020531990A (ja
JP2020531990A5 (ja
Inventor
ブロシャス、ラリー、アレン
ハウランド、マイケル、ジェームズ
ロジャーズ、ポール、エドワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2020531990A publication Critical patent/JP2020531990A/ja
Publication of JP2020531990A5 publication Critical patent/JP2020531990A5/ja
Application granted granted Critical
Publication of JP7100939B2 publication Critical patent/JP7100939B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/40User authentication by quorum, i.e. whereby two or more security principals are required
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、一般に、2段階認証のための方法、システム及びコンピュータ・プログラム製品に関する。より特定的には、本発明は、アプリケーション・プログラミング・インターフェースを介して1段階認証から2段階認証へ自動アップグレードするための方法、システム及びコンピュータ・プログラム製品に関する。
アプリケーションのための適切なセキュア認証を提供する必要性がある。現在、ネットワーク・アプリケーション・セキュリティは、ネットワーク・サービス又はアプリケーションで認証するためにユーザがユーザ識別子(ID)及びパスワードを提供する標準的手順から、2段階認証プロセスをさらに必要とすることによって、増強される。ユーザに、ユーザID及びパスワードなどの第1の認証要素を提供することを求めることに加えて、2段階認証は、認証プロセスを完了するために、ユーザに、第2の認証要素を提供することを求める。典型的には、第2の認証要素は、ユーザに既知のシークレット又はセキュリティ・トークンなどの、認可されていないユーザに知られる可能性が低い、ユーザに既知の情報である。
M’Raihi、D.,Machani、S.,Pei、M.,Rydell,J.著、「TOTP:Time-Based One-Time Password Algorithm」、Request for Comments(RFC)6238、Internet Engineering Task Force(IETF)、2011年5月
従って、当技術分野において、上述の問題に対処するための必要性が存在する。
第1の態様から見ると、本発明は、2段階認証のための方法を提供し、この方法は、クライアントにより、アプリケーション・プログラミング・インターフェース(API)を介して、ユーザ識別子及びパスワードをサーバに伝送することと;サーバとの認証セッションを確立することであって、クライアントはAPIと関連した動作に対する第1のセットのパーミッションを有する、確立することと;サーバによるユーザ識別子及びパスワードの検証に応答して、ログオン応答及び共有シークレットを受け取ることと;クライアントにより、共有シークレットに基づいてワンタイム・パスコード(OTP)を生成することと;APIを介してOTPをサーバに送ることと;サーバが共有シークレットに対してOTPを検証することに応答して、APIと関連した動作に対する第2のセットのパーミッションを与えることと、を含む。
更に別の態様から見ると、本発明は、2段階認証のためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路により読み取り可能であり、本発明のステップを実行するための方法を実行する、処理回路により実行される命令を格納する、コンピュータ可読ストレージ媒体を含む。
更に別の態様から見ると、本発明は、コンピュータ可読媒体上に格納されかつデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で実行されるとき、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
更に別の態様から見ると、本発明は、1つ又は複数のプロセッサと、1つ又は複数のコンピュータ可読メモリと、1つ又は複数のコンピュータ可読ストレージ・デバイスと、1つ又は複数のメモリの少なくとも1つを介して1つ又は複数のプロセッサの少なくとも1つにより実行される、1つ又は複数のストレージ・デバイスの少なくとも1つに格納されるプログラム命令とを含むコンピュータ・システムを提供し、格納されるプログラム命令は、クライアントにより、アプリケーション・プログラミング・インターフェース(API)を介して、ユーザ識別子及びパスワードをサーバに伝送するためのプログラム命令と;サーバとの認証セッションを確立するためのプログラム命令であって、クライアントはAPIと関連した動作に対する第1のセットのパーミッションを有する、プログラム命令と;サーバによるユーザ識別子及びパスワードの検証に応答して、ログオン応答及び共有シークレットを受け取るためのプログラム命令と;クライアントにより、共有シークレットに基づいてワンタイム・パスコード(OTP)を生成するためのプログラム命令と;APIを介してOTPをサーバに送るためのプログラム命令と;サーバが共有シークレットに対してOTPを検証することに応答して、APIと関連した動作に対する第2のセットのパーミッションを与えるためのプログラム命令と、を含むコンピュータ・システムを提供する。
例示的実施形態は、方法、システム、及びコンピュータ・プログラム製品を提供する。方法の実施形態は、クライアントにより、アプリケーション・プログラミング・インターフェース(API)を介して、ユーザ識別子及びパスワードをサーバに伝送することを含む。実施形態は、サーバとの認証セッションを確立することであって、クライアントはAPIと関連した動作に対する第1のセットのパーミッションを有する、確立することをさらに含む。実施形態は、サーバによるユーザ識別子及びパスワードの検証に応答して、ログオン応答及び共有シークレットを受け取ることをさらに含む。実施形態は、クライアントにより、共有シークレットに基づいてワンタイム・パスコード(OTP)を生成することをさらに含む。実施形態は、APIを介してOTPをサーバに送ることをさらに含む。実施形態は、サーバが共有シークレットに対してOTPを検証することに応答して、APIと関連した動作に対する第2のセットのパーミッションを与えることをさらに含む。
実施形態は、クライアント・デバイスにより、ユーザから、ユーザ識別子及びパスワードを受け取ることをさらに含む。実施形態において、ログオン応答及び共有シークレットを受け取ることは、ユーザ識別子と関連したユーザが、1要素認証から2要素認証にアップグレードするように指定されるとの判断に応答する。
実施形態は、クライアントにより、共有シークレットをユーザと関連したクライアント・プリファレンス内に格納することをさらに含む。実施形態において、サーバは、共有シークレットをユーザと関連したユーザ・プロファイル内に格納するように構成される。実施形態において、APIは、Representational state transfer(REST)APIを含む。実施形態において、第2のセットのパーミッションは、第1のセットのパーミッションを上回る。
実施形態は、後のログオン動作において、ユーザID、パスワード、及び共有シークレットに基づいて生成された現在のOTPをサーバに伝送することをさらに含む。
実施形態は、コンピュータ使用可能プログラム製品をさらに含む。コンピュータ使用可能プログラム製品は、1つ又は複数のコンピュータ可読ストレージ・デバイスと、1つ又は複数のストレージ・デバイスの少なくとも1つに格納されるプログラム命令とを含む。実施形態は、コンピュータ・システムを含む。コンピュータ・システムは、1つ又は複数のプロセッサ、1つ又は複数のコンピュータ可読メモリ、及び1つ又は複数のコンピュータ可読ストレージ・デバイス、並びに1つ又は複数のメモリの少なくとも1つを介して1つ又は複数のプロセッサの少なくとも1つにより実行される、1つ又は複数のストレージ・デバイスの少なくとも1つに格納されるプログラム命令を含む。
本発明の特徴と考えられる特定の新規な特徴は、添付の特許請求の範囲に記載されている。しかしながら、本発明自体、並びに好ましい使用方法、さらにその目的及び利点は、例示的実施形態の以下の詳細な説明を添付の図面と共に参照することによって、最も良く理解されるであろう。
例示的実施形態が実施され得るデータ処理システムのネットワークのブロック図を示す。 例示的実施形態が実施され得るデータ処理システムのブロック図を示す。 例示的実施形態による、2段階認証の自動アップグレードのための例示的構成のブロック図を示す。 例示的実施形態による、2段階認証の自動アップグレードのための例示的プロセスのメッセージ・フローを示す。 例示的実施形態による、2段階認証の自動アップグレードのための例示的なクライアント側プロセスのフローチャートを示す。 例示的実施形態による、2段階認証の自動アップグレードのための例示的なサーバ側プロセスのフローチャートを示す。
種々の例示的実施形態は、ステートレス・プロトコル(stateless protocol)のアプリケーション・プログラミング・インターフェース(API)を利用するサーバ・アプリケーション又はサービスのための、1段階認証から2段階認証への自動アップグレードを提供する。ステートレス・プロトコルは、通信セッションの期間中、送信者又は受信者のいずれもセッション情報を保持することを要求しない。1つ又は複数の実施形態は、REST API作業領域の他に付加的な段階を必要とせずに、Representational state transfer(REST)APIを完全にイン・バンドで利用するサーバ・アプリケーション又はサービスに対する、1段階認証から2段階認証への自動アップグレードを提供する。2段階認証は、2要素認証(two factor authentication)と呼ばれることもある。特定の実施形態において、認証のためにユーザID及びパスワードのみを利用する1段階認証が、特定のユーザに対して、認証のためにユーザID/パスワード、並びにワンタイム・パスコードを利用する2段階認証に自動的にアップグレードされる。
2要素認証の従来の使用事例において、ユーザは、ブラウザを介してウェブ・アプリケーションにログオンし、ユーザID及びパスワードを入力し、ユーザと関連したユーザ・プロファイル内の2要素認証を可能にする。次に、ユーザは、一般にQRコードを走査することにより、スマートフォン又は他のデバイスで共有シークレットをキャプチャする。ユーザは、共有シークレットに基づいたパスコードを生成し、検証のためにパスコードを認証サーバにサブミットする。既存の実施形態において、ユーザは、ウェブ・ブラウザを介してログオンすることにより、従来の方法で第2の要素を設定するように求められ、APIアクセスと比較すると、共有シークレット及びアルゴリズムと同じではない別個の認証トークンがウェブ・アクセスのために用いられる。
本明細書に記載される1つ又は複数の特定の実施形態は、REST APIを介してウェブ・アプリケーションと対話するユーザが、従来のウェブ・ブラウザに利用可能な同じ機能のセットを利用し、REST APIクライアントを介する認証として、そのユーザ・アカウントのための2段階認証を可能にする。
実施形態において、特定のユーザが、次のログオン試行で1又は複数のアプリケーション又はサービスへのアクセスを与えるために、1要素認証から2要素認証へのアップグレードを要求するように指定される。特定の実施形態において、ユーザは、アプリケーション又はサービスの管理者により、2要素認証を要求するように指定される。実施形態において、ユーザは、ウェブ・サービス(REST API)クライアント・アプリケーションを用いてユーザID及びパスワードを提供することにより、認証サーバなどのサーバにログオンする。実施形態において、サーバは、ユーザID及びパスワードを用いてユーザを検証するよう試みる。
成功裡に認証すると、ウェブ・サービス・セッションなどのセッションが、サーバとクライアントとの間に確立され、そこで、ユーザは制限されたログオン状態にある。制限されたログオン状態では、ユーザは認証されるものの、限定されたセットのAPI動作に対するアクセス・パーミッションしか有さない。実施形態において、サーバは、共有シークレットを生成し、共有シークレットをセッション内に格納する。1つ又は複数の実施形態において、共有シークレットは、公開鍵暗号化などの鍵共有プロトコル(key-agreement protocol)を用いて作成される、クライアント及びサーバのみに知られる情報である。特定の実施形態において、共有シークレットは、パスワード、パスフレーズ、又は疑似ランダムに生成される数若しくは文字列である。実施形態において、サーバは、セッション特有のデータ及び共有シークレットを含むログオン応答をクライアントに送り返す。
実施形態において、クライアント・アプリケーションは、共有シークレットに基づいてワンタイム・パスコード(OTP)を生成する。OTPは、非特許文献1に記載されるような時間ベースのワンタイム・パスコード(TOTP)アルゴリズムを用いて、共有シークレットから生成される。1つ又は複数の実施形態において、サーバは、暗号ハッシュ関数を用いて、共有シークレットを現在のタイムスタンプと組み合わせ、ワンタイム・パスコードを生成する。実施形態において、クライアントは、OTPが、ユーザと関連したユーザ・プロファイルへの共有シークレットの設定を要求することを含むAPI要求をサーバに送る。
OTPの受信に応答して、サーバは、共有シークレットに対してそのOTPを検証する。検証が成功した場合、サーバは、共有シークレットをユーザ・プロファイル内に格納し、成功応答をクライアントに送り返す。実施形態において、クライアント・アプリケーションは、共有シークレットをREST APIクライアント・プリファレンス又は別のデータベースに格納する。実施形態において、ユーザからの後のログオンは、ユーザが、サーバに認証されてサーバにより提供されるアプリケーション及びサービスへのアクセスを得るために、ユーザID、パスワード、及び共有シークレットに基づいた現在のOTPをサブミットすることを求める。
例示的実施形態が、単なる例として、特定のタイプのサービス、伝送、データ処理システム、環境、コンポーネント、及びアプリケーションに関連して説明される。これら及他の類似のアーチファクトのいずれの特定の発現も、本発明を限定することを意図するものではない。これら及び他の類似のアーチファクトのいずれの適切な発現も、例示的実施形態の範囲内で選択され得る。
さらに、例示的実施形態は、データ・ネットワーク上で任意のタイプのデータ、データ・ソース、又はデータ・ソースへのアクセスに関して実施され得る。任意のタイプのデータ・ストレージ・デバイスは、本発明の範囲内で、データ処理システムにおいて局所的に又はデータ・ネットワーク上でデータを本発明の実施形態に提供することができる。実施形態がモバイル・デバイスを用いて説明される場合、モバイル・デバイスと共に使用するのに適したいずれのタイプのデータ・ストレージ・デバイスも、例示的実施形態の範囲内で、モバイル・デバイスにおいて局所的に又はデータ・ネットワーク上でデータをそうした実施形態に提供することができる。
例示的実施形態は、例示的実施形態への制限ではなく単なる例として、特定のコード、設計、アーキテクチャ、プロトコル、レイアウト、概略図及びツールを用いて説明される。さらに、例示的実施形態は、幾つかの例において、説明を明確にするために単なる例として、特定のソフトウェア、ツール及びデータ処理環境を用いて説明される。例示的実施形態は、他の比較可能な又は同様の目的の構造、システム、アプリケーション、又はアーキテクチャと併せて用いることができる。例えば、本発明の範囲内で、他の比較可能なモバイル・デバイス、構造、システム、アプリケーション、又はそのためのアーキテクチャを、本発明のそうした実施形態と併せて用いることができる。例示的実施形態は、ハードウェア、ソフトウェア、又はその組み合わせで実施され得る。
本開示における例は、説明を明確にするために用いられるにすぎず、例示的実施形態に限定するものではない。本開示から付加的なデータ、動作、アクション、タスク、アクティビティ及び操作を考えることができ、それらは例示的実施形態の範囲内にあると考えられる。
本明細書に列挙されるいずれの利点も単なる例にすぎず、例示的実施形態に限定するように意図されたものではない。付加的な又は異なる利点が、特定の例示的実施形態により実現され得る。さらに、特定の例示的実施形態が、上に列挙される利点の幾つか、全てを有することがあり、又はそのいずれも有していないこともある。
図を参照すると、特に図1及び図2を参照すると、これらの図は、例示的実施形態が実施され得るデータ処理環境の例示的な図である。図1及び図2は単なる例にすぎず、異なる実施形態が実施され得る環境に関するいずれかの限定を主張又は意味することを意図しない。特定の実施は、以下の説明に基づいて、示される環境への多くの修正をなすことができる。
図1は、例示的実施形態が実施され得るデータ処理システムのネットワークのブロック図を示す。データ処理環境100は、例示的実施形態が実施され得るコンピュータのネットワークである。データ処理環境100は、ネットワーク102を含む。ネットワーク102は、データ処理環境100内で互いに接続される種々のデバイスとコンピュータとの間の通信リンクを与えるために用いられる媒体である。ネットワーク102は、有線、無線通信リンク、又は光ファイバ・ケーブルなどの接続を含むことができる。
クライアント又はサーバは、ネットワーク102に接続された特定のデータ処理システムの例示的な役割にすぎず、これらのデータ処理システムについての他の構成又は役割を排除することを意図しない。サーバ104及びサーバ106は、ストレージ・ユニット108と共にネットワーク102に結合される。ソフトウェア・アプリケーションは、データ処理環境100内のいずれかのコンピュータ上で実行され得る。クライアント110、112及び114もネットワーク102に結合される。サーバ104若しくは106、又はクライアント110、112、若しくは114などのデータ処理システムは、データを含むことができ、そこで実行されるソフトウェア・アプリケーション又はソフトウェア・ツールを有し得る。
単なる例として、こうしたアーキテクチャのいかなる限定も意味することなく、図1は、実施形態の例示的実施において使用可能な特定のコンポーネントを示す。例えば、サーバ104及び106、並びにクライアント110、112、114は、単なる例として、サーバ及びクライアントとして示され、クライアント-サーバ・アーキテクチャの限定を意味しない。別の例として、実施形態は、幾つかのデータ処理システム及び示されるようなデータ・ネットワークにわたって分散することができ、一方、別の実施形態は、例示的実施形態の範囲内の単一のデータ処理システム上で実施することができる。データ処理システム104、106、110、112及び114は、クラスタ、パーティション、及び実施形態を実施するのに適した他の構成における例示的ノードも表す。
デバイス132は、本明細書で説明されるデバイスの例である。例えば、デバイス132は、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、固定型若しくは携帯型のクライアント110、ウェアラブル・コンピューティング・デバイス、又は他のいずれかの好適なデバイスの形をとることができる。図1の別のデータ処理システムにおいて実行されているように説明されるいずれのソフトウェア・アプリケーションも、デバイス132において同様の方法で実行されるように構成することができる。図1の別のデータ処理システムに格納又は生成されるいずれのデータ又は情報も、デバイス132内に同様の方法で格納又は生成されるように構成することができる。
サーバ104のサーバ・アプリケーション105は、本明細書で説明されるサーバ側認証動作の実施形態を実施する。データベース109は、図示のような又は別のソース(図示せず)により与えられるストレージ108内に格納され得る。特定の実施形態において、データベース109は、1又は複数のユーザと関連したユーザ・プロファイル情報を格納することができる。クライアント・アプリケーション111は、本明細書で説明されるクライアント側認証動作の実施形態を実施する。
サーバ104及び106、ストレージ・ユニット108、及びクライアント110、112及び114、並びにデバイス132は、有線接続、無線通信プロトコル、又は他の好適なデータ接続を用いて、ネットワーク102に結合することができる。クライアント110、112及び114は、例えば、パーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。
示される例において、サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ及びアプリケーションなどのデータをクライアント110、112及び114に提供することができる。クライアント110、112及び114は、この例では、サーバ104に対するクライアントとすることができる。クライアント110、112、114、又はその何らかの組み合わせは、それぞれのデータ、ブート・ファイル、オペレーティング・システム・イメージ及びアプリケーションを含むことができる。データ処理環境100は、付加的なサーバ、クライアント、及び図示されていない他のデバイスを含むことができる。
示される例において、データ処理環境100は、インターネットであり得る。ネットワーク102は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、及び互いに通信するための他のプロトコルを使用するネットワーク及びゲートウェイの集まりを表すことができる。インターネットの中心は、データ及びメッセージを送る何千もの商用、政府、教育、及びその他のコンピュータ・システムを含む主要なノード又はホスト・コンピュータ間のデータ通信リンクのバックボーンである。もちろん、データ処理環境100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)等の多数の異なるタイプのネットワークとしても実装され得る。図1は、異なる例示的実施形態に対するアーキテクチャ上の限定としてではなく、一例として意図される。
他の使用の中でも、データ処理環境100は、例示的実施形態が実施され得るクライアント-サーバ環境を実施するために用いられ得る。クライアント-サーバ環境は、ソフトウェア・アプリケーション及びデータがネットワークにわたって分散されるのを可能にするので、アプリケーションは、クライアント・データ処理システムとサーバ・データ処理システムとの間の対話性を用いて機能する。データ処理システム100は、サービス指向型アーキテクチャを用いることもでき、そこで、ネットワークにわたって分散された相互運用可能なソフトウェア・コンポーネントは、一貫したビジネス・アプリケーションとして互いにパッケージ化され得る。データ処理環境100は、クラウドの形をとることもでき、最小の管理作業又はサービス・プロバイダとの最小限の対話しか伴わずに迅速にプロビジョニング及びリリースされ得る、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン及びサービス)の共有プールに対する便利な、オンデマンドのネットワーク・アクセスを可能にするためのサービス・デリバリのクラウド・コンピューティング・モデルを利用する。
図2を参照すると、この図は、例示的実施形態が実施され得るデータ処理システムのブロック図を示す。データ処理システム200は、図1のサーバ104及び106、又はクライアント110、112及び114などのコンピュータ、又は別のタイプのデバイスの例であり、その中に、例示的実施形態のためのプロセスを実施するコンピュータ使用可能プログラム・コード又は命令が配置され得る。
データ処理システム200は、図1のデバイス132のような、データ処理システム又は内部の構成も表し、その中に、例示的実施形態のプロセスを実施するコンピュータ使用可能プログラム・コード又は命令が配置され得る。データ処理システム200は、単なる例としてコンピュータとして説明されるが、それに限定されるものではない。図1のデバイス132などの他のデバイスの形の実装は、タッチ・インターフェースを付加することなどにより、データ処理システム200を修正することができ、本明細書で説明されるデータ処理システム200の動作及び機能の一般的な説明を逸脱することなく、データ処理システム200から特定の示されるコンポーネントを排除することさえ可能である。
示される例において、データ処理システム200は、ノース・ブリッジ及びメモリ・コントローラ・ハブ(NB/MCH)202と、サウス・ブリッジ及び入力/出力(I/O)コントローラ・ハブ(SB/ICH)204とを含む、ハブ・アーキテクチャを利用する。処理ユニット206、メイン・メモリ208、及びグラフィックス・プロセッサ210は、ノース・ブリッジ及びメモリ・コントローラ・ハブ(NB/MCH)202に結合される。処理ユニット206は、1つ又は複数のプロセッサを含むことができ、1つ又は複数の異種のプロセッサ・システムを用いて実装され得る。処理ユニット206は、マルチコア・プロセッサとすることができる。特定の実装において、グラフィックス・プロセッサ210は、アクセラレーテッド・グラフィックス・ポート(AGP)を通して、NB/MCH202に結合され得る。
示される例においては、ローカル・エリア・ネットワーク(LAN)アダプタ212は、サウス・ブリッジ及びI/Oコントローラ・ハブ(SB/ICH)204に結合される。音声アダプタ216、キーボード及びマウス・アダプタ220、モデム222、読み出し専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)及び他のポート232、並びにPCI/PCIeデバイス234は、バス238を通して、サウス・ブリッジ及びI/Oコントローラ・ハブ204に結合される。ハードディスク・ドライブ(HDD)又はソリッド・ステート・ドライブ(SSD)226及びCD-ROM230は、バス240を通して、サウス・ブリッジ及びI/Oコントローラ・ハブ204に結合される。PCI/PCIeデバイス234は、例えば、Ethernetアダプタ、アドイン・カード、及びノートブック・コンピュータ用のPCカードを含むことができる。PCIは、カード・バス・コントローラを使用するが、PCIeは使用しない。ROM224は、例えば、フラッシュ・バイナリ入力/出力システム(BIOS)とすることができる。ハードディスク・ドライブ226及びCD-ROM230は、例えば、統合ドライブ・エレクトロニクス(IDE)、シリアル・アドバンスト・テクノロジ・アタッチメント(SATA)インターフェース、又はエクスターナルSATA(eSATA)及びマイクロSATA(mSATA)などの変形を使用することができる。スーパーI/O(SIO)デバイス236は、バス238を通して、サウス・ブリッジ及びI/Oコントローラ・ハブ(SB/ICH)204に結合され得る。
メイン・メモリ208、ROM224、又はフラッシュ・メモリ(図示せず)などのメモリは、コンピュータ使用可能ストレージ・デバイスの幾つかの例である。ハードディスク・ドライブ又はソリッド・ステート・ドライブ226、CD-ROM230及び他の同様の使用可能なデバイスは、コンピュータ使用可能ストレージ媒体を含むコンピュータ使用可能ストレージ・デバイスの幾つかの例である。
オペレーティング・システムは、処理ユニット206上で動作する。オペレーティング・システムは、図2のデータ処理システム200内の種々のコンポーネントを連携させ、それらの制御を提供する。オペレーティング・システムは、これらに限定されるものではないが、サーバ・システム、パーソナル・コンピュータ及びモバイル・デバイスを含む、任意のタイプのコンピューティング・プラットフォーム用の市販のオペレーティング・システムとすることができる。オブジェクト指向又は他のタイプのプログラミング・システムは、オペレーティング・システムと共に動作し、データ処理システム200上で実行されるプログラム又はアプリケーションから、オペレーティング・システムへの呼び出しを提供することができる。
オペレーティング・システム、オブジェクト指向プログラミング・システム、及び図1のサーバ・アプリケーション105若しくはクライアント・アプリケーション111などのアプリケーション又はプログラムのための命令は、例えばハードディスク・ドライブ226上のコード226Aの形でストレージ・デバイス上に配置され、例えば処理ユニット206によって実行するために、メイン・メモリ208などの1つ又は複数のメモリの少なくとも1つにロードされ得る。例示的実施形態のプロセスは、例えば、メイン・メモリ208、読み出し専用メモリ224などのメモリ内に、又は1つ又は複数の周辺デバイス内に配置され得る、コンピュータ実施命令を用いて、処理ユニット206により実行され得る。
さらに、1つの事例では、コード226Aは、ネットワーク201A上でリモート・システム201Bからダウンロードすることができ、そこで、同様のコード201Cがストレージ・デバイス201D上に格納される。別の事例では、コード226Aは、ネットワーク201A上でリモート・システム201Bにダウンロードすることができ、そこで、ダウンロードされたコード201Cがストレージ・デバイス201D上に格納される。
図1~図2に示されるハードウェアは、実装に応じて変化し得る。フラッシュ・メモリ、同等の不揮発性メモリ、又は光学ディスク・ドライブ等といった、他の内部ハードウェア又は周辺デバイスが、図1~図2に示されるハードウェアに加えて又はそれらの代わりに使用され得る。さらに、例示的実施形態のプロセスは、マルチプロセッサ・データ処理システムに適用され得る。
幾つかの例示的な例において、データ処理システム200は、通常、オペレーティング・システム・ファイル及び/又はユーザ生成データを格納するための不揮発性メモリを提供するフラッシュ・メモリを有するように構成される、携帯情報端末(PDA)とすることができる。バス・システムは、システム・バス、I/Oバス、及びPCIバスなどの1つ又は複数のバスを含むことができる。もちろん、バス・システムは、ファブリック又はアーキテクチャに取り付けられた異なるコンポーネント又はデバイス間のデータの転送を提供する任意のタイプの通信ファブリック又はアーキテクチャを用いて実施することができる。
通信ユニットは、モデム又はネットワーク・アダプタなどのデータを受送信するために使用される1つ又は複数のデバイスを含むことができる。メモリは、例えば、メイン・メモリ208、又はノース・ブリッジ及びメモリ・コントローラ・ハブ202内に見出されるキャッシュなどのキャッシュとすることができる。処理ユニットは、1つ又は複数のプロセッサ又はCPUを含むことができる。
図1~図2の示される例及び上述の例は、アーキテクチャ上の制限を意味することを意図しない。例えば、データ処理システム200は、モバイル又はウェアラブル・デバイスの形をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、又は電話デバイスとすることもできる。
コンピュータ又はデータ処理システムが、仮想マシン、仮想デバイス、又は仮想コンポーネントとして説明される場合、仮想マシン、仮想デバイス、又は仮想コンポーネントは、データ処理システム200内に示される一部又は全てのコンポーネントの仮想化された発現(manifestation)を用いてデータ処理システム200の方法で動作する。例えば、仮想マシン、仮想デバイス、又は仮想コンポーネントにおいて、処理ユニット206は、ホスト・データ処理システムにおいて利用可能なハードウェア処理ユニット206の全て又は一部の数の仮想化インスタンスとして発現され、メイン・メモリ208は、ホスト・データ処理システムにおいて利用可能であり得るメイン・メモリ208の全ての部分又は一部分の仮想化インスタンスとして発現され、ディスク226は、ホスト・データ処理システムにおいて利用可能であり得るディスク226の全ての部分又は一部分の仮想化インスタンスとして発現される。ホスト・データ処理システムは、そのような場合、データ処理システム200により表される。
図3を参照すると、この図は、例示的実施形態による、2段階認証の自動アップグレードのための例示的構成のブロック図を示す。クライアント302は、図1のクライアント110の例であり、クライアント・アプリケーション306は、図1のクライアント・アプリケーション111の例である。サーバ304は、図1のサーバ104の例であり、サーバ・アプリケーション314は、図1のサーバ・アプリケーション105の例である。ネットワーク300は、図1のネットワーク102の例である。
クライアント・アプリケーション306は、認証コンポーネント308、REST APIコンポーネント310、及びクライアント・プリファレンス・コンポーネント312を含む。認証コンポーネント308は、本明細書で説明されるような共有シークレットからのOTPの生成など、クライアント側認証動作を実行するように構成される。REST APIコンポーネント310は、本明細書で説明されるような、クライアント302とサーバ304との間などの、RESTベースのメッセージ動作を実行するように構成される。クライアント・プリファレンス・コンポーネント312は、本明細書で説明されるような、サーバ304から受け取った共有シークレットなど、クライアント302のユーザ322と関連したクライアント・プリファレンス情報を格納するように構成される。
サーバ・アプリケーション314は、認証コンポーネント316、REST APIコンポーネント318、及びユーザ・プロファイル・コンポーネント320を含む。認証コンポーネント316は、本明細書で説明されるような、共有シークレットの生成、ユーザID/パスワードの組み合わせの検証、及び共有シークレットに対する所定のOTPの検証といったサーバ側認証動作を実行するように構成される。REST APIコンポーネント318は、本明細書で説明されるような、サーバ304とクライアント302との間などの、RESTベースのメッセージ動作を実行するように構成される。ユーザ・プロファイル・コンポーネント320は、本明細書で説明されるような、認証コンポーネント316により生成される共有シークレットなどの、クライアント302のユーザ322と関連したユーザ・プロファイル情報を格納するように構成される。
一実施形態において、REST APIを利用するアプリケーション及びサービスのための2段階認証プロセスが提供され、そこで、ユーザ322は、ユーザID及びパスワードをクライアント302のクライアント・アプリケーション306に提供し、クライアント・アプリケーション306は、ユーザID及びパスワードをサーバ304のサーバ・アプリケーション314に伝送する。ユーザID及びパスワードの受信に応答して、サーバ・アプリケーション314は、ユーザID及びパスワードを確認する。ユーザID及びパスワードの確認が成功すると、サーバ・アプリケーション314は、ユーザ322が1段階認証から2段階認証へアップグレードされるかどうかを判断する。ユーザ322が1段階認証から2段階認証へアップグレードされない場合、サーバ304は、クライアント302についてのAPI動作に対する完全なパーミッション/アクセスを有する、クライアント302とサーバ304との間の認証セッションを確立する。ユーザ322が1段階認証から2段階認証へアップグレードされる場合、サーバ304は、クライアント302とサーバ304との間に、クライアント302についてパーミッションが与えられたAPI動作に対する制限されたパーミッションを有する認証セッションを確立する。サーバ304は、認証コンポーネント316により生成される共有シークレットを含むログオン応答をクライアント302に送る。クライアント302は、共有シークレットを含むログオン応答を受け取り、共有シークレットに基づいてワンタイム・パスコード(OTP)を生成する。クライアント302は、OTPを含むAPI要求をサーバ304に送り、共有シークレットがユーザ322と関連したユーザ・プロファイル内に設定されることを指示する。サーバ304は、OTPを含む要求を受け取り、共有シークレットに対してOTPを検証する。サーバ304が共有シークレットに対してOTPを成功裡に検証した場合、サーバ304は、サーバ304とクライアント302との間の、API動作に対する完全なパーミッション/アクセスがクライアント302に与えられる認証セッションを続行する。サーバ304は、共有シークレットをユーザ・プロファイル内に格納し、クライアント・アプリケーション306による後のログオンは、ユーザID、パスワード、及び共有シークレットに基づいて生成される現在のOTPを求める。
図4を参照すると、この図は、例示的実施形態による、2段階認証の自動アップグレードのための例示的プロセスのメッセージ・フローを示す。1つ又は複数の実施形態において、メッセージ・フロー400は、図3のクライアント・アプリケーション306及びサーバ・アプリケーション314において実施され得る。
402において、クライアント302が、ユーザ322からユーザID及びパスワードを受け取る。404において、クライアント302は、ユーザID及びパスワードをサーバ304に送る。406において、サーバ304は、ユーザID及びパスワードを検証することにより第1の認証を用いて、ユーザ322を認証する。ユーザ322が1段階認証から2段階認証へのアップグレードを要求するように指定される場合、408において、サーバ304は、共有シークレットを生成し、クライアント302との認証セッションを確立する。特定の実施形態において、認証セッションは、クライアント302についてAPI動作に対する制限されたパーミッション/アクセスを有する。410において、サーバ304は、認証セッションを用いて、セッション特有のデータ及び共有シークレットをクライアント302に送る。412において、クライアント302は、共有シークレットに基づいてワンタイム・パスコード(OTP)を生成する。414において、クライアント302は、共有シークレットに基づいて生成されたOTPをサーバ304に送る。
416において、サーバ304は、共有シークレットに対してOTPを検証する。OTPが検証された場合、418において、サーバ304は、共有シークレットを、ユーザ322と関連したユーザ・プロファイルに格納する。420において、サーバ304は、認証応答をクライアント302に送って認証セッションを続行し、そこで、クライアント302は、API動作に対する完全なパーミッション/アクセスを有し、サーバ304又は別のサーバにより提供されるアプリケーション及び/又はサービスへのアクセスを得る。422において、クライアント302は、共有シークレットをクライアント・プリファレンス・コンポーネント312に格納する。その後、メッセージ・フロー400は終了する。実施形態において、ユーザ322からの後のログオンは、ユーザ322が、サーバ304に認証されてサーバにより提供されるアプリケーション及びサービスへのアクセスを得るために、ユーザID、パスワード、及び共有シークレットに基づいて生成される現在のOTPを提供することを求める。
図5を参照すると、この図は、例示的実施形態による、2段階認証の自動アップグレードのための例示的なクライアント側プロセスのフローチャートを示す。1つ又は複数の実施形態において、プロセス500は、図3のクライアント・アプリケーション306において実施され得る。502において、クライアント・アプリケーション306は、ユーザID及びパスワードをユーザ322に促す。504において、クライアント・アプリケーション306は、ユーザ322からユーザID及びパスワードを受け取る。506においてクライアント・アプリケーション306は、ユーザID及びパスワードをサーバ304に送る。
ユーザ322が1段階認証から2段階認証へのアップグレードを要求するように指定される場合、サーバ304は、共有シークレットを生成する。ブロック508において、クライアント302は、サーバ304との認証セッションを確立する。特定の実施形態において、第1の認証セッションは、クライアント302に対してAPI動作への制限されたパーミッション/アクセスを有する。510において、クライアント302は、認証セッションを用いて、サーバ304から、共有シークレットを含むログオン応答を受け取る。
512において、クライアント302は、サーバ304から受け取った共有シークレットに基づいてワンタイム・パスコード(OTP)を生成する。514において、クライアント302は、共有シークレットに基づいて生成されたOTPをサーバ304に送る。サーバ304は、共有シークレットに対してOTPを検証する。OTPが検証された場合、サーバ304は、共有シークレットを、ユーザ322と関連したユーザ・プロファイルに格納する。516において、クライアント302は、サーバ304から認証応答を受け取る。518において、クライアント302は、認証応答が、ユーザ322が認証されたことを示すかどうかを判断する。ユーザ322が認証されない場合、プロセス500は終了する。ユーザ322が認証された場合、520において、クライアント302は、サーバ304との認証セッションを続行し、そこで、API動作に対する完全なパーミッション/アクセスがクライアント302に与えられて、サーバ304又は別のサーバにより提供されるアプリケーション及び/又はサービスへのアクセスを得る。522において、クライアント302は、共有シークレットをクライアント・プリファレンス・コンポーネント312に格納する。その後、クライアント・アプリケーション306は、プロセス500を終了する。実施形態において、ユーザ322からの後のログオンは、ユーザ322が、サーバ304に認証されてサーバにより提供されるアプリケーション及びサービスへのアクセスを得るために、ユーザID、パスワード、及び共有シークレットに基づいて生成される現在のOTPを提供することを求める。
図6を参照すると、この図は、例示的実施形態による、2段階認証の自動アップグレードのための例示的なサーバ側プロセスのフローチャートを示す。1つ又は複数の実施形態において、プロセス600は、図3のサーバ・アプリケーション314において実施され得る。602において、サーバ304のサーバ・アプリケーション314は、クライアント302から、ユーザ322により提供されるユーザID及びパスワードを受け取る。
604において、サーバ・アプリケーション314は、ユーザID及びパスワードを検証することにより第1の認証要素を用いてユーザ322を認証する。606において、サーバ・アプリケーション314は、クライアント302との認証セッションを確立する。特定の実施形態において、認証セッションは、クライアント302についてAPI動作に対する制限されたパーミッション/アクセスを有する。608において、サーバ・アプリケーション314は、ユーザ322が1要素認証から2要素認証へのアップグレードを要求するかどうかを判断する。ユーザ322が1要素認証から2要素認証へのアップグレードを要求するように指定される場合、610において、サーバ・アプリケーション314は、共有シークレットを生成する。612において、サーバ・アプリケーション314は、認証セッションを用いて、共有シークレットを含むログオン応答をクライアント302に送る。共有シークレットの受信に応答して、クライアント302は、共有シークレットに基づいてワンタイム・パスコード(OTP)を生成し、共有シークレットに基づいて生成されたOTPをサーバ304に送る。
614において、サーバ・アプリケーション314は、クライアント302からOTPを受け取る。616において、サーバ・アプリケーション314は、共有シークレットに対してOTPを検証する。OTPが検証された場合、618において、サーバ・アプリケーション314は、共有シークレットを、ユーザ322と関連したユーザ・プロファイルに格納する。620において、サーバ304は、認証セッションを続行し、そこで、クライアント302は、API動作に対する完全なパーミッション/アクセスが与えられて、サーバ304又は別のサーバにより提供されるアプリケーション及び/又はサービスへのアクセスを得る。622において、サーバ・アプリケーション314は、認証セッションの続行を示す認証応答をクライアント302に送る。実施形態において、ユーザ322からの後のログオンは、ユーザ322が、サーバ304に認証されてサーバ304又は別のサーバにより提供されるアプリケーション及びサービスへのアクセスを得るために、ユーザID、パスワード、及び共有シークレットに基づいて生成される現在のOTPを提供することを求める。608において、サーバ・アプリケーション314が、2要素認証を必要としないと判断した場合、622において、サーバ・アプリケーション314は、クライアント302により認証セッションを使用できることを示す認証応答をクライアント302に送る。このようにユーザ322が2要素認証にアップグレードされない場合、ユーザ322からの後のログオンは、ユーザID及びパスワードのみの提供を求める。その後、サーバ・アプリケーション314はプロセス600を終了する。
従って、ユーザの1段階認証から2段階認証への自動アップグレード、及び他の関連する特徴、機能、又は動作を可能にするために、例示的実施形態において、コンピュータ実施方法、システム、装置及びコンピュータ・プログラム製品が提供される。実施形態又はその一部があるタイプのデバイスに関して説明されるが、コンピュータ実施方法、システム又は装置、コンピュータ・プログラム製品又はその一部は、そのタイプのデバイスの好適で比較可能な発現と共に用いられるように適合又は構成される。
実施形態がアプリケーションにおいて実施されるように説明される場合、Software as a Service(SaaS)モデルにおけるアプリケーションの供給は、例示的実施形態の範囲内にあると考えられる。SaaSモデルにおいて、実施形態を実施するアプリケーションの能力は、クラウド・インフラストラクチャにおいてアプリケーションを実行することにより、ユーザに与えられる。ユーザは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)又は他の軽量クライアント・アプリケーションなどのシン・クライアント・インターフェースを通じて種々のクライアント・デバイスを用いてアプリケーションにアクセスすることができる。ユーザは、ネットワーク、サーバ、オペレーティング・システム、又はクラウド・インフラストラクチャのストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しない。場合によっては、ユーザが、SaaSアプリケーションの能力を管理又は制御しないことさえある。他の場合には、アプリケーションのSaaS実装は、制限されたユーザ固有のアプリケーション構成設定の可能な例外を可能にする。
本発明は、統合のいずれかの可能な技術的詳細レベルにおける、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、又は、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができるいずれかのソースコード若しくはオブジェクトコードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個別化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、命令が内部に格納されたコンピュータ可読ストレージ媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実装プロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
100:データ処理環境
102、300:ネットワーク
104、106、302:サーバ
105、314:サーバ・アプリケーション
108:ストレージ
109:データベース
110、112、114、302:クライアント
111、306:クライアント・アプリケーション
132:デバイス
200:データ処理システム
201B、201C:リモート・システム
201D:ストレージ・デバイス
202:ノース・ブリッジ及びメモリ・コントローラ・ハブ(NB/MCH)
204:サウス・ブリッジ及び入力/出力(I/O)コントローラ・ハブ(SB/ICH)
206:処理ユニット
208:メイン・メモリ
210:グラフィックス・プロセッサ
212:ローカル・エリア・ネットワーク(LAN)アダプタ
226:ハードディスク・ドライブ
226A:コード
238:バス
308、316:認証コンポーネント
310、318:REST APIコンポーネント
312:クライアント・プリファレンス・コンポーネント
320:ユーザ・プロファイル・コンポーネント
322:ユーザ

Claims (10)

  1. 2段階認証のための方法であって、前記方法は、
    クライアントにより、アプリケーション・プログラミング・インターフェース(API)を介して、ユーザ識別子及びパスワードをサーバに伝送することと、
    前記サーバとの認証セッションを確立することであって、前記クライアントは前記APIと関連した動作に対する第1のセットのパーミッションを有する、確立することと、
    前記サーバによる前記ユーザ識別子及びパスワードの検証に応答して、ログオン応答及び共有シークレットを受け取ることであって、前記サーバは前記ユーザ識別子及びパスワードの認証が成功した後、1段階認証から2段階認証へアップグレードされるかどうかを判断し、パーミッションが与えられたAPI動作に対する制限されたパーミッションを前記クライアントに付与し、次のログオン試行に対する前記第2段階認証を要求する、受け取ることと、
    前記クライアントにより、前記共有シークレットに基づいてワンタイム・パスコード(OTP)を生成することと、
    前記APIを介して前記OTPを前記サーバに送ることと、
    前記サーバが前記共有シークレットに対して前記OTPを検証することに応答して、前記APIと関連した動作に対する第2のセットのパーミッションを与えることと、
    を含む、方法。
  2. 前記クライアントにより、ユーザから、前記ユーザ識別子及びパスワードを受け取ることをさらに含む、請求項1に記載の方法。
  3. 前記ログオン応答及び共有シークレットを受け取ることは、前記ユーザ識別子と関連したユーザが、1要素認証から2要素認証へアップグレードするように指定されるとの判断に応答する、請求項1又は2に記載の方法。
  4. 前記クライアントにより、前記共有シークレットを、ユーザと関連したクライアント・プリファレンス内に格納することをさらに含む、請求項1乃至3のいずれかに記載の方法。
  5. 前記サーバは、前記共有シークレットを、ユーザと関連したユーザ・プロファイル内に格納するように構成される、請求項1乃至4のいずれかに記載の方法。
  6. 前記APIは、Representational state transfer(REST)APIを含む、請求項1乃至5のいずれかに記載の方法。
  7. 前記第2のセットのパーミッションは、前記第1のセットのパーミッションを上回る、請求項1乃至6のいずれかに記載の方法。
  8. 前記ユーザ識別子、前記パスワード、及び前記共有シークレットに基づいて生成された現在のOTPを、後のログオン動作において前記サーバに伝送することをさらに含む、請求項1乃至7のいずれかに記載の方法。
  9. コンピュータ可読媒体上に格納されかつデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項1乃至8のいずれかに記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
  10. 1つ又は複数のプロセッサと、1つ又は複数のコンピュータ可読メモリと、1つ又は複数のコンピュータ可読ストレージ・デバイスと、前記1つ又は複数のメモリの少なくとも1つを介して前記1つ又は複数のプロセッサの少なくとも1つにより実行される、前記1つ又は複数のストレージ・デバイスの少なくとも1つに格納されるプログラム命令とを含むコンピュータ・システムであって、前記格納されるプログラム命令は、
    クライアントにより、アプリケーション・プログラミング・インターフェース(API)を介して、ユーザ識別子及びパスワードをサーバに伝送するためのプログラム命令と、
    前記サーバとの認証セッションを確立するためのプログラム命令であって、前記クライアントは前記APIと関連した動作に対する第1のセットのパーミッションを有する、確立するためのプログラム命令と、
    前記サーバによる前記ユーザ識別子及びパスワードの検証に応答して、ログオン応答及び共有シークレットを受け取るためのプログラム命令であって、前記サーバは前記ユーザ識別子及びパスワードの認証が成功した後、1段階認証から2段階認証へアップグレードされるかどうかを判断し、パーミッションが与えられたAPI動作に対する制限されたパーミッションを前記クライアントに付与し、次のログオン試行に対する前記第2段階認証を要求する、受け取るためのプログラム命令と、
    前記クライアントにより、前記共有シークレットに基づいてワンタイム・パスコード(OTP)を生成するためのプログラム命令と、
    前記APIを介して前記OTPを前記サーバに送るためのプログラム命令と、
    前記サーバが前記共有シークレットに対して前記OTPを検証することに応答して、前記APIと関連した動作に対する第2のセットのパーミッションを与えるためのプログラム命令と、
    を含む、コンピュータ・システム。
JP2020510511A 2017-08-29 2018-08-24 アプリケーション・プログラミング・インターフェースを介する1段階認証から2段階認証への自動アップグレード Active JP7100939B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/689,073 2017-08-29
US15/689,073 US10586033B2 (en) 2017-08-29 2017-08-29 Automatic upgrade from one step authentication to two step authentication via application programming interface
US15/813,712 US10592656B2 (en) 2017-08-29 2017-11-15 Automatic upgrade from one step authentication to two step authentication via application programming interface
US15/813,712 2017-11-15
PCT/IB2018/056437 WO2019043539A1 (en) 2017-08-29 2018-08-24 AUTOMATICALLY UPGRADING ONE-STEP AUTHENTICATION TO TWO-STEP AUTHENTICATION VIA AN APPLICATION PROGRAMMING INTERFACE

Publications (3)

Publication Number Publication Date
JP2020531990A JP2020531990A (ja) 2020-11-05
JP2020531990A5 JP2020531990A5 (ja) 2021-02-18
JP7100939B2 true JP7100939B2 (ja) 2022-07-14

Family

ID=65435333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020510511A Active JP7100939B2 (ja) 2017-08-29 2018-08-24 アプリケーション・プログラミング・インターフェースを介する1段階認証から2段階認証への自動アップグレード

Country Status (6)

Country Link
US (3) US10586033B2 (ja)
JP (1) JP7100939B2 (ja)
CN (1) CN111034146B (ja)
DE (1) DE112018004753T5 (ja)
GB (1) GB2579990B (ja)
WO (1) WO2019043539A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11283793B2 (en) * 2018-10-18 2022-03-22 Oracle International Corporation Securing user sessions
US10389708B1 (en) * 2019-01-03 2019-08-20 Capital One Services, Llc Secure authentication of a user associated with communication with a service representative
US10983767B2 (en) * 2019-01-04 2021-04-20 T-Mobile Usa, Inc. Microservice-based software development
US11068259B2 (en) 2019-01-04 2021-07-20 T-Mobile Usa, Inc. Microservice-based dynamic content rendering
US10652238B1 (en) * 2019-06-10 2020-05-12 Capital One Services, Llc Systems and methods for automatically performing secondary authentication of primary authentication credentials
WO2020256366A1 (en) * 2019-06-17 2020-12-24 Samsung Electronics Co., Ltd. Method and server for providing user consent to edge application
JP7338386B2 (ja) * 2019-10-04 2023-09-05 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム及びプログラム
US11947659B2 (en) 2020-05-28 2024-04-02 Red Hat, Inc. Data distribution across multiple devices using a trusted execution environment in a mobile device
US11971980B2 (en) 2020-05-28 2024-04-30 Red Hat, Inc. Using trusted execution environments to perform a communal operation for mutually-untrusted devices
TWI749774B (zh) * 2020-09-17 2021-12-11 瑞昱半導體股份有限公司 驗證系統及用於驗證系統之驗證方法
US11848924B2 (en) * 2020-10-12 2023-12-19 Red Hat, Inc. Multi-factor system-to-system authentication using secure execution environments
US11818121B2 (en) 2021-07-15 2023-11-14 Micro Focus Llc Low cost defense against denial-of-service attacks

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098464A1 (en) 2006-10-24 2008-04-24 Authernative, Inc. Two-channel challenge-response authentication method in random partial shared secret recognition system
JP2009534742A (ja) 2006-04-21 2009-09-24 ベリサイン・インコーポレイテッド 時間およびイベントベースのワンタイムパスワード
US20090265764A1 (en) 2008-04-21 2009-10-22 Verizon Business Network Services Inc. Aggregation and use of information relating to a users context
JP2014529145A (ja) 2011-09-27 2014-10-30 オラクル・インターナショナル・コーポレイション Guiナビゲーション、プロパティシート、およびオートタブコンプリーションを含むサーバ構成を管理するためのシステムおよび方法
CN104168329A (zh) 2014-08-28 2014-11-26 尚春明 云计算及互联网中的用户二次认证方法、装置和系统
CN105516980A (zh) 2015-12-17 2016-04-20 河南大学 一种基于Restful架构的无线传感器网络令牌认证方法
WO2017019652A1 (en) 2015-07-27 2017-02-02 Amazon Technologies, Inc. Providing multi-factor authentication credentials via device notifications

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685631B1 (en) * 2003-02-05 2010-03-23 Microsoft Corporation Authentication of a server by a client to prevent fraudulent user interfaces
US7571489B2 (en) * 2004-10-20 2009-08-04 International Business Machines Corporation One time passcode system
US7748031B2 (en) * 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US8245031B2 (en) * 2006-07-07 2012-08-14 Sandisk Technologies Inc. Content control method using certificate revocation lists
US8613103B2 (en) * 2006-07-07 2013-12-17 Sandisk Technologies Inc. Content control method using versatile control structure
US20100138652A1 (en) * 2006-07-07 2010-06-03 Rotem Sela Content control method using certificate revocation lists
US8543829B2 (en) * 2007-01-05 2013-09-24 Ebay Inc. Token device re-synchronization through a network solution
GB2458470A (en) * 2008-03-17 2009-09-23 Vodafone Plc Mobile terminal authorisation arrangements
US8312519B1 (en) * 2010-09-30 2012-11-13 Daniel V Bailey Agile OTP generation
US9141410B2 (en) * 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
US9742873B2 (en) 2012-11-29 2017-08-22 International Business Machines Corporation Adjustment to managed-infrastructure-as-a-service cloud standard
US9098687B2 (en) * 2013-05-03 2015-08-04 Citrix Systems, Inc. User and device authentication in enterprise systems
US9467853B2 (en) * 2013-10-17 2016-10-11 Lg Electronics Inc. Server for managing home appliance and system including the same
US9754097B2 (en) * 2014-02-21 2017-09-05 Liveensure, Inc. Method for peer to peer mobile context authentication
CN104468119B (zh) 2014-11-21 2017-06-27 上海瀚之友信息技术服务有限公司 一种一次性密码认证系统及认证方法
US10324773B2 (en) 2015-09-17 2019-06-18 Salesforce.Com, Inc. Processing events generated by internet of things (IoT)
CN105357186B (zh) 2015-10-10 2018-10-19 江苏通付盾科技有限公司 一种基于带外验证和增强otp机制的二次认证方法
US10574692B2 (en) * 2016-05-30 2020-02-25 Christopher Nathan Tyrwhitt Drake Mutual authentication security system with detection and mitigation of active man-in-the-middle browser attacks, phishing, and malware and other security improvements
US10455025B2 (en) * 2016-08-02 2019-10-22 Micro Focus Software Inc. Multi-factor authentication
CN106304074B (zh) 2016-08-31 2019-08-16 尹子栋 面向移动用户的身份验证方法和系统
US10237070B2 (en) * 2016-12-31 2019-03-19 Nok Nok Labs, Inc. System and method for sharing keys across authenticators

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009534742A (ja) 2006-04-21 2009-09-24 ベリサイン・インコーポレイテッド 時間およびイベントベースのワンタイムパスワード
US20080098464A1 (en) 2006-10-24 2008-04-24 Authernative, Inc. Two-channel challenge-response authentication method in random partial shared secret recognition system
US20090265764A1 (en) 2008-04-21 2009-10-22 Verizon Business Network Services Inc. Aggregation and use of information relating to a users context
JP2014529145A (ja) 2011-09-27 2014-10-30 オラクル・インターナショナル・コーポレイション Guiナビゲーション、プロパティシート、およびオートタブコンプリーションを含むサーバ構成を管理するためのシステムおよび方法
CN104168329A (zh) 2014-08-28 2014-11-26 尚春明 云计算及互联网中的用户二次认证方法、装置和系统
WO2017019652A1 (en) 2015-07-27 2017-02-02 Amazon Technologies, Inc. Providing multi-factor authentication credentials via device notifications
CN105516980A (zh) 2015-12-17 2016-04-20 河南大学 一种基于Restful架构的无线传感器网络令牌认证方法

Also Published As

Publication number Publication date
WO2019043539A1 (en) 2019-03-07
US10586033B2 (en) 2020-03-10
CN111034146B (zh) 2022-01-07
GB2579990B (en) 2021-05-05
US20190065731A1 (en) 2019-02-28
JP2020531990A (ja) 2020-11-05
GB202003933D0 (en) 2020-05-06
US10592656B2 (en) 2020-03-17
US20200151318A1 (en) 2020-05-14
CN111034146A (zh) 2020-04-17
GB2579990A (en) 2020-07-08
DE112018004753T5 (de) 2020-06-10
US20190065730A1 (en) 2019-02-28
US10984090B2 (en) 2021-04-20

Similar Documents

Publication Publication Date Title
JP7100939B2 (ja) アプリケーション・プログラミング・インターフェースを介する1段階認証から2段階認証への自動アップグレード
JP6556943B2 (ja) アプライアンスセキュアシェルのためのシングルサインオン方法
US10277409B2 (en) Authenticating mobile applications using policy files
US20190199707A1 (en) Using a service-provider password to simulate f-sso functionality
EP3008877B1 (en) User authentication in a cloud environment
JP6348661B2 (ja) サードパーティの認証サポートを介した企業認証
JP6335280B2 (ja) 企業システムにおけるユーザおよびデバイスの認証
US11038874B2 (en) Authentication and authorization of users in an information handling system between baseboard management controller and host operating system users
JP2020502616A (ja) フェデレーテッド・シングル・サインオン(sso)のための非侵入型セキュリティの実施
JP2022531872A (ja) きめの細かいトークン・ベースのアクセス制御
JP2019046496A (ja) 自動プレースホルダファインダ及びフィラー
US9503444B2 (en) System and method for sharing access to a service within a home network
US10069814B2 (en) Single sign on across multiple devices using a unique machine identification
US11153304B2 (en) Universal group support for authentication systems
US11245683B2 (en) Single-sign-on for third party mobile applications
US10152604B1 (en) Enforcing locational restrictions on stateless transactions
US10972455B2 (en) Secure authentication in TLS sessions
CN107787494B (zh) 跨重启的登录的恢复
US20230072072A1 (en) Remote authentication processing for a local user device
AU2014101079A4 (en) Secure communication method
TW202123041A (zh) 同一用戶的多重登入系統及其方法
WO2023144758A2 (en) Proxy gateway-based security for rdp-type communications sessions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211130

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20220126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220224

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220621

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20220621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220629

R150 Certificate of patent or registration of utility model

Ref document number: 7100939

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150