Tableau Server 관리자는 EAS(외부 권한 부여 서버)를 등록하여 Tableau Server와 EAS 간의 신뢰 관계를 OAuth 2.0 표준 프로토콜을 사용하여 설정할 수 있습니다. 신뢰 관계를 설정하면 Tableau Server에 이미 구성된 IdP(ID 공급자)를 통해 사용자 지정 응용 프로그램에 내장된 Tableau 콘텐츠에 대한 SSO(Single Sign-On) 경험을 사용자에게 제공할 수 있습니다. 내장된 Tableau 콘텐츠를 사용자 지정 응용 프로그램에 로드하면 표준 OAuth 흐름이 사용됩니다. 사용자가 IdP에 로그인하면 자동으로 Tableau Server에 로그인됩니다. 아래에 설명된 단계를 따라 EAS를 Tableau Server에 등록합니다.

중요:

  • 이 항목의 일부 절차에는 타사 소프트웨어 및 서비스를 사용한 구성이 필요합니다. Tableau는 Tableau Server에서 EAS 기능을 사용하도록 설정하는 절차를 확인하기 위해 최선을 다했습니다. 그러나 타사 소프트웨어 및 서비스에서 변경되었거나 조직에 따라 다를 수 있습니다. 문제가 발생하는 경우 신뢰할 수 있는 구성 세부 정보 및 지원은 타사 설명서를 참조하십시오.
  • EAS를 통한 내장 기능을 사용하려면 HTTP 트래픽에 SSL을 사용하도록 Tableau Server를 구성해야 합니다.

참고: 연결된 앱이 EC2 인스턴스와 같은 컨테이너에서 실행 중인 경우, 컨테이너 및 호스트 클록이 모두 UTC로 설정되어야 세션 토큰이 유효합니다. 두 클록이 다른 표준 시간대를 사용하는 경우 연결된 앱을 신뢰할 수 없게 됩니다.

1단계: 시작하기 전에

EAS를 Tableau Server 에 등록하려면 EAS가 이미 구성되어 있어야 합니다. 또한 EAS에서 아래 표에 나열된 등록된 클레임 및 헤더가 포함된 유효한 JWT(JSON Web Token)를 전송해야 합니다.

클레임 설명 또는 필요한 값
"kid"(키 ID) 필수입니다(헤더에 필요). ID 공급자의 고유 키 식별자입니다.
"iss"(Issuer) 필수입니다(헤더 또는 클레임에 필요). 신뢰할 수 있는 연결된 앱 및 서명 키를 식별하는 고유한 발급자 URI입니다.
"alg"(Algorithm) 필수입니다(헤더에 필요). JWT 서명 알고리즘입니다. 지원되는 알고리즘 이름은 javadoc.io 설명서의 JWSAlgorithm 클래스(영문)(링크가 새 창에서 열림) 페이지에 나열되어 있습니다. 서명 알고리즘은 vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms 명령을 사용하여 구성할 수 있습니다.
"sub"(Subject) 인증된 Tableau Server 사용자의 사용자 이름입니다.
"aud"(Audience) 값은 "tableau"여야 합니다.
"exp"(Expiration Time) 유효한 JWT는 만료되지 않아야 합니다. JWT의 만료 시간(UTC 기준)은 구성된 최대 유효 기간 안에 있어야 합니다. 최대 유효 기간은 vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes 명령을 사용하여 구성할 수 있습니다.
"jti"(JWT ID) JWT ID 클레임은 JWT의 고유 식별자를 제공하며 대/소문자를 구분합니다.
"scp"(Scope)

지원되는 값은 다음과 같습니다.

"tableau:views:embed"

"tableau:metrics:embed"

참고:

  • 값을 목록 유형으로 전달해야 합니다.
  • tableau:views:embed의 경우 범위는 Tableau Server에서 이미 구성된 사용자의 사용 권한을 따르며 원본 뷰에서 사용할 수 있는 경우 내장된 뷰에서 도구와 상호 작용할 수 있습니다.
  • 내장 코드에는 툴바 매개 변수를 제외하는 것이 좋습니다. 자세한 내용은 아래에서 알려진 문제를 참조하십시오.

참고: 위의 JWT 클레임은 IETF(Internet Engineering Task Force) 조직에서 배포한 설명서의 등록된 클레임 이름(영문)(링크가 새 창에서 열림) 섹션에 문서화되어 있습니다.

2단계: Tableau Server에 EAS 등록

Tableau Server에 EAS를 등록하면 EAS와 Tableau Server 간의 신뢰 관계가 설정됩니다. 즉, 사용자가 사용자 지정 응용 프로그램에 내장된 Tableau 콘텐츠에 액세스하면 IdP를 통한 인증을 위해 리디렉션됩니다. EAS에서 인증 토큰이 생성되고 확인을 위해 Tableau Server로 전달됩니다. 신뢰 관계가 확인되면 내장된 콘텐츠에 대한 액세스 권한이 사용자에게 부여됩니다. 또는

EAS를 등록한 후 설정된 신뢰 관계는 Tableau Server의 모든 사이트에 적용됩니다.

참고: 일부 EAS는 Tableau 콘텐츠에 대한 응용 프로그램 액세스에 대해 사용자의 승인을 구하는 동의 대화 상자를 표시하는 옵션을 지원합니다. 최상의 사용자 경험을 보장하려면 사용자 지정 응용 프로그램의 요청에 사용자 대신 자동으로 동의하도록 EAS를 구성하는 것이 좋습니다.

  1. Tableau Server 관리자로 TSM(Tableau 서비스 관리자) 웹 UI에 로그인합니다. 자세한 내용은 Tableau 서비스 관리자 웹 UI에 로그인을 참조하십시오.

  2. 사용자 ID 및 액세스 > 권한 부여 서버로 이동하고 다음을 수행합니다.
    1. 내장된 콘텐츠에 OAuth 액세스 사용 확인란을 선택합니다.

    2. 발급자 URL 텍스트 상자에 EAS의 발급자 URL을 붙여 넣습니다.

    3. 보류 중인 변경 내용 저장 단추를 클릭합니다.

  3. 작업을 마치면 다음을 수행합니다.
    1. 페이지의 오른쪽 위에서 보류 중인 변경 내용 단추를 클릭합니다.

    2. 페이지의 오른쪽 아래에서 변경 내용 적용 후 다시 시작 단추를 클릭하여 Tableau Server를 중지했다가 다시 시작합니다.

  1. 클러스터의 초기 노드(TSM이 설치된 노드)에서 관리자로 명령 프롬프트를 엽니다.
  2. 다음 명령을 실행합니다.

    tsm configuration set -k vizportal.oauth.external_authorization.enabled -v true
    tsm configuration set -k vizportal.oauth.external_authorization_server.issuer -v "<issuer_url_of_EAS>"
    tsm restart

3단계: 내장 다음 단계

EAS를 사용하도록 Tableau Server 를 구성한 후에는 내장 코드를 사용자 지정 응용 프로그램에 추가해야 합니다. 위의 1단계에 설명된 대로 EAS를 통해 생성된 유효한 JWT를 사용자 지정 응용 프로그램에서 호출하는 웹 구성 요소에 포함해야 합니다.

Tableau 콘텐츠 내장에 대한 자세한 내용은 다음을 참조하십시오.

참고: 사용자가 내장된 콘텐츠에 액세스할 때 성공적으로 인증하려면, 타사 쿠키를 허용하도록 브라우저를 구성해야 합니다.

알려진 문제

연결된 앱을 사용하는 경우 몇 가지 알려진 문제가 있으며, 이는 향후 릴리스에서 해결될 예정입니다.

  • 툴바 기능: 내장된 콘텐츠에 툴바 매개 변수가 정의되어 있으면 일부 툴바 기능이 작동하지 않습니다. 이 문제를 해결하려면 아래 예와 같이 툴바 매개 변수를 숨기는 것이 좋습니다.

    <tableau-viz id='tab-viz' src='https://<your_server>/t/<your_site>/...'
    	toolbar='hidden'>
    </tableau-viz>

  • 게시된 데이터 원본: 데이터베이스 자격 증명이 사용자에게 확인으로 설정된 경우 게시된 데이터 원본이 표시되지 않습니다. 이 문제를 해결하려면 가능한 경우 데이터 원본 소유자가 대신 데이터베이스 자격 증명을 내장하는 것이 좋습니다.

문제 해결

내장된 콘텐츠가 사용자 지정 응용 프로그램에 표시되지 않거나 Tableau REST API 권한 부여가 실패하면 브라우저의 개발자 도구를 사용하여 Tableau Server 에서 사용되는 EAS 기능과 관련되었을 수 있는 오류 코드를 검사하고 식별할 수 있습니다.

아래의 표를 참조하여 오류 코드 설명 및 가능한 해결 방법을 검토하십시오.

오류 코드 요약 설명 잠재적 해결 방법 또는 설명
5 SYSTEM_USER_NOT_FOUND Tableau 사용자를 찾을 수 없음
이 문제를 해결하려면 JWT의 ‘sub’(Subject) 클레임 값이 인증된 Tableau Server의 "username"인지 확인합니다. 이 값은 대/소문자를 구분합니다.
16 LOGIN_FAILED 로그인 실패 이 오류는 일반적으로 JWT의 다음 클레임 문제 중 하나로 인해 발생합니다.
10081 COULD_NOT_RETRIEVE_IDP_METADATA EAS 메타데이터 끝점이 없음 이 문제를 해결하려면 EAS가 올바르게 구성되어 있고 올바른 발급자가 호출되는지 확인하십시오.
10082 AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIED 발급자가 없음 이 문제를 해결하려면 올바른 발급자가 호출되는지 확인하십시오. 발급자 URL을 변경하려면 vizportal.oauth.external_authorization_server.issuer 명령을 사용하면 됩니다.
10083 BAD_JWT JWT 헤더에 문제가 있음 이 오류는 일반적으로 JWT 헤더에 있는 다음 문제 중 하나로 인해 발생합니다.
  • JWT 헤더에 '암호 키'(Kid) 또는 'clientId'(발급자) 클레임이 누락되었습니다. 이 문제를 해결하려면 해당 정보가 포함되어 있는지 확인하십시오.
  • JWT가 서명되지 않았거나 암호화되어 있습니다. Tableau는 서명되지 않았거나 암호화된 JWT를 지원하지 않습니다.
10084 JWT_PARSE_ERROR JWT에 문제가 있음

이 문제를 해결하려면 다음을 확인합니다.

  • JWT에서 참조하는 ‘aud’(Audience) 값이 “tableau” 값을 사용합니다. 이 값은 대/소문자를 구분합니다.
  • ‘aud’(Audience), ‘sub’(Subject) 및 ‘jti’(JWT ID)가 JWT에 포함되어 있습니다.
10085 COULD_NOT_FETCH_JWT_KEYS JWT에서 키를 찾을 수 없음

암호를 찾을 수 없습니다.

이 문제를 해결하려면 올바른 발급자가 호출되는지 확인하십시오. 발급자 URL을 변경하려면 vizportal.oauth.external_authorization_server.issuer 명령을 사용하면 됩니다.

10087 BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGN JWT 서명 알고리즘에 문제가 있음

이 문제를 해결하려면 서명 알고리즘을 제거하면 됩니다. 자세한 내용은 vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms을 참조하십시오.

10088 RSA_KEY_SIZE_INVALID JWT 서명 요구 사항에 문제가 있음 이 문제를 해결하려면 EAS 또는 IdP에서 JWT가 2048의 RSA 키 크기로 서명되고 있는지 확인합니다.
10091 JTI_ALREADY_USED 고유한 JWT가 필요함

JWT가 이미 인증 프로세스에서 사용되었습니다. 이 문제를 해결하려면 EAS 또는 IdP에서 새 JWT를 생성해야 합니다.

피드백을 제공해 주셔서 감사합니다!