【UiPath応用】第9回:アセット管理~パスワードを「コードに直書き」してはいけない理由~

こんにちは!UiPath メンターです。

突然ですが、あなたはロボットの中に、システムのログインIDやパスワードをこんな風に書いていませんか?

Type Into (文字を入力) : "my_password123"

これはセキュリティ上、最悪の状態です。
ロボットのファイルを見れば誰でもパスワードが分かってしまいますし、もしパスワード変更があったら、ロボットを修正して再発行しなければなりません。

プロの現場では、パスワードは「クラウド上の金庫(Orchestrator)」に預けます。
ロボットは実行する瞬間に、そこから鍵を取り出して使うのです。
今回はその仕組み、「アセット (Assets)」の使い方をマスターしましょう。

1. 金庫に預ける:Orchestratorでの設定

まずは、UiPath Automation Cloud(Web画面)にアクセスして、情報を登録します。

手順

  1. UiPath Automation Cloud にログインし、左メニューの [Orchestrator] を開きます。
  2. 左メニュー(またはフォルダ内)の [アセット (Assets)] をクリックします。
  3. 右上の [アセットを追加] ボタンから [資格情報 (Credential)] を選びます。
    ※ただの文字列なら「テキスト」、ID/PASSセットなら「資格情報」を使います。

入力項目

  • アセット名: SalesSystem_Cred (ロボットが呼び出す時の合言葉になります)
  • ユーザー名: 実際のログインID
  • パスワード: 実際のパスワード

最後に [作成] を押します。これで、クラウド上に安全な金庫ができました。

2. 金庫から取り出す:「資格情報を取得」

Studioに戻って、ロボットからこの情報を呼び出します。

手順

  1. [アクティビティ] パネルで「資格情報」または「Credential」と検索します。
  2. [資格情報を取得 (Get Credential)] を配置します。
    ※[アセットを取得 (Get Asset)] ではありません。IDとPASSのセットを取る時は「資格情報」の方を使います。

設定項目

  • アセット名 (Asset Name): "SalesSystem_Cred"
    ※先ほどクラウドで登録した名前を、ダブルクォーテーションで囲んで入力します。
  • 出力 (Output): ここで変数を2つ作ります。
    • ユーザー名: Ctrl+Kstr_Username (String型)
    • パスワード: Ctrl+Ksec_Password (SecureString型)

3. 重要な概念:「SecureString」とは?

ここで作成された sec_Password という変数は、いつもの String型 ではなく、SecureString(セキュア・ストリング) という特殊な型になります。

💡 メンターからのアドバイス:暗号化された文字

SecureString は、メモリの中で暗号化されています。
試しに [メッセージ ボックス] で表示しようとしても、System.Security.SecureString と表示されるだけで、中身(パスワード)は見えません。
これにより、誰かが勝手にロボットの中身を覗き見ても、パスワードが漏れないようになっているのです。

4. パスワードを入力する:「セキュア テキストを入力」

「中身が見えないなら、どうやってWebサイトに入力するの?」と思いますよね。
SecureString を扱える専用のアクティビティを使います。

手順

  1. [セキュア テキストを入力 (Type Secure Text)] を配置します。
    ※いつもの [文字を入力] ではありません!
  2. [セキュア テキスト (Secure Text)] の欄に、先ほどの変数 sec_Password を指定します。
  3. ターゲット(パスワード入力欄)を指定します。

これでロボットは、暗号化されたパスワードを、入力する一瞬だけ解除して打ち込んでくれます。

ちなみにID(ユーザー名)は?

str_Username は普通の String型 なので、いつもの [文字を入力 (Type Into)] で入力してOKです。

今回のまとめ

  • パスワードは Orchestratorのアセット に登録する。
  • Studioでは [資格情報を取得 (Get Credential)] で呼び出す。
  • パスワードは SecureString型 になり、入力には [セキュア テキストを入力] を使う。

⚠️ つまづきポイント:フォルダが違う?

「アセットが存在しません」というエラーが出る場合、Studioの画面右下を見てください。
接続しているフォルダ名が表示されています。
Orchestrator側でアセットを作ったフォルダ(例:Shared)と、Studioが接続しているフォルダが一致していないと、金庫の中身は見えません。

この仕組みを使えば、もしパスワードの定期変更があっても、Orchestratorの値を書き換えるだけで対応完了です。
ロボットを修正して、テストして、再配布して……という手間が一切なくなります。素晴らしいですね!

次回はいよいよ応用編の最終回、第10回。
複数のロボットがチームプレーで働くための仕組み、「キュー (Queue)」の概念をご紹介します。
大規模な自動化への第一歩です!

タイトルとURLをコピーしました