Tableau Cloud 사이트 관리자는 EAS(외부 권한 부여 서버)를 등록하고 OAuth 2.0 표준 프로토콜을 사용하여 Tableau Cloud 사이트와 EAS 간의 신뢰 관계를 설정할 수 있습니다. 신뢰 관계를 설정하면 다음을 수행할 수 있습니다.

  • Tableau Cloud 사이트에 이미 구성된 IdP(ID 공급자)를 통해 외부 응용 프로그램에 내장된 Tableau 콘텐츠에 대한 SSO(Single Sign-On) 경험을 사용자에게 제공할 수 있습니다.
  • 사용자 대신 JWT(JSON Web Token)를 사용하여 Tableau REST API에 대한 액세스 권한을 프로그래밍 방식으로 부여

내장된 Tableau 콘텐츠를 외부 응용 프로그램에 로드하면 표준 OAuth 흐름이 사용됩니다. 사용자가 IdP에 로그인하면 자동으로 Tableau Cloud에 로그인됩니다. 아래에 설명된 단계를 따라 EAS를 Tableau Cloud 사이트에 등록합니다.

중요:

  • 이 항목의 일부 절차에는 타사 소프트웨어 및 서비스를 사용한 구성이 필요합니다. Tableau는 Tableau Server에서 EAS 기능을 사용하도록 설정하는 절차를 확인하기 위해 최선을 다했습니다. 그러나 타사 소프트웨어 및 서비스에서 변경되었거나 조직에 따라 다를 수 있습니다. 문제가 발생하는 경우 신뢰할 수 있는 구성 세부 정보 및 지원은 타사 설명서를 참조하십시오.
  • 연결된 앱이 EC2 인스턴스와 같은 컨테이너에서 실행 중인 경우, 컨테이너 및 호스트 클록이 모두 UTC로 설정되어야 세션 토큰이 유효합니다. 두 클록이 다른 표준 시간대를 사용하는 경우 연결된 앱을 신뢰할 수 없게 됩니다.

1단계: 시작하기 전에

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

클레임설명 또는 필요한 값
"kid"(키 ID)필수입니다(헤더에 필요). ID 공급자의 고유 키 식별자입니다.
"iss"(Issuer)필수입니다(헤더 또는 클레임에 필요). 신뢰할 수 있는 연결된 앱 및 서명 키를 식별하는 고유한 발급자 URI(HTTPS 형식)입니다.
"alg"(Algorithm)필수입니다(헤더에 필요). JWT 서명 알고리즘입니다. 지원되는 알고리즘 이름은 javadoc.io 설명서의 JWSAlgorithm 클래스(영문)(링크가 새 창에서 열림) 페이지에 나열되어 있습니다.
"sub"(Subject)인증된 Tableau Cloud 사용자의 사용자 이름(이메일 주소)입니다.
"aud"(Audience)

값은 "tableau:<site_luid>"여야 합니다.

사이트 LUID를 확인하려면 Tableau REST API의 로그인 메서드를 사용하거나 아래의 단계에 따라 사이트 ID를 복사하면 됩니다. 참고: 사이트 ID를 복사하기 전에 여기에 설명된 절차를 사용하여 EAS를 등록해야 합니다.

  1. 설정 > 연결된 앱을 선택한 다음 외부 권한 부여 서버의 연결된 앱을 선택합니다.
  2. 사이트 ID 복사 단추를 클릭합니다.

"exp"(Expiration Time)

유효한 JWT는 만료되지 않아야 합니다. JWT의 만료 시간(UTC 기준)은 최대 유효 기간(10분) 안에 있어야 합니다.

"jti"(JWT ID)JWT ID 클레임은 JWT의 고유 식별자를 제공하며 대/소문자를 구분합니다.
"scp"(Scope)

내장 워크플로우의 경우 지원되는 값은 다음과 같습니다.

"tableau:views:embed"
"tableau:views:embed_authoring"
"tableau:metrics:embed"

참고:

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

REST API 권한 부여 워크플로우의 경우 JWT 권한 부여를 지원하는 REST API 메서드를 참조하십시오.

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

2단계: Tableau Cloud에 EAS 등록

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

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

  1. 사이트 관리자로 Tableau Cloud에 로그인합니다.

  2. 왼쪽 패널에서 설정 > 연결된 앱을 선택합니다.

  3. 새 연결된 앱 단추 드롭다운 화살표를 클릭하고 OAuth 2.0 신뢰를 선택합니다.

  4. 연결된 앱 만들기 대화 상자에서 다음 중 하나를 수행합니다.
    1. 발급자 URL 텍스트 상자에 EAS의 발급자 URL을 붙여 넣습니다.

    2. 연결된 앱 사용을 선택합니다. 연결된 앱은 보안을 위해 앱을 만들 때 기본적으로 사용되지 않도록 설정됩니다.

    3. 작업을 마치면 만들기 단추를 클릭합니다.

  5. 연결된 앱이 만들어지면 연결된 앱의 사이트 ID를 복사합니다. 사이트 ID는 위의 1단계에서 설명한 JWT의 “aud”(Audience) 클레임에 사용됩니다.

3단계: 다음 단계

내장 워크플로우의 경우

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

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

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

REST API 권한 부여 워크플로우의 경우

JWT를 구성한 후에는 유효한 JWT를 REST API 로그인 요청에 추가해야 액세스 권한이 부여됩니다. 자세한 내용은 연결된 앱의 액세스 범위를 참조하십시오.

알려진 문제(내장 워크플로우만 해당)

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

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

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

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

문제 해결

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

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

오류 코드요약설명잠재적 해결 방법 또는 설명
5SYSTEM_USER_NOT_FOUNDTableau 사용자를 찾을 수 없음이 문제를 해결하려면 JWT의 'sub'(Subject) 클레임 값이 인증된 Tableau Cloud 사용자의 사용자 이름(이메일 주소)인지 확인합니다. 이 값은 대/소문자를 구분합니다.
16LOGIN_FAILED로그인 실패이 오류는 일반적으로 JWT의 다음 클레임 문제 중 하나로 인해 발생합니다.
  • 'exp'(Expiration Time)가 기본 최대 유효 기간을 초과합니다. 이 문제를 해결하려면 유효한 JWT에 필요한 등록 클레임(링크가 새 창에서 열림)을 검토하고 10분을 초과하지 않는 올바른 값인지 확인하십시오.
  • 'sub'(Subject)가 알 수 없는 사용자를 호출하고 있습니다. 이 문제를 해결하려면 'sub' 값이 인증된 Tableau Cloud 사용자의 사용자 이름(이메일 주소)인지 확인합니다.
142EXTERNAL_AUTHORIZATION_SERVER_NOT_FOUNDEAS를 찾을 수 없음이 문제를 해결하려면 올바른 발급자가 호출되는지 확인하십시오.
143EXTERNAL_AUTHORIZATION_SERVER_LIMIT_EXCEEDEDEAS 제한 초과사이트가 등록된 외부 권한 부여 서버(EAS)의 최대 허용 수(1)에 도달했습니다.
144INVALID_ISSUER_URL잘못된 발급자 URL발급자 URL이 올바르지 않거나 JWT에서 iss’(Issuer) 특성이 누락되었습니다.
149EAS_INVALID_JWKS_URIJWKS URI 누락IdP 메타데이터에 JWKS URI가 없거나 Tableau에 JWKS URI가 구성되지 않았습니다. 이 문제를 해결하려면 올바른 JWKS URI를 구성하십시오.
150EAS_RETRIEVE_JWK_SOURCE_FAILED키 원본 검색 실패이 문제를 해결하려면 JWKS URI가 올바르게 구성되었는지 확인하십시오.
151EAS_RETRIEVE_METADATA_FAILEDissuerUrl에서 메타데이터 검색 실패이 문제를 해결하려면 JWKS URI가 올바르게 구성되었는지 확인하십시오.
10081COULD_NOT_RETRIEVE_IDP_METADATAEAS 메타데이터 끝점이 없음이 문제를 해결하려면 EAS가 올바르게 구성되어 있고 올바른 발급자가 호출되는지 확인하십시오.
10082AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIED발급자가 없음이 문제를 해결하려면 올바른 발급자가 호출되는지 확인하십시오.
10083BAD_JWTJWT 헤더에 문제가 있음JWT 헤더에서 'kid'(Secret ID) 또는 'clientId'(Issuer) 클레임이 누락되었습니다. 이 문제를 해결하려면 해당 정보가 포함되어 있는지 확인하십시오.
10084JWT_PARSE_ERRORJWT에 문제가 있음이 문제를 해결하려면 다음을 확인합니다.
  • JWT에서 참조하는 'aud'(Audience) 값이 "tableau" 값을 사용합니다. 이 값은 대/소문자를 구분합니다.
  • 'aud'(Audience) 및 'sub'(Subject)가 JWT에 포함되어 있습니다.
10085COULD_NOT_FETCH_JWT_KEYSJWT에서 키를 찾을 수 없음암호를 찾을 수 없습니다.

이 문제를 해결하려면 올바른 발급자가 호출되는지 확인하십시오.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNJWT 서명 알고리즘에 문제가 있음이 문제를 해결하려면 서명 알고리즘을 제거하면 됩니다.
10088RSA_KEY_SIZE_INVALIDJWT 서명 요구 사항에 문제가 있음이 문제를 해결하려면 EAS 또는 IdP에서 JWT가 2048의 RSA 키 크기로 서명되고 있는지 확인합니다.
10091JTI_ALREADY_USED고유한 JWT가 필요함JWT가 이미 인증 프로세스에서 사용되었습니다. 이 문제를 해결하려면 EAS 또는 IdP에서 새 JWT를 생성해야 합니다.
10094MISSING_REQUIRED_JTIJWT ID 누락이 문제를 해결하려면 'jti'(JWT ID)가 JWT에 포함되어 있는지 확인합니다.
10095EXTERNAL_AUTHZ_SERVER_DISABLEDEAS 사용 안 함사이트에 등록된 EAS의 연결된 앱이 사용되지 않도록 설정되었습니다.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD  'exp'(Expiration Time)가 기본 최대 유효 기간을 초과합니다. 이 문제를 해결하려면 유효한 JWT에 필요한 등록 클레임(링크가 새 창에서 열림)을 검토하고 10분을 초과하지 않는 올바른 값인지 확인하십시오.
10097SCOPES_MALFORMEDScope 클레임 관련 문제이 오류는 'scp'(Scope) 클레임이 JWT에서 누락되었거나 목록 유형으로 전달되지 않은 경우 발생할 수 있습니다. 이 문제를 해결하려면 'scp'가 JWT에 포함되었고 목록 유형으로 전달되었는지 확인하십시오. JWT 관련 문제 해결 도움말은 auth0 사이트에서 디버거(영문)(링크가 새 창에서 열림)를 참조하십시오.
10098JWT_UNSIGNED_OR_ENCRYPTEDJWT가 서명되지 않았거나 암호화되어 있음Tableau는 서명되지 않았거나 암호화된 JWT를 지원하지 않습니다.
10099SCOPES_MISSING_IN_JWTScope 클레임 누락JWT에서 필수 'scp'(Scope) 클레임이 누락되었습니다. 이 문제를 해결하려면 'scp'가 JWT에 포함되어 있는지 확인합니다. JWT 관련 문제 해결 도움말은 auth0 사이트에서 디버거(영문)(링크가 새 창에서 열림)를 참조하십시오.
10100JTI_PERSISTENCE_FAILED예기치 않은 JWT ID 오류'jti'(JWT ID)에 예기치 않은 오류가 있습니다. 이 문제를 해결하려면 새 'jti'를 사용하여 새 JWT를 생성해야 합니다.
피드백을 제공해 주셔서 감사합니다!