기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

매시업 마이그레이션

모든 매시업이 동일한 방식으로 구현되는 것은 아닙니다. 매시업 마이그레이션 프로세스와 관련된 몇 가지 고려 사항을 설명하는 가이드로 다음 콘텐츠를 고려합니다. 매시업 마이그레이션을 시도하기 전에 다음을 완료했는지 확인합니다.

  • Qlik Cloud 테넌트를 배포하고 구성했습니다.

  • 사용자는 IdP를 통해 인증할 수 있으며 필요한 앱은 적절한 공유 또는 관리 공간으로 마이그레이션되었으며 사용자는 최소한 볼 수 있음 권한이 있습니다. 공간 권한에 대한 자세한 내용은 공유 공간의 권한 관리관리되는 공간의 권한 관리를 참조하십시오.

  • 테넌트 관리자 역할이 있는 테넌트에 대한 액세스(웹 통합 만들기에 필요).

또한 Qlik Sense 매시업이 IFrames만 사용하거나 Qlik 기능 API를 사용하여 개체를 포함하는지 여부에 관계없이 일반적으로 JavaScript 및 HTML을 사용하여 구현되는 방식에 대해 잘 알고 있어야 합니다.

명확히 하기 위해 새 매시업은 Qlik Cloud의 매시업을 참조하고 이전 매시업은 Qlik Sense 클라이언트 관리의 기존 매시업을 참조하십시오.

웹 통합

Qlik Cloud의 새 매시업은 Qlik Sense 클라이언트 관리 대신 Qlik Cloud 테넌트의 콘텐츠를 로드하고 포함합니다. 매시업 웹사이트(원본)를 식별할 수 있도록 Qlik Cloud에서 웹 통합을 구성해야 합니다.

웹 통합은 포함된 시각화를 렌더링하기 위해 URL 포함 목록과 연결된 유효한 ID를 제공하는 웹 사이트를 허용하는 보안 메커니즘입니다. Qlik Cloud와 상호 작용하는 모든 웹 응용 프로그램은 테넌트에서 웹 통합을 구성해야 합니다.

Qlik Cloud에서 웹 통합 만들기

웹 통합을 만들려면 Qlik Cloud의 테넌트 관리자여야 합니다.

다음과 같이 하십시오.

  1. 관리 콘솔에서 섹션으로 이동하고 오른쪽 상단 모서리에서 새로 만들기를 클릭합니다.
  2. 대화 상자에서 웹 통합 이름을 입력합니다.

  3. 원본 주소를 다음 형식으로 입력합니다. https://domain.com. 그런 다음 추가를 클릭하여 허용 리스트에 원본을 추가합니다

    정보 메모둘 이상의 원본을 추가할 수 있습니다.
  4. 만들기를 클릭합니다.
웹 통합 만들기

웹 통합을 만들면 ID가 부여됩니다. 새 매시업 코드의 필수 특성 또는 매개 변수인 매시업의 qlik 웹 통합 ID입니다.

웹 통합 ID

웹 통합 ID의 예

웹 통합 만들기에 대한 자세한 내용은 웹 통합 관리를 참조하십시오.

인증

Qlik Sense 클라이언트 관리의 매시업은 일반적으로 인증 메커니즘이 미리 구성된 가상 프록시를 통해 인증을 처리합니다. 옵션에는 헤더, 티켓, SAML, JWT, OpenID 연결(OIDC) 및 익명이 포함됩니다. 자세한 내용은 인증 솔루션 (영어로만 제공)을 참조하십시오.

Qlik Sense 클라이언트 관리 이전 매시업에서 인증은 일반적으로 필요한 정적 Qlik 파일 및 라이브러리를 포함한 모든 리소스가 이 가상 프록시를 통해 로드되기 전에 코드에서 처리됩니다.

예를 들어,

  • 티켓 및 JWT를 사용하면 일반적으로 Qlik 티켓 또는 JWT 토큰을 안전하게 만들기 위해 백엔드 인증 모듈에 대한 호출이 있습니다.

  • 헤더를 사용하면 일부 기본 모듈 또는 리버스 프록시가 적절한 헤더를 설정합니다.

  • OIDC 및 SAML의 경우 리소스를 로드하고 콘텐츠 포함을 시작할 수 있도록 Qlik Sense로 세션을 최종적으로 시작하기 위해 인증 흐름을 트리거하는 해당 ID 공급자에 대한 초기 리디렉션이 있어야 합니다.

Qlik Cloud는 가상 프록시를 사용하지 않습니다. 대신 테넌트에서 만든 웹 통합을 사용합니다. 인증을 위해 다음 두 가지 메커니즘을 사용할 수 있습니다. 

  • 대화형 로그인—이 메커니즘은 테넌트가 일반 액세스에 사용하는 구성된 IdP에 따라 다릅니다. 이는 기본적으로 Qlik Account IdP이거나 Okta, Auth0, ADFS, AzureAD, Salesforce, Generic 및 Keycloak과 같은 사용할 수 있는 옵션 중 하나입니다.

  • JSON Web Token(JWT)—이 인증 메커니즘은 일반적으로 백엔드 서비스에서 안전하게 생성되는 서명된 JWT 토큰에 따라 다릅니다. 이 경우 JWT 유형의 테넌트에 구성된 ID 공급자가 있어야 합니다.

Qlik 개체가 기능 API와 함께 포함된 매시업

대화형 로그인을 사용한 인증

HTML 잠재적 코드 업데이트

Qlik Sense 클라이언트 관리 매시업과 마찬가지로 html의 <head> 섹션에 두 개의 Qlik 정적 파일(qlik-styles.cssrequire.js)을 로드해야 합니다. 그러나 Qlik Cloud를 사용하면 인증 없이 이러한 파일에 직접 액세스할 수 있습니다.

HTML 잠재적 코드 업데이트

JavaScript 잠재적 코드 업데이트

Qlik Sense 클라이언트 관리 매시업이 기능 API를 사용하여 Qlik Sense 클라이언트 관리에 개체를 포함하고 상호 작용하는 경우 다음 코드를 검토합니다. 이 예에서는 기능 API Qlik 라이브러리를 사용하여 여러 시각화를 포함합니다.

JavaScript 잠재적 코드 업데이트

require에 대한 구성 변수 및 baseUrl

Qlik Cloud 매시업에서 구성 변수는 테넌트 hostwebIntegrationId를 반영해야 합니다. 또한 가상 프록시가 없기 때문에 prefix는 그냥 /여야 합니다. 세션이 공유되지 않고 이 매시업의 컨텍스트에 대해서만 사용되도록 identity 특성을 설정할 수 있습니다. 포트는 443이어야 하며 이는 isSecure가 항상 true임을 의미합니다.

require 구성에는 webIntegrationId가 포함되어야 하며, Qlik Cloud에 대한 통신은 항상 포트 443에서 https를 통해 이루어지기 때문에 baseUrl이 더 간단합니다.

require에 대한 구성 변수 및 baseURL

기능 API 로드

Qlik 기능 API 라이브러리를 require (js/qlik)로 로드하기 전에 사용자가 이미 로그인되어 있는지 확인합니다. 예를 들어, 현재 사용자 메타데이터 종료 지점에 대해 REST API 호출을 트리거하여 이 작업을 수행할 수 있습니다. 응답 상태가 200이 아닌 경우 코드는 로그인 화면으로 리디렉션되어 URL: returnto(실제 매시업 URL) 및 qlik-web-integration-id라는 두 매개 변수를 삽입해야 합니다.

코드 실행은 다음과 같습니다.

  • /api/v1/users/me REST API 종료 지점에 대한 GET 요청으로 사용자가 이미 로그인했는지 확인합니다.

    • 부정적인 경우(응답 상태가 200이 아님) returnTo 및 qlik-web-integration-id 매개 변수를 추가하여 로그인 화면/login으로 리디렉션합니다.

    • 긍정적인 경우(응답 상태가 200임) qlik/js CapabilityAPI 라이브러리를 require 로 로드하고 이 API 집합을 계속 사용합니다.

최종 코드는 다음 예와 같습니다. JavaScript에는 완벽한 코드를 작성하는 고유한 방법이 없으므로 이는 하나의 유효한 코드 옵션일 뿐입니다.

JSON Web Token(JWT)을 사용한 인증

JWT ID 공급자 구성

JWT 토큰은 인증서 비공개 키로 안전하게 서명된 일부 페이로드 사용자 메타데이터(예: 이름, 이메일, 그룹, 제목)의 암호화 결과입니다. 연결된 인증서 공개 키가 있는 사람은 누구나 토큰의 유효성을 검사하고 그 안에 있는 사용자 정보를 읽을 수 있습니다.

Qlik Cloud가 서명된 JWT 토큰의 유효성을 검사하려면 JWT 유형의 Qlik Cloud 테넌트에서 ID 공급자를 구성해야 합니다. 일단 구성되면 테넌트는 적절하게 서명된 전달자 JWT 토큰이 포함된 API 요청을 수락하고 유효성을 검사할 수 있습니다.

  1. 관리 콘솔의 구성 섹션에서 ID 공급자를 선택하여 새 공급자를 만듭니다.

    JWT 유형으로 ID 공급자 구성 만들기

  2. 위의 인증서 상자에 인증서 공개 키를 PEM 서식으로 붙여넣습니다.

  3. 선택적으로 발행자키 ID를 지정할 수 있으며 만든 후 이러한 값이 제공됩니다.

    ID 공급자 구성의 발급자 및 키 ID

서명된 JWT 토큰 백엔드 서비스 잠재적 코드 업데이트

Qlik Sense 클라이언트 관리를 사용하면 JWT 토큰을 생성하기 위한 페이로드에 JWT 인증을 위해 Qlik Sense의 가상 프록시에 필요한 클레임 사용자 ID 및 사용자 디렉터리만 필요합니다. Qlik Cloud를 사용하면 이 페이로드에 더 많고 다양한 클레임 특성이 필요합니다.

Qlik Cloud에 필요한 사항을 반영하기 위해 필요한 서명 옵션과 함께 페이로드에 대한 JWT 토큰 생성 백엔드 서비스 코드를 조정해야 합니다. 예를 들어, JWT ID 공급자의 발급자 및 키 ID는 필수 서명 옵션입니다. 전체 설명은 Qlik Sense 권한 부여에 대한 JWT 서식을 참조하십시오.

HTML 잠재적 코드 업데이트

Qlik Sense 클라이언트 관리 매시업과 마찬가지로 html의 <head> 섹션에 두 개의 Qlik 정적 파일(qlik-styles.cssrequire.js)을 로드해야 합니다. 그러나 Qlik Cloud를 사용하면 인증 없이 이러한 파일에 직접 액세스할 수 있습니다.

JavaScript 잠재적 코드 업데이트

코드 개념은 대화형 로그인을 사용하는 것과 유사합니다. 그러나 이 경우 일반 로그인 화면으로 리디렉션하는 대신 /login/jwt-session 종료 지점에 대한 POST 요청으로 JWT 세션을 시작하여 전달자 JWT 토큰 및 웹 통합 ID에 대한 헤더를 전달해야 합니다.

  • /api/v1/users/me REST API 종료 지점에 대한 요청으로 사용자가 이미 로그인했는지 확인합니다.

    • 긍정적인 경우(응답 상태가 200임), require와 함께 qlik/js 기능 API 라이브러리를 로드하고 사용합니다.

    • 부정적인 경우(응답 상태가 200이 아님) POST 요청을 트리거하여 지정된 서명된 JWT 토큰으로 JWT 세션을 시작합니다.

      • 긍정적인 경우, require와 함께 qlik/js 기능 API 라이브러리를 로드하고 사용합니다.

      • 부정적인 경우, JWT가 유효하지 않거나 만료되었거나 수락되지 않았기 때문에 JWT 인증이 실패했을 가능성이 있습니다.

다음은 위에서 설명한 프로세스의 코드 예입니다.

Qlik Cloud의 기능 API 및 호환성

웹 응용 프로그램에 기능 API를 사용할 때 Qlik CloudQlik Sense 클라이언트 관리 사이에 거의 완전한 호환성이 있지만 Qlik Cloud 배포가 있는 웹 사이트에 대해 이 JavaScript 라이브러리를 사용하는 경우 몇 가지 미묘한 차이가 있거나 사용할 수 없는 방법이 있습니다. 예를 들어, Qlik Cloud에서는 전역 API를 사용할 수 없습니다.

Qlik 개체가 IFrame과 함께 포함되는 매시업

Qlik 개체가 기능 API와 함께 포함된 매시업에서 설명한 대로 인증을 처리하는 것 외에도 Qlik Cloud에서 콘텐츠 보안 정책(CSP)을 처리하는 방법을 잘 알고 있어야 합니다.

콘텐츠 보안 정책

Qlik Cloud의 CSP 정책은 다른 도메인의 Qlik 개체에 대한 액세스를 차단합니다. 즉, 단일 API IFrame 접근 방식을 사용하여 Qlik 개체를 포함할 때 frame-ancestors 'self' 정책 오류가 발생합니다.

정책 오류: frame-ancestors 'self'

매시업이 IFrame을 사용하여 Qlik Cloud 개체를 포함할 수 있도록 CSP를 구성하는 방법을 알아보려면 콘텐츠 보안 정책을 참조하십시오.

enigma.js를 사용한 매시업

enigma.js 라이브러리는 Java스크립트 환경에서 Qlik 연관 엔진과 통신할 수 있도록 도와줍니다.

필수 웹 통합 및 사용자 인증 처리와 별도로 Qlikenigma.js를 사용할 때 CSRF(교차 사이트 요청 위조) 개념도 고려해야 합니다.

CSRF(교차 사이트 요청 위조)

Qlik Cloud에는 CSRF(교차 사이트 요청 위조)를 방지하기 위한 대책이 있습니다. Qlik Cloud와 상호 작용하는 모든 웹 솔루션은 WebSocket 연결을 포함하여 모든 비GET REST 호출에 유효한 CSRF 토큰을 제공해야 합니다.

백엔드 또는 프런트엔드 코드에서, 웹 응용 프로그램에서 enigma.js를 사용하면 WebSocket 연결이 만들어집니다. 즉, enigma.js 라이브러리가 Qlik Cloud로 보안 세션을 열려면 CRSF 토큰이 WebSocket 연결의 매개 변수로 포함되어야 합니다.

사용자가 로그인하면 유효한 CSRF 토큰을 /api/v1/csrf-token 종료 지점에 요청할 수 있습니다.

enigma.js의 다음 코드 예(로그인한 사용자 포함)는 프런트엔드 코드에서 앱을 열고 레이아웃을 가져오는 데 사용됩니다.

전체 코드 예를 보려면 다음 자습서를 검토합니다.

Visit the discussion forum at community.qlik.com

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!