こんにちは。
自称)BizRobo!エンジニアのもりりんです。
今回は、Robot-Hubで第1号ロボットを公開したので告知となります。
第1号ロボットは、「BizRobo!だけで2段階認証を実現しよう」という「ツール」です。(ロボットはおまけ)
LANDコミュニティでも2段階認証については度々質問されているようなので、困りごとを解決できるのであればと過去に弊社で利用していたツールを公開する運びになりました。
Robot-Hubページにも使い方は記載していますが、図解つきで利用方法をご紹介いたします。
2段階認証とは?
サービスにログインする方法として昔からID/パスワードが利用されてきましたが、IT機器の高スペック化やそれに伴う不正アクセス技術の高度化により、もやは従来の方法は安全ではなくなりました。
2010年以降はハッキングや情報漏洩といった問題が多発し、セキュリティに関する事項の関心はかなり大きなものになっています。
このブログを書いている2022/3/1時点で昨日トヨタにサイバー攻撃があったとニュースになってましたね。
そのため、予防的対処を講じておくことが必須となり、ログイン時の認証方法をもう1つ用意する2段階の認証方式が採用されることが多くなりました。

なお、MFA(タ要素認証)の内、2要素認証とよく混在されることが多いですが、今回は説明を省略します。
詳しいことが知りたい方は、以下のサイトを参考にしてください。
よく利用されている認証方法は、スマートフォンの認証アプリから発行されるワンタイムパスワードを利用することです。
ログインしたいサイトが発行する認証用の2次元コード(QR画像)を認証アプリに登録することで、6桁(または8桁)のワンタイムパスワードが発行されます。
パスワードの有効期限は30秒となっており、UNIX時間(1970年1月1日午前0時0分0秒)から30秒ごとに更新され続けています。
有効期限が切れると発行され他たパスワードが無効となる仕様上、パスワード取得からサイトへの入力までのタイムラグにより認証エラーとなることがありますので、取得したらすぐ入力しましょう。

弊社が提供するツールは、スマートフォンに導入する認証アプリの変わりとなるものです。
そのため、BizRobo!を動かしているPCをまたはサーバのみで完結することが可能です。

認証アプリに登録するQR画像はユーザ毎に発行されるものであり、重要な個人情報です。
QR画像は他者に見せていいものではありません。
本ツールを利用する際も、不正利用されないようにQR画像の管理に気をつけてください。
Robot-Hubについて
とは
様々な企業、ユーザの経験(色々なロボット)をみんなで共有できる会員制サービスを作りました!というところでしょうか。
また、共有してくれた人には対価として、ダウンロード数に比例したマイレージ(ポイント)を付与*1し、景品と交換できます!って感じの、よく聞くサービスですね。
もちろん、登録は無料です。(BizRobo!の契約をされているかのチェックは入るかと思います。)

現状まだまだロボットの公開数は少ないですが、これから増えていくサービスだと期待しています。

しかし、良い点ばかりではなく、企業ユーザが提供するにはロボットやナレッジが社内資産として扱われること多いため、企業の許可が下りるかどうかが普及に向けた大きなハードルになってきます。(実質、無償提供ですからね…)
その辺りをサービスの提供/利用者でどう配慮、改善していくかが本サービスが成功するかの鍵になるかと思われます。
弊社もこちらのサービスにロボットやツールを提供していくことになりました。
今回は初回ということで 、使い方の説明も混ぜながらご紹介します。
ロボットのダウンロード
まずは、Robot-Hubにアクセスして、会員登録しましょう。
会員登録済みの場合、ログインしましょう。

ログイン後に、上部の「ロボット」から検索画面を表示します。
ここから自由な検索条件で公開されているロボットを検索することが可能です。

今回は、「【コマンドライン実行】2段階認証(MFA)パスワード発行」として登録していますので、キーワードで検索すると直ぐにHITするかと思います。
ダウンロードは、右上の「ダウンロードする」から可能です。
概要、事前の準備情報、利用方法等が記載されていますので確認しておきましょう。
なお、ダウンロード後は、このページを閉じずに見ながら作業することをオススメします。
サンプルロボットの利用
サンプルファイルの中身
ダウンロードしたファイルを解凍し、付属物を確認しましょう。
下記の画像の通り、「2段階認証_サンプル.zip」の中に「mfa」プロジェクトがあります。

日本語ファイル名を含むZIpファイルをWindows標準の「展開」で解凍すると、文字化けすることがあります。
サービス/サイトで利用されているファイルの圧縮方法がWindows標準の解凍時に利用されるものと異なった場合に発生します。
そういった現象が発生した場合、7-zip等のUTF-8対応の解凍ツールを利用しましょう。
こちらのプロジェクトをDSに取り込みましょう。
今回利用するDSは、11.0.4となります。
ロボットは、10.4の最終バージョンで作成しています。

それ以前のバージョンのDSを利用している場合、ロボットを開く際にエラーメッセージが表示されます。
その際は、下記のブログを参考にバージョン変更を試してみてください。(破損しても復元できるようにコピーは忘れずに!)

今回の2段階認証で必要なものは、「mfa-1.0.jar」です。
BizRobo!ツールの根幹部分で利用されているプログラムに「java」があります。
jarファイルは、javaが実行可能な色々な用途(Excel操作、PDF操作、QR画像の読み込み等々)をに特化した便利機能を集めたツールです。
今回であれば、2段階認証に特化したツールです。
他にも、Excelに特化したものや、メールに特化したもの、正規表現に特化したものまで膨大な種類があります。
こういった外部から提供される特定の機能を持ったツールのことを「ライブラリ」と呼びます。
サンプルロボットの実行
サンプルロボットの中身は、シンプルです。
コマンドライン実行の中身は難しいように見えますが、変数と文字をつなぎ合わせて、コマンドプロンプトで実行できる形に整形しています。
なお、コマンドライン実行で利用するjavaコマンドのパス、mfaツールのパス、QR画像のパスは、それぞれ変数に格納しましょう。

- 変数の定義
- QR画像を利用したパスワードの発行
- QR画像内の文字列を利用したパスワードの発行
1つ目の「QR画像を利用したパスワードの発行」に必要な変数は、JAVAパス、JARパス、QR画像パスの3つです。

JAVAパスには、BizRobo!をインストール時に同梱されているので、そちらを活用しましょう。
BizRobo! 11.0.1のインストール先を変更していない場合、「C:\Program Files\BizRobo Basic 11.1.xxx x64\jre\bin\java.exe」を指定します。

DSをインストール済みの開発PCの場合(※インストール先パスを変更していないこと)
- 11.1.xの場合
C:\Program Files\BizRobo Basic 11.1.xxx x64\jre\bin\java.ex - 10.7.xの場合
C:\Program Files\Kofax RPA 10.7.xxx x64\jre\bin\java.exe - 10.4.xの場合
C:\Program Files\Kofax RPA DesignStudio 10.4.xxx x64\jre\bin\java.exe
JARパスには付属している「mfa-1.0.jar」の格納先を指定します。
今回はプロジェクト直下にですので、「C:\Users\ユーザ名\My Robots\11.1.0.4_xxx\Library\mfa\Library\mfa-1.0.jar」とします。
※ ユーザフォルダのパスとなりますので、ご自身の利用環境に応じて読み替えてください。

QR画像パスも付属している「サンプルQR.png」を利用します。
こちらもプロジェクト直下ですので、「C:\Users\ユーザ名\My Robots\11.1.0.4_xxx\Library\mfa\Library\サンプルQR.png」とします。
※本ツールに投入できる画像ファイルは、PNG/JPEGをサポートしています。

コマンドライン実行のアクションを確認しましょう。
今回のようにjarファイルを利用したjavaコマンドは、次のように定義します。
※コマンドの「“”や-jar」等の文字の間は、半角スペースを入れてください。

コマンドプロンプトを含むコマンド実行では、半角スペースを区切り文字として利用しています。
Windowsでよくある例では、システム固定の「C¥:Program Files」フォルダは半角スペースを含んでおり、このままコマンドに入力すると「C¥:Program」と「Files」の2つに分割されてしまいコマンドとして成り立たないことがあります。
上記のような現象を回避するために、「C¥:Program Files¥~」を””(ダブルクォーテーション)で囲むことによって、半角スペースも連続する文字ですよ!とコマンドに伝えることができます。
この形を元にコマンドライン実行のエクスプレッションを確認します。
普段エクスプレッションで文字列を入力する場合、“”(ダブルクォーテーション)の中に文字を入力する方も多いと思いますが、
今回は“を文字として利用したいので判別しやすくするために >><< を利用して文字列を定義します。

次の画像は見栄え上改行を入れていますが、実際は入らないので注意しましょう。

コマンドライン実行で発行されたパスワードを受け取るように抽出項目を設定します。

パスワードの発行結果は、次のようになります。
実際にログインに利用する場合は、こちらの変数を利用しましょう。

QR画像の中には、サイトごとに内容は異なりますが定められたルールに沿った文字列が格納されています。
QR画像から文字列を取り出したい場合は、無料で利用できるサイトやスマートフォンのQRカメラで抽出できたりしますので、試してみてください。
今回のQR画像は、次のような文字列で構成されています。
細かい内容は省略しますが、本ツールでQR画像無いの文字列を利用する場合、少し修正が必要となっています。


コマンドライン実行のアクションを確認しましょう。
QR画像の文字列を利用する場合は、QR画像そのものを読み込む時と少しだけコマンドが異なりますが、基本構成に変更はありません。


コマンドライン実行結果のパスワードを受け取る変数の設定もしておきましょう。

以上、で解説は終了です。
最後に
昨今、2要素/2段階を含むMFAを採用することがサービス利用における最低限のセキュリティ対策となってきています。
現在対応していないサイトも続々と対応することになるかと思います。
そういったサービス/サイトをBizRobo!で利用してる場合に活用していただければ幸いです。
今後も色々公開していこうと考えていますので、「こんなロボットやツールがあればいいなー」といった要望がありましたら、ご相談していただければと思います。
最後までお読みいただきありがとうございました。
*1 マイレージの付与は、今後開始される予定です。