(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-23
(54)【発明の名称】ロボティックプロセスのためのファクター認証
(51)【国際特許分類】
G06F 21/31 20130101AFI20230816BHJP
【FI】
G06F21/31
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021569966
(86)(22)【出願日】2021-07-29
(85)【翻訳文提出日】2022-02-03
(86)【国際出願番号】 US2021043711
(87)【国際公開番号】W WO2022026715
(87)【国際公開日】2022-02-03
(32)【優先日】2020-07-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】ルクレール,ジャスティン
(72)【発明者】
【氏名】ラッシャー,ジョセフ
(57)【要約】
本明細書では、メモリおよびプロセッサを含むコンピューティングデバイスを開示する。メモリは、認証システムのためのプロセッサ実行可能命令を格納する。プロセッサは、メモリに結合される。プロセッサは、認証システムを実行して、コンピューティングデバイスに、一意の名前を含む資格情報アセットを生成させる。また、認証システムは、一意の名前を使用して資格情報アセットについてトークンをフェッチし、トークンのそれぞれのための通知を呼び出し、資格情報アセットのコードについてポーリングし、ジョブを実行するための認証のためにコードを利用する。
【特許請求の範囲】
【請求項1】
コンピューティングデバイスであって、
認証システムのためのプロセッサ実行可能命令を格納するように構成されたメモリと、
前記メモリに結合された少なくとも1つのプロセッサと、
を含み、
前記少なくとも1つのプロセッサは、前記認証システムを実行して、
前記認証システムによって、少なくとも一意の名前を含む資格情報アセットを生成すること、
前記認証システムによって、前記一意の名前を使用して前記資格情報アセットについて1または複数のトークンをフェッチすること、
前記認証システムによって、前記1または複数のトークンのそれぞれのための通知を呼び出すこと、
前記認証システムによって、前記資格情報アセットのコードについてポーリングすること、および、
前記認証システムによって、ジョブを実行するための認証のために前記コードを利用すること、
を前記コンピューティングデバイスに行わせるように構成される、コンピューティングデバイス。
【請求項2】
前記資格情報アセットは、前記認証を必要とする前記ジョブを実行する前記少なくとも1つのプロセッサのロボティックプロセスに応答して生成される、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記1または複数のトークンは、1または複数のプッシュトークンを含む、請求項1に記載のコンピューティングデバイス。
【請求項4】
前記通知は、プッシュ通知ユニフォームリソースロケータを含む、請求項1に記載のコンピューティングデバイス。
【請求項5】
前記通知は、前記コンピューティングデバイスおよびユーザーデバイスと通信している中継サーバーに、前記1または複数のトークンを前記ユーザーデバイスに提供させる、請求項1に記載のコンピューティングデバイス。
【請求項6】
前記コードは、前記通知に応答して前記資格情報アセットを更新するために、前記認証システムによって受信および利用される、請求項1に記載のコンピューティングデバイス。
【請求項7】
前記資格情報アセットは、ユーザーデバイスのローカルアプリケーションおよびロボティックプロセスが情報を通信するようにデータを保存する、請求項1に記載のコンピューティングデバイス。
【請求項8】
前記資格情報アセットは、アセット名フィールド、説明フィールド、ユーザー名フィールドおよびパスワードフィールドのうちの1または複数を含む、請求項1に記載のコンピューティングデバイス。
【請求項9】
前記資格情報アセットは、前記認証を必要とする前記ジョブを実行する前記少なくとも1つのプロセッサのロボティックプロセスによって削除される、請求項1に記載のコンピューティングデバイス。
【請求項10】
前記認証システムのロボティックプロセスは、前記コードについて前記資格情報アセットをポーリングする、請求項1に記載のコンピューティングデバイス。
【請求項11】
メモリと、前記メモリに結合された少なくとも1つのプロセッサとを含む認証システムによって、少なくとも一意の名前を含む資格情報アセットを生成することと、
前記認証システムによって、前記一意の名前を使用して前記資格情報アセットのための1または複数のトークンをフェッチすることと、
前記認証システムによって、前記1または複数のトークンのそれぞれのための通知を呼び出すことと、
前記認証システムによって、前記資格情報アセットのコードについてポーリングすることと、
前記認証システムによって、ジョブを実行するための認証のために前記コードを利用することと、
を含む、方法。
【請求項12】
前記資格情報アセットは、前記認証を必要とする前記ジョブを実行する前記少なくとも1つのプロセッサのロボティックプロセスに応答して生成される、請求項11に記載の方法。
【請求項13】
前記1または複数のトークンは、1または複数のプッシュトークンを含む、請求項11に記載の方法。
【請求項14】
前記通知は、プッシュ通知ユニフォームリソースロケータを含む、請求項11に記載の方法。
【請求項15】
前記通知は、コンピューティングデバイスおよびユーザーデバイスと通信している中継サーバーに、前記1または複数のトークンを前記ユーザーデバイスに提供させる、請求項11に記載の方法。
【請求項16】
前記コードは、前記通知に応じて前記資格情報アセットを更新するために、前記認証システムによって受信および利用される、請求項11に記載の方法。
【請求項17】
前記資格情報アセットは、ユーザーデバイスのローカルアプリケーションおよびロボティックプロセスが情報を通信するようにデータを保存する、請求項11に記載の方法。
【請求項18】
前記資格情報アセットは、アセット名フィールド、説明フィールド、ユーザー名フィールドおよびパスワードフィールドのうちの1または複数を含む、請求項11に記載の方法。
【請求項19】
前記資格情報アセットは、前記認証を必要とする前記ジョブを実行する前記少なくとも1つのプロセッサのロボティックプロセスによって削除される、請求項11に記載の方法。
【請求項20】
前記認証システムのロボティックプロセスは、前記コードについて前記資格情報アセットをポーリングする、請求項11に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
不正アクセスの防止が所望されるオンラインプラットフォームにおいて、ユーザーのオンラインプラットフォームへのアクセスを許可する際にセキュリティが用いられる。オンラインプラットフォームにおいて用いられるセキュリティの一例として、ユーザー認証がある。一般的に、ユーザー認証は、ユーザーがオンラインプラットフォームへのアクセスを得るための資格情報(例えば、正しいユーザー名およびパスワードの組み合わせ)を提出することを含む。
【0002】
多要素認証は、ユーザー認証のセキュリティを強化するものである。多要素認証においては、オンラインプラットフォームへのログインの際に、少なくとも2つの「証拠」が必要となる。例えば、資格情報は、ユーザーが持っているもの(例えば、スマートカードまたは認証コード)および/またはユーザーに関するもの(例えば、指紋)など、1または複数の追加要素と組み合わされる第1の要素とみなされ得る。しかし、ロボティックプロセスに関しては、(アンアテンディッドまたはアテンディッドに関わらず)多要素認証により問題が発生する。
【0003】
例えば、ロボティックプロセスがユーザー認証を伴う多要素認証を使用してオンラインプラットフォームにログインしようとすると、ロボティックプロセスが多要素認証を完了するための1または複数の追加要素を取得する方法がないため、ロボティックプロセスにおいてエラーまたは失敗の結果になり得る。そのため、ロボティックプロセスが多要素認証をナビゲートできるような方法で多要素認証を改善することが望ましい。
【発明の概要】
【0004】
1または複数の実施形態によれば、コンピューティングデバイスが提供される。コンピューティングデバイスは、メモリおよびプロセッサを含む。メモリは、認証システムのためのプロセッサ実行可能命令を格納する。プロセッサは、メモリに結合される。プロセッサは、認証システムを実行して、コンピューティングデバイスに、一意の名前を含む資格情報アセットを生成させる。また、認証システムは、一意の名前を使用して資格情報アセットのトークンをフェッチし、トークンのそれぞれのための通知を呼び出し、資格情報アセットのためのコードをポーリングし、ジョブ実行のための認証のためにコードを利用する。
【0005】
1または複数の実施形態によれば、上記のコンピューティングデバイスの実施形態は、方法、装置、システム、および/またはコンピュータプログラム製品として実施され得る。
【0006】
(実施形態の詳細な説明)
より詳細な理解は、図中の類似の参照数字が類似の要素を示す、添付の図面との関連で例示的に与えられた以下の説明から得られ得る。
【図面の簡単な説明】
【0007】
【
図1A】1または複数の実施形態によるロボティックプロセスオートメーション(RPA)の開発、設計、運用または実行の説明図である。
【0008】
【
図1B】1または複数の実施形態によるRPAの開発、設計、運用または実行の別の説明図である。
【0009】
【
図1C】1または複数の実施形態によるコンピューティングシステムまたは環境の説明図である。
【0010】
【
図2】1または複数の実施形態による、認証システム内の1または複数のプロセッサによって実行されるプロセスフローを示すブロック図である。
【0011】
【
図3】1または複数の実施形態による認証システムの説明図である。
【0012】
【
図4】1または複数の実施形態による、
図3の認証システムによって実行されるプロセスフローを示すブロック図である。
【0013】
【
図5】1または複数の実施形態によるユーザーインターフェースを示すブロック図である。
【発明を実施するための形態】
【0014】
(詳細な説明)
1または複数の実施形態による認証システムが、本明細書において開示される。認証システムは、認証手順の少なくとも一部の機能を行うソフトウェアおよび/またはハードウェアを含む。認証システムは、オンラインプラットフォームにアクセスするための特定の構成およびツーリングロボティックプロセスオートメーション方法を提供し、認証システムは、ハードウェアおよびソフトウェア(例えば、ハードウェア中へのルーティングが必要なプロセッサ実行可能コード)の組み合わせであり得る。これに関連して、構成およびツーリングロボティックプロセスオートメーション方法は、ロボティックプロセスが多要素認証の1または複数の追加要素を必要としていることをユーザーに(例えば、直ちに)警告し、ロボティックプロセスにそれらの1または複数の追加要素を提供する。したがって、認証システムの構成およびロボティックプロセスオートメーション方法は、オンラインプラットフォームによって実施される多要素認証をナビゲートするロボティックプロセスに関連して、1もしくは複数のデバイスおよび/またはデータベースの構成設定および画面(および/またはソフトウェアウィンドウ)の多段階のデータ操作を含む。
【0015】
この点および操作において、認証システムは、少なくとも一意の名前を含む資格情報アセットを生成する。一意の名前はさらに、資格情報アセットのための1または複数のトークンのフェッチを可能にする。したがって、認証システムが1または複数のトークンの通知を呼び出すと、認証システムはさらに、資格情報アセットのコードについてポーリングし、任意のジョブを実行するための多要素認証のためにそのコードを利用し得る。認証システムの技術的効果および利点は、ロボティックプロセスの認証を(例えば自動的に)行う際に、トークンを使用してログイン試行、資格情報アセットおよびコードを接続することにより、多要素認証を向上させることを含む。認証システムの技術的効果および利点は、デバイスがロボティックプロセスに関する多要素認証の通知を受信するように、デバイスについての資格情報アセットの選択および関連付けを可能にすることも含む。
【0016】
本明細書に記載されている方法およびプロセスでは、記載されているステップは任意の順序で順不同で実行され得、明示的に記載または表示されていないサブステップが実行され得る。また、「結合されている」または「動作的に結合されている」とは、オブジェクトが連結されていることを意味し得るが、連結されているオブジェクトの間にゼロまたはそれ以上の中間オブジェクトを有してもよい。また、開示された特徴/要素の任意の組み合わせが、1または複数の実施形態で使用され得る。「AまたはB」への言及が用いられる場合は、A、B、またはAおよびBが含まれ得、このような様態でより長い羅列に拡張され得る。X/Yという表記を使用する場合、XまたはYを含み得る。あるいは、X/Yという表記を使用する場合、XおよびYを含み得る。X/Yという表記は、上記に説明した論理により、同様により長い羅列に拡張され得る。
【0017】
図1Aは、ロボティックプロセスオートメーション(RPA)の開発、設計、運用、または実行100の説明図である。デザイナ102は、スタジオ、開発、あるいは1または複数のエンジン(例えば、認証システム)を含むオンラインプラットフォーム、開発環境などとも呼ばれ、ロボットが1または複数のワークフローを実行または自動化するためのコード、命令、コマンドなどを生成するように構成され得る。コンピューティングシステムがロボットに提供し得る選択物(複数可)から、ロボットは、ユーザーまたはオペレータによって選択されたビジュアルディスプレイの領域(複数可)の代表的なデータを決定し得る。RPAの一環として、コンピュータビジョン(CV)操作または機械学習(ML)モデルに関連して、四角、長方形、円、多角形、自由形などの多次元の形状が、UIロボットの開発およびランタイムに利用され得る。
【0018】
ワークフローによって達成され得る操作の非限定的な例としては、ログインの実行、フォームへの入力、情報技術(IT)管理などのうちの1または複数があり得る。UIオートメーションのためのワークフローを実行するために、ロボットは、アプリケーションのアクセスまたはアプリケーションの開発に関係なく、ボタン、チェックボックス、テキストフィールド、ラベルなどの特定の画面要素を一意に特定する必要があり得る。アプリケーションアクセスの例としては、ローカル、仮想、リモート、クラウド、Citrix(登録商標)、VMWare(登録商標)、VNC(登録商標)、Windows(登録商標)リモートデスクトップ、仮想デスクトップインフラストラクチャ(VDI)などがあり得る。アプリケーション開発の例としては、win32、Java、Flash、ハイパーテキストマークアップ言語(HTML)、HTML5、拡張可能なマークアップ言語(XML)、JavaScript(登録商標)、C#、C++、Silverlightなどがあり得る。
【0019】
ワークフローには、タスクシーケンス、フローチャート、有限状態マシン(FSM)、グローバル例外ハンドラなどが含まれ得るが、これらに限定されない。タスクシーケンスは、1または複数のアプリケーションまたはウィンドウ間の線形タスクを処理するための線形プロセスであり得る。フローチャートは、複雑なビジネスロジックを扱うように構成され得、複数の分岐ロジックオペレータを介して、より多様な方法で意思決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフロー用に構成され得る。FSMは、条件、遷移、アクティビティなどによってトリガされ得る有限数の状態を実行時に使用し得る。グローバル例外ハンドラは、プロセスのデバッグプロセスなどのために、実行エラーが発生したときのワークフロー挙動を決定するように構成され得る。
【0020】
ロボットは、アプリケーション、アプレット、スクリプトなどであり得、基盤となるオペレーティングシステム(OS)またはハードウェアに対しテ透過的なUIを自動化させ得る。展開時には、1または複数のロボットは、コンダクタ104(オーケストレータとも呼ばれる)によって管理、制御などされ得る。コンダクタ104は、メインフレーム、ウェブ、仮想マシン、リモートマシン、仮想デスクトップ、エンタープライズプラットフォーム、オンラインプラットフォーム、デスクトップアプリ(複数可)、ブラウザ、またはそのようなクライアント、アプリケーション、もしくはプログラムにおいてワークフローを実行または監視するようにロボット(複数可)または自動化エグゼキュータ106に指示または命令し得る。コンダクタ104は、コンピューティングプラットフォーム(例えば、オンラインプラットフォーム)を自動化するよう複数のロボットに指示または命令するための中央または半中央点として機能し得る)。
【0021】
特定の構成では、コンダクタ104は、プロビジョニング、展開、構成、キューイング、監視、ロギング、および/または相互接続性を提供するように構成され得る。プロビジョニングは、ロボット(複数可)または自動化エグゼキュータ106とコンダクタ104との間の接続または通信の生成および維持を含み得る。展開は、割り当てられたロボットへのパッケージバージョンの(実行のための)配信を保証することを含み得る。構成は、ロボット環境およびプロセス構成の維持および配信を含み得る。キューイングは、キューおよびキュー項目の管理を提供することを含み得る。監視は、ロボット特定データを追跡し、ユーザーの権限を維持することを含み得る。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージメカニズム(例えば、大規模なデータセットを格納し、迅速にクエリを実行する能力を提供するElasticSearch(登録商標)へのログの保存およびインデックス作成を含み得る。コンダクタ104は、サードパーティソリューションおよび/またはアプリケーションのための通信の集中点として操作することにより、相互接続性を提供し得る。
【0022】
ロボット(複数可)または自動化エグゼキュータ106は、アンアテンディッド108またはアテンディッド110として構成され得る。アンアテンディッド108の動作の場合、自動化は、サードパーティの入力または制御なしで実行され得る。アテンディッド110の動作の場合、サードパーティのコンポーネントからの入力、コマンド、指示、指導などを受信して自動化が行われ得る。アンアテンディッド108またはアテンディッド110のロボットは、モバイルコンピューティング環境またはモバイルデバイス環境において動作するまたは実行すし得る。
【0023】
ロボット(複数可)または自動化エグゼキュータ106は、デザイナ102内に構築されたワークフローを実行する実行エージェントであり得る。UIまたはソフトウェアの自動化のためのロボット(複数可)の商業的な例としては、UiPath Robots(商標)がある。いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、Microsoft Windows(登録商標) Service Control Manager(SCM)管理サービスをデフォルトでインストールし得る。その結果、そのようなロボットは、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開くことができ、Windows(登録商標)サービスの権利を持ち得る。
【0024】
いくつかの実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、ユーザーモードでインストールされ得る。これらのロボットは、所定のロボットが設置されているユーザーと同じ権利を持ち得る。この特徴は、例えば高密度(HD)環境におおて最大のパフォーマンスで各マシンを完全に利用できるようにする高密度(HD)ロボットにおいても使用可能であり得る。
【0025】
特定の実施形態では、ロボット(複数可)または自動化エグゼキュータ106は、それぞれが特定の自動化タスクまたはアクティビティに専用に用いられるいくつかのコンポーネントに分割、分散などされ得る。ロボットコンポーネントには、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、コマンドラインなどが含まれ得る。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理または監視し得、コンダクタ104と実行ホスト(すなわち、ロボット(複数可)または自動化エグゼキュータ106が実行されるコンピューティングシステム)との間のプロキシとして機能し得る。これらのサービスは、信頼され得、ロボット(複数可)または自動化エグゼキュータ106の資格情報を管理し得る。
【0026】
ユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ104と実行ホストとの間のプロキシとして機能し得る。ユーザーモードロボットサービスは、ロボットの資格情報を任されて管理し得る。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションが自動的に起動され得る。
【0027】
エグゼキュータは、Windows(登録商標)セッションの下で与えられたジョブを実行し得る(つまり、ワークフローを実行し得る)。エグゼキュータは、モニタ毎のドットパーインチ(DPI)設定を認識し得る。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標) Presentation Foundation(WPF)アプリケーションであり得る。エージェントは、サービスのクライアントとなり得る。エージェントは、ジョブの開始または停止、設定の変更を要求し得る。コマンドラインは、サービスのクライアントとなり得る。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0028】
上で説明したように、ロボット(複数可)または自動化エグゼキュータ106のコンポーネントが分割される構成では、開発者、サポートユーザーおよびコンピューティングシステムが、各コンポーネントによる実行の特定および追跡をより容易に実行するのに役立つ。このようにして、エグゼキュータとサービスに異なるファイアウォールルールを設定するなど、コンポーネントごとに特別な挙動が構成され得る。エグゼキュータは、いくつかの実施形態では、モニタごとのDPI設定を認識し得る。その結果、ワークフローは、ワークフローが作成されたコンピューティングシステムの構成に関係なく、任意のDPIにおいて実行され得る。デザイナ102からのプロジェクトも、ブラウザのズームレベルから独立し得る。DPIを認識していないかまたは意図的に認識していないとマークされているアプリケーションの場合、いくつかの実施形態ではDPIを無効にし得る。
【0029】
図1Bは、RPAの開発、設計、運用、または実行120の別の説明図である。スタジオコンポーネントまたはモジュール122は、ロボットが1または複数のアクティビティ124を実行するためのコード、命令、コマンドなどを生成するように構成され得る。ユーザーインターフェース(UI)オートメーション126は、1または複数のドライバ(複数可)コンポーネント128を使用して、クライアント上のロボットによって実行され得る。ロボットは、コンピュータビジョン(CV)アクティビティモジュールまたはエンジン130(例えば、認証システム)を使用してアクティビティを行い得る。他のドライバ132が、UIの要素を得るためにロボットによるUIオートメーションのために利用され得る。他のドライバ132には、OSドライバ、ブラウザドライバ、仮想マシンドライバ、エンタープライズドライバなどが含まれ得る。特定の構成では、CVアクティビティモジュールまたはエンジン130は、UIオートメーションのために使用されるドライバであり得る。
【0030】
図1Cは、情報またはデータを通信するためのバス142または他の通信機構と、処理のためにバス142に結合された1または複数のプロセッサ(複数可)144とを含むことができるコンピューティングシステムまたは環境140(例えば、オンラインプラットフォームおよび/または認証システムをサポートするハードウェア)の説明図である。1または複数のプロセッサ(複数可)144は、中央処理ユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、コントローラ、マルチコア処理ユニット、3次元プロセッサ、量子コンピューティングデバイス、またはそれらの任意の組み合わせを含む、任意のタイプの汎用プロセッサまたは特定用途プロセッサであり得る。1または複数のプロセッサ(複数可)144は、複数の処理コアを有してもよく、コアの少なくとも一部は、特定の機能を実行するように構成され得る。また、マルチパラレル処理が構成され得る。さらに、少なくとも1または複数のプロセッサ(複数可)144は、生物学的ニューロンを模倣する処理要素を含むニューロモーフィック回路であり得る。
【0031】
メモリ146は、プロセッサ(複数可)144によって実行または処理される情報、命令(例えば、認証システムのプロセッサ実行可能命令)、コマンドまたはデータを格納するように構成され得る。メモリ146は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ソリッドステートメモリ、キャッシュ、磁気ディスクもしくは光ディスクなどの静的記憶装置、または他のタイプの非一時的なコンピュータ読み取り可能な媒体、あるいはそれらの組み合わせの任意の組み合わせで構成され得る。非一時的なコンピュータ読み取り可能な媒体は、プロセッサ(複数可)144によってアクセス可能な任意の媒体であり得、揮発性媒体、不揮発性媒体などを含み得る。また、媒体は、取り外し可能なものであってもよいし、取り外し不可能なものなどであってもよい。
【0032】
通信装置148は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM:Global System for Mobile)通信、汎用パケット無線サービス(GPRS:General Packet Radio Service)、ユニバーサル移動体通信システム(UMTS:Universal Mobile Telecommunications System)、cdma2000、広帯域CDMA(W-CDMA:Wideband CDMA)、高速ダウンリンクパケットアクセス(HSDPA:High-Speed Downlink Packet Access)、高速アップリンクパケットアクセス(HSUPA:High-Speed Uplink Packet Access)、高速パケットアクセス(HSPA:High-Speed Packet Access)、ロングタームエボリューション(LTE:Long Term Evolution)、LTEアドバンスト(LTE-A:LTE Advanced)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB:Ultra-WideBand)、802.16x、802.15、Home Node-B(HnB)、Bluetooth、無線IDタグ(RFID:Radio Frequency Identification)、IrDA(Infrared Data Association)、近距離無線通信(NFC:Near-Field Communications)、第5世代(5G)、New Radio(NR)、または、1もしくは複数のアンテナを介して通信するためのいずれかの他の無線もしくは有線のデバイス/トランシーバとして構成され得る。アンテナは、単数型、アレイ型、フェーズド型、スイッチ型、ビームフォーミング型、ビームステア型などであり得る。
【0033】
1または複数のプロセッサ(複数可)144は、バス142を介して、プラズマ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、フィールドエミッションディスプレイ(FED)、有機発光ダイオード(OLED)、フレキシブルOLED、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細(HD)ディスプレイ、Retina(著作権)ディスプレイ、面内スイッチング(IPS)またはそのようなベースのディスプレイなどのディスプレイデバイス150にさらに結合され得る。ディスプレイデバイス150は、入力/出力(I/O)のために、当業者に理解されるように、抵抗性、静電容量性、表面音響波(SAW)静電容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを用いたタッチ、3次元(3D)タッチ、マルチ入力タッチ、またはマルチタッチディスプレイとして構成され得る。
【0034】
キーボード152およびコンピュータマウス、タッチパッドなどの制御装置154は、コンピューティングシステムまたは環境140への入力のためにバス142にさらに結合され得る。さらに、入力は、コンピューティングシステムまたは環境140と通信している別のコンピューティングシステムを介してリモートでコンピューティングシステムまたは環境140に提供されてもよいし、コンピューティングシステムまたは環境140が自律的に動作してもよい。
【0035】
メモリ146は、1または複数のプロセッサ(複数可)144によって実行または処理されたときに機能を提供するソフトウェアコンポーネント、モジュール、エンジンなどを格納し得る。これは、コンピューティングシステムまたは環境140のためのOS156を含み得る。モジュールは、アプリケーション特有のプロセスまたはその派生物を実行するためのカスタムモジュール158をさらに含み得る。コンピューティングシステムまたは環境140は、付加的な機能を含む1または複数の付加的な機能モジュール160を含み得る。例えば、認証システムは、モジュール158および160のうちの1または複数に実装されて、特定の構成およびツーリングロボティックプロセスオートメーション方法をコンピューティングシステムまたは環境140に提供し得る。
【0036】
コンピューティングシステムまたは環境140は、オンラインプラットフォーム、サーバー、組み込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングデバイス、クラウドコンピューティングデバイス、モバイルデバイス、スマートフォン、固定型モバイルデバイス、スマートディスプレイ、ウェアラブルコンピュータなどとして実行するように適合または構成され得る。
【0037】
本明細書に記載された例では、モジュールは、カスタムの超大型集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他の個別部品のような既製の半導体を含むハードウェア回路として実装され得る。また、モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジック装置、グラフィックス処理ユニットなどのプログラマブルハードウェア装置に実装され得る。
【0038】
モジュールは、様々なタイプのプロセッサによって実行されるためのソフトウェアに少なくとも部分的に実装され得る。特定された実行可能コードのユニットは、例えば、オブジェクト、プロシージャ、ルーチン、サブルーチン、または関数として編成され得るコンピュータ命令の1または複数の物理的または論理的なブロックを含み得る。特定されたモジュールの実行可能は、論理的に結合されるとモジュールを構成するように、異なる位置において共に配置され得るかまたは格納され得る。
【0039】
実行可能なコードのモジュールは、単一の命令、1または複数のデータ構造、1または複数のデータセット、複数の命令などであり、複数の異なるコードセグメント、異なるプログラム間、複数のメモリデバイス間などに分散され得る。動作データまたは機能データは、本明細書中においてモジュール内において特定および図示され得、適切な形態において具現化され得、任意の適切なタイプのデータ構造内において組織化され得る。
【0040】
本明細書で説明された例では、コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装の様態で構成され得る。コンピュータプログラムは、互いに動作可能な通信を行い、情報または指示を渡すためのモジュールによって構成され得る。
【0041】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例としては、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体記憶デバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、磁気光学媒体、ならびにCD-ROMディスクおよびデジタル多目的ディスク(DVD)などの光学媒体が挙げられるが、これらに限定されない。
【0042】
次に
図2に目を向けると、1または複数の実施形態による、認証システム内の1または複数のプロセッサによって実行されるプロセスフロー200を示すブロック図である。より詳細には、プロセスフロー200は、認証システムによる認証動作のための方法の例示的実施である。一般に、認証システム(例えば、認証手順の少なくとも一部の機能を実行するソフトウェアおよび/またはハードウェア)は、多要素認証を利用してオンラインプラットフォームにログインするコンピューティングデバイスのロボティックプロセスに関して実行する。1または複数の実施形態によると、認証動作および認証システムは、ハードウェアおよび/もしくはプロセッサの実行可能命令、コンピュータコード、ならびに/またはプログラミング言語によって実施される。さらに、1または複数の実施形態によると、認証動作および認証システムは、オンラインプラットフォームの多要素認証フレームワークの一部であり得る。
【0043】
プロセスフロー200は、ブロック210から始まり、認証システムは、少なくとも一意の名前を含む資格情報アセットを生成する。資格情報アセットは、ユーザーまたはデバイスに添付される資格、能力、および/またはクリアランスの証明など、(何らかのサービスを得るための)デジタルに基づく資格情報を含む。これに関連して、資格情報アセットは、ユーザーまたはデバイスに関する何かを証明することができ、名前(例えば、一意の名前)、出生情報、製造情報、識別情報および/またはバイオメトリック情報を含み得る。資格情報アセットは、認証を必要とするジョブのロボティックプロセスによる実行に応答して生成され得、ロボティックプロセスは、コンピューティングデバイス上で実行されている。例えば、コンピューティングデバイス上で実行するロボティックプロセスは、オンラインプラットフォームに接続し、(ロボティックプロセスまたはジョブの)一意の名前を使用してそこにログインしようとする。オンラインプラットフォームの認証システムは、接続に応答して、(例えば、ユーザーデバイスからのユーザー入力に関して)資格情報アセットを生成および格納する。
【0044】
ブロック230で、認証システムは、一意の名前を使用して、資格情報アセットのための1または複数のトークンをフェッチする(例えば、メモリから取得する)。すなわち、認証システムは、ロボティックプロセスまたはジョブの一意の名前を使用して、その一意の名前に関連するすべてのトークンをフェッチ/取得する。認証システムによってフェッチされたトークンは、動作を実行する権利を表す任意のオブジェクト(ソフトウェアまたはコード化されたハードウェアに格納)を含む。1または複数のトークンの例は、限定されないが、プッシュトークン(例えば、アクセス制御操作を表す一意のキー、アクセスハンドル、またはシステムオブジェクト)、セキュリティトークン(例えば、トークンまたは暗号トークン)、およびセッショントークン(例えば、対話セッションの一意の識別子)を含み得る。トークンは、プライマリタイプまたは偽装タイプなどの1または複数のタイプがあり、ユーザー識別子、グループ識別子、セッション識別子、および特権識別子フィールドなどのさまざまなフィールドを含み得る。
【0045】
ブロック250で、認証システムは、1または複数のトークンのそれぞれのために、通知を呼び出す。通知は、任意のデバイス、任意の場所、および任意の時間に到達することができるメッセージである(例えば、ユーザーデバイス)。例示的な通知は、プッシュ通知ユニフォームリソースロケータを含み得る。認証システムは、通知を送信し、1または複数のトークンをユーザーデバイスに提供し得る。例えば、ユーザーデバイスに呼び出しを行い、ユーザーデバイスによって通知を表示することができる。
【0046】
ブロック270で、認証システムは、資格情報アセットのコードについてポーリングする(例えば、ユーザーデバイスをポーリングする)。コードは、任意の英数字の組み合わせとされ得る。ブロック290で、認証システムは、ジョブを実行する認証のためにコードを利用する。1または複数の実施形態によって、コードは、通知に応じて資格情報アセットを更新するために、ユーザーデバイスから認証システムによって受信され、利用され得る。その後、更新された資格情報アセットは、ロボティックプロセスによってオンラインプラットフォームにログインするために使用される。
【0047】
次に
図3~6に目を向けると、認証システムのコンポーネントおよび動作が、1または複数の実施形態に従って説明される。
図3は、認証システム300(例えば、認証手順の少なくとも一部の機能を実行するソフトウェアおよび/またはハードウェア)の説明図である。
図3に示すように、認証システム300は、(破線の矢印AおよびBで示すように)オンラインプラットフォーム315と通信するユーザーデバイス305およびコンピューティングデバイス310を含む。
【0048】
ユーザーデバイス305は、それぞれが少なくともプロセッサ、メモリ、およびユーザーインターフェースを備えたディスプレイを含む、1または複数のユーザーデバイスを示す。ユーザーデバイス305の例は、限定されないが、パーソナルコンピュータ、PDA、携帯電話、タブレットコンピューティングデバイス、モバイルデバイスおよびスマートフォンを含む。ユーザーデバイス305は、ユーザーデバイス305のディスプレイ(例えば、ユーザーインターフェース)上に1または複数の画面を提供するローカルアプリケーション320(例えば、モバイルアプリケーション)を実行し得る。ローカルアプリケーション320は、ユーザーインターフェースを介してユーザーからの入力を受信し得、多要素認証動作に関する1または複数のコード325を受信し得、認証エンジン330と通信し得る。
【0049】
コンピューティングデバイス310は、1または複数のジョブ340を実行する1または複数のロボティックプロセス335をサポートする1または複数のデバイスを表す。各コンピューティングデバイス310は、少なくともプロセッサおよびメモリ(および任意選択的にユーザーインターフェースを備えたディスプレイ)を含む。コンピューティングデバイス310の例は、限定されないが、パーソナルコンピュータ、タブレットコンピューティングデバイスおよびデスクトップデバイスを含む。ロボティックプロセス335は、ユーザー資格情報345を用いてオンラインプラットフォーム315へのログインを試みることができる。認証エンジン330は、コンピューティングデバイス310にローカルなものとして示されるが、認証エンジン330は、オンラインプラットフォーム315、ユーザーデバイス305、または認証システム300の他の構成要素と通信しているスタンドアロンのハードウェア/ソフトウェアの組み合わせに対してさらにローカルなものとしてもよいしあるいは代替的にローカルなものにしてもよい点に留意されたい。なお、ユーザーデバイス305およびコンピューティングデバイス310は、(破線の矢印C1で示すように)直接通信することができ、かつ/または、任意に中継サーバー350を介して通信することができる(破線の矢印C2およびC3で示されるように、中継サーバー350の破線の境界線は、このコンポーネントが任意であることを示す)。
【0050】
オンラインプラットフォーム320は、ネットワーク、サーバー(例えば、中継サーバー350)、ストレージサービス、オペレーティングシステム、データベースサービス、およびセキュリティサービス(例えば、認証エンジン330)をユーザーデバイス305および/またはコンピューティングデバイス310に提供する、1または複数のソフトウェア、インフラストラクチャ、プラットフォームに基づくサービスを示す。認証エンジン330は、オンラインプラットフォームの1または複数のプロセッサ/デバイス/システム上で操作し得、その結果、資格情報アセット354がその中で生成、格納、および管理される。認証システム300内の矢印A、B、C1、C2およびC3は、有線および/または無線の接続、ネットワークなどを介して送信される通信を表すことに留意されたい。さらに、認証システム300の各項目またはコンポーネントについて単一のブロックが示されているが、その単一のブロックは、その項目またはコンポーネントの1または複数を表す。
【0051】
1または複数の実施形態により、資格情報アセット354は、ローカルアプリケーション320およびロボティックプロセス335が要求される情報のすべてを相互に通信できるようにデータを保存する。これは、コード325以外のものも含む。例えば、資格情報アセット354は、アセット名、説明、ユーザー名、およびパスワードなどの1または複数のフィールドを有し得る。
【0052】
アセット名は、二要素認証(2FA)アセットの名前(例えば、「PENDING_2FA_ASSET_etc」またはローカルアプリケーション320が2FAアセットをフェッチする際に検索できる一意のもの)であり得る。
【0053】
この説明は、2FAトランザクションの情報が保存されるフィールドであり得る。この情報は、本明細書で詳述するように、JSON文字列などの文字列とし得る。さらに、情報は、プロセス、ロボット、エポック、ウェブサイト、電子メール、およびneedsCodeを含み得る。1または複数の実施形態によれば、上記説明は250文字の制限を有し得るので、認証システム300は、この情報をJSON文字列、コンマ区切り文字列、または他の何かとして確実に短縮する。
JSON:
{
プロセス: ”デモプロセス”,
ロボット: ”ジョブロボット”,
エポック: 1583784275,
サイト: ”ウェブサイト”,
電子メール: demo@demo.demo,
needCode: 1
}
【0054】
プロセスは、ロボティックプロセス335が実行しているジョブ340の名前とであり得る。ロボットは、ジョブ340を実行しているロボティックプロセス335の名前であり得る。エポックは、ロボティックプロセス335が最後にコード325を送信したエポックであり得る(そうすれば、ローカルアプリケーション320は、過度に長時間が経過したかどうかを知ることができる)。ウェブサイトは、ロボティックプロセス335がログインしようとしている電子メールサービス/ウェブサイトであり得る。電子メールは、ロボティックプロセス335がログインしようとしている電子メール/ユーザー名であり得る。needCodeは、ロボティックプロセス335が現在コードを必要としているかどうかを示すブール演算子であり得る。例えば、needsCodeが「1」の場合、ロボティックプロセス335は、ローカルアプリケーション320がコード325を供給するのを待っている。また、needsCodeが「0」の場合、ローカルアプリケーション320は、コード325(例えば、2FAコード)をパスワードフィールドに設定してそれを保存する。
【0055】
資格情報アセット354のユーザー名は、場合によってはコード325(例えば、2FAコード)を含むことができる柔軟なフィールドである。パスワードは、2FAコードを受信するフィールドであり得る。ロボティックプロセス335は、資格情報アセット354内の2FAコードを見ることができる。しかし、オーケストレータユーザーは、資格情報アセット354内の2FAコードを見ることができない。このようにして、認証システム300は、権限のないユーザー(例えば、オーケストレータユーザー)によるスヌーピングを防止するという技術的効果および利点を提供する。
【0056】
図4に目を向けると、
図3のコンピューティング環境300によって実行されるプロセスフロー400を示すブロック図が示される。さらに、
図5~6は、1または複数の実施形態によるユーザーインターフェースフロー500および600を示すブロック図である。
【0057】
プロセスフロー400は、ブロック410から始まり、ブロック410において、リンクが確立される。リンクは、ユーザーデバイス305のローカルアプリケーション320と、オンラインプラットフォーム315の認証エンジン330との間に(例えば、中継サーバー350を介して)設けられ得る。リンクにより、認証システム300は、ユーザーデバイス305でのユーザー入力に応じて、資格情報アセット354を生成し得る。ロボティックプロセス335は、資格情報アセット354を用いて、オンラインプラットフォーム315(または他の外部サービス)にログインする。
【0058】
一般的に、ユーザーは、ユーザーデバイス305を操作して、ユーザーデバイス305のプッシュトークンを内部に有するアセットの生成を行わせ得る。ロボットプロセス335は、ロボットプロセス335が多要素認証(例えば、資格情報アセット354を使用した2要素問題)に遭遇したときに、そのプッシュトークンを引き出して、ユーザーデバイス305にプッシュ通知を送信し得る。例えば、ブロック410内では、各ユーザー資格情報345のためのプッシュトークン355が生成/作成され、資格情報アセット354内に格納される。プッシュトークン355の技術的効果および利点により、ユーザーデバイス305上のユーザーは、彼らが彼らのユーザーデバイス305に関連付けたい資格情報アセット354を選択することができ、その結果、彼らは、それらの選択された資格情報アセット354に対する2要素コードを要求/必要とする「プッシュ通知」を受け取る。
【0059】
図5に目を向けると、プッシュトークンの生成は、アセット詳細画面501、502、および503に関して説明されており、そのそれぞれは、1または複数の構成可能なセルを含む。例えば、アセット詳細画面501の1つのセルは、タイプの選択とともに、資格情報アセットの有効化および作成のためのトグル511を含む。アセット詳細画面501の他のセルは、名前512、説明、タイプ、範囲、ユーザー名、およびパスワードを含む。アセット詳細画面402のセルは、トグル521、プッシュトークン522、名前、説明、タイプ、範囲、ユーザー名、およびパスワードを含むことができ、一方でアセット詳細画面503のセルは、プッシュトークン、名前、説明、タイプ、範囲、およびグローバル値を含む。
【0060】
アセット詳細画面501は、ローカルアプリケーション320(例えば、モバイルアプリケーション)を実行しているユーザーデバイス305のユーザーインターフェースおよびディスプレイによって生成/提供され得る。1または複数の実施形態によると、トグル511は、オーケストレータインスタンスのためのアセット詳細画面501にのみ表示される。トグル511は、資格情報アセットが保留中の2FAである場合には表示されない。トグル511が有効になると、認証システム340および/またはユーザーデバイス305は、(ユーザーがまだ登録していない場合に)プッシュ通知のための登録をユーザーに促す。ユーザーが受容/登録し、ユーザーデバイス305がプッシュトークンを取得すると、ローカルアプリケーション320は、プッシュトークンを用いて「テキストアセット」を生成する。テキストアセットの名前512は、プッシュトークン_<アセットID>_<デバイスUUID>を含むことができ、アセットIDはこの資格情報アセットの識別情報であり、デバイスUUIDはユーザーデバイス305の識別情報である。1または複数の実施形態によると、テキストアセットは、フォローコードに従って生成/投稿され得る。
ポスト’oデータ/アセット’
{
”名前”: ”プッシュトークン_167562_7E5DC2F1-1777165365F4”
”説明”: ”プロセスが ’greg_cred’ 資格情報アセットを使用する際に、デバイス ’7E5DC2F1-1777165365F4’ にプッシュ通知を送信するためにモバイルアプリによって自動生成されるアセット”
”ハスデフォルト値”: 真
”値範囲”: ”グローバル
”値タイプ”: ”テキスト”
”文字列値”: ”3d9d47e4a518c12e88723cb787745aa1b3”
}
【0061】
続いて(矢印538参照)、アセット詳細画面502は、名前512(例えば、プッシュトークン_<アセットID>_<デバイスUUID>)に関してフェッチすることによって、このプッシュトークン522を表示することができる。1または複数の実施形態によれば、フェッチ操作は、フォローコードに従って実行され得る。
ゲット’oデータ/アセット’
{
”$フィルタ”: ”((名前,’プッシュトークン_167562_7E5DC2F1-1777165365F4’)を含む”
}
【0062】
プッシュトークン522(例えば、”自動生成されたプッシュトークンアセット”)のセルが押されると、プッシュトークン522のアセット詳細画面503に直接移動することができる。トグル511をトグルにより「オフ」にして、以下のコードに従って、プッシュトークン522を削除し、画面を元の状態(例えば、アセット詳細画面501)に戻すことも可能であることに留意されたい。
デリート ’oデータ/アセット(208428)’
【0063】
さらに、ユーザーインターフェースおよびローカルアプリケーション320は、2FAタブ上で、トップアクションボタンによってユーザーがプッシュトークン522を見ることができる「クイックアクション」画面も含む(例えば、「あなたの2FAプッシュトークンアセットを表示する」)。例えば、トップアクションボタンを押すと、ユーザーは、以下のコードに従って、「プッシュトークン」とユーザーのデバイスUUIDを含むアセットをフェッチすることで得られる、生成されたプッシュトークン522を表示するためだけにフィルタリングされたアセットタブに移動する。
ゲット’oデータ/アセット’
{
”$フィルタ”: ”((名前,’プッシュトークン_’)を含むおよび(contains(名前,’_7E5DC2F1-1777165365F4’)を含む”
”$トップ”: 20
”$スキップ”: 0
}
【0064】
また、ローカルアプリケーション320のユーザーインターフェースは、アセット詳細ビューを開いて、プッシュトークン522のための資格情報アセット354を照合するとともに、「...」ボタンを押してプッシュトークン522を削除し得る。1または複数の操作に応じて、ローカルアプリケーション320は、メンテナンス操作を実行し得る。例えば、ユーザーがローカルアプリケーション320にログインしたとき、またはローカルアプリケーション320に戻ったとき、ローカルアプリケーション320は、すべてのプッシュトークン522をフェッチし、いずれかのプッシュトークン522が古くなっていないかどうかをチェックすることができる。いずれかのプッシュトークン522が古くなっている場合、ローカルアプリケーション320は、以下のコードに従って、各資格情報アセット350を新しいプッシュトークン522で更新する。
プット ’oデータ/アセット(208428)’
{
”Id”: 208428
“Name”: ”プッシュトークン_167562_7E5DC2F1-1777165365F4”
“Description”: ”プロセスが ’greg_cred’ 資格情報アセットを使用する際に、デバイス ’7E5DC2F1-1777165365F4’ にプッシュ通知を送信するためにモバイルアプリによって自動生成されるアセット”
“HasDefaultValue”: 真
true ”ValueScope”: ”グローバル”
”ValueType”: ”テキスト”
“StringValue”: ”3d9d47e4a518c12e88723cb787745aa1b3”
“CanBeDeleted”: 真
}
【0065】
したがって、技術的な効果および利点は、ユーザーがどのアセットが2FAプッシュ通知を受信するであろうかを具体的に選択できるようになること、および資格情報アセットの構成可能性およびトークンの使用による認証システムのハードコーディングを回避できることを含む。
【0066】
ブロック415において、ロボティックプロセス335は、ジョブ340を実行する(実行を開始する)。次に、ロボティックプロセス335は、オンラインプラットフォーム315へのアクセスを試みる(例えば、破線矢印B)。ジョブ340の実行およびオンラインプラットフォーム315へのアクセスまたはログインは、手動、スケジュールによるもの、トリガによるもの、キューによるもの、などがある。1または複数の実施形態によって、ジョブ335がオンラインプラットフォーム315(例えば、電子メールサービス/ウェブサイト)の電子メールをバックアップする自動化されたプロセスである場合、オンラインプラットフォームへのアクセスは、毎日のスケジュールされたイベント(例えば、毎晩午後11時)であり得る。ロボティックプロセス335はさらに、ユーザー資格情報345を使用して、電子メールサービス/ウェブサイトにログインするであろう。ユーザー資格情報345の一例は、ユーザー名としての電子メールアドレスと、パスワードとを含む。
【0067】
ブロック420において、ロボティックプロセス335は、資格情報アセット354を生成/作成する。ロボティックプロセス335は、ローカルアプリケーション320が資格情報アセット354を多要素認証フレームワーク(例えば、2FAコードを必要とするアセット)の一部として認識するように、特定の設定で資格情報アセット354を作成し得る。この資格情報アセット354は、ローカルアプリケーション320が知り、ユーザーに表示する必要のある情報のすべてを含む。
【0068】
ブロック425において、ロボティックプロセス335は、ログインに使用されたユーザー資格情報345のためのプッシュトークン355をフェッチする。ロボティックプロセス335は、資格情報アセット354の識別情報(例えば、
図5の名前512)を用いて、すべてのプッシュトークン355をフェッチし得る。例えば、資格情報アセット354が「12345」のIDを有する場合、次いでロボティックプロセス335は、「プッシュトークン_12345」という名前で始まるすべてのプッシュトークン355をフェッチする。プッシュトークン355がない場合、ジョブ340は失敗し、プロセスフロー400は終了する。
【0069】
ブロック430において、ロボティックプロセス335は、ブロック425でフェッチされたプッシュトークン355のそれぞれについて、通知(例えば、プッシュ通知 URL)を呼び出す。例えば、ロボティックプロセス335は、以下のように、フェッチされた各プッシュトークン355に対して1回、プッシュ通知URLを呼び出す。
--POSTを要求 ’https://orchestrator-push-relay.sites.net/2fa/dqCYHs:APAr3IzRSIR’\
--header ’Content-Type: application/json’ \
--データ-生’
{
”assetId” : ”12345”,
”tenantName” : ”fantastic”,
”tenantId” : ”1”,
”organizationUnitId” : ”1”,
”languageCode” : ”en”
}’
「dqCYHs:APAr3IzRSIR」は、モバイルデバイスのプッシュトークンであることに留意されたい。プッシュトークンアセットは「テキスト」タイプであり、モバイルデバイスのプッシュトークンは「StringValue」フィールドに格納される。「languageCode」は任意であり、他のフィールドはすべて必須である。
【0070】
破線のブロック435(任意であるため破線)では、中継サーバー350は、プッシュ通知を送信するように警告される(例えば、認証エンジン330によって、ユーザーデバイス305に矢印C2およびC3を表示する)。例えば、ブロック435で呼び出されたURLは、中継サーバー350(例えば、ローカルアプリケーションの320プッシュ通知中継サーバー)にヒットし、中継サーバー350に渡された関連するプッシュトークン355を用いて、プッシュ通知をユーザーデバイス305に送信する。
【0071】
ブロック440において、ロボティックプロセス335は、資格情報アセット354をポーリングする。すなわち、ロボティックプロセス335は、ブロック420で作成された資格情報アセット354を数秒ごとにポーリングして、それが1または複数のコード325を含むかどうかをチェックしながら、2FA画面上においてアイドル状態であり得る。ロボティックプロセス335が、コード325が資格情報アセット354のパスワードフィールドに設定されていることを検出した場合、次いでロボティックプロセス335は、コード325を電子メールサービス/ウェブサイトに入力することができる。ロボティックプロセス335は、説明JSONの「needsCode」プロパティがゼロに設定されている場合に、コード325が入力されたことを検出し得る。
【0072】
ブロック445で、ユーザーデバイス305は、通知およびコード325(例えば、プッシュ通知/警告および2FAショートメッセージサービス(SMS)メッセージ)を受信する。すなわち、ユーザーデバイス305は、プッシュ通知を受信し、ロボティックプロセス335がログインを試みたメールサービス/ウェブサイトからSMSを介してコード325(例えば、2FAコード)を受信する。ユーザーデバイス305が開いている間、ユーザーデバイス305は、資格情報アセット354(例えば、「要求される2FAコード」アセット)を定期的に、例えば30秒ごとにポーリングして、任意の保留中の要求を確認する。ユーザーデバイス305が任意の保留中の要求を見つけた場合、ユーザーデバイス305はローカルアプリケーション320で警告を生成する。いくつかのケースでは、ローカルアプリケーション320のユーザーインターフェースは、保留中の「要求される2FAコード」アセットを含むように更新され得る。ユーザーがプッシュ通知またはアプリ内警告をタップし、アセットの説明JSONの「needsCode」プロパティが1に設定されると、ユーザーがコード325を入力できるように、プロセスフロー400はブロック450に進む。
【0073】
ブロック450では、ローカルアプリケーション320は、コード325を受け取ることができるユーザーインターフェースの画面を提示する。例えば、ローカルアプリケーション320は、ユーザーがユーザーデバイス305上でSMSを介して受信した2FAコードを入力することができる「Send Code」モーダル画面を表示する。その後、資格情報アセット354は、ローカルアプリケーション320によって更新され、パスワードフィールドにコード325が含まれ、説明JSONの「needsCode」プロパティがゼロに設定される。
【0074】
ブロック455において、ロボティックプロセス335は、ロボティックプロセス335が(ブロック440で説明したように)ポーリングしたように、(資格情報アセット354が更新されたので)コード325を取得する。ブロック460で、ロボティックプロセス335は、ロボティックプロセス335が2FAコードの取得および入力に成功したか否かにかかわらず、資格情報アセット354を削除する。ブロック465で、ロボティックプロセス335は、ジョブ340の実行を継続する。
【0075】
本明細書の開示を考慮すると、コンテキストアウェア型のアンドゥ-リドゥサービスの技術的効果および利点は、権限のないユーザーによるスヌーピングを防止すること、およびロボティックプロセスが多要素認証によるオンラインプラットフォームへのアクセスを進めることができることを含む。
【0076】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能性、および操作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の実行可能な命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施例において、ブロックに記載されている機能は、図に記載されている順序とは異なる場合がある。例えば、連続して表示されている2つのブロックは、関係する機能に応じて、実際には実質的に同時に実行され得、またはブロックが逆の順序で実行され得る。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは行動を実行するか、または特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特別な目的のハードウェアに基づくシステムによって実装され得ることに留意されたい。
【0077】
特徴および要素は、特定の組み合わせで上に記載されているが、各特徴または要素は、単独で、または他の特徴および要素と任意の組み合わせで使用することができることが、当業者には理解されるであろう。さらに、本明細書に記載された方法は、コンピュータまたはプロセッサによって実行されるために、コンピュータ読み取り可能な媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装され得る。本明細書で使用されるコンピュータ読み取り可能な媒体は、それ自体が一時的な信号であると解釈されるものではなく、例えば、電波またはその他の自由に伝播する電磁波、導波管またはその他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、または電線を介して伝送される電気信号である。
【0078】
コンピュータ読み取り可能な媒体の例としては、電子信号(有線または無線接続を介して送信される)およびコンピュータ読み取り可能なストレージ媒体が挙げられる。コンピュータ読み取り可能なストレージ媒体の例は、限定されないが、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気媒体、コンパクトディスク(CD)およびデジタルバーサタイルディスク(DVD)などの光媒体、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ならびにメモリースティックを含む。プロセッサは、ソフトウェアと関連して、端末、基地局、または任意のホストコンピュータで使用するための無線周波数トランシーバを実装するために使用され得る。
【0079】
本明細書で使用される用語は、ひとえに特定の実施形態を説明するためものであり、限定することを意図しない。本明細書では、単数形の「a」、「an」、および「the」は、文脈が明確に示す場合を除き、複数形も含むことを意図する。本明細書で使用される「含む(comprises)」および/または「含む(comprising)」という用語は、記載された特徴、整数、ステップ、操作、要素、および/またはコンポーネントの存在を指定するが、1または複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されるであろう。
【0080】
本明細書の様々な実施形態の説明は、説明のために提示されたものであるが、開示された実施形態を網羅的に、またはそれに限定することを意図したものではない。当業者であれば、記載された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実用化もしくは技術的改善を最もよく説明するため、または当業者が本明細書で開示されている実施形態を理解できるように選択されたものである。
【国際調査報告】