외부 웹 페이지에 웹 클라이언트 포함 가상 에이전트 (레거시 방법)

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기9분
  • 인라인 프레임 요소(iframe) 가상 에이전트 를 사용하여 외부 웹 페이지에서 웹 클라이언트 인터페이스를 로드합니다. 웹 클라이언트를 사용 중이고 로그인하지 않은 게스트 사용자에 대해 SSO(Single Sign-On) 인증 프로세스가 자동으로 실행되도록 선택적으로 사용하도록 설정할 수도 있습니다.

    시작하기 전에

    중요사항:
    대신 웹 페이지에 Portable 가상 에이전트 Web Client를 추가하는 것이 좋습니다. 코드 복잡성이 줄어들고 구현하기가 더 쉽습니다. 또한 채팅을 시작하거나 닫기 위한 클릭 동작과 같은 표준 채팅 기능도 포함됩니다. 자세한 내용은 외부 공급업체 웹 사이트에 휴대용 가상 에이전트 웹 클라이언트 추가 문서를 참조하십시오.
    • iframe에서 포함할 인스턴스의 URL을 지정합니다. 인스턴스에 없는 ServiceNow 페이지에 웹 클라이언트를 포함하는 경우 URL은 사용자 지정 인스턴스 URL이어야 합니다. 브라우저 보안 강화로 인해 사용자 지정 URL을 사용하지 않으면 웹 클라이언트가 로드되지 않을 수 있습니다. 사용자 지정 URL 사용에 대한 자세한 내용은 인스턴스에 사용자 지정 URL 연결을 참조하세요.
      주:
      웹 클라이언트는 가상 에이전트 기본적으로 Safari의 iframe에서 작동하지 않습니다. Apple 교차 원본 iframe을 차단합니다(iframe에 사용된 URL의 도메인이 웹 사이트 자체의 도메인과 일치하지 않는 경우).
    • 가상 에이전트 클라이언트를 포함시킨 후 웹 클라이언트에서 SSO 인증을 선택적으로 트리거할 수 있지만 인스턴스가 외부 SSO 제공자를 사용하도록 설정된 경우에만 가능합니다. 또한 호스팅 사이트는 인스턴스와 동일한 SSO 제공자를 사용해야 합니다. SSO 제공자 설정에 대한 자세한 내용은 외부 SSO(Single Sign-On)를 참조하십시오.

      SSO 인증을 트리거하려면 인증 실행 조건을 정의하고 지정된 웹 클라이언트 페이지로 사용자를 리디렉션하는 JavaScript 스크립트를 만듭니다(아래 2단계 참조). 또한 시스템 속성에서 식별하여 이 스크립트에 전달할 수 있는 허용된 URL을 com.glide.cs.web_client_login_redirect_urls 지정합니다. 전체 리디렉션 URL 또는 URL의 호스트 부분(예: https://example.com )을 지정합니다.

    필요한 역할: admin

    이 태스크 정보

    이 절차를 수행하려면 다음 두 시스템 속성의 값을 설정해야 합니다.
    • com.glide.cs.embed.csp_frame_ancestors
    • com.glide.cs.embed.xframe_options
    이러한 속성은 포함된 웹 클라이언트에 대한 보안 정책, 즉 웹 채팅 클라이언트를 포함하기 전에 iframe에서 브라우저가 iframe에서 HTML 콘텐츠를 가상 에이전트 렌더링하고 라이브 에이전트 보호하는 방법을 결정합니다.
    게스트 사용자에 대한 SSO 인증을 생성하려면 window.postMessage() 메서드(웹 API)를 사용하여 인증을 트리거하고 인증 후 사용자가 리디렉션되는 URL을 지정하는 스크립트를 만들 수 있습니다. 이 메서드 및 Window 객체에 대한 자세한 내용은 Window.postMessage()를 참조하십시오.
    주:
    CMS(콘텐츠 관리 시스템) 애플리케이션을 사용하여 애플리케이션에 ServiceNow® 대한 Now Platform 사용자 지정 인터페이스를 만드는 경우 는 지원하지 않는다는 가상 에이전트점에 유의하십시오.

    프로시저

    1. com.glide.cs.embed.xframe_options 시스템 속성을 모두 com.glide.cs.embed.csp_frame_ancestors 설정하여 iframe 콘텐츠를 보호하기 위한 HTTP 헤더 지시문을 지정합니다.
      HTTP 헤더 지시문은 클릭재킹 시도를 완화하기 위해 특정 도메인에 페이지를 포함할 수 있는지 여부를 브라우저에 알려줍니다. 두 속성을 모두 설정하면 주요 브라우저와 Internet Explorer와 같은 이전 브라우저에 대한 보안 지시문이 있습니다.
      1. 탐색 필터에 sys_properties.list를 입력합니다.
      2. 시스템 속성 [sys_properties] 테이블에서 이름으로 속성을 검색합니다 com.glide.cs.embed.csp_frame_ancestors .
        주:
        이 속성은 HTTP 헤더 지시문인 Content-Security-Policy:frame-ancestors<source>의 소스 값을 설정합니다. host-source 값을 사용하여 외부 웹 페이지를 포함할 수 있는 도메인을 지정합니다. 이 속성은 Internet Explorer를 제외한 대부분의 주요 브라우저에 적용됩니다.
      3. 속성 이름을 클릭하여 양식을 열고 지시문 값을 지정합니다.
        표 1. 시스템 속성: com.glide.cs.embed.csp_frame_ancestors
        필드 설명
        유형 문자열

        이는 기본값입니다.

        다음을 포함하여 하나 이상의 소스를 지정합니다.
        • 'self': 출처가 게재 중인 페이지와 동일함을 나타냅니다. 예를 들어 값이 'self' http://mywebsite.com인 경우 iframe은 상위 도메인뿐만 아니라 mywebsite.com 에도 포함됩니다. 이는 기본값입니다.
        • host-source: 외부 웹 페이지를 포함할 수 있는 도메인입니다. 이름, IP 주소 또는 선택적 URL 및/또는 포트 번호로 인터넷 호스트 사이트를 지정합니다. 사이트 주소는 와일드카드(별표) 문자로 시작할 수 있습니다. 예제 값: http://*.example.com
        • scheme-source: 스키마입니다. 예: http: 또는 https:
        • none: 일치하는 URL이 없습니다.

        지정할 수 있는 소스 값에 대한 자세한 내용은 인스턴스 보안 강화 설정에서 CSP:frame-ancestors가상 에이전트에 포함된 클라이언트 콘텐츠 보안 정책(인스턴스 보안 강화)을 참조하십시오.

      4. 시스템 속성 [sys_properties] 테이블로 돌아가서 이름으로 속성을 검색합니다 com.glide.cs.embed.xframe_options .
        주:
        이 속성은 X-Frame-Options 헤더 지시문의 값을 설정하여 브라우저가 프레임에서 외부 웹 페이지를 렌더링할 수 있는지 여부를 나타냅니다. 기본 sameorigin 값을 사용하여 외부 웹 페이지를 포함할 수 있는 도메인을 지정합니다. 이 속성은 Internet Explorer 11과 같은 이전 브라우저에 적용됩니다.
      5. 속성 이름을 클릭하여 양식을 열고 지시문 값을 지정합니다.
        표 2. 시스템 속성: com.glide.cs.embed.xframe_options
        필드 설명
        유형 문자열. 기본값입니다.
        다음을 포함한 값을 지정합니다.
        • sameorigin입니다. 기본값입니다. 페이지 자체와 원본이 같은 프레임에 페이지를 표시합니다. 예제 값: https://example.com 에서 허용.
        • 부정하다. 페이지를 프레임에 표시하지 않습니다.
        • URI에서 허용. 지정된 원점의 프레임에만 페이지를 표시합니다.
          주:
          이 값은 최신 브라우저에서 더 이상 작동하지 않습니다.

        지정할 수 있는 소스 값에 대한 자세한 내용은 인스턴스 보안 강화 설정X-Frame-Options가상 에이전트 임베디드 클라이언트 X-Frame-Options(인스턴스 보안 강화)를 참조하십시오.

    2. ServiceNow 인스턴스를 사용자 지정 URL에 연결한 후 iframe 요소를 만들고 외부 웹 페이지에 클라이언트를 포함하는 가상 에이전트 데 사용되는 인라인 요소(iframe)에 사용자 지정 URL을 지정합니다. "https://<your-domain>.com/sn_va_web_client_app_embed.do"
      주:
      인스턴스에 사용자 지정 URL이 여러 개 있을 수 있지만 인스턴스 URL은 하나입니다. 사용자 지정 인스턴스 URL만 사용해야 합니다.
      예:
      <iframe id="sn_va_web_client"     title="ServiceNow Virtual Agent Client"     width="600"     height="900"     src="https://<your-domain>.com/sn_va_web_client_app_embed.do">
      "https://<your-domain>.com/"https://<your-domain>.com/</iframe>
      
      주:
      URL 끝에 있는 ?sysparm_skip_load_history=true 매개 변수를 사용하여 대화 기록 없이 인터페이스를 로드합니다.
    3. 옵션: window.postMessage() 메서드(웹 API)를 사용하여 사용자 인터페이스 페이지에서 SSO 인증을 트리거하고 지정한 웹 클라이언트 페이지로 사용자를 반환하는 이벤트 조건을 정의하는 JavaScript 스크립트를 만듭니다.
      사용자를 웹 클라이언트 페이지로 리디렉션하려면 "https://<your-instance>.service-now.com/sn_va_web_client_login.do?sysparm_redirect_uri=' + encodeURIComponent(<your-page>) 문자열을 사용합니다.
      주:
      스크립트를 실행하기 전에 시스템 속성을 사용하여 com.glide.cs.web_client_login_redirect_urls 스크립트에 전달할 수 있는 URL을 지정합니다. 리디렉션은 속성 값에 하나 이상의 허용된 URL을 지정하는 경우에만 작동합니다. 전체 리디렉션 URL 또는 URL의 호스트 부분(예: https://example.com )을 지정합니다.
      예시 스크립트:
      <script>
          window.addEventListener("message", function(e) {
             // redirect to SSO login if the web client logs in but is logged in as a guest user(unauthenticated)
            if(e.data.type==="SESSION_CREATED" && e.data.authenticated === false)
              window.location.href = "https://<your-instance>.service-now.com/sn_va_web_client_login.do?sysparm_redirect_uri="+ encodeURIComponent(location.href);
            
            // redirect to SSO login if the ServiceNow platform logs out from underneath the web client
            if(e.data.type==="SESSION_LOGGED_OUT")
              window.location.href = "https://<your-instance>service-now.com/sn_va_web_client_login.do?sysparm_redirect_uri=" + encodeURIComponent(location.href);
          });
        </script>

      이 예에서 인증은 SESSION_CREATED 또는 SESSION_LOGGED_OUT 이벤트가 발생할 때 지정된 인스턴스에서 트리거됩니다. 인증 후(사용자에 대한 SSO 자격 증명이 허용되는 경우) 속성에 com.glide.cs.web_client_login_redirect_urls 페이지 URL도 지정했다면 사용자는 sn_va-web_client_login.do?sysparm_redirect_uri=' + encodeURIComponent(<your-page>)에 지정한 포함된 웹 클라이언트 페이지로 리디렉션됩니다.