こんにちは!UiPath メンターです。
突然ですが、あなたはロボットの中に、システムのログインIDやパスワードをこんな風に書いていませんか?
Type Into (文字を入力) : "my_password123"
これはセキュリティ上、最悪の状態です。
ロボットのファイルを見れば誰でもパスワードが分かってしまいますし、もしパスワード変更があったら、ロボットを修正して再発行しなければなりません。
プロの現場では、パスワードは「クラウド上の金庫(Orchestrator)」に預けます。
ロボットは実行する瞬間に、そこから鍵を取り出して使うのです。
今回はその仕組み、「アセット (Assets)」の使い方をマスターしましょう。
1. 金庫に預ける:Orchestratorでの設定
まずは、UiPath Automation Cloud(Web画面)にアクセスして、情報を登録します。
手順
- UiPath Automation Cloud にログインし、左メニューの [Orchestrator] を開きます。
- 左メニュー(またはフォルダ内)の [アセット (Assets)] をクリックします。
- 右上の [アセットを追加] ボタンから [資格情報 (Credential)] を選びます。
※ただの文字列なら「テキスト」、ID/PASSセットなら「資格情報」を使います。
入力項目
- アセット名:
SalesSystem_Cred(ロボットが呼び出す時の合言葉になります) - ユーザー名: 実際のログインID
- パスワード: 実際のパスワード
最後に [作成] を押します。これで、クラウド上に安全な金庫ができました。
2. 金庫から取り出す:「資格情報を取得」
Studioに戻って、ロボットからこの情報を呼び出します。
手順
- [アクティビティ] パネルで「資格情報」または「Credential」と検索します。
- [資格情報を取得 (Get Credential)] を配置します。
※[アセットを取得 (Get Asset)] ではありません。IDとPASSのセットを取る時は「資格情報」の方を使います。
設定項目
- アセット名 (Asset Name):
"SalesSystem_Cred"
※先ほどクラウドで登録した名前を、ダブルクォーテーションで囲んで入力します。 - 出力 (Output): ここで変数を2つ作ります。
- ユーザー名: Ctrl+K →
str_Username(String型) - パスワード: Ctrl+K →
sec_Password(SecureString型)
- ユーザー名: Ctrl+K →
3. 重要な概念:「SecureString」とは?
ここで作成された sec_Password という変数は、いつもの String型 ではなく、SecureString(セキュア・ストリング) という特殊な型になります。
💡 メンターからのアドバイス:暗号化された文字
SecureString は、メモリの中で暗号化されています。
試しに [メッセージ ボックス] で表示しようとしても、System.Security.SecureString と表示されるだけで、中身(パスワード)は見えません。
これにより、誰かが勝手にロボットの中身を覗き見ても、パスワードが漏れないようになっているのです。
4. パスワードを入力する:「セキュア テキストを入力」
「中身が見えないなら、どうやってWebサイトに入力するの?」と思いますよね。
SecureString を扱える専用のアクティビティを使います。
手順
- [セキュア テキストを入力 (Type Secure Text)] を配置します。
※いつもの [文字を入力] ではありません! - [セキュア テキスト (Secure Text)] の欄に、先ほどの変数
sec_Passwordを指定します。 - ターゲット(パスワード入力欄)を指定します。
これでロボットは、暗号化されたパスワードを、入力する一瞬だけ解除して打ち込んでくれます。
ちなみにID(ユーザー名)は?
str_Username は普通の String型 なので、いつもの [文字を入力 (Type Into)] で入力してOKです。
今回のまとめ
- パスワードは Orchestratorのアセット に登録する。
- Studioでは [資格情報を取得 (Get Credential)] で呼び出す。
- パスワードは SecureString型 になり、入力には [セキュア テキストを入力] を使う。
⚠️ つまづきポイント:フォルダが違う?
「アセットが存在しません」というエラーが出る場合、Studioの画面右下を見てください。
接続しているフォルダ名が表示されています。
Orchestrator側でアセットを作ったフォルダ(例:Shared)と、Studioが接続しているフォルダが一致していないと、金庫の中身は見えません。
この仕組みを使えば、もしパスワードの定期変更があっても、Orchestratorの値を書き換えるだけで対応完了です。
ロボットを修正して、テストして、再配布して……という手間が一切なくなります。素晴らしいですね!
次回はいよいよ応用編の最終回、第10回。
複数のロボットがチームプレーで働くための仕組み、「キュー (Queue)」の概念をご紹介します。
大規模な自動化への第一歩です!