6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【UiPath】フローにパスワードを付ける

Posted at

はじめに

この投稿はRPA ツールの「UiPath」で、フローの実行時にパスワード制限をかける という投稿です。

UiPathのコミュニティ「UiPath Friends」が企画する「UiPathブログ発信チャレンジ2021サマー」の 16日目の投稿でもあります。

企画の内容は こちら 。カレンダーのURLは こちら です。

WinActorのシナリオパスワード

WinActorには「シナリオパスワード」という機能があり、ロボット処理の「閲覧・編集・実行」操作を制限することが出来ます。
image.png

作成したシナリオファイルに、シナリオパスワードを設定することで、編集・閲覧・実行の操作をすること
が制限できます。このシナリオパスワードは、「シナリオ編集パスワード」「シナリオ閲覧パスワード」
「シナリオ実行パスワード」などセキュリティのレベルごとに設定することも可能です。シナリオには機密
情報が含まれる場合もあるため、適切なパスワードを設定することで、機密情報を開示する範囲を限定する
ことができます。

参考)https://www.scsk.jp/sp/winactor/feature/security/

これをUiPathで実現してみます。

閲覧パスワード

UiPathでは、作成したフローはStudio上でパブリッシュすることで「.nupkg」というファイルに出力され、閲覧はできなくなります。ただし、この「.nupkg」ファイルは、拡張子をZipに変えて展開すると中身を見ることが出来るので、一手間加えれば見ることが出来ます。
その他に閲覧を制限する方法はないので、残念ながら現状では UiPathでは閲覧パスワードの制限をかけることは出来ない となります。

ただ、閲覧できないことによるデメリットもありそうなので、逆に「制限がなくても良い」と思います。
 例)エラーで動かなくなった。担当者不在で、閲覧パスワードも分からないし、修正も出来ないぃ!

編集パスワード

UiPathでは、パブリッシュ時に「証明書」を付けることで、所有者以外の人が改変していないコードであることを保証できます。
UiRobot側で「署名の確認」を強制し、信頼できる作成者を設定に追加することで、正規のコードであることを確認させる仕組みがありますが、実行ロボット側にも設定が必要であり、プロジェクトに署名なしの依存関係が含まれていると、依存関係の解決が妨げられる場合があり、簡単には導入できません。

image.png

実行パスワード

UiPathでは、作成したフローの実行を制限する機能はありません。なので独自に実装してみます。
機能的には以下のようなものを作成します。

  • 1)実行時にパスワードを入力させる(設定ファイルの値と照合する)
  • 2)実行マシンの名前が想定通りかをチェックする(設定ファイルの値と照合する)

ただし、コードを編集して「パスワード照合処理」を除去すれば突破できますし、ロジックを理解して設定値を変えれば突破できるため、完全な制限ではありません。(パフォーマンス:みせかけ的な機能実装です)

1)実行時にパスワードを入力させる

実行時に入力ダイアログを表示し、パスワードを入力してもらいます。
入力されたパスワードと設定ファイルの値を比較して、一致しなければ「例外をスロー」して処理終了します。

設定ファイルにパスワードをそのまま書いても良いですが、パスワードがそのまま設定ファイルに書かれているのではつまらないので、、設定ファイルには「パスワードのハッシュ値」を記載し、入力パスワードのハッシュ値と比較します。(ハッシュにすると元の文字列を隠蔽できます)
image.png

ハッシュ値を求めるために、Cryptographyアクティビティを使用しています。

設定ファイルに書くハッシュ値は、試しにダイアログで値を入力してみて、ログに出力されたハッシュ値を設定すればいいと思います。

実行すると下記のような入力ダイアログが表示されます。
image.png

確認しやすいように、以下にxaml形式でアップしました。

2)実行マシンの名前が想定通りかをチェックする

環境変数から実行マシン名を取得し、設定ファイルの値を比較して、一致しなければ「例外をスロー」して処理終了します。
こちらも設定ファイルには「ハッシュ値」を設定しておきます。
image.png
確認しやすいように、以下にxaml形式でアップしました。

おわりに

いかがでしたでしょうか?UiPathでパスワード制限をする際に、参考になれば幸いです。

この記事が参考になったら、 LGTMをお願いします。閲覧ありがとうございました。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?