UiPath Orchestrator API를 호출하기 위해 IIS 서버에 CORS 설정 추가 (IIS에서 CORS 지원)

CORS (Cross Origin Resource Sharing) 개요



한 웹의 서비스가 REST API를 게시한다고 가정합니다.
그리고 자신의 WEB 앱에서 REST 서비스를 호출하고 싶은 때가 있습니다. 예를 들어 UiPath Orchestrator API를 사용하여 로봇 목록을 검색하여 자신의 웹 사이트에 표시하거나 그런 경우입니다.

그러나 보통 WEB 브라우저는 보안의 관점에서 「WEB 앱(Script)이 다른 사이트에 HTTP 액세스 하는 것을 제한한다」라고 하는 움직임을 합니다. 소위 「동일 오리진 정책(Same Origin Policy)」에 따라서 동작하는 것입니다만, 일반적으로 이 REST 서비스의 호출은 차단되어 버립니다.
  • 참고: 오리진 간 리소스 공유(CORS)

  • (덧붙여서 "오리진"은 htps //w w. 그래 mpぇ. 코 m : 443 / 아피 / 아코 톤 t / 아테 펜치 카테 등의 "htps //w w. 그래 mpぇ. 코m:443"입니다. 여기가 다른 WEB 사이트에 대한 스크립트를 사용한 액세스를 차단한다는 것입니다)



    그런데, 신뢰 관계가 있는 서버간에서는 이 제약을 넘어 통신하고 싶습니다만, 그 때문에 브라우저는 “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에서 실행되는 모듈을 설치합니다.
    htps : // bgs. 좋은 s. 네 t / 좋은 s 테아 m / 인 t 로즈 신 g - 좋은 s - 코 rs - 1-0 64 비트 버전의 설치 프로그램 (IISCORS_amd64.msi)을 다운로드하십시오.
    IIS 서버에서 설치 프로그램을 시작합니다. 절차는 "install"을 클릭하면됩니다.



    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>
    

    화면에서 보면 이런 느낌.


    상기는 임의의 사이트(*)에 대해서, 모든 HTTP 메소드를 허가한다, 라고 하는 매우 느슨한 설정으로 하고 있습니다만, 실제로는 특정의 오리진이나 특정의 HTTP 메소드만 허가하는 등, 필요 최소한의 물건에 해야 합니다. 주의해 주십시오.
    이 근처의 Configuration 방법은 htps : // / cs. mic로소 ft. 코 m / 엔 - s / 좋은 s / 에 x 텐시 온 s / 코 rs - 모즈 / 코 rs - 모즈 - 콘후 코코에 자세하게 쓰여 있으므로 숙독합시다.

    마지막으로 IIS를 다시 시작하고 웹 앱에서 요청해 봅시다.



    자세한 내용은 생략하지만 OPTIONS 메소드(CORS를 체크하기 위해 호출된 HTTP 요청)가 성공적으로 처리되고 다음 Robots 목록을 얻는 요청도 정상 종료(Response:200)하고 있네요!

    미안해.

    관련 링크


  • IIS CORS Module을 사용해 보았습니다.
  • IIS CORS module Configuration Reference
  • CORS 정리
  • 좋은 웹페이지 즐겨찾기