Tableau 인증 및 싱글 사인온(SSO) Web 연동

두별·2022년 6월 11일
1

TIL

목록 보기
25/46
post-thumbnail

인증 및 싱글 사인온(SSO)

SSO를 활용하는 다양한 옵션

연결된 앱 (JWT 인증 방식)

연결된 앱(CA) 을 사용하면 내장된 Tableau 보기에 대한 원활한 SSO 인증을 구현하는 두 가지 최신 옵션이 있습니다. JWT 표준의 인증 토큰을 사용하여 Tableau Server 또는 Tableau Online과 외부 응용 프로그램(CA) 간에 신뢰 관계를 설정할 수 있습니다. 또는 Tableau Server와 EAS(ID 공급자) 간에 신뢰 관계를 설정하여 표준 OAuth 흐름을 구현할 수 있습니다. 두 옵션 모두 신뢰할 수 있는 인증에 대한 추가 보안 및 제어 범위를 제공합니다. 이러한 방법 중 하나를 활용하려면 Tableau 2021.4 이상 및 Embedding API v3을 사용하여 뷰를 포함해야 합니다.

  • Embedding API
    https://help.tableau.com/current/api/embedding_api/en-us/index.html

  • 포함된 콘텐츠에 대해 SSO를 사용하도록 Tableau Connected Apps 구성
    https://help.tableau.com/current/online/en-us/connected_apps.htm

  • 2022년 1월 초부터,Tableau 연결 앱은 Tableau Online 사이트와 Tableau 콘텐츠가 포함된 사용자 지정 응용 프로그램 간의 명시적 신뢰 관계를 촉진하여 원활하고 안전한 인증 환경을 지원합니다.

    연결된 앱은 다음과 같은 이점을 제공합니다.

    • 포함할 수 있는 콘텐츠 및 해당 콘텐츠를 포함할 수 있는 위치에 대한 액세스 제한
    • ID 공급자(IdP)와 통합할 필요 없이 SSO(Single Sign-On)를 사용하여 포함된 콘텐츠에 액세스할 수 있는 기능 제공
    • 사용자에게 맞춤형 애플리케이션에서 직접 인증할 수 있는 기능 제공

      1. 사용자가 웹 페이지를 방문

		사용자가 웹 페이지에 포함된 콘텐츠를 방문하면 웹 페이지는 해당 웹 페이지의 HTML을 검색하기 위해 사용자 정의 응용 프로그램에 GET 요청을 보냅니다.

      2. 사용자 지정 응용 프로그램은 인증 토큰을 구성합니다

		사용자 지정 응용 프로그램은 연결된 앱의 비밀(추가 JWT 요구 사항은 아래 3단계 참조)과 포함된 콘텐츠에 대한 사용자 액세스 범위를 포함하는 JWT를 구성합니다. 비밀은 사용자 지정 응용 프로그램에서 서명하고 이후 단계에서 신뢰 관계를 확인하는 데 사용됩니다.

      3. 사용자 지정 응용 프로그램은 인증 토큰으로 응답합니다

		사용자 지정 응용 프로그램은 웹 페이지에서 호출한 포함된 콘텐츠의 URL에 JWT가 있는 페이지에 응답합니다.

      4. 웹 페이지에서 Tableau에서 콘텐츠 요청

		포함된 콘텐츠를 로드하려고 하면 웹 페이지에서 포함된 콘텐츠의 URL을 호출하여 Tableau에 GET 요청을 보냅니다.

      5. Tableau는 토큰의 유효성을 검사합니다.

		Tableau는 JWT를 수신하고 JWT에서 사용되는 연결된 앱 및 공유 암호를 식별하여 사용자 지정 응용 프로그램과의 신뢰 관계를 확인합니다. 그런 다음 Tableau는 사용자에 대한 세션을 만듭니다. 세션은 JWT에 정의된 포함 범위뿐만 아니라 허용된 도메인 및 허용된 프로젝트를 포함하여 연결된 앱에 지정된 제한 사항을 준수합니다.

      6. Tableau는 제한된 포함 컨텍스트를 기반으로 콘텐츠를 반환합니다.

		포함된 콘텐츠는 페이지가 허용된 도메인에 있고 콘텐츠가 허용된 프로젝트(해당되는 경우)에 게시된 경우에만 로드됩니다. 인증된 사용자는 JWT에 정의된 범위에 의해서만 포함된 콘텐츠와 상호 작용할 수 있습니다

Tableau 비주얼리제이션 구성 요소에 JWT 추가

Tableau Online 에서 연결된 앱으로 구성하는 경우 웹 서버에서 생성된 JWT를 <tableauViz>웹 구성 요소에 명시적으로 전달해야 합니다. token속성 을 사용하여 이 작업을 수행 합니다.

예를 들어 프로그래밍 방식으로 각 사용자에 대해 JWT를 빌드하고 변수 JWT에 할당하는 경우 템플릿 리터럴을 사용하여 HTML 페이지에서 JWT를 참조할 수 있습니다.

<script type="module" src="https://public.tableau.com/javascripts/api/tableau.embedding.3.latest.min.js"></script>

<tableau-viz id="tableauViz"
  src='https://your-tableau-server/views/my-workbook/my-view'
  token="${JWT}">
</tableau-viz>

0개의 댓글