LoginSignup
1
2

More than 3 years have passed since last update.

UiPath Orchestrator のAPIを呼び出すためにIISサーバにCORSの設定を追加する(IISでCORS対応)

Posted at

CORS(Cross Origin Resource Sharing)の概要

あるWEB上のサービスが、RESTのAPIを公開しているとします。
そして自分のWEBアプリから、そのRESTサービスを呼び出したいなんてときがあります。たとえば UiPath Orchestrator APIを使ってロボット一覧を取得して、自分のWEBサイトに表示するとか、そんな場合です。

しかしながら通常WEBブラウザはセキュリティの観点から「WEBアプリ(Script)が他のサイトへHTTPアクセスするのを制限する」という動きをします。いわゆる「同一オリジンポリシー(Same Origin Policy)」にしたがって動作するわけですが、従って通常このRESTサービスの呼び出しは遮断されてしまいます。

(ちなみに「オリジン」ってのは https://www.example.com:443/api/Account/Authenticate などにおける「https://www.example.com:443 」のことです。ここが異なるWEBサイトへの、Scriptをつかったアクセスを遮断するということですね)

C001.png

さて、信頼関係があるサーバ間ではこの制約をこえて通信したいわけですが、そのためにブラウザは「REST先が自分をOKって言ってくれれば、他のオリジン(Cross Origin)だけどアクセスを許可して、情報を共有しましょう(Resource Sharing)」という機構を用いて通信をおこなう事ができます。この機構が Cross Origin Resource Sharing つまりCORSです。

「IIS上で動いているUiPath Orchestrator が公開しているRESTのAPI」をWEBアプリから呼び出そうとして、CORSの制限に引っかかってしまったので、今回はIISにCORSの設定を追加してみようと思います。

やってみる

確認した環境

AWS上の Windows Server 2019 Detacenter 上のIIS

ダウンロード・インストール

IIS上で稼働するモジュールをインストールします。
https://blogs.iis.net/iisteam/introducing-iis-cors-1-0 より64Bit版のインストーラ(IISCORS_amd64.msi)をダウンロード。
IISサーバ上でインストーラを起動します。手順は「install」をクリックするだけ。

C002.png

Web.Config に設定追加

メモ帳などで C:\Program Files (x86)\UiPath\Orchestrator\Web.config を開きます。
<system.webServer> の項目を検索して、、、、下記を追加します。

<system.webServer>
  <cors enabled="true" failUnlistedOrigins="true">
      <add origin="*" >
          <allowHeaders allowAllRequestedHeaders="true" />
      </add>
  </cors>
...
</system.webServer>

画面で見るとこんな感じ。
C003.png

上記は 任意のサイト(*)に対して、すべてのHTTPメソッドを許可する、というとっても緩めな設定にしていますが、実際は特定のオリジンや特定のHTTPメソッドのみ許可するなど、必要最低限のモノにすべきです。ご注意ください。
この辺のConfigurationの方法は、 https://docs.microsoft.com/en-us/iis/extensions/cors-module/cors-module-configuration-reference ココに詳しく書いてありますので、熟読しましょう。

最後に、IISを再起動して、WEBアプリからリクエストしてみましょう。

C004.png

詳細は割愛しますが、OPTIONSメソッド(CORSをチェックするために呼ばれたHTTPリクエスト)が正常処理され、つぎのRobots 一覧を取得するリクエストも正常終了(Response:200) していますね!

おつかれさまでしたー

関連リンク

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2