JDBC 커넥터에서 Kerberos 위임 사용

버전 2020.2부터 Tableau Server는 JDBC 커넥터에서 Kerberos 위임을 지원합니다.

Kerberos 위임을 사용하면 Viewer(뷰어) 대신 쿼리를 실행하기 위해 통합 문서 Viewer(뷰어)의 Kerberos 자격 증명을 Tableau Server가 사용하도록 설정할 수 있습니다. 이 방법은 다음과 같은 상황에 유용합니다.

  • 데이터에 액세스하는 사용자를 알아야 합니다. 해당 Viewer(뷰어)의 이름은 데이터 원본의 액세스 로그에 표시됩니다.

  • 데이터 원본에 행 수준 보안이 설정되어 있습니다. 이 경우 다양한 사용자들이 다양한 행에 액세스할 수 있습니다.

지원되는 데이터 원본

Tableau는 다음 데이터 원본에서 JDBC Kerberos RunAs 인증을 지원합니다.

  • Oracle
  • PostgreSQL

JDBC 기반 커넥터를 사용하여 Oracle 데이터 원본에서 위임에 구성하는 경우 이 항목의 절차를 따르십시오. 그렇지 않고 Tableau Server에서 실행 중인 커넥터가 네이티브 드라이버를 사용하는 경우 Kerberos 위임 사용 도움말 항목의 절차를 따르십시오.

요구 사항

Kerberos 위임에는 Active Directory가 필요합니다.

  • LDAP - Active Directory를 사용하도록 Tableau Server 정보 저장소를 구성해야 합니다.
  • MIT KDC는 지원되지 않습니다.

참고: 운영 체제로 작동하기 위해 '서비스 계정' 계정을 사용하도록 설정할 필요가 없습니다.

구성 프로세스

이 섹션에서는 Kerberos 위임을 사용하도록 설정하는 프로세스의 예를 제공합니다.

  1. Tableau Server가 데이터베이스 호출을 시작한 사용자를 대신하여 위임하려면 Kerberos 서비스 티켓이 필요합니다. 지정된 데이터베이스에 위임하는 데 사용할 도메인 계정을 만들어야 합니다. 이 계정을 '서비스 계정' 서비스 계정이라고 합니다. 이 항목에서 '서비스 계정' 계정으로 구성된 예제 사용자는 tabsrv@EXAMPLE.COM입니다.

    이 계정은 Active Directory에서 위임으로 구성되어야 합니다.

    1. 사용자 도메인에 연결된 Windows Server에서 Active Directory 사용자 및 컴퓨터를 엽니다.
    2. ‘서비스 계정’ 서비스 계정의 속성 페이지에서 위임 탭을 클릭한 다음 지정한 서비스에 대한 위임용으로만 이 사용자 트러스트모든 인증 프로토콜 사용을 선택합니다.
  2. ‘서비스 계정’ 서비스 계정에 대한 keytab 파일을 만듭니다.

    다음 예제에서는 JDK에 제공되는 ktab 도구를 사용합니다. 이 도구는 AdoptOpenJDK(링크가 새 창에서 열림)에서 다운로드할 수 있습니다. ktab을 사용하여 keytab을 만드는 경우 UPN 형식(예: service@EXAMPLE.COM)의 로그온 사용자를 사용합니다. 서비스 사용자 이름(예: HTTP/service.example.com@EXAMPLE.COM)을 사용해서는 안 됩니다. ktpass 유틸리티를 사용하여 keytab을 생성할 수도 있으며, 이 경우 두 사용자 이름 형식 중 하나를 사용할 수 있습니다.

    <JDK_HOME>/bin/ktab -k E:/tmp/tabsrv.keytab -a tabsrv@EXAMPLE.COM

    Tableau Server는 ‘서비스 계정’ 서비스 계정 및 관련 keytab을 사용하여 인증하고 데이터베이스에 직접 연결합니다.

  3. keytab 파일을 Tableau Server 데이터 디렉터리에 복사하고 '서비스 계정' 서비스 계정이 keytab 파일을 액세스하고 읽을 수 있는지 확인합니다. 기본적으로 Tableau Server 데이터 디렉터리는 C:\ProgramData\Tableau에 위치합니다. 분산 배포에서 Tableau Server를 실행하는 경우 클러스터의 각 노드에서 이 단계를 수행합니다.

  4. krb5.conf 파일을 만들고 모든 Tableau Server 노드의 C:\Windows에 설치합니다.

    조직의 컴퓨터에 이미 krb5.ini 파일이 배포되어 있는 경우 해당 파일을 복사하여 Tableau Server에 사용합니다. 자세한 내용은 MIT Kerberos 설명서 항목 krb5.conf(링크가 새 창에서 열림)를 참조하십시오.

    Kerberos 구성 파일의 위치를 변경하려면 다음 TSM 명령을 실행합니다.

    tsm configuration set -k native_api.kerberos_config_path --force-keys -v "C:\temp\krb5.ini"

    다음은 krb5.conf 파일의 예입니다. Tableau Support는 krb5.conf 만들기와 관련된 지원을 제공할 수 없습니다.

    [libdefaults]
    forwardable = true
    default_realm = EXAMPLE.COM
    default_tkt_enctypes = rc4-hmac
    default_tgs_enctypes = rc4-hmac
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc.example.com
    admin_server = kdc.example.com
    }
    
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM
  5. 다음 TSM 명령을 실행하여 Kerberos 위임을 사용하도록 설정하고 위임 서비스 계정을 설정한 다음 keytab 파일을 서비스 계정에 연결합니다.

    tsm configuration set -k wgserver.delegation.enabled -v true
    tsm configuration set -k native_api.datasource_impersonation_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_impersonation_runas_keytab_path -v <path-to-file>kerberos.keytab
    tsm configuration set -k native_api.protocol_transition_a_d_short_domain -v false
    tsm configuration set -k native_api.protocol_transition_uppercase_realm -v true

    일부 경우 TSM이 --force-keys에 관한 오류를 반환할 수 있습니다. 이 오류가 발생하면 --force-keys 매개 변수를 인수에 추가하고 명령을 다시 실행합니다.

  6. 다음 TSM 명령을 실행하여 변경 사항을 Tableau Server에 적용합니다.

    tsm pending-changes apply

    보류 중인 변경 내용을 적용하려면 서버를 다시 시작해야 하는 경우 pending-changes apply 명령은 서버가 다시 시작됨을 알리는 메시지를 표시합니다. 서버가 중지된 경우에도 이 메시지가 표시되지만 이 경우 다시 시작은 없습니다. --ignore-prompt 옵션을 사용하여 이 메시지를 표시하지 않을 수 있지만 다시 시작 동작은 변경되지 않습니다. 변경 내용을 적용해도 다시 시작할 필요가 없는 경우 메시지 없이 변경 내용이 적용됩니다. 자세한 내용은 tsm pending-changes apply를 참조하십시오.

피드백을 제공해 주셔서 감사합니다!귀하의 피드백이 제출되었습니다. 감사합니다!