こんにちは。UiPath Friendsコミュニティ運営メンバの @masatomix です。
この記事はUiPathブログ発信チャレンジ2022サマーの5日目の記事です。
昨日は shuyさんの記事、明日はよしやんやんさんの記事です。
今回は、下記のつぶやきについて。
いまどきのUiPathのプロキシ事情を調べよう
— Masatomi KINO (@masatomix) June 24, 2022
むかしみたいに、カオスじゃないといいな#UiPathFriends
ってことで、このとき調べたことをまとめておきます。
ちなみにむかしみたいなカオスとは下記のはなしです。
UiPath 2019くらいのときに同じコトをまとめたことがありますが、クシャクシャでした、、。
- UiPath製品群をプロキシ環境で使用するための環境設定手順(認証ありプロキシのケース)
- UiPath製品群をプロキシ環境で使用するための環境設定(UiPath Enterprise版/認証なしプロキシのケース)
- UiPath製品群をプロキシ環境で使用するための環境設定(UiPath Community版/認証なしプロキシのケース)
2019年に書いた記事は、Community版とEnterprise版で分けて書いたけど、いまの仕組みだとそこは重要じゃなさそうで、ユーザモード/サービスモードどちらでインストールしたか、で分けて考えます。
さてさてまずは結論。
TL;DR
クラウド版のOrchestrator(以下OC) と、PC上のUiPathは2022.4.3 にて確認。
- 認証ナシプロキシ
- ユーザモード:○
- インターネットオプションの設定を使って越えられる
- サービスモード:○
-
%ProgramFiles%\UiPath\Studio\uipath.config
へ設定を追記することで、越えられる。
-
- ユーザモード:○
- 認証アリプロキシ
- ユーザモード:×
- プロキシを越えることができない
- サービスモード:△
- Unattended Robot(以下UR)は、先の
uipath.config
への追記で、まあまあ実用的に使えそう - Attended Robot(以下AR)は、実用的に使うのは難しそう1 。
- トラブルシューティングセッションを使えば一時的に利用できるが。
- Unattended Robot(以下UR)は、先の
- ユーザモード:×
まとめると https://docs.uipath.com/robot/lang-ja/v2022.4/docs/redirecting-robots-through-a-proxy-server は正しい :-)
ってコトがわかりました。
さて個別に説明していきます。
その前に確認環境
稼働確認のために構築したテスト環境はこんな感じ。UiPathが動いてるPCは直接Internetからは遮断されていて、プロキシ経由の通信でないとダメな設定にしてみました。プロキシサーバは http://192.168.10.200:3128
で立ててあって、場合によって認証アリナシを切り替えてテストしました。
一応ですが、通常Webブラウザでネットにアクセスするときは、
インターネットオプション >> 接続 >> LANの設定
ココで設定をすることで、プロキシ経由のアクセスができるようになります。
まずは認証ナシプロキシ
ユーザモード
ユーザモードでインストールしたStudio(以下ST)/AR/URはいずれも、OSのインターネットオプションの設定を参照しているようなので、ブラウザでネット接続できれば問題ありません。
あ、ちなみに「ユーザモードでインストールしたUiPath」というのはインストーラで下記の2パタンの設定で入れたヤツのこと。
カスタム >> 自分にのみインストール >> Automation Developer
カスタム >> 全てのユーザにインストール >> Automation Developer >> インストールの種類は「ユーザーモード」
さてさて疎通確認は、だいたい以下を行いました。
- 対話型サインイン/Client Credentialsのアクティベーション
- STのパブリッシュ
- nupkgのダウンロード
- タスクトレイからの実行(AR的な実行)
- Web画面からのジョブ実行(UR的な実行)
最初だけ、エビデンスを載っけておきます。
エビデンス
Client CredentialsによるアクティベーションOK
プロキシなし、ユーザモードは以上です。
サービスモード
サービスモードの場合は、先ほどのインターネットオプションは参照しないみたいで、個別の設定ファイルuipath.config
の設定を参照していました。
というわけで、%ProgramFiles%\UiPath\Studio\uipath.config
にプロキシの設定を書いてUiPathサービスの再起動を行いましたが、もろもろOKでした。
<webProxySettings >
<add key="ProxyAddress" value="http://192.168.10.200:3128" />
<add key="BypassLocalAddresses" value="True" />
<add key="BypassList" value="server\.domain\.local$;www.google.com;192\.168\.\d{1,3}\.\d{1,3}" />
</webProxySettings >
いちおうですが、UiPathサービスの再起動というのはコレのことです。
また、先のリンクを見てみると、よく会社で使われるプロキシを自動設定するファイル(pacファイル)の指定も可能なようですね。
プロキシなし、サービスモードは以上です。
つづいて認証アリプロキシ
ユーザモード
先のリンクを見る限り、ユーザモードの場合は認証アリプロキシを越えられないとのこと。残念。
UiPath2019系の時はいけるパタンもあったので、もうすこし深追いすると越えられるのかもしれませんが、公式が無理っていってるんで、いったん調査はここまで。
サービスモード
先のリンクを見る限り、サービスモードの場合は先ほどの%ProgramFiles%\UiPath\Studio\uipath.config
に認証プロキシの設定を書けば越えられるとのことで、実際可能でした(ココもUiPathサービスの再起動が必要です)。
認証プロキシが user01/user01 というID/Passを通す場合の例:
<webProxySettings >
<add key="ProxyAddress" value="http://192.168.10.200:3128" />
<add key="UserName" value="user01" />
<add key="Password" value="user01" />
<add key="Domain" value="" />
</webProxySettings >
ただし公式の説明を見ると
Robot Executor は基本認証メソッドを使用するプロキシ構成をサポートしていません。
とのこと。Robot Executorの範囲がよくわからなかったのですが、
- マシンキーによるアクティベーション
- nupkgのダウンロード
- WEBからのジョブ起動
などはOKでした。 ようするにUR的には実用的に使えそう。
ただ、タスクトレイからの実行つまりAR的につかいたい場合に必要な「対話型サインイン」ができないようです。
もうすこし詳しく書くと、サービスモードのUiPathはまずはマシンキー接続を行いますが、これだけだとユーザ(ロボ)特定ができずにライセンスが取得ができない、いわゆるアイコンがオレンジ状態となります。したがって、タスクトレイから実行するには追加でサインインが必要なのですが、やってみると下記の通りのエラーが。
エラーメッセージに407とかでてますね。プロキシサーバが返してくる「HTTPレスポンスのステータスコード407(Proxy Authentication Required)」を処理できないようです2。したがってタスクトレイからの実行(ARとして使う)は不可能に見えますね。Studioもたぶん同様かとおもいます。
トラブルシューティングセッションってのを設定すれば利用可能だが
まとめにもかきましたが、上記の状況で対話型サインインができない問題を回避する方法として「トラブルシューティングセッション」というのがあります。トラブルシューティングセッションとは、いわゆるかつてのロボット特定ロジックで、コレを設定するとライセンス取得のためのロボット探索を、ログインしているWindowsアカウントで行ってくれるようになります。
なので、認証プロキシ上でARとして利用するには、サービスモードでかつトラブルシューティングセッションを使用すれば、可能です。
さてトラブルシューティングセッションの設定方法ですが
テナント >> 監視 >> セクション:無人セッション >> 該当ロボットの右部メニュー >> 「トラブルシューティングセッションを設定」
で表示されるダイアログで、設定することが可能です。下記のトグルするボタンを「Enabled」にしてください。
これで上記のキャプチャのようにライセンスを取得することができ、AR的な利用が可能となります。
ただトラブルシューティングセッションは、タイムアウト時間を設定するなどあくまで緊急措置(?) ぽい位置づけで、これを日々利用する前提はちょっと無理がありそうです。
というわけで、認証アリプロキシ環境では、やっぱりAR利用は難しいってことになりそうです。
まとめ
最初に書いたモノのの再掲ですが、
- 認証ナシプロキシ
- ユーザモード:○
- インターネットオプションの設定を使って越えられる
- サービスモード:○
-
%ProgramFiles%\UiPath\Studio\uipath.config
へ設定を追記することで、越えられる。
-
- ユーザモード:○
- 認証アリプロキシ
- ユーザモード:×
- プロキシを越えることができない
- サービスモード:△
- Unattended Robot(以下UR)は、先の
uipath.config
への追記で、まあまあ実用的に使えそう - Attended Robot(以下AR)は、トラブルシューティングセッションを使えばうまくいくが、定常的に使うモノではなさそう。
- Unattended Robot(以下UR)は、先の
- ユーザモード:×
ちなみにプロキシの設定ですが「設定を書き換えたのに反映されない」ケースが何度かありました。インターネットオプションでプロキシの設定をOFFにしたのに相変わらずプロキシに行っちゃうみたいな3。ヘンだなーと思いつつPCを再起動したら正しくなったりしたので、場合によってはPCを再起動してみてください。
以上、お疲れさまでした!
関連リンク
- Robot をプロキシ サーバー経由でリダイレクトする 2019系のときはまとまったサイトがありませんでしたが、結論いうとココの説明でほとんど事足りる内容でした
- Studio が接続するサービス Studioはネット上のこの辺にアクセスしているようですね。
- ロボットが接続するサービス Robotはネット上のこの辺にアクセスしているようですね。
UiPathの2019版までの仕様はこちら:
- UiPath製品群をプロキシ環境で使用するための環境設定手順(認証ありプロキシのケース)
- UiPath製品群をプロキシ環境で使用するための環境設定(UiPath Enterprise版/認証なしプロキシのケース)
- UiPath製品群をプロキシ環境で使用するための環境設定(UiPath Community版/認証なしプロキシのケース)