RPAエンジニアの雑記

RPA(Blue Prism)について色々記載してます。

(BluePrism)暗号化のあれやこれや ~その2 アプリケーションサーバとの関係~

こんばんは、おむおむです。

どうやらこのブログをBP社の方もご認識いただいているらしく。
嬉しい限りですねハイ。

f:id:newgraduate19:20200217215007p:plain

 

今回はBlue Prism Serverサービスと暗号化の関係について書いていこうと思います。
「間違ってるわ!」という箇所があればご指摘よろしくオナシャス!!!

 

起動してみよう

まずはインストールフォルダの中からBPServer.exeを起動します。
(管理者権限が必要)

f:id:newgraduate19:20200217213730p:plain

 

プロファイルを設定してみよう

起動したら新規とか、すでに作っている場合は編集とかをクリック!

f:id:newgraduate19:20200217214226p:plain

接続モードは、まああれっすね、こんな感じ。

・HTTP通信を使いたいならWCFTCP通信を使いたいなら.NET Remoting
・同じADのドメイン内にあるならWindows認証を使用するやつ

的な判断でいいんじゃないかと思われ。

 

あと、VMWareを入れている場合、なぜかVMWareのブリッジ接続用の
ネットワークアダプタ(VMware Network Adapter VMnet8)が使われてしまう場合があるので、
一応バインディングのところに使いたいIPアドレスを入力したほうがよいかもです。

 

暗号化

やっと本題。最初の環境構築の時にほぼ確でハマるやつ。

f:id:newgraduate19:20200217215458p:plain

 

デフォルトの暗号化方式

1つ目の罠!

Blue Prismの暗号化方式のところを見てみると、
「デフォルトの暗号化方式」と表示されているのですが!ですが!
データベースの中を見てみると!

f:id:newgraduate19:20200217220115p:plain

でふぉるとえんくりぷしょんすきーむ・・・ 

 英語で入ってるんですよね。不思議~

なので、このまま使う場合は!

f:id:newgraduate19:20200217220425p:plain

EnglishでInputしましょう!Yeah!

 

キーの場所

理解を妨げる罠その2!キーの場所!

 

キーの場所が「アプリケーションサーバー」の場合はまあいいじゃないですか。
そのまんま、Appサーバのどこかに保存されるんだなー、的な。

 

ではキーの場所がデータベースならどうなるの?
「キーの場所がデータベースだからAppサーバでは特になんもせんでもええやろ!」
そりゃっ起動じゃい!

f:id:newgraduate19:20200217220933p:plain

(´;ω;`)ウゥゥ

 

どうやら、キーの場所をデータベースにしても、Appサーバ側で指定する必要があるようですね。。。

 

キーの中身

ここで私は考える。

「キーの中身は、Appサーバ側とIC側で合わせなきゃあかんのか・・・?」と。

結論から言うと!合わせなくてもいいんだよ!

f:id:newgraduate19:20200217221328p:plain


どうやらBlue Prismの仕様上、IC側で設定した暗号化スキームと同名でAppサーバ側でも鍵を作ってあげる必要があるんですが、鍵の場所がデータベースの場合、

Appサーバで作った鍵は、実際には使われないというややこしいことに。。。

f:id:newgraduate19:20200217222502p:plain

 

だから実際にはこんなことになるわけですわ。

・IC側で場所をデータベースにしてキーの中身を自動生成

f:id:newgraduate19:20200217224002p:plain

 

そしてAppサーバ側で同名のキーを指定してこちらも中身を自動生成(もちろんIC側と違うキーができる)

f:id:newgraduate19:20200217224407p:plain

 

そして動かしてみる

f:id:newgraduate19:20200217224724p:plain

やったぜ

 

f:id:newgraduate19:20200217224735p:plain

コマンドプロンプトからも8199(デフォルトのポート)がListeningになっていることを確認できた
(ファイアウォールが開いているとは言ってない)

 

結論

・鍵の場所はどこだろうが、とりあえずAppサーバ側で同名の暗号化スキームを用意してあげる必要がある
・鍵の場所がデータベースの場合も、Appサーバ側で作ってあげることが必須だが、
 実際には使われないという悲しい運命
・DB作成直後にデフォで用意されている「デフォルトの暗号化方式」を使うなら
 「Default Encryption Scheme」とEnglishでSpecifyしてあげることがMust

 

次は何書こうかな