SAML 요구 사항

Tableau Server에서 SAML을 구성하기 전에 환경이 요구 사항을 충족하는지 확인하십시오.

중요: IdP와 Tableau Server를 모두 사용하는 SAML 구성은 대/소문자를 구분합니다. 예를 들어, IdP와 Tableau Server에서 구성된 URL은 정확히 일치해야 합니다.

인증서 및 IdP(ID 공급자) 요구 사항

SAML 사용을 위해 Tableau Server를 구성하려면 다음이 필요합니다.

  • 인증서 파일. 확장명이 .crt인 PEM 인코딩 x509 인증서 파일. 이 파일은 IdP가 아닌 Tableau Server에서 사용됩니다. SSL 인증서를 가지고 있는 경우 SAML에서도 동일한 인증서를 사용할 수 있습니다. 자세한 내용은 이 문서 뒷부분에서 SAML에 대한 SSL 인증서 및 키 파일 사용를 참조하십시오.

    Tableau Server에는 IdP로 전송되는 요청에 서명할 인증서-키 쌍이 필요합니다. 이렇게 하면 서명된 요청을 스푸핑하기 어렵기 때문에 메시지 가로채기(man-in-the-middle) 공격의 위협이 줄어듭니다. 또한 Tableau Server는 수신한 AuthNResponse가 신뢰할 수 있는 IdP에서 제공되었는지 확인합니다. Tableau Server는 IdP에서 생성된 서명을 사용하여 AuthNResponse를 확인합니다. IdP 인증서 메타데이터는 초기 SAML 구성 프로세스의 일부로 Tableau Server에 제공됩니다.

    모든 IdP에 서명된 요청이 필요한 것은 아닙니다. 기본적으로 Tableau Server는 서명된 요청을 요구합니다. IdP와 보단 안전한 통신 전송을 보장할 수 있도록 이 구성을 사용하는 것이 좋습니다. IdP 팀의 도움을 받아 서명된 요청을 사용하지 않는 것이 필요한지 파악하십시오. 서명된 요청을 사용하지 않으려면 samlSettings 엔터티를 참조하십시오.

  • 서명 알고리즘. 인증서는 보안 서명 알고리즘(예: SHA-256)을 사용해야 합니다. SHA-1 서명 해시를 사용하는 인증서로 SAML을 사용하도록 Tableau Server를 구성하려고 하면 Tableau Server가 인증서를 거부합니다. tsm wgserver.saml.blocklisted_digest_algorithms 구성 키를 설정하여 덜 안전한 SHA-1 해시를 수락하도록 Tableau Server를 구성할 수 있습니다.

  • RSA 키 및 ECDSA 곡선 크기. 인증서에는 키 강도가 2048인 RSA 키 또는 곡선 크기가 256인 ECDSA가 포함되어야 합니다.

    해당하는 구성 키 wgserver.saml.min_allowed.rsa_key_sizewgserver.saml.min_allowed.elliptic_curve_size를 설정하여 덜 안전한 크기를 수락하도록 Tableau Server를 구성할 수 있습니다.

  • 인증서 키 파일. 파일 확장명이 .key인 RSA 또는 DSA 개인 키 파일입니다. RSA 키는 PKCS#1 또는 PKCS#8 형식이어야 합니다.

    암호 보호 요구 사항은 다음과 같습니다.

    • PKCS#1 RSA 키 파일은 암호로 보호할 수 없습니다.
    • 암호로 보호되는 키 파일을 사용하려면 RSA PKCS#8 파일을 사용하여 SAML을 구성해야 합니다. null 암호가 있는 PKCS#8 파일은 지원되지 않습니다.
    • 비밀번호로 보호되는 키 파일은 사이트별 SAML 배포에서 지원되지 않습니다.

    지원 요약

    키 파일 형식 서버 전체 SAML 지원 사이트 수준 SAML 지원
    PKCS#8 RSA 아니요
    PKCS#8(비밀번호 없음/null) 아니요 아니요
    PKCS#1 RSA -
    PKCS#1 RSA(비밀번호) 아니요 아니요
    PKCS#1 DSA(비밀번호) 아니요 아니요
  • IdP는 보안 서명 알고리즘으로 SAML 어설션을 서명해야 합니다. 기본적으로 Tableau Server는 SHA-1 알고리즘으로 서명된 SAML 어설션을 거부합니다. tsm wgserver.saml.blocklisted_digest_algorithms 구성 키를 설정하여 덜 안전한 SHA-1 해시로 서명된 어설션을 수락하도록 Tableau Server를 구성할 수 있습니다.

  • SAML 2.0 이상을 지원하는 IdP 계정. 외부 ID 공급자의 계정이 필요합니다. 몇 가지 예로 PingFederate, SiteMinder 및 Open AM이 있습니다.

  • XML 메타데이터 가져오기 및 내보내기를 지원하는 IdP 공급자. 수동으로 생성된 파일이 작동할 수 있지만 Tableau 기술 지원 부서는 파일 생성이나 관련 문제 해결에 대한 지원을 제공하지 않습니다.

SSL 오프로딩

조직에서 Tableau Server로 인증 요청을 보내기 전에 프록시 서버에서 IdP의 SSL 연결을 종료하는 경우 프록시 구성을 만들어야 할 수 있습니다. 이 시나리오에서 SSL은 프록시 서버에서 "오프로드"됩니다. 이것은 https 요청이 프록시 서버에서 종료된 다음 http를 통해 Tableau Server로 전달된다는 의미입니다.

Tableau Server는 IdP에서 반환된 SAML 응답 메시지의 유효성을 검사합니다. SSL은 프록시에서 오프로드되므로 Tableau Server는 수신한 프로토콜(http)로 유효성을 검사하지만 IdP 응답은 https로 형식화되어 있으므로, 프록시 서버에 https로 설정된 X-Forwarded-Proto 헤더가 포함되어 있지 않으면 유효성 검사가 실패합니다. 자세한 내용은 역방향 프록시 서버를 사용하도록 Tableau Server 구성을 참조하십시오.

SAML에 대한 SSL 인증서 및 키 파일 사용

SSL의 PEM 인코딩 x509 인증서 파일을 사용할 경우 SAML에 동일한 파일을 사용할 수 있습니다. SSL의 경우 인증서 파일은 트래픽을 암호화하는 데 사용됩니다. SAML의 경우 인증서는 인증용으로 사용됩니다.

위의 인증서 및 IdP(ID 공급자) 요구 사항에 나열된 요구 사항에 더해, SSL과 SAML에 동일한 인증서를 사용하려면 인증서가 다음 조건을 충족해야 SAML에서 작동합니다.

  • 인증서에 다른 인증서 또는 키가 아닌 Tableau Server에 적용되는 인증서만 포함되는지 확인하십시오.

    그러려면 인증서 파일의 백업 복사본을 만든 다음 텍스트 편집기에서 여러 내용을 검토하십시오.

사용자 관리 요구 사항

SAML을 사용하도록 설정하면 사용자 인증이 Tableau 외부의 IdP에서 수행되지만, 사용자 관리는 ID 저장소에 의해 수행됩니다. 이러한 ID 저장소는 외부 ID 저장소(Active Directory 또는 LDAP)이거나 로컬 ID 저장소의 Tableau Server일 수 있습니다. Tableau Server에서 사용자 관리를 위한 계획에 대한 자세한 내용은 ID 저장소를 참조하십시오.

설치 중에 ID 저장소를 구성하는 경우 SAML 사용 방법을 반영하는 옵션을 선택해야 합니다. 사이트 관련 SAML을 사용하려는 경우 먼저 서버 전체 SAML을 구성한 후 개별 사이트를 구성해야 합니다.

  • 사이트 관련 SAML의 경우: Tableau Server에 여러 사이트가 있고 각 사이트에 특정 IdP 또는 IdP 응용 프로그램을 설정하려는 경우(또는 일부 사이트에서 SAML을 사용하지 않도록 구성하려는 경우) 로컬 ID 저장소를 사용하여 사용자를 관리하도록 Tableau Server를 구성합니다. 사이트 관련 SAML의 경우 Tableau Server는 인증에 IdP를 사용하며 암호를 사용하지 않습니다.

  • 서버 전체 SAML의 경우: 단일 IdP를 통해 서버 전체 SAML을 구성하려는 경우 로컬 ID 저장소나 외부 ID 저장소를 사용하도록 Tableau Server를 구성할 수 있습니다.

  • 서버 전체 SAML 인증 및 사이트 관련 SAML 인증. 다중 사이트 환경에서 모든 사용자가 사이트 수준에서 구성된 SAML IdP를 통해 인증합니다. 이 시나리오에서는 다중 사이트에 속하는 사용자에 대한 서버 전체 기본 SAML IdP를 지정합니다. 이 시나리오를 구성하려면 로컬 ID 저장소를 사용하도록 Tableau Server를 구성해야 합니다.

참고: REST APItabcmd는 SAML SSO(Single-Sign On)를 지원하지 않습니다. 로그인하려면 서버에 생성되어 있는 사용자의 이름 및 암호를 지정해야 합니다. 사용자는 Tableau Server를 구성한 방식에 따라 로컬 ID 저장소 또는 외부 ID 저장소로 관리할 수 있습니다. Tableau Online의 경우 사용자의 TableauID 자격 증명을 지정할 수 있습니다. REST API 또는 tabcmd 호출은 로그인한 사용자의 사용 권한을 갖게 됩니다.

SAML 호환성 참고 사항 및 요구 사항

  • 사용자 이름 일치: Tableau Server에 저장된 사용자 이름은 IdP가 SAML 어설션으로 보낸 구성된 사용자 이름 특성과 일치해야 합니다. 기본적으로 Tableau Server는 수신 어설션에 “username”이라는 특성과 해당 사용자의 정보가 포함될 것으로 예상합니다. 예를 들어 Jane Smith의 사용자 이름이 PingFederate에 jsmith로 저장되면 Tableau Server에도 jsmith로 저장되어야 합니다.

    인증 중에 SAML을 구성하는 경우

    초기 Tableau Server 설치의 일부로 SAML을 구성하는 경우 설치 프로그램을 실행하기 전에 사용하려는 계정이 IdP에 존재하는지 확인하십시오. Tableau Server 설치 중에 서버 관리자 계정을 만듭니다.

    여러 도메인을 실행하는 경우

    Active Directory 또는 LDAP 외부 ID 저장소를 사용하고 도메인 여러 개를 실행하는 경우(사용자가 여러 도메인에 속하거나 Tableau Server 설치 환경에 여러 도메인이 포함된 경우) IdP는 SAML 어설션으로 사용자의 사용자 이름과 도메인 특성을 모두 전송해야 합니다. 이러한 사용자 이름과 도메인 특성은 Tableau Server에 저장된 사용자 이름 및 도메인과 정확히 일치해야 합니다. 사용자 특성에는 domain\username 형식을 사용하고 도메인 특성에는 FQDN(정규화된 도메인 이름)을 사용합니다. 도메인 특성이 포함되지 않은 경우 Tableau Server 컴퓨터의 도메인(기본 도메인)이 모든 사용자에게 사용됩니다. 사용자가 Tableau Server 컴퓨터와 동일한 도메인에 있지 않은 경우 도메인 특성의 제외로 인해 로그인 오류가 발생합니다.

    자세한 내용은 여러 도메인 지원서버 전체 SAML 구성TSM CLI 사용 탭에 있는 “어설션 일치” 섹션을 참조하십시오.

  • 서명 알고리즘: 많은 IdP는 기본적으로 SHA256을 사용합니다. IdP와 Tableau Server의 서명 알고리즘이 일치하지 않으면 SAML 인증이 실패합니다. 예를 들어 idP가 SHA-256 서명 어설션을 요구했지만 수신 어설션 또는 업로드된 인증서가 SHA-1로 서명된 경우 발신 SAML 어설션을 SHA-256으로 서명하도록 강제할 수 있습니다.

    SHA256으로 변경하려면 초기 구성 중에 sHA256Enabled 구성 엔터티를 true로 설정합니다. 자세한 내용은 samlSettings 엔터티를 참조하십시오. 다음 TSM 명령을 실행하여 SHA256으로 변경할 수도 있습니다.

    tsm configuration set -k wgserver.saml.sha256 -v true

  • SLO(싱글 로그아웃): Tableau Server는 서버 전체 SAML 및 사이트별 SAML에 대해 SP(서비스 공급자)에서 시작한 SLO를 지원합니다. 그러나 Tableau Server는 IdP(ID 공급자)에서 시작한 SLO를 지원하지 않습니다.

  • 외부 인증 유형: Tableau Server는 한 번에 한 외부 인증 유형만 사용하도록 지원합니다.

  • 상호 SSL: Tableau Server에서는 상호 SSL(양방향 SSL)과 SAML을 동시에 지원하지 않습니다. 상호 SSL을 사용하려면 IdP에서 구성할 수 있습니다.

  • 어설션 인코딩: 어설션은 UTF-8로 인코딩되어야 합니다.

  • 암호화 및 SAML 어설션: 서버 전체 SAML이 구성된 경우 Tableau Server는 IdP에서 암호화된 어설션을 지원합니다. 암호화 어설션은 서버 전체 SAML에 대한 초기 구성의 일부로 업로드하는 인증서에 의해 설정됩니다.

    사이트 특정 SAML에 대해 구성된 경우 Tableau Server는 IdP에서 암호화된 어설션을 지원하지 않습니다. 그러나 모든 SAML 요청 및 응답은 HTTPS를 통해 전송됩니다.

  • Tableau Server에서 tabcmd 사용자에 대한 사용자 ID: 위 사용자 관리 요구 사항 섹션에 설명된 대로 tabcmd를 사용하려면 서버에 정의되어 있는 사용자로 로그인해야 합니다. tabcmd에는 SAML 계정을 사용할 수 없습니다.

  • Tableau Desktop에서 SAML SSO 사용: 기본적으로 Tableau Desktop은 SP에서 초기화한 SAML 인증을 허용합니다.

    IdP가 이 기능을 지원하지 않는 경우 다음 명령을 사용하여 Tableau Desktop에서 SAML 로그인을 사용하지 않도록 설정할 수 있습니다.

    tsm authentication saml configure --desktop-access disable

    자세한 내용은 tsm authentication saml <commands>를 참조하십시오.

  • 분산 설치: Tableau Server의 TSM 버전(2018.2 이상)에서는 클라이언트 파일 서비스를 사용하여 다중 노드 클러스터에서 파일을 공유합니다. 클러스터의 초기 노드에서 SAML을 구성한 후 클라이언트 파일 서비스가 다른 노드에 인증서 및 키 파일을 배포합니다.

  • 로그인 URL: 사용자가 로그인할 수 있으려면 POST 요청을 다음 URL로 전송하는 SAML 로그인 끝점으로 IdP를 구성해야 합니다.

    https://<tableauserver>/wg/saml/SSO/index.html.

  • 로그인 URL: 사용자가 SAML을 사용하여 로그인한 후 로그아웃(단일 로그아웃 또는 SLO)할 수 있도록 하려면 POST 요청을 다음 URL로 전송하는 SAML 로그아웃 끝점으로 IdP를 구성해야 합니다.

    https://<tableauserver>/wg/saml/SingleLogout/index.html.

    참고: SP에서 시작한 SLO는 서버 전체 SAML 및 사이트별 SAML에 대해 지원됩니다. 그러나 IdP에서 시작한 SLO는 지원되지 않습니다.

  • 로그아웃 후 리디렉션 URL: 기본적으로 사용자가 Tableau Server에서 로그아웃하면 로그인 페이지가 표시됩니다. 

    로그아웃한 후 다른 페이지가 표시되게 하려면 tsm authentication saml configure 명령에서 -su 또는 --signout-url 옵션을 사용합니다.

    • 절대 URL을 지정하려면 다음 예와 같이 http:// 또는 https://로 시작하는 정규화된 URL을 사용합니다.

      tsm authentication saml configure -su https://example.com

    • Tableau Server 호스트에 상대적인 URL을 지정하려면 다음과 같이 /(슬래시)로 시작하는 페이지를 사용합니다.

      tsm authentication saml configure -su /ourlogoutpage.html

  • AD FS(Active Directory Federation Service): SAML을 통한 Tableau 인증을 위한 추가 특성을 반환하도록 AD FS를 구성해야 합니다. Name IDusername 특성을 동일한 AD 특성에 매핑할 수 있습니다. SAM-Account-Name에 매핑될 수 있습니다.

  • AuthNContextClassRef : AuthNContextClassRef는 IdP에서 시작된 흐름에서 특정 인증 "컨텍스트"의 유효성 검사를 적용하는 선택적 SAML 특성입니다. TSM을 사용하면 이 특성에 대해 쉼표로 구분된 값을 설정할 수 있습니다. 이 특성이 설정되면 Tableau Server는 SAML 응답에 나열된 값 중 하나 이상이 포함되어 있는지 확인합니다. SAML 응답에 구성된 값 중 하나가 포함되어 있지 않으면 사용자가 IdP를 사용하여 성공적으로 인증되었더라도 인증이 거부됩니다.

    이 선택적 특성을 비워두면 기본 동작이 실행됩니다. 즉, 성공적으로 인증된 SAML 응답이 있으면 Tableau Server 내에서 사용자에게 세션이 부여됩니다.

    이 값은 서버 전체 SAML에 대해서만 평가됩니다. 사이트 관련 SAML이 구성된 경우 AuthNContextClassRef 특성이 무시됩니다.

    TSM 웹 인터페이스에서 이 값을 설정하려면 서버 전체 SAML 구성을 참조하십시오.

    tsm configuration set을 사용하여 이 값을 설정하려면 wgserver.saml.authcontexts 키를 사용하여 쉼표로 구분된 값 목록을 설정합니다.

    JSON 구성 파일을 사용하여 이 값을 설정하려면 samlSettings 엔터티를 참조하십시오.

Tableau 클라이언트 응용 프로그램에서 SAML SSO 사용

SAML 자격 증명이 있는 Tableau Server 사용자는 Tableau Desktop 또는 Tableau Mobile 앱에서 서버에 로그인할 수 있습니다. 완벽한 호환성을 위해서는 Tableau 클라이언트 응용 프로그램 버전이 서버 버전과 일치해야 합니다. 사이트 관련 SAML을 사용하여 연결하려면 사용자가 버전 10.0 이상의 Tableau 클라이언트 응용 프로그램을 실행해야 합니다.

Tableau Desktop 또는 Tableau Mobile에서 Tableau Server에 연결하는 경우 SP(서비스 공급자)가 시작한 연결을 사용합니다.

인증된 사용자를 다시 Tableau 클라이언트로 리디렉션

사용자가 Tableau Server에 로그인하는 경우 Tableau Server는 IdP에 SAML 요청(AuthnRequest)을 보내며, 이 요청에는 Tableau 응용 프로그램의 RelayState 값이 포함됩니다. 사용자가 Tableau Desktop 또는 Tableau Mobile 같은 Tableau 클라이언트에서 Tableau Server에 로그인한 경우 Tableau에 대한 IdP의 SAML 응답에서 RelayState 값이 반환되어야 합니다.

이 시나리오에서 RelayState 값이 적절하게 반환되지 않으면 사용자가 로그인한 응용 프로그램으로 리디렉션되는 것이 아니라 웹 브라우저에서 사용자의 Tableau Server 홈 페이지로 이동됩니다.

ID 공급자 및 내부 IT 팀과 협력하여 IdP의 SAML 응답에 이 값이 포함되는지 확인하고 IdP와 Tableau Server 사이에 상주하는 네트워크 장비(예: 프록시 또는 부하 분산 장치)에 의해 보존되는지 확인합니다.

XML 데이터 요구 사항

SAML 구성의 일부로 Tableau Server와 IdP 사이에서 XML 메타데이터를 교환합니다. 이 XML 메타데이터는 사용자가 Tableau Server 로그인 프로세스를 시작한 경우 사용자의 인증 정보를 확인하는 데 사용됩니다.

Tableau Server 및 IdP 각각이 고유한 메타데이터를 생성합니다. 각 메타데이터 집합은 다음 목록에 설명되어 있는 정보를 포함합니다. 두 집합 중 하나라도 손실된 정보가 있으면 SAML을 구성하거나 사용자가 로그인할 때 오류가 발생할 수 있습니다.

  • HTTP POST: Tableau Server는 SAML 통신에 대해 HTTP POST 요청만 지원합니다. HTTP 리디렉션은 지원되지 않습니다.

  • Binding 특성이 HTTP-POST로 설정되어 있으면 Tableau Server와 각 IdP가 내보내는 SAML 메타데이터에 다음 요소가 포함되어 있어야 합니다.

    • 인증에 성공한 후 IdP가 리디렉션하는 URL을 지정하는 요소. 이 요소는 ID 공급자 메타데이터가 아닌 서비스 공급자 메타데이터에서 필요합니다.

      <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://<tableau-server>/wg/saml/SSO/index.html index="0" isDefault="true"/>

      사이트 SAML의 경우 Location 끝점은 /samlservice/public/sp/metadata?alias=<site alias>입니다.

    • 로그아웃 끝점 요소는 Tableau Server 메타데이터에 나타나며 IdP가 Tableau Server의 로그아웃 끝점에 사용할 URL을 지정합니다. 이 요소가 IdP 메타데이터에 없으면 Tableau Server가 IdP와의 로그아웃 끝점을 협상할 수 없으며 Tableau Server 내에서 SAML 로그아웃 기능을 사용할 수 없습니다.

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"

      참고: SP에서 시작한 SLO는 서버 전체 SAML 및 사이트별 SAML 모두에 대해 지원됩니다. 그러나 IdP에서 시작한 SLO는 지원되지 않습니다.

    • IdP의 메타데이터 XML에 다음 예제와 같이 바인딩이 HTTP-POST로 설정되어 있는 SingleSignOnService 요소가 포함되어 있는지 확인합니다.

      <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/SSO.saml2"/>

    • 이 요소는 IdP 메타데이터에 나타나야 하며 Tableau Server가 IdP의 로그아웃 끝점에 사용할 URL을 지정합니다.

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"/>

  • 이름이username인 특성: saml:AttributeStatement 요소에서 username 특성을 포함하는 어설션을 반환하도록 IdP를 구성해야 합니다. 어설션의 특성 유형은 xs:string이어야 합니다(xs:any 형식이어서는 안 됨).

    다음 예제에서는 어설션의 구조를 보여줍니다.

    <saml:Assertion assertion-element-attributes>
      <saml:Issuer>issuer-information</saml:Issuer>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        ...
      </Signature>
      <saml:Subject>
        ...
      </saml:Subject>
      <saml:Conditions condition-attributes >
        ...
      </saml:Conditions>
      <saml:AuthnStatement authn-statement-attributes >
        ...
      </saml:AuthnStatement>
    
      <saml:AttributeStatement>
        <saml:Attribute Name="username" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
        <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
              user-name
        </saml:AttributeValue>
        </saml:Attribute>
      </saml:AttributeStatement>
    </saml:Assertion>

    기본적으로 Tableau Server는 Idp에서 반환된 AuthNResponse의 username 특성을 읽습니다. 그러나 일부 IdP는 사용자를 식별하기 위한 다른 특성을 반환할 수 있습니다. 이 경우 Tableau Server가 사용자 이름에 대해 읽는 특성을 변경해야 할 수 있습니다. 성공적으로 인증하려면 IdP에서 반환된 특성 값이 Tableau Server 사용자의 실제 사용자 이름 값과 일치해야 합니다.

    username값을 전달하는 SAML 특성을 변경하려면 다음 TSM 명령을 실행합니다.

    tsm authentication saml map-assertions --user-name <USER-NAME>.

    자세한 내용은 tsm authentication를 참조하십시오.

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