IBM RPAでサイトへのログインを自動化してみる(Vault機能)


## 今更なRPAが実はこれからな理由
2017年頃から流行りだしたRPA、2022年に今更RPA？という方も多いかと思いますが、実はこれからもRPAは利用されていくようです。5年前の利用方法とは異なり、今までのRPA単体による単純な定型業務の自動化ではなく、ハイパーオートメーションの部品の一つとしてのRPAです。
(ハイパーオートメーションとは機械学習やAIなど、さまざまな技術や自動化ツールを組み合わせて活用し、複数の業務を連動させて自動化することです。)

部品の一つとしてのRPAということで、今回はRPAで自動化する際には欠かせないサイトへのログインの自動化をIBM RPAのVault機能を用いて実装してみます。

## サイトへのログインの自動化：Vault機能

RPAを用いたサイトへのログイン方法は、ID情報とPW情報をもったデータベースと連携してログインする方法もありますが、今回はIBM RPAで標準で用意されているログイン方法：Vault機能を使用してみます。そのVault機能にもローカル側でID/PWを管理する場合とサーバー側で管理する場合の2パターンありますが、今回はまずローカルでID/PWを管理する方法を使用します。

設定するのは、下記のとおりです。
１：サーバー側でIDとパスワードを保管するための箱(IBM RPAではキーと呼ぶ)を用意
２：クライアント側でそのキーにID/パスワードを入力して覚えさせる
３：IBM RPAの開発環境(Studio)で「ボールト項目の取得」コマンドで2で設定したID/PWを呼び出す
４：ログインしたいサイトにID/PWを入力するコマンド「値をフィールドに設定」で入力を自動化する

## 管理サーバーでのキーの作成方法
作成するために必要な設定が2つあります。キー(ID/PWを保管する箱のようなもの)の作成とそのキーへの使用権限を設定するためのチームの作成です。
まずはチームの作成です。
管理サーバーから「アクセス」メニューから「チーム」タブをクリックし、ユーザーや役割を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/a1e7dddf-0f3f-7f84-ce25-fce071b327f6.png)

次に、「資格情報」メニューから「ボールト資格情報」タブをクリックし、新たなキーを作成し前に作成したチームを割り当てる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/a289e097-4847-2e21-0834-2869c7eb512e.png)
下記がボールトの作成画面です。キーの下に名前を入力、ボールトを使用しているチームの下にチームを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/7d1e38ba-5278-8a0f-3cf8-4e8c0b04214f.png)

これで、ローカル側からキーを見ることができるようになります。

## ローカル側での設定：ID/PWの入力と開発環境でのコマンドの設定

ローカル側ではタスクバーの中に隠されている下記をクリックすると黒いかばんのような図が見えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/b9257b38-6649-fc04-5430-edb212d91e81.png)

それをクリックすると初めての場合はパスワードの設定を求められますので、ご自身の好きなPWを設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/46d4cd11-cf39-6b75-6d96-b54d9b494ed2.png)

ログイン後に下記の画面が出てきて、権限があり設定したキーが表示されます。そのキーを選択して、右クリックをすると「現在のパスワード変更」を選択し、記憶させたいID/PWを入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/fd2fba43-f087-439d-cdda-d1effa13bf78.png)

キー毎に異なるID/PWを保存できるので、サイト毎に異なるID/PWが管理・保存できますし、ローカルでID/PWを管理しているため更新時の対応も簡単です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/f756fb9c-3613-f87f-bd6a-6b333d79e8f7.png)

ID・PWが設定されると右側のアイコンが緑のチェックに代わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/0af80c11-4f0e-4bb2-b8d9-e46543c11424.png)


最後に開発環境にて、実際にRPAでログインをさせるシナリオを教え込みます。
ログイン情報を入力させるためのコマンドは合わせて３つです。それ以外にも該当するWebページを開いたりする必要がありますが、それはまた別の記事で紹介いたします。

一つ目のコマンド、「ボールド項目の取得」コマンドでどのキーから情報を取得するのかを指定し、とってきたID/PW情報をIBMRPAで登録するために変数として保存します。それが出力にある、ユーザー名(ID情報)とパスワードになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/ca08e2fb-093b-d3b8-f87a-ee826e4fbec5.png)

次に「値をフィールドに設定」コマンドで、そのIDを入力したい先と紐づけます。
例えば、Gmailへのログインする場合は、ID情報を下記の場所に入力するんだよ、ということをこのコマンドで指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/08879d7e-3014-bba2-e72b-84d480ac4c56.png)

値が「ボールト項目の取得」コマンド作成したID情報を選択し、セレクタータイプとCSSではGmailでのID情報を入力する場所をCSSで取得するかXpathで取得するかなど選択し、場所の情報を指定した方法で入力します。(例はCSSでの場所情報です。これに関しても別記事にてご紹介いたします。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709056/eed4df85-8257-1118-b198-8be825734bb7.png)

これと同様にパスワードの設定すれば、Vault機能を用いたID/PWをログインしたいサイトにセキュアにログインできます。

## まとめ
設定となると色々とあり、面倒だなという印象があるかもしれません。
しかし、定期的に変更することがわかっているID/PWの管理・保存を、ユーザー側で設定できるVault機能を使用すれば、簡単にPWの変更を反映できます。その結果RPAで起こりやすい自動化が更新時に止まってしまう問題を、ID・PWの更新に関しては容易に対応できるようになるのです。

ここでは紹介できなかったWebページを開く設定や、WebブラウザでのCSSやXpathなどの取得方法を次回ご紹介いたします。

つたない文章ですが、御覧いただきありがとうございました。