メモ:ORG キーにシングルクォート (') が含まれている場合は、PowerShell スクリプト内でその文字をエスケープするために、シングルクォート (') の前にバッククォート (`) を必ず付けてください。
2. ファイルを保存します。ファイル名を変更し (例: DecryptVault.ps1)、必要な場所に配置します。
RPA フローの設定
このセクションでは、Zoho RPA フローを設定して Zoho Vault からパスワードを安全に取得し、PowerShell スクリプト (DecryptVault.ps1) を使って復号し、Web ポータルやデスクトップアプリケーションに安全に入力する方法を説明します。
このフローの設定は、認証情報を実際にワークフローで使用する直前まで暗号化したまま保持することでセキュリティを維持するよう、複数の手順で構成されています。このプロセスでは、Zoho Vault から暗号化されたパスワードを取得し、ローカルの PowerShell スクリプトで復号し、システムのクリップボードを一時的かつ安全な入力手段として使用します。
まずフローで「パスワードの取得」アクションを使用して、暗号化された認証情報を取得します。次にカスタム関数を使用して、暗号化されたユーザー名とパスワードを解析して分離します。それぞれの出力 (ユーザー名とパスワード) ごとに、フローは「アプリケーションを開く」アクション経由で PowerShell スクリプトを実行し、復号用に暗号化データ文字列を渡します。スクリプトは復号したデータを直接クリップボードに配置します。その後、「ホットキー送信」アクションを使用して、アプリケーションに認証情報を貼り付けます。これらの手順をユーザー名とパスワードの両方に対して繰り返した後、最後に PowerShell コマンドを実行してクリップボードを即座にクリアし、機密データが残らないようにします。
このプロセスを具体的に実装する方法を見ていきましょう。
RPA フローを作成する
- 必要な RPA フローを新規作成するか、Zoho Vault からパスワードを取得したい既存のフローを開きます。このフローを実行するエージェントマシンに、PowerShell 復号ファイル (DecryptVault.ps1) が配置され、アクセス可能であることを確認します。
- Web または Windows アクション (Open Application を使用して invoicegenerator.exe を開く、または Open URL を使用して myportal.com を開く など) を使用して、目的のログイン画面まで遷移します。
- Click アクションを使用して、ユーザー名を入力したい対応する項目 (ユーザー名またはパスワード) を指定します。
Zoho Vault からパスワードを取得する
Apps セクションにある fetch password アクションをドラッグ&ドロップしてフローに追加します。設定ウィンドウで、Zoho Vault から取得したいパスワード名を正確に入力します。
次に、一連のアクションを使用して、Vault から暗号化されたパスワードを取得します。
暗号化されたユーザー名とパスワードを取得する
1. JSON 出力を解析して暗号化された認証情報を取得するカスタム関数を作成します。ロジックタブに移動し、カスタム関数の下で新しいカスタム関数を作成します。
-
map parseVaultPassword(string secretData)
-
{
-
password = secretData.getJSON('password');
-
username = secretData.getJSON('username');
-
outputData = Map();
-
outputData.put('username',username);
-
outputData.put('password',password);
-
return outputData;
-
}
2. この関数をワークフロー内で使用し、入力としてパスワードデータがマッピングされていることを確認します。
ここでは、暗号化されたユーザー名と必要なパラメーターを PowerShell スクリプトに渡して復号します。
1. Windows App カテゴリにある Open Application アクションをドラッグ&ドロップしてフローに追加します。
2. 「画面上で指定」オプションを使用して、デスクトップマシン上の PowerShell アプリケーションを指定します。
3. Arguments 項目に、次のコマンドを入力します。必ずファイルパスを置き換え、実際のマシン上のパスを指定してください。
-- powershell.exe -NoProfile -NoExit -ExecutionPolicy Bypass -File <replace_file_path> -cipherText '${parseVaultPassword_2.username}' -isShared '${fetchPassword_1.isshared}' -displayValue 'NO'
各パラメーターの意味は次のとおりです。
<replace_file_path> - ローカルマシン上の DecryptVault.ps1 ファイルへのフルパス (例: C:\Users\Demo_user\Desktop\DecryptVault.ps1)
${parseVaultPassword.username} - parseVaultPassword カスタム関数から出力されるユーザー名。 (下のスクリーンショットを参照してください。)
${fetchPassword_1.isshared} - fetch password アクションから出力される isshared パラメーター。 (下のスクリーンショットを参照してください。)
4. Web または Windows カテゴリにある Send hotkeys アクションをフローに追加し、(Ctrl + V) を送信するよう設定して、入力項目に貼り付けます。
5. 「password」フィールドや「Next」ボタンをクリックするアクションなど、ログイン処理に必要な後続アクションを追加します。
必要な項目にパスワードを入力するため、ここまでの手順をすべて繰り返します。
1. Windows App カテゴリにある Open Application アクションをドラッグ&ドロップしてフローに追加します。
2. 「画面上で指定」オプションを使用して、デスクトップマシン上の PowerShell アプリケーションを指定します。
3. Arguments 項目に、次のコマンドを入力します。ファイルパスは必ずマシン上の実際のパスに置き換えてください。
-- powershell.exe -NoProfile -NoExit -ExecutionPolicy Bypass -File <replace_file_path> -cipherText '${parseVaultPassword_2.password}' -isShared '${fetchPassword_1.isshared}' -displayValue 'NO'
各パラメーターの意味は次のとおりです。
<replace_file_path> - ローカルマシン上の DecryptVault.ps1 ファイルへのフルパス (例: C:\Users\Demo_user\Desktop\DecryptVault.ps1)
${parseVaultPassword.password} - parseVaultPassword カスタム関数から出力されるパスワード。
${fetchPassword_1.isshared} - Fetch Password アクションから出力される isshared パラメーター。 (下のスクリーンショットを参照してください。)
4. Web または Windows カテゴリにある Send hotkeys アクションをフローに追加し、(Ctrl + V) を送信するよう設定して、入力項目に貼り付けます。
5. 「Login」ボタンをクリックするアクションなど、ログイン処理に必要な後続アクションを追加します。