UiPathでログイン処理をする機会はすごく多いです。
UiPathにはログイン情報を安全に入力できる機能があるので安心なのですが、
難しいのは、ログイン情報をどう管理するか、です。
考えられる方法は4つあります。
2.Windows資格情報で管理
3.入力ダイアログで入力してもらう
4.ファイルで管理する
機密情報の運用ルール・UiPathの環境を元に考える必要があります。
Orchestrator(オーケストレータ)のAsset(アセット)で管理する方法
Orchestrator(オーケストレータ)を導入している場合、
まずはこの方法がオススメされています。
UnAttended(無人実行)ロボットでは、ほぼこの方法かと。
Orchestratorには、
Asset(アセット)というログイン情報などを暗号化して保管する機能があるので、
それを利用します。
OrchestratorのAssetを取得
Assetの情報を取得するには、
「資格情報を取得」アクティビティを使います。
Assetから取得した値は、
・ユーザーID:String型
・パスワード:SecureString型
であることに注目です。
SecureString型とは、機密文字列を扱う型の事です。
パスワードを入力すると”*”と表示されることありますよね、そのことです。
UipathStudioでもSecureString型の文字は”*”で表示されるので、
機密性は保たれています。
Windows資格情報で管理する方法
次は「Windows資格情報」で管理する方法です。
「Windows資格情報」はWindowsに標準で備わっている機能です。
Orchestratorを導入していない場合やAttended(有人実行)ロボットでは、
この方法がオススメです。
1点だけ注意がありまして、
もし同じロボットを複数の端末で動かす場合、
各PCに「Windows資格情報」を登録する必要があります。
他のPCの「Windows資格情報」は取得できないので、気をつけてください。
Windows資格情報を取得
UiPath.Credentials.Activitiesパッケージを追加
UipathでWindows資格情報を取得するには、
「Get Secure Credentials」というアクティビティを使うのですが、
そのアクティビティを検索しても出てこない場合は、
「UiPath.Credentials.Activities」パッケージをインストールする必要があります。
「Get Secure Credentials」アクティビティで取得
パッケージをインストールできたら、
「Get Secure Credentials」アクティビティを使います。
ここでも、パスワードはSecureString型です。
入力ダイアログで入力してもらう方法
次は、ロボットを起動するときに入力ダイアログを表示させて、
ユーザーに、IDとパスワードを入力してもらう方法です。
Attended(有人実行)ロボットを複数のPCで動かす場合、PCごとにログイン情報が違うことがあります。
その場合は、このやり方がオススメです。
人の入力が必要なので、UnAttended(無人実行)ロボットでは使えません。
入力ダイアログを表示する
「入力ダイアログ」アクティビティを使う場合
「入力ダイアログ」というアクティビティを使えば、
簡単にダイアログを表示することができるのできます。
ただ、このアクティビティは1項目しか入力ができないのが欠点。
1項目しか入力できないので、同じアクティビティを2回使って、
入力ダイアログを2回表示させるないといけません。
これを実行すると、次のような画面が順番に表示されます。
1つ注意が必要で、上の方の画に書いたように、
このアクティビティでは、
パスワードがSecureString型ではなくString型でしか取れません。
なので、これをログイン画面のパスワード欄に入力する前に、
SecureString型に変換してあげる必要があります。
と言っても簡単です。
この後に、次のような代入アクティビティを追加するだけです。
このSecureString型パスワードを、ログイン画面に入力すればOKです。
この方法は、
ユーザーが2回もOKボタンを押さないといけないというデメリットはあるものの、
とりあえず簡単に開発できるというメリットもあります。
しかし、もしもHTMLが多少でも分かるという場合は、
次のようにHTMLで入力画面を作ってしまった方が良いかもしれません。
HTMLで入力画面を作る場合
HTMLを使えば、自由に入力画面を作ることができます。
ユーザーIDとパスワードを同時に入力できるようにしておけば、
ユーザーも楽です。
ここではHTMLの書き方は割愛しますが、
HTMLが完成したら、それを「カスタム入力」アクティビティで呼び出すだけです。
HTMLからは、
例えばカンマ区切りのString配列を受け取るようにしておけば楽です。
例)ログイン情報=ユーザーID,パスワード
カンマで区切られた配列の第一要素をユーザーIDに入力、
第二要素をパスワードに入力、
とするだけです。
ファイルで管理する方法
最後に紹介するのは、エクセルなどのファイルに、
ログイン情報をべた書きして管理する方法です。
これは、
UnAttended(無人実行)ロボットなのにパスワードが頻繁に変わるような場合に有効です。
そのファイルを特定のユーザーしか見れないようにしておくなど、
何かしら工夫しておけば良いかと思います。
例えばエクセルファイルで管理する場合は、こんな内容になるかと。
これを「セルを読み込み」または「範囲を読み込み」アクティビティで取得するだけです。
ただし、先ほどと同じく、パスワードをSecureString型に変換することだけはお忘れなく!
まとめ
以上、ログイン情報の管理・取得方法を4つ紹介しましたが、
いかがだったでしょうか。
ユーザーの環境・運用方法を考え、どの方法にするか検討するようにしてください。